From e0c9d06c96f6ab6e14d7b78e7751371382a9c588 Mon Sep 17 00:00:00 2001 From: Kurumi <90857923+walnut07@users.noreply.github.com> Date: Sat, 30 Sep 2023 23:06:37 +0900 Subject: [PATCH 001/194] Update INSTALL.md's building static resources section (#3042) It can help working around potential compilation bugs until MBS-13291 is resolved. --- INSTALL.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index adfb2d798a4..90f89846857 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -220,12 +220,14 @@ Below outlines how to setup MusicBrainz server with local::lib. Building static web resources ------------------------------- -To build everything necessary to access the server in a web browser (CSS, -JavaScript), run the following command: +To build everything necessary to access the server in a web browser (CSS, JavaScript), run the following command: ./script/compile_resources.sh -This command takes care of installing Node.js dependencies for you, including +If you encounter an error running the command above, follow this section [Translations](https://github.com/metabrainz/musicbrainz-server/blob/master/INSTALL.md#translations) until **4. install translations**. +It will generate the necessary files for the build to succeed. + +This command below takes care of installing Node.js dependencies for you, including development dependencies. If you're just setting up a mirror and don't plan to hack on any code, you can save a bit of time and space by excluding the devDependencies (listed in package.json): From ce6f7ddbdfcc68c01180111b1ae480c5dce9ea72 Mon Sep 17 00:00:00 2001 From: yvanzo Date: Sat, 30 Sep 2023 16:07:28 +0200 Subject: [PATCH 002/194] Link directly to the anchor in Markdown --- INSTALL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/INSTALL.md b/INSTALL.md index 90f89846857..0d29b43b191 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -224,7 +224,7 @@ To build everything necessary to access the server in a web browser (CSS, JavaSc ./script/compile_resources.sh -If you encounter an error running the command above, follow this section [Translations](https://github.com/metabrainz/musicbrainz-server/blob/master/INSTALL.md#translations) until **4. install translations**. +If you encounter an error running the command above, follow this section [Translations](#translations) until **4. install translations**. It will generate the necessary files for the build to succeed. This command below takes care of installing Node.js dependencies for you, including From 1197ef5fb0bbc6a3e2856059dfa2f0a7adad774b Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Tue, 3 Oct 2023 11:28:48 +0200 Subject: [PATCH 003/194] Remove all uses of the smartmatch operator The smartmatch operator (`~~`) is deprecated as of Perl 5.38. https://perldoc.perl.org/perl5380delta#Switch-and-Smart-Match-operator Although it had many use cases, it appears that we only used it for checking that a value exists in an array. I added two utility functions that help with this: `contains_number` and `contains_string`. I made these handle cases where the array ref is `undef`, because the smartmatch operator also works in this case, and I didn't verify that every input is defined. In other cases, where the container array is a static list of strings, I changed the code to perform a simple regex match. --- .../Server/Controller/Admin/Attributes.pm | 5 ++--- lib/MusicBrainz/Server/Controller/Role/Load.pm | 8 +++----- lib/MusicBrainz/Server/Controller/Search.pm | 2 -- lib/MusicBrainz/Server/Controller/WS/2/Tag.pm | 4 +--- .../Server/Controller/WS/js/Edit.pm | 16 ++++++++++------ lib/MusicBrainz/Server/Data/Relationship.pm | 2 -- lib/MusicBrainz/Server/Data/Search.pm | 17 +++++++++-------- lib/MusicBrainz/Server/Data/Utils.pm | 18 +++++++++++++++++- lib/MusicBrainz/Server/Edit/Alias/Edit.pm | 2 -- lib/MusicBrainz/Server/Edit/Area/Edit.pm | 2 -- lib/MusicBrainz/Server/Edit/Artist/Edit.pm | 2 -- lib/MusicBrainz/Server/Edit/Event/Edit.pm | 2 -- lib/MusicBrainz/Server/Edit/Genre/Edit.pm | 2 -- lib/MusicBrainz/Server/Edit/Label/Edit.pm | 2 -- lib/MusicBrainz/Server/Edit/Place/Edit.pm | 2 -- lib/MusicBrainz/Server/Edit/Recording/Edit.pm | 2 -- lib/MusicBrainz/Server/Edit/Relationship.pm | 6 ++---- lib/MusicBrainz/Server/Edit/Release/Edit.pm | 2 -- .../Server/Edit/Release/EditReleaseLabel.pm | 2 -- .../Server/Edit/ReleaseGroup/Edit.pm | 2 -- lib/MusicBrainz/Server/Edit/Series/Edit.pm | 2 -- lib/MusicBrainz/Server/Edit/URL/Edit.pm | 2 -- .../EditSearch/Predicate/AppliedEdits.pm | 2 -- .../Server/EditSearch/Predicate/ID.pm | 2 -- .../EditSearch/Predicate/Role/Subscribed.pm | 2 -- lib/MusicBrainz/Server/Entity/Series.pm | 2 -- lib/MusicBrainz/Server/Plugin/Diff.pm | 2 -- script/dump-entities-sql.pl | 2 -- 28 files changed, 44 insertions(+), 72 deletions(-) diff --git a/lib/MusicBrainz/Server/Controller/Admin/Attributes.pm b/lib/MusicBrainz/Server/Controller/Admin/Attributes.pm index 17b61021fcd..5be4cbd7141 100644 --- a/lib/MusicBrainz/Server/Controller/Admin/Attributes.pm +++ b/lib/MusicBrainz/Server/Controller/Admin/Attributes.pm @@ -3,12 +3,11 @@ use Moose; use namespace::autoclean; use utf8; +use MusicBrainz::Server::Data::Utils qw( contains_string ); use MusicBrainz::Server::Entity::Util::JSON qw( to_json_array ); use MusicBrainz::Server::Translation qw( l ); -no if $] >= 5.018, warnings => 'experimental::smartmatch'; - BEGIN { extends 'MusicBrainz::Server::Controller' }; my @models = qw( @@ -47,7 +46,7 @@ sub index : Path('/admin/attributes') Args(0) RequireAuth(account_admin) { sub attribute_base : Chained('/') PathPart('admin/attributes') CaptureArgs(1) RequireAuth(account_admin) { my ($self, $c, $model) = @_; - $c->detach('/error_404') unless $model ~~ @models; + $c->detach('/error_404') unless contains_string(\@models, $model); $c->stash->{model} = $model; } diff --git a/lib/MusicBrainz/Server/Controller/Role/Load.pm b/lib/MusicBrainz/Server/Controller/Role/Load.pm index ff4b868a158..c9e58f56499 100644 --- a/lib/MusicBrainz/Server/Controller/Role/Load.pm +++ b/lib/MusicBrainz/Server/Controller/Role/Load.pm @@ -3,14 +3,12 @@ package MusicBrainz::Server::Controller::Role::Load; use MooseX::MethodAttributes::Role; use MooseX::Role::Parameterized; use namespace::autoclean; -use MusicBrainz::Server::Data::Utils qw( model_to_type ); +use MusicBrainz::Server::Data::Utils qw( contains_string model_to_type ); use MusicBrainz::Server::Validation qw( is_guid is_positive_integer ); use MusicBrainz::Server::Constants qw( :direction %ENTITIES ); use Readonly; use aliased 'MusicBrainz::Server::Entity::RelationshipLinkTypeGroup'; -no if $] >= 5.018, warnings => 'experimental::smartmatch'; - parameter 'model' => ( isa => 'Str', required => 1 @@ -74,10 +72,10 @@ role my $relationships = $params->relationships; my $loaded = 0; - if ($action ~~ $relationships->{all}) { + if (contains_string($relationships->{all}, $action)) { $c->model('Relationship')->load($entity); $loaded = 1; - } elsif ($action ~~ $relationships->{cardinal}) { + } elsif (contains_string($relationships->{cardinal}, $action)) { $c->model('Relationship')->load_cardinal($entity); $loaded = 1; } diff --git a/lib/MusicBrainz/Server/Controller/Search.pm b/lib/MusicBrainz/Server/Controller/Search.pm index cbb2293f85f..7bcb20f10f3 100644 --- a/lib/MusicBrainz/Server/Controller/Search.pm +++ b/lib/MusicBrainz/Server/Controller/Search.pm @@ -12,8 +12,6 @@ use MusicBrainz::Server::Form::Search::Search; use Scalar::Util qw( looks_like_number ); use feature 'switch'; -no if $] >= 5.018, warnings => 'experimental::smartmatch'; - sub search : Path('') { my ($self, $c) = @_; diff --git a/lib/MusicBrainz/Server/Controller/WS/2/Tag.pm b/lib/MusicBrainz/Server/Controller/WS/2/Tag.pm index a04e3763aba..45843de2564 100644 --- a/lib/MusicBrainz/Server/Controller/WS/2/Tag.pm +++ b/lib/MusicBrainz/Server/Controller/WS/2/Tag.pm @@ -11,8 +11,6 @@ use MusicBrainz::Server::Data::Utils qw( non_empty trim type_to_model ); use MusicBrainz::Server::Validation qw( is_guid ); use MusicBrainz::Server::WebService::XML::XPath; -no if $] >= 5.018, warnings => 'experimental::smartmatch'; - my $ws_defs = Data::OptList::mkopt([ tag => { method => 'GET', @@ -109,7 +107,7 @@ sub tag_submit : Private $has_votes = 1; $vote = $xp->find('@mb:vote', $_)->string_value; - unless ($vote ~~ [qw(upvote downvote withdraw)]) { + unless ($vote =~ /^(upvote|downvote|withdraw)$/) { $self->_error($c, 'Unrecognized vote type: ' . $vote); } } diff --git a/lib/MusicBrainz/Server/Controller/WS/js/Edit.pm b/lib/MusicBrainz/Server/Controller/WS/js/Edit.pm index b0b11d85bd1..ccacb3f15b7 100644 --- a/lib/MusicBrainz/Server/Controller/WS/js/Edit.pm +++ b/lib/MusicBrainz/Server/Controller/WS/js/Edit.pm @@ -31,6 +31,7 @@ use MusicBrainz::Server::Constants qw( use MusicBrainz::Server::ControllerUtils::Relationship qw( merge_link_attributes ); use MusicBrainz::Server::Data::Utils qw( boolean_from_json + contains_number type_to_model model_to_type partial_date_to_hash @@ -62,8 +63,6 @@ use aliased 'MusicBrainz::Server::Entity::Track'; use aliased 'MusicBrainz::Server::WebService::JSONSerializer'; BEGIN { extends 'MusicBrainz::Server::Controller' } -no if $] >= 5.018, warnings => 'experimental::smartmatch'; - Readonly our $ERROR_NOT_LOGGED_IN => 1; Readonly our $ERROR_NON_EXISTENT_ENTITIES => 2; @@ -506,7 +505,7 @@ sub process_edits { for my $edit (@$edits) { my $edit_type = $edit->{edit_type}; - if ($edit_type ~~ $RELATIONSHIP_EDIT_TYPES) { + if (contains_number($RELATIONSHIP_EDIT_TYPES, $edit_type)) { push @link_types_to_load, $edit->{linkTypeID}; push @relationship_edits, $edit; } @@ -530,11 +529,16 @@ sub process_edits { $edit->{link_type} = $link_type; - if ($edit->{edit_type} ~~ [$EDIT_RELATIONSHIP_EDIT, $EDIT_RELATIONSHIP_DELETE]) { + my $edit_type = $edit->{edit_type}; + + if ( + $edit_type == $EDIT_RELATIONSHIP_EDIT || + $edit_type == $EDIT_RELATIONSHIP_DELETE + ) { my $id = $edit->{id} or $c->forward('/ws/js/detach_with_error', ['missing relationship id']); $add_relationship_to_load->($link_type, $id, $edit); - } elsif ($edit->{edit_type} == $EDIT_RELATIONSHIPS_REORDER) { + } elsif ($edit_type == $EDIT_RELATIONSHIPS_REORDER) { my $relationship_order = $edit->{relationship_order}; if (ref $relationship_order eq 'ARRAY') { for my $ordering (@$relationship_order) { @@ -736,7 +740,7 @@ sub submit_edits { $c->forward('/ws/js/detach_with_error', ['editNote invalid']); } - unless ($edit_type ~~ $ALLOWED_EDIT_TYPES) { + unless (contains_number($ALLOWED_EDIT_TYPES, $edit_type)) { $c->forward('/ws/js/detach_with_error', ["edit_type $edit_type is not supported"]); } } diff --git a/lib/MusicBrainz/Server/Data/Relationship.pm b/lib/MusicBrainz/Server/Data/Relationship.pm index 97547c31e08..067a401f931 100644 --- a/lib/MusicBrainz/Server/Data/Relationship.pm +++ b/lib/MusicBrainz/Server/Data/Relationship.pm @@ -35,8 +35,6 @@ use List::AllUtils qw( any nsort_by part partition_by uniq ); use aliased 'MusicBrainz::Server::Entity::RelationshipTargetTypeGroup'; use aliased 'MusicBrainz::Server::Entity::RelationshipLinkTypeGroup'; -no if $] >= 5.018, warnings => 'experimental::smartmatch'; - extends 'MusicBrainz::Server::Data::Entity'; my %TYPES = map { $_ => 1} @RELATABLE_ENTITIES; diff --git a/lib/MusicBrainz/Server/Data/Search.pm b/lib/MusicBrainz/Server/Data/Search.pm index 21f08387df9..7cabe58dc37 100644 --- a/lib/MusicBrainz/Server/Data/Search.pm +++ b/lib/MusicBrainz/Server/Data/Search.pm @@ -56,16 +56,15 @@ use MusicBrainz::Server::Data::Release; use MusicBrainz::Server::Data::ReleaseGroup; use MusicBrainz::Server::Data::Series; use MusicBrainz::Server::Data::Tag; -use MusicBrainz::Server::Data::Utils qw( ref_to_type ); +use MusicBrainz::Server::Data::Utils qw( contains_string ref_to_type ); use MusicBrainz::Server::Data::Work; use MusicBrainz::Server::Constants qw( entities_with $DARTIST_ID $DLABEL_ID ); use MusicBrainz::Server::Data::Utils qw( type_to_model ); use MusicBrainz::Server::ExternalUtils qw( get_chunked_with_retry ); use DateTime::Format::ISO8601; +use Readonly; use feature 'switch'; -no if $] >= 5.018, warnings => 'experimental::smartmatch'; - extends 'MusicBrainz::Server::Data::Entity'; use Sub::Exporter -setup => { @@ -134,7 +133,7 @@ sub search SQL $hard_search_limit = $offset * 2; - } elsif ($type ~~ [qw(recording release release_group)]) { + } elsif ($type =~ /^(recording|release|release_group)$/) { if ($type eq 'release_group') { $extra_columns = 'entity.type AS primary_type_id,'; } elsif ($type eq 'recording') { @@ -201,7 +200,7 @@ sub search SQL $hard_search_limit = int($offset * 1.2); - } elsif ($type ~~ [qw(area event instrument label place series work)]) { + } elsif ($type =~ /^(area|event|instrument|label|place|series|work)$/) { my $where_deleted = 'WHERE entity.id != ?'; if ($type eq 'label') { $deleted_entity = $DLABEL_ID; @@ -398,9 +397,11 @@ my %mapping = ( 'label-code' => 'label_code', ); +Readonly our @ENTITIES_WITH_SIMPLE_TYPES => entities_with(['type', 'simple']); + sub schema_fixup_type { my ($self, $data, $type) = @_; - if (defined $data->{type} && $type ~~ [ entities_with(['type', 'simple']) ]) { + if (defined $data->{type} && contains_string(\@ENTITIES_WITH_SIMPLE_TYPES, $type)) { my $model = 'MusicBrainz::Server::Entity::' . type_to_model($type) . 'Type'; $data->{type} = $model->new( name => $data->{type} ); } @@ -438,7 +439,7 @@ sub schema_fixup { $data->{coordinates} = MusicBrainz::Server::Entity::Coordinates->new( $data->{coordinates} ); } - if (($type ~~ [qw(artist event label area place)]) && defined $data->{'life-span'}) + if (($type =~ /^(artist|event|label|area|place)$/) && defined $data->{'life-span'}) { $data->{begin_date} = MusicBrainz::Server::Entity::PartialDate->new($data->{'life-span'}->{begin}) if (defined $data->{'life-span'}->{begin}); @@ -893,7 +894,7 @@ sub external_search undef; # Use types as provided by jsonnew format - if ($type ~~ [qw(area artist event instrument label place recording release release-group work annotation cdstub editor)]) { + if ($type =~ /^(area|artist|event|instrument|label|place|recording|release|release-group|work|annotation|cdstub|editor)$/) { $xmltype .= 's'; } diff --git a/lib/MusicBrainz/Server/Data/Utils.pm b/lib/MusicBrainz/Server/Data/Utils.pm index 80937577672..083ec59c90e 100644 --- a/lib/MusicBrainz/Server/Data/Utils.pm +++ b/lib/MusicBrainz/Server/Data/Utils.pm @@ -14,7 +14,7 @@ use Data::UUID::MT; use Math::Random::Secure qw( irand ); use MIME::Base64 qw( encode_base64url ); use JSON::XS; -use List::AllUtils qw( natatime sort_by ); +use List::AllUtils qw( any natatime sort_by ); use MusicBrainz::Server::Constants qw( $DARTIST_ID $VARTIST_ID @@ -39,6 +39,8 @@ our @EXPORT_OK = qw( boolean_to_json check_data conditional_merge_column_query + contains_number + contains_string copy_escape coordinates_to_hash datetime_to_iso8601 @@ -752,6 +754,20 @@ sub localized_note { }); } +sub contains_number { + my ($array_ref, $number) = @_; + + return 0 unless defined $array_ref; + return any { $_ == $number } @$array_ref; +} + +sub contains_string { + my ($array_ref, $string) = @_; + + return 0 unless defined $array_ref; + return any { $_ eq $string } @$array_ref; +} + 1; =head1 COPYRIGHT AND LICENSE diff --git a/lib/MusicBrainz/Server/Edit/Alias/Edit.pm b/lib/MusicBrainz/Server/Edit/Alias/Edit.pm index 7e9d0ae8773..382bc12a512 100644 --- a/lib/MusicBrainz/Server/Edit/Alias/Edit.pm +++ b/lib/MusicBrainz/Server/Edit/Alias/Edit.pm @@ -17,8 +17,6 @@ use MusicBrainz::Server::Entity::Util::JSON qw( to_json_object ); use aliased 'MusicBrainz::Server::Entity::PartialDate'; -no if $] >= 5.018, warnings => 'experimental::smartmatch'; - extends 'MusicBrainz::Server::Edit::WithDifferences'; with 'MusicBrainz::Server::Edit::Alias'; with 'MusicBrainz::Server::Edit::CheckForConflicts'; diff --git a/lib/MusicBrainz/Server/Edit/Area/Edit.pm b/lib/MusicBrainz/Server/Edit/Area/Edit.pm index 0083e36e338..c38a840f45a 100644 --- a/lib/MusicBrainz/Server/Edit/Area/Edit.pm +++ b/lib/MusicBrainz/Server/Edit/Area/Edit.pm @@ -22,8 +22,6 @@ use MooseX::Types::Structured qw( Dict Optional ); use aliased 'MusicBrainz::Server::Entity::Area'; use aliased 'MusicBrainz::Server::Entity::PartialDate'; -no if $] >= 5.018, warnings => 'experimental::smartmatch'; - extends 'MusicBrainz::Server::Edit::Generic::Edit'; with 'MusicBrainz::Server::Edit::CheckForConflicts'; with 'MusicBrainz::Server::Edit::Area'; diff --git a/lib/MusicBrainz/Server/Edit/Artist/Edit.pm b/lib/MusicBrainz/Server/Edit/Artist/Edit.pm index f6cad09b712..4312c51cd6f 100644 --- a/lib/MusicBrainz/Server/Edit/Artist/Edit.pm +++ b/lib/MusicBrainz/Server/Edit/Artist/Edit.pm @@ -27,8 +27,6 @@ use aliased 'MusicBrainz::Server::Entity::Artist'; use aliased 'MusicBrainz::Server::Entity::Area'; use aliased 'MusicBrainz::Server::Entity::PartialDate'; -no if $] >= 5.018, warnings => 'experimental::smartmatch'; - extends 'MusicBrainz::Server::Edit::Generic::Edit'; with 'MusicBrainz::Server::Edit::Artist'; with 'MusicBrainz::Server::Edit::CheckForConflicts'; diff --git a/lib/MusicBrainz/Server/Edit/Event/Edit.pm b/lib/MusicBrainz/Server/Edit/Event/Edit.pm index 10788396d75..afa494d5f7e 100644 --- a/lib/MusicBrainz/Server/Edit/Event/Edit.pm +++ b/lib/MusicBrainz/Server/Edit/Event/Edit.pm @@ -28,8 +28,6 @@ use MooseX::Types::Structured qw( Dict Optional ); use aliased 'MusicBrainz::Server::Entity::Event'; use aliased 'MusicBrainz::Server::Entity::PartialDate'; -no if $] >= 5.018, warnings => 'experimental::smartmatch'; - extends 'MusicBrainz::Server::Edit::Generic::Edit'; with 'MusicBrainz::Server::Edit::CheckForConflicts'; with 'MusicBrainz::Server::Edit::Event'; diff --git a/lib/MusicBrainz/Server/Edit/Genre/Edit.pm b/lib/MusicBrainz/Server/Edit/Genre/Edit.pm index 28e181e0f97..d89eb88b0ca 100644 --- a/lib/MusicBrainz/Server/Edit/Genre/Edit.pm +++ b/lib/MusicBrainz/Server/Edit/Genre/Edit.pm @@ -14,8 +14,6 @@ use MooseX::Types::Structured qw( Dict Optional ); use aliased 'MusicBrainz::Server::Entity::Genre'; -no if $] >= 5.018, warnings => 'experimental::smartmatch'; - extends 'MusicBrainz::Server::Edit::Generic::Edit'; with 'MusicBrainz::Server::Edit::CheckForConflicts'; with 'MusicBrainz::Server::Edit::Genre'; diff --git a/lib/MusicBrainz/Server/Edit/Label/Edit.pm b/lib/MusicBrainz/Server/Edit/Label/Edit.pm index 64f50e396e3..471e5b89801 100644 --- a/lib/MusicBrainz/Server/Edit/Label/Edit.pm +++ b/lib/MusicBrainz/Server/Edit/Label/Edit.pm @@ -26,8 +26,6 @@ use MooseX::Types::Structured qw( Dict Optional ); use aliased 'MusicBrainz::Server::Entity::Label'; use aliased 'MusicBrainz::Server::Entity::Area'; -no if $] >= 5.018, warnings => 'experimental::smartmatch'; - extends 'MusicBrainz::Server::Edit::Generic::Edit'; with 'MusicBrainz::Server::Edit::Label'; with 'MusicBrainz::Server::Edit::CheckForConflicts'; diff --git a/lib/MusicBrainz/Server/Edit/Place/Edit.pm b/lib/MusicBrainz/Server/Edit/Place/Edit.pm index 4083c3ce9ce..79e812cca0c 100644 --- a/lib/MusicBrainz/Server/Edit/Place/Edit.pm +++ b/lib/MusicBrainz/Server/Edit/Place/Edit.pm @@ -30,8 +30,6 @@ use aliased 'MusicBrainz::Server::Entity::Area'; use aliased 'MusicBrainz::Server::Entity::PartialDate'; use aliased 'MusicBrainz::Server::Entity::Coordinates'; -no if $] >= 5.018, warnings => 'experimental::smartmatch'; - extends 'MusicBrainz::Server::Edit::Generic::Edit'; with 'MusicBrainz::Server::Edit::CheckForConflicts'; with 'MusicBrainz::Server::Edit::Place'; diff --git a/lib/MusicBrainz/Server/Edit/Recording/Edit.pm b/lib/MusicBrainz/Server/Edit/Recording/Edit.pm index cc82e4e66c0..be474b930f5 100644 --- a/lib/MusicBrainz/Server/Edit/Recording/Edit.pm +++ b/lib/MusicBrainz/Server/Edit/Recording/Edit.pm @@ -26,8 +26,6 @@ use MusicBrainz::Server::Entity::Util::JSON qw( to_json_object ); use MusicBrainz::Server::Track; use MusicBrainz::Server::Translation qw( N_l ); -no if $] >= 5.018, warnings => 'experimental::smartmatch'; - extends 'MusicBrainz::Server::Edit::Generic::Edit'; with 'MusicBrainz::Server::Edit::Recording::RelatedEntities'; with 'MusicBrainz::Server::Edit::Recording'; diff --git a/lib/MusicBrainz/Server/Edit/Relationship.pm b/lib/MusicBrainz/Server/Edit/Relationship.pm index de4bf78c32c..aa51aea9fce 100644 --- a/lib/MusicBrainz/Server/Edit/Relationship.pm +++ b/lib/MusicBrainz/Server/Edit/Relationship.pm @@ -13,8 +13,6 @@ use namespace::autoclean; use MusicBrainz::Server::Translation qw ( l ); -no if $] >= 5.018, warnings => 'experimental::smartmatch'; - sub edit_category { l('Relationship') } sub check_attributes { @@ -101,9 +99,9 @@ sub editor_may_edit_types { my ($self, $type0, $type1) = @_; my $types = join '_', sort($type0, $type1); - if ($types ~~ [qw(area_area area_url)]) { + if ($types =~ /^area_(area|url)$/) { return $self->editor->is_location_editor; - } elsif ($types ~~ [qw(area_instrument instrument_instrument instrument_url)]) { + } elsif ($types =~ /^(area_instrument|instrument_instrument|instrument_url)$/) { return $self->editor->is_relationship_editor; } else { return 1; diff --git a/lib/MusicBrainz/Server/Edit/Release/Edit.pm b/lib/MusicBrainz/Server/Edit/Release/Edit.pm index fb809e39099..50b218eebc7 100644 --- a/lib/MusicBrainz/Server/Edit/Release/Edit.pm +++ b/lib/MusicBrainz/Server/Edit/Release/Edit.pm @@ -30,8 +30,6 @@ use MusicBrainz::Server::Entity::PartialDate; use MusicBrainz::Server::Entity::Util::JSON qw( to_json_array to_json_object ); use MusicBrainz::Server::Translation qw( N_l ); -no if $] >= 5.018, warnings => 'experimental::smartmatch'; - extends 'MusicBrainz::Server::Edit::Generic::Edit'; with 'MusicBrainz::Server::Edit::Role::EditArtistCredit'; with 'MusicBrainz::Server::Edit::Role::Preview'; diff --git a/lib/MusicBrainz/Server/Edit/Release/EditReleaseLabel.pm b/lib/MusicBrainz/Server/Edit/Release/EditReleaseLabel.pm index adaf2ce232b..dcea4165f8f 100644 --- a/lib/MusicBrainz/Server/Edit/Release/EditReleaseLabel.pm +++ b/lib/MusicBrainz/Server/Edit/Release/EditReleaseLabel.pm @@ -17,8 +17,6 @@ use MusicBrainz::Server::Translation qw( N_l lp ); use MusicBrainz::Server::Entity::Util::MediumFormat qw( combined_medium_format_name ); use Scalar::Util qw( looks_like_number ); -no if $] >= 5.018, warnings => 'experimental::smartmatch'; - extends 'MusicBrainz::Server::Edit::WithDifferences'; with 'MusicBrainz::Server::Edit::Role::Preview'; with 'MusicBrainz::Server::Edit::Release::RelatedEntities'; diff --git a/lib/MusicBrainz/Server/Edit/ReleaseGroup/Edit.pm b/lib/MusicBrainz/Server/Edit/ReleaseGroup/Edit.pm index 78eddf1a800..cf9b5b8524a 100644 --- a/lib/MusicBrainz/Server/Edit/ReleaseGroup/Edit.pm +++ b/lib/MusicBrainz/Server/Edit/ReleaseGroup/Edit.pm @@ -27,8 +27,6 @@ use Scalar::Util qw( looks_like_number ); use aliased 'MusicBrainz::Server::Entity::ReleaseGroup'; -no if $] >= 5.018, warnings => 'experimental::smartmatch'; - extends 'MusicBrainz::Server::Edit::Generic::Edit'; with 'MusicBrainz::Server::Edit::ReleaseGroup::RelatedEntities'; with 'MusicBrainz::Server::Edit::ReleaseGroup'; diff --git a/lib/MusicBrainz/Server/Edit/Series/Edit.pm b/lib/MusicBrainz/Server/Edit/Series/Edit.pm index 7c3bf3dc5a7..e06bb55028b 100644 --- a/lib/MusicBrainz/Server/Edit/Series/Edit.pm +++ b/lib/MusicBrainz/Server/Edit/Series/Edit.pm @@ -17,8 +17,6 @@ use MooseX::Types::Structured qw( Dict Optional ); use aliased 'MusicBrainz::Server::Entity::Series'; -no if $] >= 5.018, warnings => 'experimental::smartmatch'; - extends 'MusicBrainz::Server::Edit::Generic::Edit'; with 'MusicBrainz::Server::Edit::Series'; with 'MusicBrainz::Server::Edit::CheckForConflicts'; diff --git a/lib/MusicBrainz/Server/Edit/URL/Edit.pm b/lib/MusicBrainz/Server/Edit/URL/Edit.pm index 066afeb02b3..d6bf8cc3152 100644 --- a/lib/MusicBrainz/Server/Edit/URL/Edit.pm +++ b/lib/MusicBrainz/Server/Edit/URL/Edit.pm @@ -16,8 +16,6 @@ use MusicBrainz::Server::Edit::Utils qw( changed_display_data ); use MusicBrainz::Server::Entity::Util::JSON qw( to_json_object ); use MusicBrainz::Server::Translation qw( N_l ); -no if $] >= 5.018, warnings => 'experimental::smartmatch'; - extends 'MusicBrainz::Server::Edit::Generic::Edit'; with 'MusicBrainz::Server::Edit::URL'; with 'MusicBrainz::Server::Edit::URL::RelatedEntities'; diff --git a/lib/MusicBrainz/Server/EditSearch/Predicate/AppliedEdits.pm b/lib/MusicBrainz/Server/EditSearch/Predicate/AppliedEdits.pm index 98e144d8f80..2ed4fe6aef4 100644 --- a/lib/MusicBrainz/Server/EditSearch/Predicate/AppliedEdits.pm +++ b/lib/MusicBrainz/Server/EditSearch/Predicate/AppliedEdits.pm @@ -5,8 +5,6 @@ use feature 'switch'; use MusicBrainz::Server::Constants qw( :edit_status ); -no if $] >= 5.018, warnings => 'experimental::smartmatch'; - extends 'MusicBrainz::Server::EditSearch::Predicate::ID'; sub combine_with_query { diff --git a/lib/MusicBrainz/Server/EditSearch/Predicate/ID.pm b/lib/MusicBrainz/Server/EditSearch/Predicate/ID.pm index 416df4896fc..b93dc2b10b6 100644 --- a/lib/MusicBrainz/Server/EditSearch/Predicate/ID.pm +++ b/lib/MusicBrainz/Server/EditSearch/Predicate/ID.pm @@ -4,8 +4,6 @@ use MusicBrainz::Server::Validation qw( is_database_row_id is_integer ); use namespace::autoclean; use feature 'switch'; -no if $] >= 5.018, warnings => 'experimental::smartmatch'; - with 'MusicBrainz::Server::EditSearch::Predicate'; sub operator_cardinality_map { diff --git a/lib/MusicBrainz/Server/EditSearch/Predicate/Role/Subscribed.pm b/lib/MusicBrainz/Server/EditSearch/Predicate/Role/Subscribed.pm index 9cc2935585b..a4b6135125c 100644 --- a/lib/MusicBrainz/Server/EditSearch/Predicate/Role/Subscribed.pm +++ b/lib/MusicBrainz/Server/EditSearch/Predicate/Role/Subscribed.pm @@ -3,8 +3,6 @@ use 5.10.0; use MooseX::Role::Parameterized; use namespace::autoclean; -no if $] >= 5.018, warnings => 'experimental::smartmatch'; - parameter type => ( isa => 'Str', required => 1 diff --git a/lib/MusicBrainz/Server/Entity/Series.pm b/lib/MusicBrainz/Server/Entity/Series.pm index 831e095d2a2..cac5d770e48 100644 --- a/lib/MusicBrainz/Server/Entity/Series.pm +++ b/lib/MusicBrainz/Server/Entity/Series.pm @@ -3,8 +3,6 @@ package MusicBrainz::Server::Entity::Series; use Moose; use MusicBrainz::Server::Entity::Types; -no if $] >= 5.018, warnings => 'experimental::smartmatch'; - extends 'MusicBrainz::Server::Entity'; with 'MusicBrainz::Server::Entity::Role::Relatable'; with 'MusicBrainz::Server::Entity::Role::Taggable'; diff --git a/lib/MusicBrainz/Server/Plugin/Diff.pm b/lib/MusicBrainz/Server/Plugin/Diff.pm index bb76828ffcb..9aedbbb87ff 100644 --- a/lib/MusicBrainz/Server/Plugin/Diff.pm +++ b/lib/MusicBrainz/Server/Plugin/Diff.pm @@ -14,8 +14,6 @@ use HTML::Entities qw( decode_entities ); use Scalar::Util qw( blessed ); use MusicBrainz::Server::Validation qw( encode_entities trim_in_place ); -no if $] >= 5.018, warnings => 'experimental::smartmatch'; - sub new { my ($class, $context) = @_; return bless { c => $context }, $class; diff --git a/script/dump-entities-sql.pl b/script/dump-entities-sql.pl index 99578c5f14d..f087127a5ec 100755 --- a/script/dump-entities-sql.pl +++ b/script/dump-entities-sql.pl @@ -14,8 +14,6 @@ use MusicBrainz::Script::EntityDump qw( edits get_core_entities_by_gids ); use MusicBrainz::Server::Context; -no warnings 'experimental::smartmatch'; - my $database = 'READWRITE'; my $aliases = 0; my $annotations = 0; From 7a08d2747cef9084005b11e700d5a1bc9bce3c73 Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Tue, 3 Oct 2023 12:14:47 +0200 Subject: [PATCH 004/194] Remove all uses of the switch feature (given/when) given/when is deprecated as of Perl 5.38. https://perldoc.perl.org/perl5380delta#Switch-and-Smart-Match-operator --- contrib/slowdown.psgi | 11 +- contrib/ssssss.psgi | 14 +- lib/MusicBrainz/Server/Controller/Search.pm | 164 +++++++++--------- lib/MusicBrainz/Server/Data/Search.pm | 1 - lib/MusicBrainz/Server/Edit/Alias/Edit.pm | 20 +-- lib/MusicBrainz/Server/Edit/Area/Edit.pm | 19 +- lib/MusicBrainz/Server/Edit/Artist/Edit.pm | 19 +- lib/MusicBrainz/Server/Edit/Event/Edit.pm | 27 ++- lib/MusicBrainz/Server/Edit/Label/Edit.pm | 20 +-- lib/MusicBrainz/Server/Edit/Place/Edit.pm | 27 ++- lib/MusicBrainz/Server/Edit/Recording/Edit.pm | 13 +- lib/MusicBrainz/Server/Edit/Release/Edit.pm | 20 +-- .../Server/Edit/Release/EditReleaseLabel.pm | 21 +-- .../Server/Edit/ReleaseGroup/Edit.pm | 48 +++-- lib/MusicBrainz/Server/Edit/URL/Edit.pm | 21 +-- .../EditSearch/Predicate/AppliedEdits.pm | 14 +- .../Server/EditSearch/Predicate/ID.pm | 14 +- .../EditSearch/Predicate/Role/Subscribed.pm | 54 +++--- lib/MusicBrainz/Server/Plugin/Diff.pm | 69 ++++---- script/dump-entities-sql.pl | 16 +- 20 files changed, 272 insertions(+), 340 deletions(-) diff --git a/contrib/slowdown.psgi b/contrib/slowdown.psgi index 3cc89fac10e..de361b14025 100644 --- a/contrib/slowdown.psgi +++ b/contrib/slowdown.psgi @@ -1,7 +1,6 @@ #!/usr/bin/env perl use strict; use warnings; -use feature "switch"; # Sufficiently Sophisticated Simple Storage Service Slow Down Simulator. @@ -87,12 +86,12 @@ sub { my $request = Plack::Request->new(shift); my $response; + my $method = $request->method; - given ($request->method) { - when ("PUT") { $response = handle_other($request) } - when ("POST") { $response = handle_other($request) } - when ("OPTIONS") { $response = handle_options($request) } - } + + if ($method eq 'PUT') { $response = handle_other($request) } + elsif ($method eq 'POST') { $response = handle_other($request) } + elsif ($method eq 'OPTIONS') { $response = handle_options($request) } $response->header("Access-Control-Allow-Origin" => "*"); return $response->finalize; diff --git a/contrib/ssssss.psgi b/contrib/ssssss.psgi index a50503a1f82..838358be481 100644 --- a/contrib/ssssss.psgi +++ b/contrib/ssssss.psgi @@ -1,7 +1,6 @@ #!/usr/bin/env perl use strict; use warnings; -use feature "switch"; # Sufficiently Sophisticated Simple Storage Service Simulator is a # drop-in replacement for the archive.org S3 service. It mimics just @@ -283,14 +282,13 @@ sub { my $request = Plack::Request->new(shift); my $response; + my $method = $request->method; - given ($request->method) { - when ("PUT") { $response = handle_put($request) } - when ("POST") { $response = handle_post($request) } - when ("OPTIONS") { $response = handle_options($request) } - when ("GET") { $response = handle_get($request) } - when ("DELETE") { $response = handle_delete($request) } - } + if ($method eq 'PUT') { $response = handle_put($request) } + elsif ($method eq 'POST') { $response = handle_post($request) } + elsif ($method eq 'OPTIONS') { $response = handle_options($request) } + elsif ($method eq 'GET') { $response = handle_get($request) } + elsif ($method eq 'DELETE') { $response = handle_delete($request) } $response->header("Access-Control-Allow-Origin" => "*"); return $response->finalize; diff --git a/lib/MusicBrainz/Server/Controller/Search.pm b/lib/MusicBrainz/Server/Controller/Search.pm index 7bcb20f10f3..b88d1fa5179 100644 --- a/lib/MusicBrainz/Server/Controller/Search.pm +++ b/lib/MusicBrainz/Server/Controller/Search.pm @@ -10,7 +10,6 @@ use MusicBrainz::Server::Entity::Util::JSON qw( to_json_array ); use MusicBrainz::Server::Form::Search::Query; use MusicBrainz::Server::Form::Search::Search; use Scalar::Util qw( looks_like_number ); -use feature 'switch'; sub search : Path('') { @@ -122,79 +121,77 @@ sub direct : Private my @entities = map { $_->entity } @$results; - given ($type) { - when ('artist') { - $c->model('ArtistType')->load(@entities); - $c->model('Area')->load(@entities); - $c->model('Gender')->load(@entities); - } - when ('editor') { - $c->model('Editor')->load_preferences(@entities); - } - when ('release_group') { - $c->model('ReleaseGroupType')->load(@entities); - $c->model('ReleaseGroup')->load_has_cover_art(@entities); - } - when ('release') { - $c->model('Language')->load(@entities); - $c->model('Release')->load_related_info(@entities); - $c->model('Release')->load_meta(@entities); - $c->model('Script')->load(@entities); - $c->model('ReleaseStatus')->load(@entities); - $c->model('ReleaseGroup')->load(@entities); - $c->model('ReleaseGroupType')->load(map { $_->release_group } - @entities); - } - when ('label') { - $c->model('LabelType')->load(@entities); - $c->model('Area')->load(@entities); - } - when ('recording') { - my %recording_releases_map = $c->model('Release')->find_by_recordings(map { - $_->entity->id - } @$results); - my %result_map = map { $_->entity->id => $_ } @$results; - - $result_map{$_}->extra($recording_releases_map{$_}) for keys %recording_releases_map; - - my @releases = map { $_->{release} } map { @{ $_->extra } } @$results; - $c->model('ReleaseGroup')->load(@releases); - $c->model('ReleaseGroupType')->load(map { $_->release_group } @releases); - $c->model('Medium')->load_for_releases(@releases); - $c->model('Track')->load_for_mediums(map { $_->all_mediums } @releases); - $c->model('Recording')->load( - map { $_->all_tracks } map { $_->all_mediums } @releases); - $c->model('ISRC')->load_for_recordings(map { $_->entity } @$results); - } - when ('work') { - $c->model('Work')->load_writers(@entities); - $c->model('Work')->load_recording_artists(@entities); - $c->model('ISWC')->load_for_works(@entities); - $c->model('Language')->load_for_works(@entities); - $c->model('WorkType')->load(@entities); - } - when ('area') { - $c->model('AreaType')->load(@entities); - $c->model('Area')->load_containment(@entities); - } - when ('place') { - $c->model('PlaceType')->load(@entities); - $c->model('Area')->load(@entities); - } - when ('instrument') { - $c->model('InstrumentType')->load(@entities); - } - when ('series') { - $c->model('SeriesType')->load(@entities); - $c->model('SeriesOrderingType')->load(@entities); - } - when ('event') { - $c->model('Event')->load_related_info(@entities); - $c->model('Event')->load_areas(@entities); - } - when ('tag') { - $c->model('Genre')->load(@entities); - } + if ($type eq 'artist') { + $c->model('ArtistType')->load(@entities); + $c->model('Area')->load(@entities); + $c->model('Gender')->load(@entities); + } + elsif ($type eq 'editor') { + $c->model('Editor')->load_preferences(@entities); + } + elsif ($type eq 'release_group') { + $c->model('ReleaseGroupType')->load(@entities); + $c->model('ReleaseGroup')->load_has_cover_art(@entities); + } + elsif ($type eq 'release') { + $c->model('Language')->load(@entities); + $c->model('Release')->load_related_info(@entities); + $c->model('Release')->load_meta(@entities); + $c->model('Script')->load(@entities); + $c->model('ReleaseStatus')->load(@entities); + $c->model('ReleaseGroup')->load(@entities); + $c->model('ReleaseGroupType')->load(map { $_->release_group } + @entities); + } + elsif ($type eq 'label') { + $c->model('LabelType')->load(@entities); + $c->model('Area')->load(@entities); + } + elsif ($type eq 'recording') { + my %recording_releases_map = $c->model('Release')->find_by_recordings(map { + $_->entity->id + } @$results); + my %result_map = map { $_->entity->id => $_ } @$results; + + $result_map{$_}->extra($recording_releases_map{$_}) for keys %recording_releases_map; + + my @releases = map { $_->{release} } map { @{ $_->extra } } @$results; + $c->model('ReleaseGroup')->load(@releases); + $c->model('ReleaseGroupType')->load(map { $_->release_group } @releases); + $c->model('Medium')->load_for_releases(@releases); + $c->model('Track')->load_for_mediums(map { $_->all_mediums } @releases); + $c->model('Recording')->load( + map { $_->all_tracks } map { $_->all_mediums } @releases); + $c->model('ISRC')->load_for_recordings(map { $_->entity } @$results); + } + elsif ($type eq 'work') { + $c->model('Work')->load_writers(@entities); + $c->model('Work')->load_recording_artists(@entities); + $c->model('ISWC')->load_for_works(@entities); + $c->model('Language')->load_for_works(@entities); + $c->model('WorkType')->load(@entities); + } + elsif ($type eq 'area') { + $c->model('AreaType')->load(@entities); + $c->model('Area')->load_containment(@entities); + } + elsif ($type eq 'place') { + $c->model('PlaceType')->load(@entities); + $c->model('Area')->load(@entities); + } + elsif ($type eq 'instrument') { + $c->model('InstrumentType')->load(@entities); + } + elsif ($type eq 'series') { + $c->model('SeriesType')->load(@entities); + $c->model('SeriesOrderingType')->load(@entities); + } + elsif ($type eq 'event') { + $c->model('Event')->load_related_info(@entities); + $c->model('Event')->load_areas(@entities); + } + elsif ($type eq 'tag') { + $c->model('Genre')->load(@entities); } if ($type =~ /(recording|release|release_group)/) @@ -258,17 +255,14 @@ sub do_external_search { my $template = 'search/error/'; # Switch on the response code to decide which template to provide - given ($ret->{code}) - { - when (404) { $template .= 'NoResults'; } - when (403) { $template .= 'NoInfo'; }; - when (414) { $template .= 'UriTooLarge'; }; - when (500) { $template .= 'InternalError'; } - when (400) { $template .= 'Invalid'; } - when (503) { $template .= 'RateLimited'; } - - default { $template .= 'General'; } - } + my $code = $ret->{code}; + if ($code == 404) { $template .= 'NoResults'; } + elsif ($code == 403) { $template .= 'NoInfo'; } + elsif ($code == 414) { $template .= 'UriTooLarge'; } + elsif ($code == 500) { $template .= 'InternalError'; } + elsif ($code == 400) { $template .= 'Invalid'; } + elsif ($code == 503) { $template .= 'RateLimited'; } + else { $template .= 'General'; } my %props = ( form => $c->stash->{form}->TO_JSON, diff --git a/lib/MusicBrainz/Server/Data/Search.pm b/lib/MusicBrainz/Server/Data/Search.pm index 7cabe58dc37..0f7ac311497 100644 --- a/lib/MusicBrainz/Server/Data/Search.pm +++ b/lib/MusicBrainz/Server/Data/Search.pm @@ -63,7 +63,6 @@ use MusicBrainz::Server::Data::Utils qw( type_to_model ); use MusicBrainz::Server::ExternalUtils qw( get_chunked_with_retry ); use DateTime::Format::ISO8601; use Readonly; -use feature 'switch'; extends 'MusicBrainz::Server::Data::Entity'; diff --git a/lib/MusicBrainz/Server/Edit/Alias/Edit.pm b/lib/MusicBrainz/Server/Edit/Alias/Edit.pm index 382bc12a512..552c8b0ad6a 100644 --- a/lib/MusicBrainz/Server/Edit/Alias/Edit.pm +++ b/lib/MusicBrainz/Server/Edit/Alias/Edit.pm @@ -131,18 +131,14 @@ sub _mapping around extract_property => sub { my ($orig, $self) = splice(@_, 0, 2); my ($property, $ancestor, $current, $new) = @_; - given ($property) { - when ('begin_date') { - return merge_partial_date('begin_date' => $ancestor, $current, $new); - } - - when ('end_date') { - return merge_partial_date('end_date' => $ancestor, $current, $new); - } - - default { - return ($self->$orig(@_)); - } + if ($property eq 'begin_date') { + return merge_partial_date('begin_date' => $ancestor, $current, $new); + } + elsif ($property eq 'end_date') { + return merge_partial_date('end_date' => $ancestor, $current, $new); + } + else { + return ($self->$orig(@_)); } }; diff --git a/lib/MusicBrainz/Server/Edit/Area/Edit.pm b/lib/MusicBrainz/Server/Edit/Area/Edit.pm index c38a840f45a..30a102eb9f2 100644 --- a/lib/MusicBrainz/Server/Edit/Area/Edit.pm +++ b/lib/MusicBrainz/Server/Edit/Area/Edit.pm @@ -155,17 +155,14 @@ sub _edit_hash { around extract_property => sub { my ($orig, $self) = splice(@_, 0, 2); my ($property, $ancestor, $current, $new) = @_; - given ($property) { - when ('begin_date') { - return merge_partial_date('begin_date' => $ancestor, $current, $new); - } - - when ('end_date') { - return merge_partial_date('end_date' => $ancestor, $current, $new); - } - default { - return ($self->$orig(@_)); - } + if ($property eq 'begin_date') { + return merge_partial_date('begin_date' => $ancestor, $current, $new); + } + elsif ($property eq 'end_date') { + return merge_partial_date('end_date' => $ancestor, $current, $new); + } + else { + return ($self->$orig(@_)); } }; diff --git a/lib/MusicBrainz/Server/Edit/Artist/Edit.pm b/lib/MusicBrainz/Server/Edit/Artist/Edit.pm index 4312c51cd6f..df463da71a7 100644 --- a/lib/MusicBrainz/Server/Edit/Artist/Edit.pm +++ b/lib/MusicBrainz/Server/Edit/Artist/Edit.pm @@ -248,17 +248,14 @@ sub _edit_hash { around extract_property => sub { my ($orig, $self) = splice(@_, 0, 2); my ($property, $ancestor, $current, $new) = @_; - given ($property) { - when ('begin_date') { - return merge_partial_date('begin_date' => $ancestor, $current, $new); - } - - when ('end_date') { - return merge_partial_date('end_date' => $ancestor, $current, $new); - } - default { - return ($self->$orig(@_)); - } + if ($property eq 'begin_date') { + return merge_partial_date('begin_date' => $ancestor, $current, $new); + } + elsif ($property eq 'end_date') { + return merge_partial_date('end_date' => $ancestor, $current, $new); + } + else { + return ($self->$orig(@_)); } }; diff --git a/lib/MusicBrainz/Server/Edit/Event/Edit.pm b/lib/MusicBrainz/Server/Edit/Event/Edit.pm index afa494d5f7e..069380232b0 100644 --- a/lib/MusicBrainz/Server/Edit/Event/Edit.pm +++ b/lib/MusicBrainz/Server/Edit/Event/Edit.pm @@ -165,22 +165,17 @@ sub _edit_hash { around extract_property => sub { my ($orig, $self) = splice(@_, 0, 2); my ($property, $ancestor, $current, $new) = @_; - given ($property) { - when ('begin_date') { - return merge_partial_date('begin_date' => $ancestor, $current, $new); - } - - when ('end_date') { - return merge_partial_date('end_date' => $ancestor, $current, $new); - } - - when ('time') { - return merge_time('time' => $ancestor, $current, $new); - } - - default { - return ($self->$orig(@_)); - } + if ($property eq 'begin_date') { + return merge_partial_date('begin_date' => $ancestor, $current, $new); + } + elsif ($property eq 'end_date') { + return merge_partial_date('end_date' => $ancestor, $current, $new); + } + elsif ($property eq 'time') { + return merge_time('time' => $ancestor, $current, $new); + } + else { + return ($self->$orig(@_)); } }; diff --git a/lib/MusicBrainz/Server/Edit/Label/Edit.pm b/lib/MusicBrainz/Server/Edit/Label/Edit.pm index 471e5b89801..39256c25415 100644 --- a/lib/MusicBrainz/Server/Edit/Label/Edit.pm +++ b/lib/MusicBrainz/Server/Edit/Label/Edit.pm @@ -221,18 +221,14 @@ sub _edit_hash { around extract_property => sub { my ($orig, $self) = splice(@_, 0, 2); my ($property, $ancestor, $current, $new) = @_; - given ($property) { - when ('begin_date') { - return merge_partial_date('begin_date' => $ancestor, $current, $new); - } - - when ('end_date') { - return merge_partial_date('end_date' => $ancestor, $current, $new); - } - - default { - return ($self->$orig(@_)); - } + if ($property eq 'begin_date') { + return merge_partial_date('begin_date' => $ancestor, $current, $new); + } + elsif ($property eq 'end_date') { + return merge_partial_date('end_date' => $ancestor, $current, $new); + } + else { + return ($self->$orig(@_)); } }; diff --git a/lib/MusicBrainz/Server/Edit/Place/Edit.pm b/lib/MusicBrainz/Server/Edit/Place/Edit.pm index 79e812cca0c..f154951c461 100644 --- a/lib/MusicBrainz/Server/Edit/Place/Edit.pm +++ b/lib/MusicBrainz/Server/Edit/Place/Edit.pm @@ -189,22 +189,17 @@ sub edit_template { 'EditPlace' } around extract_property => sub { my ($orig, $self) = splice(@_, 0, 2); my ($property, $ancestor, $current, $new) = @_; - given ($property) { - when ('begin_date') { - return merge_partial_date('begin_date' => $ancestor, $current, $new); - } - - when ('end_date') { - return merge_partial_date('end_date' => $ancestor, $current, $new); - } - - when ('coordinates') { - return merge_coordinates('coordinates' => $ancestor, $current, $new); - } - - default { - return ($self->$orig(@_)); - } + if ($property eq 'begin_date') { + return merge_partial_date('begin_date' => $ancestor, $current, $new); + } + elsif ($property eq 'end_date') { + return merge_partial_date('end_date' => $ancestor, $current, $new); + } + elsif ($property eq 'coordinates') { + return merge_coordinates('coordinates' => $ancestor, $current, $new); + } + else { + return ($self->$orig(@_)); } }; diff --git a/lib/MusicBrainz/Server/Edit/Recording/Edit.pm b/lib/MusicBrainz/Server/Edit/Recording/Edit.pm index be474b930f5..eed72e657a8 100644 --- a/lib/MusicBrainz/Server/Edit/Recording/Edit.pm +++ b/lib/MusicBrainz/Server/Edit/Recording/Edit.pm @@ -204,14 +204,11 @@ before accept => sub { around extract_property => sub { my ($orig, $self) = splice(@_, 0, 2); my ($property, $ancestor, $current, $new) = @_; - given ($property) { - when ('artist_credit') { - return merge_artist_credit($self->c, $ancestor, $current, $new); - } - - default { - return ($self->$orig(@_)); - } + if ($property eq 'artist_credit') { + return merge_artist_credit($self->c, $ancestor, $current, $new); + } + else { + return ($self->$orig(@_)); } }; diff --git a/lib/MusicBrainz/Server/Edit/Release/Edit.pm b/lib/MusicBrainz/Server/Edit/Release/Edit.pm index 50b218eebc7..ecff698a95d 100644 --- a/lib/MusicBrainz/Server/Edit/Release/Edit.pm +++ b/lib/MusicBrainz/Server/Edit/Release/Edit.pm @@ -252,18 +252,14 @@ around 'initialize' => sub around extract_property => sub { my ($orig, $self) = splice(@_, 0, 2); my ($property, $ancestor, $current, $new) = @_; - given ($property) { - when ('artist_credit') { - return merge_artist_credit($self->c, $ancestor, $current, $new); - } - - when ('barcode') { - return merge_barcode($ancestor, $current, $new); - } - - default { - return ($self->$orig(@_)); - } + if ($property eq 'artist_credit') { + return merge_artist_credit($self->c, $ancestor, $current, $new); + } + elsif ($property eq 'barcode') { + return merge_barcode($ancestor, $current, $new); + } + else { + return ($self->$orig(@_)); } }; diff --git a/lib/MusicBrainz/Server/Edit/Release/EditReleaseLabel.pm b/lib/MusicBrainz/Server/Edit/Release/EditReleaseLabel.pm index dcea4165f8f..665a8a1fd6e 100644 --- a/lib/MusicBrainz/Server/Edit/Release/EditReleaseLabel.pm +++ b/lib/MusicBrainz/Server/Edit/Release/EditReleaseLabel.pm @@ -332,18 +332,15 @@ sub current_instance { around extract_property => sub { my ($orig, $self) = splice(@_, 0, 2); my ($property, $ancestor, $current, $new) = @_; - given ($property) { - when ('label') { - return ( - merge_value($ancestor->{label}), - merge_value(_serialize_label($current->label)), - merge_value($new->{label}), - ); - } - - default { - return ($self->$orig(@_)); - } + if ($property eq 'label') { + return ( + merge_value($ancestor->{label}), + merge_value(_serialize_label($current->label)), + merge_value($new->{label}), + ); + } + else { + return ($self->$orig(@_)); } }; diff --git a/lib/MusicBrainz/Server/Edit/ReleaseGroup/Edit.pm b/lib/MusicBrainz/Server/Edit/ReleaseGroup/Edit.pm index cf9b5b8524a..ba5747cbd52 100644 --- a/lib/MusicBrainz/Server/Edit/ReleaseGroup/Edit.pm +++ b/lib/MusicBrainz/Server/Edit/ReleaseGroup/Edit.pm @@ -178,31 +178,29 @@ around initialize => sub around extract_property => sub { my ($orig, $self) = splice(@_, 0, 2); my ($property, $ancestor, $current, $new) = @_; - given ($property) { - when ('artist_credit') { - return merge_artist_credit($self->c, $ancestor, $current, $new); - } - when ('type_id') { - return ( - merge_value($ancestor->{type_id}), - merge_value($current->primary_type_id), - merge_value($new->{type_id}) - ) - } - when ('secondary_type_ids') { - my $type_list_gen = sub { - my $type = shift; - return [ join(q(,), sort @$type), $type ]; - }; - return ( - $type_list_gen->( $ancestor->{secondary_type_ids} ), - $type_list_gen->( [ map { $_->id } $current->all_secondary_types ] ), - $type_list_gen->( $new->{secondary_type_ids} ), - ) - } - default { - return $self->$orig(@_); - } + if ($property eq 'artist_credit') { + return merge_artist_credit($self->c, $ancestor, $current, $new); + } + elsif ($property eq 'type_id') { + return ( + merge_value($ancestor->{type_id}), + merge_value($current->primary_type_id), + merge_value($new->{type_id}) + ) + } + elsif ($property eq 'secondary_type_ids') { + my $type_list_gen = sub { + my $type = shift; + return [ join(q(,), sort @$type), $type ]; + }; + return ( + $type_list_gen->( $ancestor->{secondary_type_ids} ), + $type_list_gen->( [ map { $_->id } $current->all_secondary_types ] ), + $type_list_gen->( $new->{secondary_type_ids} ), + ) + } + else { + return $self->$orig(@_); } }; diff --git a/lib/MusicBrainz/Server/Edit/URL/Edit.pm b/lib/MusicBrainz/Server/Edit/URL/Edit.pm index d6bf8cc3152..6bf640e8ba1 100644 --- a/lib/MusicBrainz/Server/Edit/URL/Edit.pm +++ b/lib/MusicBrainz/Server/Edit/URL/Edit.pm @@ -145,18 +145,15 @@ sub current_instance { around extract_property => sub { my ($orig, $self) = splice(@_, 0, 2); my ($property, $ancestor, $current, $new) = @_; - given ($property) { - when ('url') { - return ( - [ $ancestor->{url}, $ancestor->{url} ], - [ $current->url->as_string, $current->url->as_string ], - [ $new->{url}, $new->{url} ] - ); - } - - default { - return ($self->$orig(@_)); - } + if ($property eq 'url') { + return ( + [ $ancestor->{url}, $ancestor->{url} ], + [ $current->url->as_string, $current->url->as_string ], + [ $new->{url}, $new->{url} ] + ); + } + else { + return ($self->$orig(@_)); } }; diff --git a/lib/MusicBrainz/Server/EditSearch/Predicate/AppliedEdits.pm b/lib/MusicBrainz/Server/EditSearch/Predicate/AppliedEdits.pm index 2ed4fe6aef4..d4eb5ce3dfe 100644 --- a/lib/MusicBrainz/Server/EditSearch/Predicate/AppliedEdits.pm +++ b/lib/MusicBrainz/Server/EditSearch/Predicate/AppliedEdits.pm @@ -1,7 +1,6 @@ package MusicBrainz::Server::EditSearch::Predicate::AppliedEdits; use Moose; use namespace::autoclean; -use feature 'switch'; use MusicBrainz::Server::Constants qw( :edit_status ); @@ -13,13 +12,12 @@ sub combine_with_query { my $subquery = '(SELECT COUNT(*) FROM edit H WHERE H.editor = edit.editor AND H.status = ?)'; my $sql; - given ($self->operator) { - when ('BETWEEN') { - $sql = $subquery . ' BETWEEN SYMMETRIC ? AND ?'; - } - default { - $sql = join(' ', $subquery, $self->operator, '?'); - } + my $operator = $self->operator; + if ($operator eq 'BETWEEN') { + $sql = $subquery . ' BETWEEN SYMMETRIC ? AND ?'; + } + else { + $sql = join(' ', $subquery, $operator, '?'); } $query->add_where([ $sql, [ $STATUS_APPLIED, @{ $self->sql_arguments } ] ]); diff --git a/lib/MusicBrainz/Server/EditSearch/Predicate/ID.pm b/lib/MusicBrainz/Server/EditSearch/Predicate/ID.pm index b93dc2b10b6..22efa3a4ff9 100644 --- a/lib/MusicBrainz/Server/EditSearch/Predicate/ID.pm +++ b/lib/MusicBrainz/Server/EditSearch/Predicate/ID.pm @@ -2,7 +2,6 @@ package MusicBrainz::Server::EditSearch::Predicate::ID; use Moose; use MusicBrainz::Server::Validation qw( is_database_row_id is_integer ); use namespace::autoclean; -use feature 'switch'; with 'MusicBrainz::Server::EditSearch::Predicate'; @@ -17,13 +16,12 @@ sub combine_with_query { my ($self, $query) = @_; my $sql; - given ($self->operator) { - when ('BETWEEN') { - $sql = 'edit.' . $self->field_name . ' BETWEEN SYMMETRIC ? AND ?'; - } - default { - $sql = join(' ', 'edit.'.$self->field_name, $self->operator, '?') - } + my $operator = $self->operator; + if ($operator eq 'BETWEEN') { + $sql = 'edit.' . $self->field_name . ' BETWEEN SYMMETRIC ? AND ?'; + } + else { + $sql = join(' ', 'edit.'.$self->field_name, $operator, '?') } $query->add_where([ $sql, $self->sql_arguments ]); diff --git a/lib/MusicBrainz/Server/EditSearch/Predicate/Role/Subscribed.pm b/lib/MusicBrainz/Server/EditSearch/Predicate/Role/Subscribed.pm index a4b6135125c..1360195c790 100644 --- a/lib/MusicBrainz/Server/EditSearch/Predicate/Role/Subscribed.pm +++ b/lib/MusicBrainz/Server/EditSearch/Predicate/Role/Subscribed.pm @@ -42,37 +42,33 @@ role { around combine_with_query => sub { my ($orig, $self) = splice(@_, 0, 2); my ($query) = @_; + my $operator = $self->operator; + if ($operator eq 'subscribed') { + my $subscribed_clause = "IN ( + SELECT $subscribed_column + FROM editor_subscribe_$type + WHERE editor = ? + )"; - given ($self->operator) { - when ('subscribed') { - my $subscribed_clause = "IN ( - SELECT $subscribed_column - FROM editor_subscribe_$type - WHERE editor = ? - )"; - - $query->add_where([ - $template_clause =~ s/ROLE_CLAUSE\(([^)]*)\)/$1 $subscribed_clause/r, - [ $self->user->id ] - ]); - } - - when ('not_subscribed') { - my $subscribed_clause = "NOT IN ( - SELECT $subscribed_column - FROM editor_subscribe_$type - WHERE editor = ? - )"; - - $query->add_where([ - $template_clause =~ s/ROLE_CLAUSE\(([^)]*)\)/$1 $subscribed_clause/r, - [ $self->user->id ] - ]); - } + $query->add_where([ + $template_clause =~ s/ROLE_CLAUSE\(([^)]*)\)/$1 $subscribed_clause/r, + [ $self->user->id ] + ]); + } + elsif ($operator eq 'not_subscribed') { + my $subscribed_clause = "NOT IN ( + SELECT $subscribed_column + FROM editor_subscribe_$type + WHERE editor = ? + )"; - default { - $self->$orig(@_); - } + $query->add_where([ + $template_clause =~ s/ROLE_CLAUSE\(([^)]*)\)/$1 $subscribed_clause/r, + [ $self->user->id ] + ]); + } + else { + $self->$orig(@_); } }; diff --git a/lib/MusicBrainz/Server/Plugin/Diff.pm b/lib/MusicBrainz/Server/Plugin/Diff.pm index 9aedbbb87ff..aafdcaa081d 100644 --- a/lib/MusicBrainz/Server/Plugin/Diff.pm +++ b/lib/MusicBrainz/Server/Plugin/Diff.pm @@ -3,8 +3,6 @@ package MusicBrainz::Server::Plugin::Diff; use strict; use warnings; -use feature 'switch'; - use base 'Template::Plugin'; use Algorithm::Diff qw( sdiff traverse_sequences ); @@ -144,42 +142,37 @@ sub diff_artist_credits { for my $diff (@diffs) { my ($change_type, $old_name, $new_name) = @$diff; - given ($change_type) { - when ('u') { - my $html = $self->_link_joined($old_name); - $sides{old} .= $html; - $sides{new} .= $html; - }; - - when ('c') { - # Diff the credited names - $sides{old} .= $self->_link_artist_credit_name( - $old_name, - $self->diff_side(encode_entities($old_name->name), encode_entities($new_name->name), '-','\s+') - ); - $sides{new} .= $self->_link_artist_credit_name( - $new_name, - $self->diff_side(encode_entities($old_name->name), encode_entities($new_name->name), '+', '\s+') - ); - - # Diff the join phrases - $sides{old} .= $self->diff_side(encode_entities($old_name->join_phrase), encode_entities($new_name->join_phrase), '-', '\s+'); - $sides{new} .= $self->diff_side(encode_entities($old_name->join_phrase), encode_entities($new_name->join_phrase), '+', '\s+'); - } - - when ('-') { - $sides{old} .= $h->span( - { class => $class_map{'-'} }, - $self->_link_joined($old_name) - ); - } - - when ('+') { - $sides{new} .= $h->span( - { class => $class_map{'+'} }, - $self->_link_joined($new_name) - ); - } + if ($change_type eq 'u') { + my $html = $self->_link_joined($old_name); + $sides{old} .= $html; + $sides{new} .= $html; + } + elsif ($change_type eq 'c') { + # Diff the credited names + $sides{old} .= $self->_link_artist_credit_name( + $old_name, + $self->diff_side(encode_entities($old_name->name), encode_entities($new_name->name), '-','\s+') + ); + $sides{new} .= $self->_link_artist_credit_name( + $new_name, + $self->diff_side(encode_entities($old_name->name), encode_entities($new_name->name), '+', '\s+') + ); + + # Diff the join phrases + $sides{old} .= $self->diff_side(encode_entities($old_name->join_phrase), encode_entities($new_name->join_phrase), '-', '\s+'); + $sides{new} .= $self->diff_side(encode_entities($old_name->join_phrase), encode_entities($new_name->join_phrase), '+', '\s+'); + } + elsif ($change_type eq '-') { + $sides{old} .= $h->span( + { class => $class_map{'-'} }, + $self->_link_joined($old_name) + ); + } + elsif ($change_type eq '+') { + $sides{new} .= $h->span( + { class => $class_map{'+'} }, + $self->_link_joined($new_name) + ); } } diff --git a/script/dump-entities-sql.pl b/script/dump-entities-sql.pl index f087127a5ec..c7e09118fbd 100755 --- a/script/dump-entities-sql.pl +++ b/script/dump-entities-sql.pl @@ -2,8 +2,6 @@ use strict; use warnings; -use feature 'switch'; - use Moose; use namespace::autoclean; use FindBin; @@ -46,14 +44,12 @@ sub quote_column { my $ret; - given ($type) { - when (/^integer\[\]/) { $ret = q('{) . join(',', @$data) . q(}'); } - when (/^integer/) { $ret = $data; } - when (/^smallint/) { $ret = $data; } - default { - $data =~ s/'/''/g; - $ret = "'$data'"; - } + if ($type =~ /^integer\[\]/) { $ret = q('{) . join(',', @$data) . q(}'); } + elsif ($type =~ /^integer/) { $ret = $data; } + elsif ($type =~ /^smallint/) { $ret = $data; } + else { + $data =~ s/'/''/g; + $ret = "'$data'"; } return $ret; From a7fe068acd54472397a645426e09af5b7c6914e9 Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Mon, 3 Jul 2023 12:28:19 -0500 Subject: [PATCH 005/194] Upgrade Flow to 0.202.0 https://github.com/facebook/flow/releases/tag/v0.202.0 No errors! It looks like we can remove `exact_by_default=true` from our .flowconfig, but I decided to leave it until they drop support for the option. --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 55c74f8a3fd..d66d6e75d7a 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.20.6", "eslint-plugin-react-hooks": "4.1.2", "file-url": "2.0.2", - "flow-bin": "0.201.0", + "flow-bin": "0.202.0", "gettext-parser": "3.1.0", "http-proxy": "1.18.1", "json5": "2.1.3", diff --git a/yarn.lock b/yarn.lock index d7c50e6f64d..97fee9f09dd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2488,10 +2488,10 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flow-bin@0.201.0: - version "0.201.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.201.0.tgz#bc8d7c3687526313d7a24dd920873a0273148d81" - integrity sha512-fqx6CMOhX9Xm4mN+tq/c7sqcm8aHFV1ipbLz2ZCzoNcPuUNZPoSVYm4p0qZqH0HyzMMEP1OWlU7dIkuSJ02cpg== +flow-bin@0.202.0: + version "0.202.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.202.0.tgz#1e2eb221252c2ab55c997e5eb921902f3181cc4e" + integrity sha512-Yz+yNapJMWWV6Z6pZnBR+naMhFbFJbmMS8ZBQCFUHRqN1TTw7uwitYxRj8DyzLyTpcPReSAjWbWawWPsXJot3w== follow-redirects@^1.0.0: version "1.15.2" From c9423efa63850b2d3d7ead5549afbc28ceeef64f Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Mon, 3 Jul 2023 12:30:14 -0500 Subject: [PATCH 006/194] Upgrade Flow to 0.202.1 https://github.com/facebook/flow/releases/tag/v0.202.1 No errors! --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index d66d6e75d7a..1f42301e012 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.20.6", "eslint-plugin-react-hooks": "4.1.2", "file-url": "2.0.2", - "flow-bin": "0.202.0", + "flow-bin": "0.202.1", "gettext-parser": "3.1.0", "http-proxy": "1.18.1", "json5": "2.1.3", diff --git a/yarn.lock b/yarn.lock index 97fee9f09dd..5cdccf5b268 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2488,10 +2488,10 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flow-bin@0.202.0: - version "0.202.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.202.0.tgz#1e2eb221252c2ab55c997e5eb921902f3181cc4e" - integrity sha512-Yz+yNapJMWWV6Z6pZnBR+naMhFbFJbmMS8ZBQCFUHRqN1TTw7uwitYxRj8DyzLyTpcPReSAjWbWawWPsXJot3w== +flow-bin@0.202.1: + version "0.202.1" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.202.1.tgz#3ae3c7449e4ff4a3510b0bbdc55fba44b1c41b8b" + integrity sha512-bXMnyu+ktp3j0Ryl2YHu7hR/VoCt8/+naXksMBWUIUpyKVCri8eFBpb0IE2y5u3hcSRVCsZYNPAYgFJ250hMhg== follow-redirects@^1.0.0: version "1.15.2" From 291b70b32a730f048bd6ee583e66eefb285e5bc8 Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Wed, 12 Jul 2023 13:46:04 -0500 Subject: [PATCH 007/194] Upgrade Flow to 0.203.0 https://github.com/facebook/flow/releases/tag/v0.203.0 No errors! --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 1f42301e012..32d7689aaea 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.20.6", "eslint-plugin-react-hooks": "4.1.2", "file-url": "2.0.2", - "flow-bin": "0.202.1", + "flow-bin": "0.203.0", "gettext-parser": "3.1.0", "http-proxy": "1.18.1", "json5": "2.1.3", diff --git a/yarn.lock b/yarn.lock index 5cdccf5b268..123a2eb7b03 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2488,10 +2488,10 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flow-bin@0.202.1: - version "0.202.1" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.202.1.tgz#3ae3c7449e4ff4a3510b0bbdc55fba44b1c41b8b" - integrity sha512-bXMnyu+ktp3j0Ryl2YHu7hR/VoCt8/+naXksMBWUIUpyKVCri8eFBpb0IE2y5u3hcSRVCsZYNPAYgFJ250hMhg== +flow-bin@0.203.0: + version "0.203.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.203.0.tgz#4ab97ee696441ad83039663ba055ea5766a20d98" + integrity sha512-gyCkvvpL+bEzl/lTvRYkFeRTu9fSRbm0AR5UBkQe3EfiAKY3jNEDcwLxxmuBzqxr8X0jrqEAhVNGX9n/pYh+7g== follow-redirects@^1.0.0: version "1.15.2" From a18d1a9aa7b7cd2cc7e85fd0646cb2b7fa19e532 Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Wed, 12 Jul 2023 13:47:15 -0500 Subject: [PATCH 008/194] Upgrade Flow to 0.203.1 https://github.com/facebook/flow/releases/tag/v0.203.1 No errors! --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 32d7689aaea..f940d89d70c 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.20.6", "eslint-plugin-react-hooks": "4.1.2", "file-url": "2.0.2", - "flow-bin": "0.203.0", + "flow-bin": "0.203.1", "gettext-parser": "3.1.0", "http-proxy": "1.18.1", "json5": "2.1.3", diff --git a/yarn.lock b/yarn.lock index 123a2eb7b03..f2ed90a7611 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2488,10 +2488,10 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flow-bin@0.203.0: - version "0.203.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.203.0.tgz#4ab97ee696441ad83039663ba055ea5766a20d98" - integrity sha512-gyCkvvpL+bEzl/lTvRYkFeRTu9fSRbm0AR5UBkQe3EfiAKY3jNEDcwLxxmuBzqxr8X0jrqEAhVNGX9n/pYh+7g== +flow-bin@0.203.1: + version "0.203.1" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.203.1.tgz#227b5c4c9acef2d0efe4a4a8ee84322c8de05891" + integrity sha512-W/SX7QnRmBYS0TjfgtGb9ltPZzlsNeTZ7wA1yqwChxbLaQtrxGtO4K5GKtjRwAtucMQSebB7Ao++u21fRmC4TQ== follow-redirects@^1.0.0: version "1.15.2" From 40fa9218c50fcd917be31459a9b3d8ae20a02c2a Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Wed, 12 Jul 2023 13:58:11 -0500 Subject: [PATCH 009/194] Upgrade Flow to 0.204.0 https://github.com/facebook/flow/releases/tag/v0.204.0 The deprecated type `*` now always errors. There was one use in the redux libdef, and I didn't find a more recent version via the command `flow-typed outdated`, so I just replaced it with `mixed`. --- flow-typed/npm/redux_v4.x.x.js | 2 +- package.json | 2 +- yarn.lock | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/flow-typed/npm/redux_v4.x.x.js b/flow-typed/npm/redux_v4.x.x.js index c918a71da77..fbae09aaa43 100644 --- a/flow-typed/npm/redux_v4.x.x.js +++ b/flow-typed/npm/redux_v4.x.x.js @@ -11,7 +11,7 @@ declare module 'redux' { declare export type DispatchAPI = (action: A) => A; - declare export type Dispatch = DispatchAPI; + declare export type Dispatch = DispatchAPI; declare export type MiddlewareAPI> = { dispatch: D, diff --git a/package.json b/package.json index f940d89d70c..8e530ff12a4 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.20.6", "eslint-plugin-react-hooks": "4.1.2", "file-url": "2.0.2", - "flow-bin": "0.203.1", + "flow-bin": "0.204.0", "gettext-parser": "3.1.0", "http-proxy": "1.18.1", "json5": "2.1.3", diff --git a/yarn.lock b/yarn.lock index f2ed90a7611..fb4cdd0a9d6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2488,10 +2488,10 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flow-bin@0.203.1: - version "0.203.1" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.203.1.tgz#227b5c4c9acef2d0efe4a4a8ee84322c8de05891" - integrity sha512-W/SX7QnRmBYS0TjfgtGb9ltPZzlsNeTZ7wA1yqwChxbLaQtrxGtO4K5GKtjRwAtucMQSebB7Ao++u21fRmC4TQ== +flow-bin@0.204.0: + version "0.204.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.204.0.tgz#0293e22f5ed69dfc46299c4c4787d03e776ae0c2" + integrity sha512-yXIbRjRTcE7IXElwhwbl80sXQDlbB6MPy8mYUXpXp12VsAsE+CeF1yNo6tMDoz6KJTi3+jLws/zkenVOO09TfA== follow-redirects@^1.0.0: version "1.15.2" From 2926665794df8f180b766f596cb44062745a12c9 Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Wed, 12 Jul 2023 14:03:14 -0500 Subject: [PATCH 010/194] Upgrade Flow to 0.204.1 https://github.com/facebook/flow/releases/tag/v0.204.1 No errors! --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 8e530ff12a4..6aacb04e5f8 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.20.6", "eslint-plugin-react-hooks": "4.1.2", "file-url": "2.0.2", - "flow-bin": "0.204.0", + "flow-bin": "0.204.1", "gettext-parser": "3.1.0", "http-proxy": "1.18.1", "json5": "2.1.3", diff --git a/yarn.lock b/yarn.lock index fb4cdd0a9d6..c61987b94c9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2488,10 +2488,10 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flow-bin@0.204.0: - version "0.204.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.204.0.tgz#0293e22f5ed69dfc46299c4c4787d03e776ae0c2" - integrity sha512-yXIbRjRTcE7IXElwhwbl80sXQDlbB6MPy8mYUXpXp12VsAsE+CeF1yNo6tMDoz6KJTi3+jLws/zkenVOO09TfA== +flow-bin@0.204.1: + version "0.204.1" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.204.1.tgz#096c1dc5413edfa3f8284f888449f436a10a68fc" + integrity sha512-gYlDS1cRIV/FnqLc8G0xb/pFdu9eGM+NuxZlihlxRrt3GTfei8IioPSXMpiJz11DPPkiAr9tpIyI+g5RcP1W7Q== follow-redirects@^1.0.0: version "1.15.2" From e1f595dec1553218a46b71f0142d0636c59beaea Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Wed, 12 Jul 2023 14:04:14 -0500 Subject: [PATCH 011/194] Upgrade Flow to 0.205.0 https://github.com/facebook/flow/releases/tag/v0.205.0 No errors! --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 6aacb04e5f8..d636be074c5 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.20.6", "eslint-plugin-react-hooks": "4.1.2", "file-url": "2.0.2", - "flow-bin": "0.204.1", + "flow-bin": "0.205.0", "gettext-parser": "3.1.0", "http-proxy": "1.18.1", "json5": "2.1.3", diff --git a/yarn.lock b/yarn.lock index c61987b94c9..6884024569f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2488,10 +2488,10 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flow-bin@0.204.1: - version "0.204.1" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.204.1.tgz#096c1dc5413edfa3f8284f888449f436a10a68fc" - integrity sha512-gYlDS1cRIV/FnqLc8G0xb/pFdu9eGM+NuxZlihlxRrt3GTfei8IioPSXMpiJz11DPPkiAr9tpIyI+g5RcP1W7Q== +flow-bin@0.205.0: + version "0.205.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.205.0.tgz#dd636b03cf12273609b15c9fd219a982c2fcff45" + integrity sha512-akmM+++RkcIuFbfhhVfFnHNwdyUVjzZHzA9eeepiXm/NP7HUkOTndlX1o6/vjeOjUbDFcsXhvo209n4ZNK5ceA== follow-redirects@^1.0.0: version "1.15.2" From aea2dd51a3620a8f2d815bc6eaa045fab905d86a Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Wed, 12 Jul 2023 14:05:35 -0500 Subject: [PATCH 012/194] Upgrade Flow to 0.205.1 https://github.com/facebook/flow/releases/tag/v0.205.1 No errors! --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index d636be074c5..23ac1e1da17 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.20.6", "eslint-plugin-react-hooks": "4.1.2", "file-url": "2.0.2", - "flow-bin": "0.205.0", + "flow-bin": "0.205.1", "gettext-parser": "3.1.0", "http-proxy": "1.18.1", "json5": "2.1.3", diff --git a/yarn.lock b/yarn.lock index 6884024569f..b64331c526c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2488,10 +2488,10 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flow-bin@0.205.0: - version "0.205.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.205.0.tgz#dd636b03cf12273609b15c9fd219a982c2fcff45" - integrity sha512-akmM+++RkcIuFbfhhVfFnHNwdyUVjzZHzA9eeepiXm/NP7HUkOTndlX1o6/vjeOjUbDFcsXhvo209n4ZNK5ceA== +flow-bin@0.205.1: + version "0.205.1" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.205.1.tgz#5faf24e60df8d36f4deafef20e44863c5b295315" + integrity sha512-pGQ/ZFr9hnbhRmc+K3K1Ui9BwDivlesNEd2mZbm5pCnxEUvbbj9nXHlTD4s4qO0k+LBKYLMZzQwBVYyRUE380g== follow-redirects@^1.0.0: version "1.15.2" From 02d740b0ecc42e83aaad28fc39a4135009e52758 Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Wed, 12 Jul 2023 14:07:32 -0500 Subject: [PATCH 013/194] Upgrade Flow to 0.206.0 https://github.com/facebook/flow/releases/tag/v0.206.0 The deprecated type `$Shape` now errors. There was one use in the redux libdef, and I didn't find a more recent version via the command `flow-typed outdated`, so I just replaced it with `Partial`. --- flow-typed/npm/redux_v4.x.x.js | 2 +- package.json | 2 +- yarn.lock | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/flow-typed/npm/redux_v4.x.x.js b/flow-typed/npm/redux_v4.x.x.js index fbae09aaa43..f7f5e1dafdd 100644 --- a/flow-typed/npm/redux_v4.x.x.js +++ b/flow-typed/npm/redux_v4.x.x.js @@ -31,7 +31,7 @@ declare module 'redux' { declare export type Reducer = (state: S, action: A) => S; declare export type CombinedReducer = ( - state: ($Shape & {...}) | void, + state: (Partial & {...}) | void, action: A ) => S; diff --git a/package.json b/package.json index 23ac1e1da17..c30f72ad450 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.20.6", "eslint-plugin-react-hooks": "4.1.2", "file-url": "2.0.2", - "flow-bin": "0.205.1", + "flow-bin": "0.206.0", "gettext-parser": "3.1.0", "http-proxy": "1.18.1", "json5": "2.1.3", diff --git a/yarn.lock b/yarn.lock index b64331c526c..2ba46662c06 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2488,10 +2488,10 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flow-bin@0.205.1: - version "0.205.1" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.205.1.tgz#5faf24e60df8d36f4deafef20e44863c5b295315" - integrity sha512-pGQ/ZFr9hnbhRmc+K3K1Ui9BwDivlesNEd2mZbm5pCnxEUvbbj9nXHlTD4s4qO0k+LBKYLMZzQwBVYyRUE380g== +flow-bin@0.206.0: + version "0.206.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.206.0.tgz#a593304be5440a965ae773efcef55071b6d33178" + integrity sha512-cZTEs/OEWcbxfvb8BP+Fw0Cep5wrEyEzQHGpXyjVpQXrAraRA5wZUXvTf1C5YHufQaAYY9YkKY5WAr461JvmOA== follow-redirects@^1.0.0: version "1.15.2" From 93c4dd8bec5d994dd6732c3bf12df088a51595cf Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Wed, 12 Jul 2023 14:14:46 -0500 Subject: [PATCH 014/194] Upgrade Flow to 0.207.0 https://github.com/facebook/flow/releases/tag/v0.207.0 The following change has caused new errors: "When you pass a generic component type to some React utility type like React.ElementConfig, we will replace all the type parameters with their defaults or bounds. It can potentially cause downstream errors." This has been triggered where we use `React$Element` as a component return type. Since we don't actually use the return type information anywhere, I simply replaced them with `React$MixedElement`. --- package.json | 2 +- root/search/components/ArtistResults.js | 3 +-- root/search/components/RecordingResults.js | 2 +- root/search/components/ReleaseResults.js | 3 +-- root/static/scripts/common/components/ArtistRoles.js | 2 +- root/taglookup/ArtistResults.js | 2 +- root/taglookup/RecordingResults.js | 2 +- root/taglookup/ReleaseResults.js | 2 +- yarn.lock | 8 ++++---- 9 files changed, 12 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index c30f72ad450..ec71f1dd2ef 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.20.6", "eslint-plugin-react-hooks": "4.1.2", "file-url": "2.0.2", - "flow-bin": "0.206.0", + "flow-bin": "0.207.0", "gettext-parser": "3.1.0", "http-proxy": "1.18.1", "json5": "2.1.3", diff --git a/root/search/components/ArtistResults.js b/root/search/components/ArtistResults.js index 7499bad38de..665d7155d94 100644 --- a/root/search/components/ArtistResults.js +++ b/root/search/components/ArtistResults.js @@ -43,8 +43,7 @@ export const ArtistResultsInline = ({ pager, query, results, -}: InlineResultsPropsT): -React$Element => ( +}: InlineResultsPropsT): React$MixedElement => ( buildResult(result, index)} columns={ diff --git a/root/search/components/RecordingResults.js b/root/search/components/RecordingResults.js index 47c36caec9b..f3b634b8ad8 100644 --- a/root/search/components/RecordingResults.js +++ b/root/search/components/RecordingResults.js @@ -130,7 +130,7 @@ export const RecordingResultsInline = ({ query, results, }: InlineResultsPropsT): -React$Element => { +React$MixedElement => { const $c = React.useContext(CatalystContext); return ( diff --git a/root/search/components/ReleaseResults.js b/root/search/components/ReleaseResults.js index 025a0f0fce9..d5bd3a42e31 100644 --- a/root/search/components/ReleaseResults.js +++ b/root/search/components/ReleaseResults.js @@ -100,8 +100,7 @@ export const ReleaseResultsInline = ({ pager, query, results, -}: InlineResultsPropsT): -React$Element => { +}: InlineResultsPropsT): React$MixedElement => { const $c = React.useContext(CatalystContext); return ( diff --git a/root/static/scripts/common/components/ArtistRoles.js b/root/static/scripts/common/components/ArtistRoles.js index b079bda8513..de165c260c6 100644 --- a/root/static/scripts/common/components/ArtistRoles.js +++ b/root/static/scripts/common/components/ArtistRoles.js @@ -41,7 +41,7 @@ const buildArtistRoleRow = (relation: RelationT) => { const ArtistRoles = ({ relations, -}: ArtistRolesProps): React$Element => ( +}: ArtistRolesProps): React$MixedElement => ( , -): React$Element => ( +): React$MixedElement => ( , -): React$Element => ( +): React$MixedElement => ( , -): React$Element => ( +): React$MixedElement => ( Date: Wed, 12 Jul 2023 15:26:09 -0500 Subject: [PATCH 015/194] Switch Babel & ESLint parsers to hermes This is officially recommended by https://flow.org/en/docs/tools/babel/ and https://flow.org/en/docs/tools/eslint/ in order to support the latest Flow syntax (type guards, mapped types, conditional types, and I believe soon a new component syntax) without having to wait for these to be added to Babel. eslint-plugin-flowtype doesn't work with this parser, but there is a community-maintained clone called eslint-plugin-ft-flow which does. Just swapping the plugins doesn't work without a few changes: * The no-undef rule is broken. It isn't essential since Flow checks that for us, so I've disabled it. * The no-unused-vars rule is triggered for all global Flow types, so I disabled it in all files under root/types. --- .eslintrc.unfixed.yaml | 2 - .eslintrc.yaml | 57 ++++++++------- babel.config.cjs | 1 + flow-typed/npm/knockout_v3.1.0.js | 2 +- flow-typed/npm/pg-cursor_v2.x.x.js | 2 +- flow-typed/npm/pg_v8.x.x.js | 2 +- package.json | 5 +- root/static/scripts/alias/AliasEditForm.js | 4 +- .../annotation/AnnotationHistoryTable.js | 4 +- .../artist/components/ArtistCreditRenamer.js | 4 +- .../common/components/Autocomplete2.js | 12 +-- .../common/components/Autocomplete2/types.js | 4 +- .../scripts/common/components/EntityLink.js | 4 +- .../edit/components/DateRangeFieldset.js | 4 +- .../components/FormRowNameWithGuessCase.js | 4 +- .../FormRowSortNameWithGuessCase.js | 4 +- .../edit/components/GuessCaseOptions.js | 4 +- .../edit/components/PartialDateInput.js | 4 +- .../scripts/genre/components/GenreEditForm.js | 4 +- .../components/DialogTargetType.js | 2 +- root/types/alias.js | 2 + root/types/annotation.js | 2 + root/types/area.js | 2 + root/types/artist.js | 2 + root/types/artistcredit.js | 2 + root/types/artwork.js | 2 + root/types/autoeditorelection.js | 2 + root/types/catalyst.js | 2 + root/types/cdstub.js | 2 + root/types/codes.js | 2 + root/types/collection.js | 2 + root/types/critiquebrainz.js | 2 + root/types/edit.js | 2 + root/types/edit_extras.js | 2 + root/types/edit_type_ids.js | 2 + root/types/edit_types.js | 2 + root/types/edit_types_historic.js | 2 + root/types/editor.js | 2 + root/types/entity.js | 2 + root/types/event.js | 2 + root/types/formcomponents.js | 2 + root/types/forms.js | 2 + root/types/genre.js | 2 + root/types/i18n.js | 2 + root/types/instrument.js | 2 + root/types/label.js | 2 + root/types/languageandscript.js | 2 + root/types/medium.js | 2 + root/types/misc.js | 2 + root/types/oauth.js | 2 + root/types/place.js | 2 + root/types/rating.js | 2 + root/types/recording.js | 2 + root/types/relationship.js | 2 + root/types/release.js | 2 + root/types/releasegroup.js | 2 + root/types/series.js | 2 + root/types/statisticsevents.js | 2 + root/types/tag.js | 2 + root/types/track.js | 2 + root/types/url.js | 2 + root/types/vote.js | 2 + root/types/work.js | 2 + root/types/workattribute.js | 2 + root/types/wsjs.js | 2 + script/.check_eslint_rule_config.yaml | 8 +- yarn.lock | 73 ++++++++++++------- 67 files changed, 203 insertions(+), 97 deletions(-) diff --git a/.eslintrc.unfixed.yaml b/.eslintrc.unfixed.yaml index d4af316639f..53cd2e69903 100644 --- a/.eslintrc.unfixed.yaml +++ b/.eslintrc.unfixed.yaml @@ -41,5 +41,3 @@ rules: react/no-multi-comp: [warn, {ignoreStateless: true}] react/no-render-return-value: warn react/jsx-no-bind: [warn, {ignoreDOMComponents: true}] - flowtype/no-types-missing-file-annotation: error - flowtype/no-weak-types: warn diff --git a/.eslintrc.yaml b/.eslintrc.yaml index 659a8adafc9..42b265d854e 100644 --- a/.eslintrc.yaml +++ b/.eslintrc.yaml @@ -1,11 +1,11 @@ root: true -parser: "@babel/eslint-parser" +parser: "hermes-eslint" plugins: - import - react - - flowtype + - ft-flow - fb-flow - react-hooks - simple-import-sort @@ -125,7 +125,12 @@ rules: strict: off # Variables - no-undef: error + # no-undef is mostly superfluous as it is checked by Flow; enabling it + # actually triggers thousands of false positives because hermes-eslint + # doesn't track global types (those defined with `declare type`). + # Ideally we could keep no-undef enabled for files that aren't Flow- + # typed yet, but we don't maintain a separate config for those. + no-undef: off no-use-before-define: off # Stylistic Issues @@ -320,31 +325,29 @@ rules: logical: ignore, prop: ignore}] - ########################## - # eslint-plugin-flowtype # - ########################## + ######################### + # eslint-plugin-ft-flow # + ######################### - flowtype/boolean-style: [warn, boolean] - flowtype/define-flow-type: warn - flowtype/delimiter-dangle: [warn, always-multiline] - flowtype/generic-spacing: off - flowtype/no-dupe-keys: error - flowtype/no-flow-fix-me-comments: off - flowtype/no-mutable-array: off - flowtype/no-primitive-constructor-types: error - flowtype/object-type-delimiter: [warn, comma] - flowtype/require-exact-type: off - flowtype/require-indexer-name: [warn, always] - flowtype/require-parameter-type: off - flowtype/require-return-type: off - flowtype/require-valid-file-annotation: off - flowtype/semi: [warn, always] - flowtype/sort-keys: [warn, asc] - flowtype/space-after-type-colon: [warn, always, {allowLineBreak: true}] - flowtype/space-before-generic-bracket: [warn, never] - flowtype/space-before-type-colon: [warn, never] - flowtype/union-intersection-spacing: [warn, always] - flowtype/use-flow-type: warn + ft-flow/boolean-style: [warn, boolean] + ft-flow/delimiter-dangle: [warn, always-multiline] + ft-flow/generic-spacing: off + ft-flow/no-dupe-keys: error + ft-flow/no-flow-fix-me-comments: off + ft-flow/no-mutable-array: off + ft-flow/no-primitive-constructor-types: error + ft-flow/object-type-delimiter: [warn, comma] + ft-flow/require-exact-type: off + ft-flow/require-indexer-name: [warn, always] + ft-flow/require-parameter-type: off + ft-flow/require-return-type: off + ft-flow/require-valid-file-annotation: off + ft-flow/semi: [warn, always] + ft-flow/sort-keys: [warn, asc] + ft-flow/space-after-type-colon: [warn, always, {allowLineBreak: true}] + ft-flow/space-before-generic-bracket: [warn, never] + ft-flow/space-before-type-colon: [warn, never] + ft-flow/union-intersection-spacing: [warn, always] ######################### # eslint-plugin-fb-flow # diff --git a/babel.config.cjs b/babel.config.cjs index 29706e283b9..c2f3eae04b4 100644 --- a/babel.config.cjs +++ b/babel.config.cjs @@ -38,6 +38,7 @@ module.exports = function (api) { ]; const plugins = [ + 'babel-plugin-syntax-hermes-parser', '@babel/plugin-transform-flow-strip-types', ['@babel/plugin-transform-react-jsx', { runtime: 'automatic', diff --git a/flow-typed/npm/knockout_v3.1.0.js b/flow-typed/npm/knockout_v3.1.0.js index 64fa90da9aa..995923682c0 100644 --- a/flow-typed/npm/knockout_v3.1.0.js +++ b/flow-typed/npm/knockout_v3.1.0.js @@ -7,7 +7,7 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ -/* eslint-disable flowtype/sort-keys */ +/* eslint-disable ft-flow/sort-keys */ declare module 'knockout' { declare type Observable = { diff --git a/flow-typed/npm/pg-cursor_v2.x.x.js b/flow-typed/npm/pg-cursor_v2.x.x.js index d2b7336c4cc..923db21c4ef 100644 --- a/flow-typed/npm/pg-cursor_v2.x.x.js +++ b/flow-typed/npm/pg-cursor_v2.x.x.js @@ -7,7 +7,7 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ -/* eslint-disable flowtype/sort-keys */ +/* eslint-disable ft-flow/sort-keys */ declare module 'pg-cursor' { import type {Connection, PgResultSet, Submittable} from 'pg'; diff --git a/flow-typed/npm/pg_v8.x.x.js b/flow-typed/npm/pg_v8.x.x.js index 19e3ae5f663..bfd211fbeb5 100644 --- a/flow-typed/npm/pg_v8.x.x.js +++ b/flow-typed/npm/pg_v8.x.x.js @@ -7,7 +7,7 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ -/* eslint-disable flowtype/sort-keys */ +/* eslint-disable ft-flow/sort-keys */ declare module 'pg' { declare export type ClientConfig = { diff --git a/package.json b/package.json index ec71f1dd2ef..12ddc3de811 100644 --- a/package.json +++ b/package.json @@ -73,19 +73,20 @@ }, "devDependencies": { "@babel/cli": "7.19.3", - "@babel/eslint-parser": "7.19.1", "babel-plugin-istanbul": "5.2.0", + "babel-plugin-syntax-hermes-parser": "0.15.1", "buffer": "6.0.3", "chrome-remote-interface": "0.33.0", "eslint": "7.9.0", "eslint-plugin-fb-flow": "0.0.2", - "eslint-plugin-flowtype": "5.2.0", + "eslint-plugin-ft-flow": "3.0.0", "eslint-plugin-import": "2.22.0", "eslint-plugin-react": "7.20.6", "eslint-plugin-react-hooks": "4.1.2", "file-url": "2.0.2", "flow-bin": "0.207.0", "gettext-parser": "3.1.0", + "hermes-eslint": "0.16.0", "http-proxy": "1.18.1", "json5": "2.1.3", "nyc": "14.1.1", diff --git a/root/static/scripts/alias/AliasEditForm.js b/root/static/scripts/alias/AliasEditForm.js index 89c663b6623..6922db9a51b 100644 --- a/root/static/scripts/alias/AliasEditForm.js +++ b/root/static/scripts/alias/AliasEditForm.js @@ -56,7 +56,7 @@ type Props = { +searchHintType: number, }; -/* eslint-disable flowtype/sort-keys */ +/* eslint-disable ft-flow/sort-keys */ type ActionT = | {+type: 'set-locale', +locale: string} | {+type: 'set-primary-for-locale', +enabled: boolean} @@ -65,7 +65,7 @@ type ActionT = | {+type: 'update-date-range', +action: DateRangeFieldsetActionT} | {+type: 'update-name', +action: NameActionT} | {+type: 'update-sortname', +action: SortNameActionT}; -/* eslint-enable flowtype/sort-keys */ +/* eslint-enable ft-flow/sort-keys */ type StateT = { +form: AliasEditFormT, diff --git a/root/static/scripts/annotation/AnnotationHistoryTable.js b/root/static/scripts/annotation/AnnotationHistoryTable.js index a25c88a1c1a..45c79342c36 100644 --- a/root/static/scripts/annotation/AnnotationHistoryTable.js +++ b/root/static/scripts/annotation/AnnotationHistoryTable.js @@ -20,12 +20,12 @@ type Props = { +baseUrl: string, }; -/* eslint-disable flowtype/sort-keys */ +/* eslint-disable ft-flow/sort-keys */ type ActionT = | {+type: 'update-new', +index: number} | {+type: 'update-old', +index: number} ; -/* eslint-enable flowtype/sort-keys */ +/* eslint-enable ft-flow/sort-keys */ type StateT = { +selectedNew: number, diff --git a/root/static/scripts/artist/components/ArtistCreditRenamer.js b/root/static/scripts/artist/components/ArtistCreditRenamer.js index 16e25342f09..1a0e96a6d1a 100644 --- a/root/static/scripts/artist/components/ArtistCreditRenamer.js +++ b/root/static/scripts/artist/components/ArtistCreditRenamer.js @@ -44,7 +44,7 @@ type StateT = { +selection: Array, }; -/* eslint-disable flowtype/sort-keys */ +/* eslint-disable ft-flow/sort-keys */ type ActionT = | { +type: 'set-expanded', @@ -59,7 +59,7 @@ type ActionT = +artistCredit: ArtistCreditWithIdT, +checked: boolean, }; -/* eslint-enable flowtype/sort-keys */ +/* eslint-enable ft-flow/sort-keys */ const MARGIN_1EM = {margin: '1em'}; diff --git a/root/static/scripts/common/components/Autocomplete2.js b/root/static/scripts/common/components/Autocomplete2.js index b9636f323aa..c899a46a2c0 100644 --- a/root/static/scripts/common/components/Autocomplete2.js +++ b/root/static/scripts/common/components/Autocomplete2.js @@ -695,17 +695,9 @@ const Autocomplete2 = (React.memo(<+T: EntityItemT>( } }); - type AutocompleteItemComponent = - React$AbstractComponent, void>; - - // XXX Until Flow supports https://github.com/facebook/flow/issues/7672 - const AutocompleteItemWithType: AutocompleteItemComponent = - // $FlowIssue[unclear-type] - (AutocompleteItem: any); - const menuItemElements = React.useMemo( () => items.map((item, index) => ( - ( item.type === 'option' && item.entity.id === selectedItem.id )} + // XXX Until Flow supports https://github.com/facebook/flow/issues/7672 + // $FlowIssue[incompatible-type-arg] item={item} key={item.id} selectItem={selectItem} diff --git a/root/static/scripts/common/components/Autocomplete2/types.js b/root/static/scripts/common/components/Autocomplete2/types.js index 43f72f3e0d1..081e10bbc21 100644 --- a/root/static/scripts/common/components/Autocomplete2/types.js +++ b/root/static/scripts/common/components/Autocomplete2/types.js @@ -59,7 +59,7 @@ export type SearchActionT = { +type: 'search-after-timeout', }; -/* eslint-disable flowtype/sort-keys */ +/* eslint-disable ft-flow/sort-keys */ export type ActionT<+T: EntityItemT> = | SearchActionT | { @@ -127,7 +127,7 @@ export type ItemT<+T: EntityItemT> = | OptionItemT | HeaderItemT; -/* eslint-enable flowtype/sort-keys */ +/* eslint-enable ft-flow/sort-keys */ export type EntityItemT = | EditorT diff --git a/root/static/scripts/common/components/EntityLink.js b/root/static/scripts/common/components/EntityLink.js index f304cee68c4..d4702b8b855 100644 --- a/root/static/scripts/common/components/EntityLink.js +++ b/root/static/scripts/common/components/EntityLink.js @@ -143,7 +143,7 @@ const NoInfoURL = ({allowNew, url}: {+allowNew: boolean, +url: string}) => ( ); -/* eslint-disable sort-keys, flowtype/sort-keys */ +/* eslint-disable sort-keys, ft-flow/sort-keys */ type EntityLinkProps = { +allowNew?: boolean, +content?: ?Expand2ReactOutput, @@ -166,7 +166,7 @@ type EntityLinkProps = { title?: string, +target?: '_blank', }; -/* eslint-enable sort-keys, flowtype/sort-keys */ +/* eslint-enable sort-keys, ft-flow/sort-keys */ const EntityLink = ({ allowNew = false, diff --git a/root/static/scripts/edit/components/DateRangeFieldset.js b/root/static/scripts/edit/components/DateRangeFieldset.js index 5e1b4e1d6a1..6537c87de06 100644 --- a/root/static/scripts/edit/components/DateRangeFieldset.js +++ b/root/static/scripts/edit/components/DateRangeFieldset.js @@ -23,13 +23,13 @@ import FormRowPartialDate, { runReducer as runFormRowPartialDateReducer, } from './FormRowPartialDate.js'; -/* eslint-disable flowtype/sort-keys */ +/* eslint-disable ft-flow/sort-keys */ export type ActionT = | {+type: 'update-begin-date', +action: FormRowPartialDateActionT} | {+type: 'update-end-date', +action: FormRowPartialDateActionT} | {+type: 'set-ended', +enabled: boolean} | {+type: 'copy-date'}; -/* eslint-enable flowtype/sort-keys */ +/* eslint-enable ft-flow/sort-keys */ type PropsT = { +disabled?: boolean, diff --git a/root/static/scripts/edit/components/FormRowNameWithGuessCase.js b/root/static/scripts/edit/components/FormRowNameWithGuessCase.js index 9cbe3b8dbe8..8336a116760 100644 --- a/root/static/scripts/edit/components/FormRowNameWithGuessCase.js +++ b/root/static/scripts/edit/components/FormRowNameWithGuessCase.js @@ -27,14 +27,14 @@ type NamedEntityT = { ... }; -/* eslint-disable flowtype/sort-keys */ +/* eslint-disable ft-flow/sort-keys */ export type ActionT = | {+type: 'guess-case', +entity: NamedEntityT} | {+type: 'open-guess-case-options'} | {+type: 'close-guess-case-options'} | {+type: 'update-guess-case-options', +action: GuessCaseOptionsActionT} | {+type: 'set-name', +name: string}; -/* eslint-enable flowtype/sort-keys */ +/* eslint-enable ft-flow/sort-keys */ type PropsT = { +dispatch: (ActionT) => void, diff --git a/root/static/scripts/edit/components/FormRowSortNameWithGuessCase.js b/root/static/scripts/edit/components/FormRowSortNameWithGuessCase.js index 9f09f4a49f8..a3f6d1b0212 100644 --- a/root/static/scripts/edit/components/FormRowSortNameWithGuessCase.js +++ b/root/static/scripts/edit/components/FormRowSortNameWithGuessCase.js @@ -20,12 +20,12 @@ type SortNamedEntityT = { ... }; -/* eslint-disable flowtype/sort-keys */ +/* eslint-disable ft-flow/sort-keys */ export type ActionT = | {+type: 'guess-case-sortname', +entity: SortNamedEntityT} | {+type: 'set-sortname', +sortName: string} | {+type: 'copy-sortname'}; -/* eslint-enable flowtype/sort-keys */ +/* eslint-enable ft-flow/sort-keys */ type PropsT = { +disabled?: boolean, diff --git a/root/static/scripts/edit/components/GuessCaseOptions.js b/root/static/scripts/edit/components/GuessCaseOptions.js index 4d0a74d7036..e47d21fd751 100644 --- a/root/static/scripts/edit/components/GuessCaseOptions.js +++ b/root/static/scripts/edit/components/GuessCaseOptions.js @@ -14,12 +14,12 @@ import setCookie from '../../common/utility/setCookie.js'; import gc from '../../guess-case/MB/GuessCase/Main.js'; import * as modes from '../../guess-case/modes.js'; -/* eslint-disable flowtype/sort-keys */ +/* eslint-disable ft-flow/sort-keys */ export type ActionT = | {+type: 'set-mode', +modeName: string} | {+type: 'set-keep-upper-case', +enabled: boolean} | {+type: 'set-upper-case-roman', +enabled: boolean}; -/* eslint-enable flowtype/sort-keys */ +/* eslint-enable ft-flow/sort-keys */ export type DispatchT = (ActionT) => void; diff --git a/root/static/scripts/edit/components/PartialDateInput.js b/root/static/scripts/edit/components/PartialDateInput.js index 16224565d03..192772e22e7 100644 --- a/root/static/scripts/edit/components/PartialDateInput.js +++ b/root/static/scripts/edit/components/PartialDateInput.js @@ -10,14 +10,14 @@ import {isDateValid, isYearFourDigits} from '../utility/dates.js'; import {applyPendingErrors} from '../utility/subfieldErrors.js'; -/* eslint-disable flowtype/sort-keys */ +/* eslint-disable ft-flow/sort-keys */ export type ActionT = | { +type: 'set-date', +date: {+year?: string, +month?: string, +day?: string}, } | {+type: 'show-pending-errors'}; -/* eslint-enable flowtype/sort-keys */ +/* eslint-enable ft-flow/sort-keys */ type CommonProps = { +disabled?: boolean, diff --git a/root/static/scripts/genre/components/GenreEditForm.js b/root/static/scripts/genre/components/GenreEditForm.js index e84202ddf06..2225405b173 100644 --- a/root/static/scripts/genre/components/GenreEditForm.js +++ b/root/static/scripts/genre/components/GenreEditForm.js @@ -41,10 +41,10 @@ type Props = { +form: GenreFormT, }; -/* eslint-disable flowtype/sort-keys */ +/* eslint-disable ft-flow/sort-keys */ type ActionT = | {+type: 'update-name', +action: NameActionT}; -/* eslint-enable flowtype/sort-keys */ +/* eslint-enable ft-flow/sort-keys */ type StateT = { +form: GenreFormT, diff --git a/root/static/scripts/relationship-editor/components/DialogTargetType.js b/root/static/scripts/relationship-editor/components/DialogTargetType.js index 7bf615ba3e3..795bf1432d5 100644 --- a/root/static/scripts/relationship-editor/components/DialogTargetType.js +++ b/root/static/scripts/relationship-editor/components/DialogTargetType.js @@ -16,7 +16,7 @@ import type { DialogActionT, } from '../types/actions.js'; -/* eslint-enable flowtype/sort-keys */ +/* eslint-enable ft-flow/sort-keys */ type PropsT = { +dispatch: (DialogActionT) => void, diff --git a/root/types/alias.js b/root/types/alias.js index 4cfaa404b70..340a8d9f791 100644 --- a/root/types/alias.js +++ b/root/types/alias.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + // MusicBrainz::Server::Entity::Alias::TO_JSON declare type AliasT<+T> = $ReadOnly<{ ...DatePeriodRoleT, diff --git a/root/types/annotation.js b/root/types/annotation.js index 0b34c454916..115e20c2b33 100644 --- a/root/types/annotation.js +++ b/root/types/annotation.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + declare type AnnotatedEntityT = | AreaT | ArtistT diff --git a/root/types/area.js b/root/types/area.js index 35eac3bdbb1..4af85cf5b4b 100644 --- a/root/types/area.js +++ b/root/types/area.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + // MusicBrainz::Server::Entity::Area::TO_JSON declare type AreaT = $ReadOnly<{ ...AnnotationRoleT, diff --git a/root/types/artist.js b/root/types/artist.js index 15c489118dd..d01fe9c957a 100644 --- a/root/types/artist.js +++ b/root/types/artist.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + // MusicBrainz::Server::Entity::Artist::TO_JSON declare type ArtistT = $ReadOnly<{ ...AnnotationRoleT, diff --git a/root/types/artistcredit.js b/root/types/artistcredit.js index 8a58d82f7ba..72686603afa 100644 --- a/root/types/artistcredit.js +++ b/root/types/artistcredit.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + // MusicBrainz::Server::Entity::ArtistCreditName::TO_JSON declare type ArtistCreditNameT = { +artist: ArtistT, diff --git a/root/types/artwork.js b/root/types/artwork.js index 21b5cdfa56c..cda3facc18f 100644 --- a/root/types/artwork.js +++ b/root/types/artwork.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + // MusicBrainz::Server::Entity::Artwork::TO_JSON declare type ArtworkT = { ...PendingEditsRoleT, diff --git a/root/types/autoeditorelection.js b/root/types/autoeditorelection.js index 12edaff9f5f..87d59bc1fa5 100644 --- a/root/types/autoeditorelection.js +++ b/root/types/autoeditorelection.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + // MusicBrainz::Server::Entity::AutoEditorElection::TO_JSON declare type AutoEditorElectionT = { ...EntityRoleT, diff --git a/root/types/catalyst.js b/root/types/catalyst.js index a5f5c4bc5e0..f0232bb25e6 100644 --- a/root/types/catalyst.js +++ b/root/types/catalyst.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + // Most of these types are serialized in the MusicBrainz::Server package. declare type CatalystActionT = { diff --git a/root/types/cdstub.js b/root/types/cdstub.js index b7d6696d688..d790f62ec11 100644 --- a/root/types/cdstub.js +++ b/root/types/cdstub.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + // MusicBrainz::Server::Entity::CDStub::TO_JSON declare type CDStubT = $ReadOnly<{ ...EntityRoleT<'cdstub'>, diff --git a/root/types/codes.js b/root/types/codes.js index e678c7e596b..d8806fc3e58 100644 --- a/root/types/codes.js +++ b/root/types/codes.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + declare type IpiCodesRoleT = { +ipi_codes: $ReadOnlyArray, }; diff --git a/root/types/collection.js b/root/types/collection.js index d07d263d111..44c239098b0 100644 --- a/root/types/collection.js +++ b/root/types/collection.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + // MusicBrainz::Server::Entity::Collection::TO_JSON declare type CollectionT = $ReadOnly<{ ...EntityRoleT<'collection'>, diff --git a/root/types/critiquebrainz.js b/root/types/critiquebrainz.js index 95f48526564..50c3d98c615 100644 --- a/root/types/critiquebrainz.js +++ b/root/types/critiquebrainz.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + declare type CritiqueBrainzUserT = { +id: string, +name: string, diff --git a/root/types/edit.js b/root/types/edit.js index df870975368..c7b41148f4f 100644 --- a/root/types/edit.js +++ b/root/types/edit.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + declare type CompT = { +new: T, +old: T, diff --git a/root/types/edit_extras.js b/root/types/edit_extras.js index 953961b1e69..599e7b888b8 100644 --- a/root/types/edit_extras.js +++ b/root/types/edit_extras.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + // EditMedium declare type TracklistChangesAddT = { +change_type: '+', diff --git a/root/types/edit_type_ids.js b/root/types/edit_type_ids.js index 3d8f036a0db..fcb3f0585df 100644 --- a/root/types/edit_type_ids.js +++ b/root/types/edit_type_ids.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + declare type EDIT_ARTIST_CREATE_T = 1; declare type EDIT_ARTIST_EDIT_T = 2; declare type EDIT_ARTIST_DELETE_T = 3; diff --git a/root/types/edit_types.js b/root/types/edit_types.js index bd519c1bd4a..9f8c7319b1f 100644 --- a/root/types/edit_types.js +++ b/root/types/edit_types.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + declare type AddAnnotationEditGenericT = $ReadOnly<{ ...GenericEditT, +display_data: { diff --git a/root/types/edit_types_historic.js b/root/types/edit_types_historic.js index bb84d1f5c8f..17dfdbca50c 100644 --- a/root/types/edit_types_historic.js +++ b/root/types/edit_types_historic.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + declare type AddDiscIdHistoricEditT = $ReadOnly<{ ...GenericEditT, +display_data: { diff --git a/root/types/editor.js b/root/types/editor.js index 20927188c75..139d36707b9 100644 --- a/root/types/editor.js +++ b/root/types/editor.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + declare type ActiveEditorPreferencesT = { +datetime_format: string, +timezone: string, diff --git a/root/types/entity.js b/root/types/entity.js index 8e72b2712bb..d97ade2d7e6 100644 --- a/root/types/entity.js +++ b/root/types/entity.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + declare type EntityWithAliasesT = | AreaT | ArtistT diff --git a/root/types/event.js b/root/types/event.js index 6050fe2132e..00fa3c869dd 100644 --- a/root/types/event.js +++ b/root/types/event.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + // MusicBrainz::Server::Entity::Event::TO_JSON declare type EventT = $ReadOnly<{ ...AnnotationRoleT, diff --git a/root/types/formcomponents.js b/root/types/formcomponents.js index 9400a8f3e04..d4ef4195a20 100644 --- a/root/types/formcomponents.js +++ b/root/types/formcomponents.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + /* * Types should be (mostly) kept in alphabetical order, though you may e.g. * keep Foo and WritableFoo or ReadOnlyFoo next to each other for clarity. diff --git a/root/types/forms.js b/root/types/forms.js index d0890a3091c..5af8d5f8f84 100644 --- a/root/types/forms.js +++ b/root/types/forms.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + declare type ConfirmFormT = FormT<{ +cancel: ReadOnlyFieldT, +edit_note: ReadOnlyFieldT, diff --git a/root/types/genre.js b/root/types/genre.js index 86b13dfeb99..279b65b7551 100644 --- a/root/types/genre.js +++ b/root/types/genre.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + // MusicBrainz::Server::Entity::Genre::TO_JSON declare type GenreT = $ReadOnly<{ ...AnnotationRoleT, diff --git a/root/types/i18n.js b/root/types/i18n.js index 66552369f7b..088b4dabd9f 100644 --- a/root/types/i18n.js +++ b/root/types/i18n.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + declare type AnchorProps = { +className?: string, +href: string, diff --git a/root/types/instrument.js b/root/types/instrument.js index e3715e3f770..7a993f8d08a 100644 --- a/root/types/instrument.js +++ b/root/types/instrument.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + declare type InstrumentCreditsAndRelTypesRoleT = { +instrumentCreditsAndRelTypes?: { +[entityGid: string]: $ReadOnlyArray, diff --git a/root/types/label.js b/root/types/label.js index 7ed6c6b946f..3ca9379441a 100644 --- a/root/types/label.js +++ b/root/types/label.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + // MusicBrainz::Server::Entity::Label::TO_JSON declare type LabelT = $ReadOnly<{ ...AnnotationRoleT, diff --git a/root/types/languageandscript.js b/root/types/languageandscript.js index 8bc02c470b0..4d4df1ae7aa 100644 --- a/root/types/languageandscript.js +++ b/root/types/languageandscript.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + declare type LanguageT = { +entityType: 'language', +frequency: number, diff --git a/root/types/medium.js b/root/types/medium.js index d5f34e8ff9b..39952c06a42 100644 --- a/root/types/medium.js +++ b/root/types/medium.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + declare type CDTocT = $ReadOnly<{ ...EntityRoleT<'cdtoc'>, +discid: string, diff --git a/root/types/misc.js b/root/types/misc.js index 5326c5988b8..75dd3eb210c 100644 --- a/root/types/misc.js +++ b/root/types/misc.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + /* * See http://search.cpan.org/~lbrocard/Data-Page-2.02/lib/Data/Page.pm * Serialized in MusicBrainz::Server::TO_JSON. diff --git a/root/types/oauth.js b/root/types/oauth.js index 68bce67f1bc..7c75561d044 100644 --- a/root/types/oauth.js +++ b/root/types/oauth.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + // MusicBrainz::Server::Entity::Application::TO_JSON declare type ApplicationT = { ...EntityRoleT<'application'>, diff --git a/root/types/place.js b/root/types/place.js index d112cca7af9..12b5c591469 100644 --- a/root/types/place.js +++ b/root/types/place.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + // MusicBrainz::Server::Entity::Coordinates::TO_JSON declare type CoordinatesT = { +latitude: number, diff --git a/root/types/rating.js b/root/types/rating.js index 94b22a8bd46..371adbe8cb3 100644 --- a/root/types/rating.js +++ b/root/types/rating.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + // MusicBrainz::Server::Entity::Role::Rating::TO_JSON declare type RatableRoleT = { +rating?: number, diff --git a/root/types/recording.js b/root/types/recording.js index c4ee144e0e8..eea86fff6b8 100644 --- a/root/types/recording.js +++ b/root/types/recording.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + // MusicBrainz::Server::Entity::Recording::TO_JSON declare type RecordingT = $ReadOnly<{ ...AnnotationRoleT, diff --git a/root/types/relationship.js b/root/types/relationship.js index db15a41db5a..6c147d9c124 100644 --- a/root/types/relationship.js +++ b/root/types/relationship.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + declare type LinkAttrT = { +credited_as?: string, +text_value?: string, diff --git a/root/types/release.js b/root/types/release.js index eda7e22bb95..5d559878cbf 100644 --- a/root/types/release.js +++ b/root/types/release.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + declare type QualityT = -1 | 0 | 1 | 2; declare type ReleaseEventT = { diff --git a/root/types/releasegroup.js b/root/types/releasegroup.js index d052e731a36..b33aff487f7 100644 --- a/root/types/releasegroup.js +++ b/root/types/releasegroup.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + declare type ReleaseGroupSecondaryTypeT = OptionTreeT<'release_group_secondary_type'>; diff --git a/root/types/series.js b/root/types/series.js index a631e847382..1b743e43d85 100644 --- a/root/types/series.js +++ b/root/types/series.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + declare type SeriesEntityTypeT = | 'artist' | 'event' diff --git a/root/types/statisticsevents.js b/root/types/statisticsevents.js index 12b298e8889..57872a50598 100644 --- a/root/types/statisticsevents.js +++ b/root/types/statisticsevents.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + export type StatisticsEventFormT = FormT<{ +date: ReadOnlyFieldT, +description: ReadOnlyFieldT, diff --git a/root/types/tag.js b/root/types/tag.js index 2ccb063f734..16b6b0c0c3f 100644 --- a/root/types/tag.js +++ b/root/types/tag.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + // MusicBrainz::Server::Entity::AggregatedTag::TO_JSON declare type AggregatedTagT = { +count: number, diff --git a/root/types/track.js b/root/types/track.js index 4ac6f7745fe..2e5ff97cd27 100644 --- a/root/types/track.js +++ b/root/types/track.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + // MusicBrainz::Server::Entity::Track::TO_JSON declare type TrackT = $ReadOnly<{ ...EntityRoleT<'track'>, diff --git a/root/types/url.js b/root/types/url.js index 9ae76102f1d..245bed2ff1a 100644 --- a/root/types/url.js +++ b/root/types/url.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + // MusicBrainz::Server::Entity::URL::TO_JSON declare type UrlT = { ...RelatableEntityRoleT<'url'>, diff --git a/root/types/vote.js b/root/types/vote.js index aa1299d80e8..b24dd0ced4d 100644 --- a/root/types/vote.js +++ b/root/types/vote.js @@ -8,6 +8,8 @@ */ /* eslint-disable no-multi-spaces */ +/* eslint-disable no-unused-vars */ + declare type VoteOptionT = | -2 // None | -1 // Abstain diff --git a/root/types/work.js b/root/types/work.js index 501c6e8e424..5b61dd941cf 100644 --- a/root/types/work.js +++ b/root/types/work.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + // MusicBrainz::Server::Entity::Work::TO_JSON declare type WorkT = $ReadOnly<{ ...AnnotationRoleT, diff --git a/root/types/workattribute.js b/root/types/workattribute.js index e4bd3482338..06d88614fc3 100644 --- a/root/types/workattribute.js +++ b/root/types/workattribute.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + // MusicBrainz::Server::Entity::WorkAttribute::TO_JSON declare type WorkAttributeT = { // Generally shouldn't be null, but the id isn't stored in edit data. diff --git a/root/types/wsjs.js b/root/types/wsjs.js index 39ca0e7f723..84445aa7e4d 100644 --- a/root/types/wsjs.js +++ b/root/types/wsjs.js @@ -7,6 +7,8 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ +/* eslint-disable no-unused-vars */ + declare type WsJsRelationshipEntityT = | { +entityType: NonUrlRelatableEntityTypeT, diff --git a/script/.check_eslint_rule_config.yaml b/script/.check_eslint_rule_config.yaml index 14c029526b8..c4ddf500a0a 100644 --- a/script/.check_eslint_rule_config.yaml +++ b/script/.check_eslint_rule_config.yaml @@ -3,7 +3,7 @@ parser: "@babel/eslint-parser" plugins: - import - react - - flowtype + - ft-flow - react-hooks - simple-import-sort @@ -64,13 +64,13 @@ globals: lp_statistics: readonly settings: - flowtype: + ft-flow: onlyFilesWithFlowAnnotation: true react: version: detect flowVersion: 0.144.0 rules: - flowtype/define-flow-type: warn - flowtype/use-flow-type: warn + ft-flow/define-flow-type: warn + ft-flow/use-flow-type: warn react/jsx-uses-vars: warn diff --git a/yarn.lock b/yarn.lock index 2cb962df7a2..7acd9fa385b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -59,15 +59,6 @@ json5 "^2.2.1" semver "^6.3.0" -"@babel/eslint-parser@7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz#4f68f6b0825489e00a24b41b6a1ae35414ecd2f4" - integrity sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ== - dependencies: - "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" - eslint-visitor-keys "^2.1.0" - semver "^6.3.0" - "@babel/generator@^7.20.1", "@babel/generator@^7.20.2", "@babel/generator@^7.4.0": version "7.20.4" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.4.tgz#4d9f8f0c30be75fd90a0562099a26e5839602ab8" @@ -1082,13 +1073,6 @@ resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b" integrity sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ== -"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": - version "5.1.1-v1" - resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" - integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg== - dependencies: - eslint-scope "5.1.1" - "@popperjs/core@2.5.3": version "2.5.3" resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.5.3.tgz#4982b0b66b7a4cf949b86f5d25a8cf757d3cfd9d" @@ -1585,6 +1569,13 @@ babel-plugin-polyfill-regenerator@^0.4.1: dependencies: "@babel/helper-define-polyfill-provider" "^0.3.3" +babel-plugin-syntax-hermes-parser@0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.15.1.tgz#d115ee9761a808af590a9b2a0b568115e25ea743" + integrity sha512-ohjBzUCCAJHB4uuE8IgVjmzC4u8xsFm3os52ctrWxX4HaDRP5IuyF+li1fkWmKkMyFQn3260WHZQtvSLcwe6ng== + dependencies: + hermes-parser "0.15.1" + balanced-match@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.2.0.tgz#38f6730c03aab6d5edbb52bd934885e756d71674" @@ -2202,12 +2193,12 @@ eslint-plugin-fb-flow@0.0.2: resolved "https://registry.yarnpkg.com/eslint-plugin-fb-flow/-/eslint-plugin-fb-flow-0.0.2.tgz#54a5d1699872863b86a79f19f39c3085bb65a517" integrity sha512-Wp5u0rGWLbufdv6rKUoa6A3/DWF1Tc19F762apVmBg2edVET4LjHIApsMl+LIzuRw767uTGF9BB9KuPtrakM0g== -eslint-plugin-flowtype@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.2.0.tgz#a4bef5dc18f9b2bdb41569a4ab05d73805a3d261" - integrity sha512-z7ULdTxuhlRJcEe1MVljePXricuPOrsWfScRXFhNzVD5dmTHWjIF57AxD0e7AbEoLSbjSsaA5S+hCg43WvpXJQ== +eslint-plugin-ft-flow@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-ft-flow/-/eslint-plugin-ft-flow-3.0.0.tgz#e9cbe4531089c2a85726928baa2d30d24d9af3b5" + integrity sha512-fz5ep5V2jh5aNBHoCKOdq+xxGenxYMfmOq8F6MUnFGyeEncJgV91O7mOWyKTZN0h/ofP+yW1CS7fZq8iEglNxw== dependencies: - lodash "^4.17.15" + lodash "^4.17.21" string-natural-compare "^3.0.1" eslint-plugin-import@2.22.0: @@ -2276,11 +2267,6 @@ eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== -eslint-visitor-keys@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - eslint@7.9.0: version "7.9.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.9.0.tgz#522aeccc5c3a19017cf0cb46ebfd660a79acf337" @@ -2736,6 +2722,39 @@ he@1.1.1: resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" integrity sha512-z/GDPjlRMNOa2XJiB4em8wJpuuBfrFOlYKTZxtpkdr1uPdibHI8rYA3MY0KDObpVyaes0e/aunid/t88ZI2EKA== +hermes-eslint@0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/hermes-eslint/-/hermes-eslint-0.16.0.tgz#f377e7e0260c82d687f4efedff4ae1a4a193359f" + integrity sha512-8EFCiVY5Sv7fYaje31HgaUIpe5DrRlx8luQ6Cgj9wyVpNpSMoVeoXHsWS2MEA4CHuWKItM1mACB5E4snBQxV/g== + dependencies: + esrecurse "^4.3.0" + hermes-estree "0.16.0" + hermes-parser "0.16.0" + +hermes-estree@0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.15.1.tgz#d06d4ddf87e91857b0130a083a9d7696d7aec61f" + integrity sha512-XrQH+GATG/8DYbzlrVs6Vf/EDxLhYEHXvzt/Xve4b/NXXpsNLDN8bdBEKp5z0XeOMoL1XMEexxIIf1a5bH6kYA== + +hermes-estree@0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.16.0.tgz#e2c76a1e9d5a4d620790b9fe05fb01f2d53da07d" + integrity sha512-XCoTuBU8S+Jg8nFzaqgy6pNEYo0WYkbMmuJldb3svzpJ2SNUYJDg28b1ltoDMo7k3YlJwPRg7ZS3JTWV3DkDZA== + +hermes-parser@0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.15.1.tgz#f02587be85228b22841d50f6839ae42a308e5100" + integrity sha512-38Re105dr4UZ0/EPRApWxtIOWWynQpdOYWO+7nFO8ADd2mXdaHKMCFAxIjkqACa1GLrAtrXqqaJdUYHi/QUbkA== + dependencies: + hermes-estree "0.15.1" + +hermes-parser@0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.16.0.tgz#92d0a34ff4f9b7ffcb04511dfed0cc19df5038e0" + integrity sha512-tdJJntb45DUpv8j7ybHfq8NfIQgz8AgaD+PVFyfjK+O+v2N5zbsSDtlvQN2uxCghoTkQL86BEs9oi8IPrUE9Pg== + dependencies: + hermes-estree "0.16.0" + hirestime@^0.2.4: version "0.2.4" resolved "https://registry.yarnpkg.com/hirestime/-/hirestime-0.2.4.tgz#761055940f853bd911f05a5dfcb2f0b625b03582" @@ -3355,7 +3374,7 @@ lodash.flattendeep@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" integrity sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ== -lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19: +lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== From bdb6fcf054e1ff85e55b5b51618bae02534584ea Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Wed, 12 Jul 2023 21:09:05 -0500 Subject: [PATCH 016/194] Upgrade Flow to 0.208.0 https://github.com/facebook/flow/releases/tag/v0.208.0 The following change has caused some new errors: "Flow will now error on unsupported statements in library definitions, instead of silently ignoring them." This affected root/vars.js, where we have some `function` definitions. These are not allowed in libdefs, apparently, or at least not anymore. That's an issue for us: we rely on `%checks` in order to refine the input types, and you can't otherwise use `%checks` in a function type (it requires a definition!). (Interestingly, the fact that `%checks` was working completely as intended prior to this Flow version contradicts their claim that it was silently ignored in the libdef before.) We're partially in luck, because there's a new "type guards" feature that can be used to refine function inputs in libdefs. However, it's experimental and appears to be buggy -- while I've made use of it here, I had to add a lot of `$FlowIssue` comments too. I believe the bugginess with type guards is fixed in later Flow versions, so I'll be able to remove these comments in a subsequent commit. --- .flowconfig | 1 + package.json | 2 +- root/components/PaginatedResults.js | 1 + root/components/list/ReleaseGroupList.js | 1 + .../common/components/Autocomplete2/formatters.js | 2 ++ .../static/scripts/common/components/ButtonPopover.js | 1 + root/static/scripts/common/components/CountryAbbr.js | 1 + root/static/scripts/common/components/EntityLink.js | 5 +++++ root/static/scripts/common/i18n/expand2.js | 3 +++ root/static/scripts/common/utility/bracketed.js | 2 ++ .../scripts/common/utility/groupRelationships.js | 1 + root/static/scripts/common/utility/nonEmpty.js | 4 ++-- root/static/scripts/edit/utility/diffArtistCredits.js | 1 + root/static/scripts/guess-case/utils.js | 3 +++ root/vars.js | 11 +++-------- yarn.lock | 8 ++++---- 16 files changed, 32 insertions(+), 15 deletions(-) diff --git a/.flowconfig b/.flowconfig index 6ad46ffaf80..ccc8b8742e7 100644 --- a/.flowconfig +++ b/.flowconfig @@ -22,6 +22,7 @@ unused-promise=error [options] autoimports=true exact_by_default=true +experimental.type_guards=true format.bracket_spacing=false format.single_quotes=true module.name_mapper.extension='less' -> '/root/flowstub.js.flow' diff --git a/package.json b/package.json index 12ddc3de811..6c9b6f5003d 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.20.6", "eslint-plugin-react-hooks": "4.1.2", "file-url": "2.0.2", - "flow-bin": "0.207.0", + "flow-bin": "0.208.0", "gettext-parser": "3.1.0", "hermes-eslint": "0.16.0", "http-proxy": "1.18.1", diff --git a/root/components/PaginatedResults.js b/root/components/PaginatedResults.js index d4049abc121..f8e1ab9c254 100644 --- a/root/components/PaginatedResults.js +++ b/root/components/PaginatedResults.js @@ -60,6 +60,7 @@ const PaginatedResults = ({ pager.total_entries, { n: formatCount($c, pager.total_entries), + // $FlowIssue q: query, }, ) diff --git a/root/components/list/ReleaseGroupList.js b/root/components/list/ReleaseGroupList.js index df01a3b82d4..63a40bccb18 100644 --- a/root/components/list/ReleaseGroupList.js +++ b/root/components/list/ReleaseGroupList.js @@ -63,6 +63,7 @@ export const ReleaseGroupListTable = ({ return '—'; } + // $FlowIssue return parseDate(entity.firstReleaseDate).year?.toString() ?? '—'; } diff --git a/root/static/scripts/common/components/Autocomplete2/formatters.js b/root/static/scripts/common/components/Autocomplete2/formatters.js index dcc6a880a75..266a22db42a 100644 --- a/root/static/scripts/common/components/Autocomplete2/formatters.js +++ b/root/static/scripts/common/components/Autocomplete2/formatters.js @@ -321,7 +321,9 @@ export function formatLinkTypePhrases(linkType: LinkTypeT): string { let linkPhrase = linkType.l_link_phrase; let reverseLinkPhrase = linkType.l_reverse_link_phrase; if (!empty(linkPhrase) && !empty(reverseLinkPhrase)) { + // $FlowIssue linkPhrase = stripAttributes(linkType, linkPhrase); + // $FlowIssue reverseLinkPhrase = stripAttributes(linkType, reverseLinkPhrase); if (linkPhrase === reverseLinkPhrase) { return linkPhrase; diff --git a/root/static/scripts/common/components/ButtonPopover.js b/root/static/scripts/common/components/ButtonPopover.js index 07ff28d4117..2c56ef451cf 100644 --- a/root/static/scripts/common/components/ButtonPopover.js +++ b/root/static/scripts/common/components/ButtonPopover.js @@ -90,6 +90,7 @@ const ButtonPopover = (props: PropsT): React$MixedElement => { const customButtonProps = buttonProps ? { id: buttonProps.id, title: nonEmpty(buttonProps.title) + // $FlowIssue ? unwrapNl(buttonProps.title) : undefined, className: buttonProps.className, diff --git a/root/static/scripts/common/components/CountryAbbr.js b/root/static/scripts/common/components/CountryAbbr.js index cd73e4e9aef..51bbc6c4428 100644 --- a/root/static/scripts/common/components/CountryAbbr.js +++ b/root/static/scripts/common/components/CountryAbbr.js @@ -26,6 +26,7 @@ const CountryAbbr = ({ return null; } const combinedClass = + // $FlowIssue ('flag flag-' + primaryCode) + (nonEmpty(className) ? (' ' + className) : ''); let content: React$MixedElement = ( diff --git a/root/static/scripts/common/components/EntityLink.js b/root/static/scripts/common/components/EntityLink.js index d4702b8b855..11a3c3c507a 100644 --- a/root/static/scripts/common/components/EntityLink.js +++ b/root/static/scripts/common/components/EntityLink.js @@ -217,13 +217,17 @@ $ReadOnlyArray | Expand2ReactOutput | null => { } if (entity.entityType === 'area') { + // $FlowIssue content = nonEmpty(content) ? content : localizeAreaName(entity); } else if (entity.entityType === 'instrument') { + // $FlowIssue content = nonEmpty(content) ? content : localizeInstrumentName(entity); } else if (entity.entityType === 'link_type') { + // $FlowIssue content = nonEmpty(content) ? content : l_relationships(entity.name); } + // $FlowIssue content = nonEmpty(content) ? content : ko.unwrap(entity.name); if (!ko.unwrap(entity.gid)) { @@ -235,6 +239,7 @@ $ReadOnlyArray | Expand2ReactOutput | null => { ); diff --git a/root/static/scripts/common/i18n/expand2.js b/root/static/scripts/common/i18n/expand2.js index d40d250ebae..454e5d21a3c 100644 --- a/root/static/scripts/common/i18n/expand2.js +++ b/root/static/scripts/common/i18n/expand2.js @@ -293,9 +293,11 @@ export default function expand<+T, V>( // Reset the global state. state.match = ''; state.position = 0; + // $FlowIssue state.remainder = source; state.replacement = NO_MATCH_VALUE; state.running = true; + // $FlowIssue state.source = source; let result; @@ -313,6 +315,7 @@ export default function expand<+T, V>( */ console.error(e); Sentry.captureException(e); + // $FlowIssue return source; } finally { if (savedState) { diff --git a/root/static/scripts/common/utility/bracketed.js b/root/static/scripts/common/utility/bracketed.js index 23ccd7ebe41..35f04f2018f 100644 --- a/root/static/scripts/common/utility/bracketed.js +++ b/root/static/scripts/common/utility/bracketed.js @@ -28,6 +28,7 @@ export default function bracketed( args?: Args, ): Expand2ReactOutput { if (nonEmpty(text)) { + // $FlowIssue return expand2react(_bracketed(args), {text}); } return ''; @@ -35,6 +36,7 @@ export default function bracketed( export function bracketedText(text: ?StrOrNum, args?: Args): string { if (nonEmpty(text)) { + // $FlowIssue return expand2text(_bracketed(args), {text}); } return ''; diff --git a/root/static/scripts/common/utility/groupRelationships.js b/root/static/scripts/common/utility/groupRelationships.js index ddcbb7792d2..7dda7848ca9 100644 --- a/root/static/scripts/common/utility/groupRelationships.js +++ b/root/static/scripts/common/utility/groupRelationships.js @@ -465,6 +465,7 @@ export default function groupRelationships( if (hasInstruments /*:: && nonEmpty(phrase) */) { phrase = exp.l('{role} (as {credited_name})', { credited_name: sourceCredit, + // $FlowIssue role: phrase, }); } diff --git a/root/static/scripts/common/utility/nonEmpty.js b/root/static/scripts/common/utility/nonEmpty.js index d4e66be3b08..5e9293c469a 100644 --- a/root/static/scripts/common/utility/nonEmpty.js +++ b/root/static/scripts/common/utility/nonEmpty.js @@ -8,10 +8,10 @@ */ // If you modify these, please do the same in root/vars.js -export function empty(value: mixed): boolean %checks { +export function empty(value: ?T | ''): value is ?'' { return !nonEmpty(value); } -export default function nonEmpty(value: mixed): boolean %checks { +export default function nonEmpty(value: ?T | ''): value is T { return value !== null && value !== undefined && value !== ''; } diff --git a/root/static/scripts/edit/utility/diffArtistCredits.js b/root/static/scripts/edit/utility/diffArtistCredits.js index 77addefc68c..787e46f6fdb 100644 --- a/root/static/scripts/edit/utility/diffArtistCredits.js +++ b/root/static/scripts/edit/utility/diffArtistCredits.js @@ -40,6 +40,7 @@ type ArtistLinkProps = { const ArtistLink = ({content, credit, nameVariation}: ArtistLinkProps) => ( credit.artist ? ( 1 && gc.CFG_KEEP_UPPERCASED) { outputString = uppercase; @@ -327,6 +328,7 @@ export function titleStringByMode( return ''; } + // $FlowIssue let outputString = guessCaseMode.toLowerCase(inputString); /* @@ -354,6 +356,7 @@ export function titleStringByMode( const chars = outputString.split(''); chars[0] = guessCaseMode.toUpperCase(chars[0]); + // $FlowIssue if (inputString.length > 2 && inputString.substring(0, 2) === 'mc') { // Make it McTitled chars[2] = guessCaseMode.toUpperCase(chars[2]); diff --git a/root/vars.js b/root/vars.js index 4633e5f492d..27dfc8f62c2 100644 --- a/root/vars.js +++ b/root/vars.js @@ -36,14 +36,9 @@ declare var hydrate: ( ) => React$AbstractComponent ); declare var hyphenateTitle: (title: string, subtitle: string) => string; -function nonEmptyFn(value: mixed): boolean %checks { - return value !== null && value !== undefined && value !== ''; -} -declare var nonEmpty: typeof nonEmptyFn; -function emptyFn(value: mixed): boolean %checks { - return !nonEmptyFn(value); -} -declare var empty: typeof emptyFn; + +declare var empty: (value: ?T | '') => value is ?''; +declare var nonEmpty: (value: ?T | '') => value is T; declare var l: (key: string) => string; declare var ln: (skey: string, pkey: string, val: number) => string; diff --git a/yarn.lock b/yarn.lock index 7acd9fa385b..38608a42b3d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2474,10 +2474,10 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flow-bin@0.207.0: - version "0.207.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.207.0.tgz#71c6a21214c57f3e36e03b32033dd0358452499b" - integrity sha512-jAet+lhdrvpk4kjonZ6r/v09rkyaPQX+E5gio+HesEBvsOsCWfnuadBRQZihTM4+szjJPWEkITfrCurI/aCqEQ== +flow-bin@0.208.0: + version "0.208.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.208.0.tgz#c498045414447c489da9576d95c94b517e734e5f" + integrity sha512-xUoQogaQXnixDRHnfOZkcx4BmLskn+lVN6bjFU6igjIHoZWfmzg0JYkmf9Z2rrMVUDtn+8f7shyjOpTAlFX7aQ== follow-redirects@^1.0.0: version "1.15.2" From fc46001648ac6e0af2cdd41e400c43d6a9635f0e Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Wed, 12 Jul 2023 21:21:27 -0500 Subject: [PATCH 017/194] Upgrade Flow to 0.208.1 https://github.com/facebook/flow/releases/tag/v0.208.1 No errors! --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 6c9b6f5003d..662e3da3ceb 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.20.6", "eslint-plugin-react-hooks": "4.1.2", "file-url": "2.0.2", - "flow-bin": "0.208.0", + "flow-bin": "0.208.1", "gettext-parser": "3.1.0", "hermes-eslint": "0.16.0", "http-proxy": "1.18.1", diff --git a/yarn.lock b/yarn.lock index 38608a42b3d..e108b1f77cc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2474,10 +2474,10 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flow-bin@0.208.0: - version "0.208.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.208.0.tgz#c498045414447c489da9576d95c94b517e734e5f" - integrity sha512-xUoQogaQXnixDRHnfOZkcx4BmLskn+lVN6bjFU6igjIHoZWfmzg0JYkmf9Z2rrMVUDtn+8f7shyjOpTAlFX7aQ== +flow-bin@0.208.1: + version "0.208.1" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.208.1.tgz#98390cc968980988d9c7ddbcf7233b53baa0b616" + integrity sha512-sr+gCnYg5UC/lbrCj/qO2GDSGzV75HDl8drEHX/Dpjr5gS+NYoFQ1r9C9ESAeYpakmiot/HPdKYOjCFtqUcsQA== follow-redirects@^1.0.0: version "1.15.2" From 3b303639f14eb30a3f2284af5693e3292d1d8793 Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Wed, 12 Jul 2023 22:08:39 -0500 Subject: [PATCH 018/194] Upgrade Flow to 0.209.0 https://github.com/facebook/flow/releases/tag/v0.209.0 It appears that some changes to indexed access caused a new "method-unbinding" error in root/static/scripts/guess-case/MB/GuessCase/Main.js. There have also been some changes to type guards which I'm not sure were documented. The definition for `empty` in nonEmpty.js started erroring due to `mixed` being incompatible with `''`. Changing the definition to check `value` directly fixed that. And while I was able to remove the `$FlowIssue`s I added in a previous commit, refinements for `nonEmpty` didn't work in some cases, so I had to change those cases to use `empty`. There are, however, many other uses of `nonEmpty` throughout our codebase where refinements do still work, so I'm not sure what triggers the non-working behavior. I've also tested a more recent version of Flow (0.212.0) and believe this bug is fixed; but none of the cases I changed are less clear with `empty`, so I won't be changing them back. --- package.json | 2 +- root/components/PaginatedResults.js | 1 - root/components/list/ReleaseGroupList.js | 1 - .../common/components/Autocomplete2/formatters.js | 2 -- .../scripts/common/components/ButtonPopover.js | 7 +++---- .../scripts/common/components/CountryAbbr.js | 1 - .../static/scripts/common/components/EntityLink.js | 13 ++++--------- root/static/scripts/common/i18n/expand2.js | 3 --- root/static/scripts/common/utility/bracketed.js | 14 ++++++-------- .../scripts/common/utility/groupRelationships.js | 3 +-- root/static/scripts/common/utility/nonEmpty.js | 2 +- .../scripts/edit/utility/diffArtistCredits.js | 3 +-- .../static/scripts/guess-case/MB/GuessCase/Main.js | 1 + root/static/scripts/guess-case/utils.js | 3 --- yarn.lock | 8 ++++---- 15 files changed, 22 insertions(+), 42 deletions(-) diff --git a/package.json b/package.json index 662e3da3ceb..e2f86b86871 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.20.6", "eslint-plugin-react-hooks": "4.1.2", "file-url": "2.0.2", - "flow-bin": "0.208.1", + "flow-bin": "0.209.0", "gettext-parser": "3.1.0", "hermes-eslint": "0.16.0", "http-proxy": "1.18.1", diff --git a/root/components/PaginatedResults.js b/root/components/PaginatedResults.js index f8e1ab9c254..d4049abc121 100644 --- a/root/components/PaginatedResults.js +++ b/root/components/PaginatedResults.js @@ -60,7 +60,6 @@ const PaginatedResults = ({ pager.total_entries, { n: formatCount($c, pager.total_entries), - // $FlowIssue q: query, }, ) diff --git a/root/components/list/ReleaseGroupList.js b/root/components/list/ReleaseGroupList.js index 63a40bccb18..df01a3b82d4 100644 --- a/root/components/list/ReleaseGroupList.js +++ b/root/components/list/ReleaseGroupList.js @@ -63,7 +63,6 @@ export const ReleaseGroupListTable = ({ return '—'; } - // $FlowIssue return parseDate(entity.firstReleaseDate).year?.toString() ?? '—'; } diff --git a/root/static/scripts/common/components/Autocomplete2/formatters.js b/root/static/scripts/common/components/Autocomplete2/formatters.js index 266a22db42a..dcc6a880a75 100644 --- a/root/static/scripts/common/components/Autocomplete2/formatters.js +++ b/root/static/scripts/common/components/Autocomplete2/formatters.js @@ -321,9 +321,7 @@ export function formatLinkTypePhrases(linkType: LinkTypeT): string { let linkPhrase = linkType.l_link_phrase; let reverseLinkPhrase = linkType.l_reverse_link_phrase; if (!empty(linkPhrase) && !empty(reverseLinkPhrase)) { - // $FlowIssue linkPhrase = stripAttributes(linkType, linkPhrase); - // $FlowIssue reverseLinkPhrase = stripAttributes(linkType, reverseLinkPhrase); if (linkPhrase === reverseLinkPhrase) { return linkPhrase; diff --git a/root/static/scripts/common/components/ButtonPopover.js b/root/static/scripts/common/components/ButtonPopover.js index 2c56ef451cf..55d38b0183f 100644 --- a/root/static/scripts/common/components/ButtonPopover.js +++ b/root/static/scripts/common/components/ButtonPopover.js @@ -89,10 +89,9 @@ const ButtonPopover = (props: PropsT): React$MixedElement => { const customButtonProps = buttonProps ? { id: buttonProps.id, - title: nonEmpty(buttonProps.title) - // $FlowIssue - ? unwrapNl(buttonProps.title) - : undefined, + title: empty(buttonProps.title) + ? undefined + : unwrapNl(buttonProps.title), className: buttonProps.className, } : null; diff --git a/root/static/scripts/common/components/CountryAbbr.js b/root/static/scripts/common/components/CountryAbbr.js index 51bbc6c4428..cd73e4e9aef 100644 --- a/root/static/scripts/common/components/CountryAbbr.js +++ b/root/static/scripts/common/components/CountryAbbr.js @@ -26,7 +26,6 @@ const CountryAbbr = ({ return null; } const combinedClass = - // $FlowIssue ('flag flag-' + primaryCode) + (nonEmpty(className) ? (' ' + className) : ''); let content: React$MixedElement = ( diff --git a/root/static/scripts/common/components/EntityLink.js b/root/static/scripts/common/components/EntityLink.js index 11a3c3c507a..6b9e1b1ba6d 100644 --- a/root/static/scripts/common/components/EntityLink.js +++ b/root/static/scripts/common/components/EntityLink.js @@ -217,18 +217,14 @@ $ReadOnlyArray | Expand2ReactOutput | null => { } if (entity.entityType === 'area') { - // $FlowIssue - content = nonEmpty(content) ? content : localizeAreaName(entity); + content = empty(content) ? localizeAreaName(entity) : content; } else if (entity.entityType === 'instrument') { - // $FlowIssue - content = nonEmpty(content) ? content : localizeInstrumentName(entity); + content = empty(content) ? localizeInstrumentName(entity) : content; } else if (entity.entityType === 'link_type') { - // $FlowIssue - content = nonEmpty(content) ? content : l_relationships(entity.name); + content = empty(content) ? l_relationships(entity.name) : content; } - // $FlowIssue - content = nonEmpty(content) ? content : ko.unwrap(entity.name); + content = empty(content) ? ko.unwrap(entity.name) : content; if (!ko.unwrap(entity.gid)) { if (entity.entityType === 'url') { @@ -239,7 +235,6 @@ $ReadOnlyArray | Expand2ReactOutput | null => { ); diff --git a/root/static/scripts/common/i18n/expand2.js b/root/static/scripts/common/i18n/expand2.js index 454e5d21a3c..d40d250ebae 100644 --- a/root/static/scripts/common/i18n/expand2.js +++ b/root/static/scripts/common/i18n/expand2.js @@ -293,11 +293,9 @@ export default function expand<+T, V>( // Reset the global state. state.match = ''; state.position = 0; - // $FlowIssue state.remainder = source; state.replacement = NO_MATCH_VALUE; state.running = true; - // $FlowIssue state.source = source; let result; @@ -315,7 +313,6 @@ export default function expand<+T, V>( */ console.error(e); Sentry.captureException(e); - // $FlowIssue return source; } finally { if (savedState) { diff --git a/root/static/scripts/common/utility/bracketed.js b/root/static/scripts/common/utility/bracketed.js index 35f04f2018f..b835920667e 100644 --- a/root/static/scripts/common/utility/bracketed.js +++ b/root/static/scripts/common/utility/bracketed.js @@ -27,17 +27,15 @@ export default function bracketed( text: ?VarSubstArg, args?: Args, ): Expand2ReactOutput { - if (nonEmpty(text)) { - // $FlowIssue - return expand2react(_bracketed(args), {text}); + if (empty(text)) { + return ''; } - return ''; + return expand2react(_bracketed(args), {text}); } export function bracketedText(text: ?StrOrNum, args?: Args): string { - if (nonEmpty(text)) { - // $FlowIssue - return expand2text(_bracketed(args), {text}); + if (empty(text)) { + return ''; } - return ''; + return expand2text(_bracketed(args), {text}); } diff --git a/root/static/scripts/common/utility/groupRelationships.js b/root/static/scripts/common/utility/groupRelationships.js index 7dda7848ca9..d79c04358fe 100644 --- a/root/static/scripts/common/utility/groupRelationships.js +++ b/root/static/scripts/common/utility/groupRelationships.js @@ -462,10 +462,9 @@ export default function groupRelationships( role: textPhrase, }); - if (hasInstruments /*:: && nonEmpty(phrase) */) { + if (hasInstruments /*:: && !empty(phrase) */) { phrase = exp.l('{role} (as {credited_name})', { credited_name: sourceCredit, - // $FlowIssue role: phrase, }); } diff --git a/root/static/scripts/common/utility/nonEmpty.js b/root/static/scripts/common/utility/nonEmpty.js index 5e9293c469a..aa3fa3b7046 100644 --- a/root/static/scripts/common/utility/nonEmpty.js +++ b/root/static/scripts/common/utility/nonEmpty.js @@ -9,7 +9,7 @@ // If you modify these, please do the same in root/vars.js export function empty(value: ?T | ''): value is ?'' { - return !nonEmpty(value); + return value === null || value === undefined || value === ''; } export default function nonEmpty(value: ?T | ''): value is T { diff --git a/root/static/scripts/edit/utility/diffArtistCredits.js b/root/static/scripts/edit/utility/diffArtistCredits.js index 787e46f6fdb..cbf7bdbdcca 100644 --- a/root/static/scripts/edit/utility/diffArtistCredits.js +++ b/root/static/scripts/edit/utility/diffArtistCredits.js @@ -40,8 +40,7 @@ type ArtistLinkProps = { const ArtistLink = ({content, credit, nameVariation}: ArtistLinkProps) => ( credit.artist ? ( diff --git a/root/static/scripts/guess-case/MB/GuessCase/Main.js b/root/static/scripts/guess-case/MB/GuessCase/Main.js index 9f395783d6a..6158d781817 100644 --- a/root/static/scripts/guess-case/MB/GuessCase/Main.js +++ b/root/static/scripts/guess-case/MB/GuessCase/Main.js @@ -154,6 +154,7 @@ class GuessCase { // if it was not a special case, start guessing // eslint-disable-next-line multiline-comment-style // $FlowIgnore[prop-missing] + // $FlowIgnore[method-unbinding] : handler[method].apply(handler, arguments); return output; diff --git a/root/static/scripts/guess-case/utils.js b/root/static/scripts/guess-case/utils.js index 48448f58988..0aeb77ea409 100644 --- a/root/static/scripts/guess-case/utils.js +++ b/root/static/scripts/guess-case/utils.js @@ -227,7 +227,6 @@ export function titleString( let uppercase = guessCaseMode.toUpperCase(inputString); if (inputString === uppercase && - // $FlowIssue inputString.length > 1 && gc.CFG_KEEP_UPPERCASED) { outputString = uppercase; @@ -328,7 +327,6 @@ export function titleStringByMode( return ''; } - // $FlowIssue let outputString = guessCaseMode.toLowerCase(inputString); /* @@ -356,7 +354,6 @@ export function titleStringByMode( const chars = outputString.split(''); chars[0] = guessCaseMode.toUpperCase(chars[0]); - // $FlowIssue if (inputString.length > 2 && inputString.substring(0, 2) === 'mc') { // Make it McTitled chars[2] = guessCaseMode.toUpperCase(chars[2]); diff --git a/yarn.lock b/yarn.lock index e108b1f77cc..06c03d0f4ae 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2474,10 +2474,10 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flow-bin@0.208.1: - version "0.208.1" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.208.1.tgz#98390cc968980988d9c7ddbcf7233b53baa0b616" - integrity sha512-sr+gCnYg5UC/lbrCj/qO2GDSGzV75HDl8drEHX/Dpjr5gS+NYoFQ1r9C9ESAeYpakmiot/HPdKYOjCFtqUcsQA== +flow-bin@0.209.0: + version "0.209.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.209.0.tgz#616a002b94ef35e1b083add9a6d27dbe387bf4f0" + integrity sha512-HRc6+bKE8AN23SnuKaxdUjcQcjaIp6pksrGJ6pltFO5tIEvZmPrbT99P7Yb3ybqwcKU/Ry8yfJbuW92Ed2V3nw== follow-redirects@^1.0.0: version "1.15.2" From cb3314272ea5d349ab810765ec78ee7729ac0a3f Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Wed, 12 Jul 2023 22:35:41 -0500 Subject: [PATCH 019/194] Upgrade Flow to 0.210.0 https://github.com/facebook/flow/releases/tag/v0.210.0 No errors, except that the 'experimental' prefix was removed from the type guards config option. --- .flowconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.flowconfig b/.flowconfig index ccc8b8742e7..79db2a47562 100644 --- a/.flowconfig +++ b/.flowconfig @@ -22,11 +22,11 @@ unused-promise=error [options] autoimports=true exact_by_default=true -experimental.type_guards=true format.bracket_spacing=false format.single_quotes=true module.name_mapper.extension='less' -> '/root/flowstub.js.flow' react.runtime=automatic +type_guards=true [strict] nonstrict-import From e83dd84f0f037406bb28f839c97b652cd7076c24 Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Wed, 12 Jul 2023 22:37:06 -0500 Subject: [PATCH 020/194] Upgrade Flow to 0.210.1 https://github.com/facebook/flow/releases/tag/v0.210.1 No errors! --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index e2f86b86871..fd933a7c864 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.20.6", "eslint-plugin-react-hooks": "4.1.2", "file-url": "2.0.2", - "flow-bin": "0.209.0", + "flow-bin": "0.210.1", "gettext-parser": "3.1.0", "hermes-eslint": "0.16.0", "http-proxy": "1.18.1", diff --git a/yarn.lock b/yarn.lock index 06c03d0f4ae..e1d78d3bf68 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2474,10 +2474,10 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flow-bin@0.209.0: - version "0.209.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.209.0.tgz#616a002b94ef35e1b083add9a6d27dbe387bf4f0" - integrity sha512-HRc6+bKE8AN23SnuKaxdUjcQcjaIp6pksrGJ6pltFO5tIEvZmPrbT99P7Yb3ybqwcKU/Ry8yfJbuW92Ed2V3nw== +flow-bin@0.210.1: + version "0.210.1" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.210.1.tgz#6a1bfce86a220eb355c0e4ec8614af7b4404da43" + integrity sha512-7GRivQiVBlDAIb4lGvePYJ7x8AIk/dpFLuZW3PxigcGSXMHVMKUY0qReykES2OK/B16sqJMeDV7OKHmAFut+qQ== follow-redirects@^1.0.0: version "1.15.2" From 3d3e6ce2caf3f36a6264cfd584985b6e125dcff3 Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Wed, 12 Jul 2023 22:38:07 -0500 Subject: [PATCH 021/194] Upgrade Flow to 0.210.2 https://github.com/facebook/flow/releases/tag/v0.210.2 No errors! --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index fd933a7c864..f30810da508 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.20.6", "eslint-plugin-react-hooks": "4.1.2", "file-url": "2.0.2", - "flow-bin": "0.210.1", + "flow-bin": "0.210.2", "gettext-parser": "3.1.0", "hermes-eslint": "0.16.0", "http-proxy": "1.18.1", diff --git a/yarn.lock b/yarn.lock index e1d78d3bf68..44caec82745 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2474,10 +2474,10 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flow-bin@0.210.1: - version "0.210.1" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.210.1.tgz#6a1bfce86a220eb355c0e4ec8614af7b4404da43" - integrity sha512-7GRivQiVBlDAIb4lGvePYJ7x8AIk/dpFLuZW3PxigcGSXMHVMKUY0qReykES2OK/B16sqJMeDV7OKHmAFut+qQ== +flow-bin@0.210.2: + version "0.210.2" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.210.2.tgz#22a8d2a4daf7b2bfc19d48ada9678368452a67c3" + integrity sha512-Y+jw+Cspah6C5ex7/oAnj8iMrcK0F0J3hoQldl/gLhl9uQoLWg/mfEIhgoeL8/BwXmN96VtVcmHx2iLr28Gn5A== follow-redirects@^1.0.0: version "1.15.2" From a54e63776e1487c004b081a0154fc020e7e030df Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Wed, 12 Jul 2023 22:38:54 -0500 Subject: [PATCH 022/194] Upgrade Flow to 0.211.0 https://github.com/facebook/flow/releases/tag/v0.211.0 No errors! --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index f30810da508..c963c51ddb5 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.20.6", "eslint-plugin-react-hooks": "4.1.2", "file-url": "2.0.2", - "flow-bin": "0.210.2", + "flow-bin": "0.211.0", "gettext-parser": "3.1.0", "hermes-eslint": "0.16.0", "http-proxy": "1.18.1", diff --git a/yarn.lock b/yarn.lock index 44caec82745..401aed54970 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2474,10 +2474,10 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flow-bin@0.210.2: - version "0.210.2" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.210.2.tgz#22a8d2a4daf7b2bfc19d48ada9678368452a67c3" - integrity sha512-Y+jw+Cspah6C5ex7/oAnj8iMrcK0F0J3hoQldl/gLhl9uQoLWg/mfEIhgoeL8/BwXmN96VtVcmHx2iLr28Gn5A== +flow-bin@0.211.0: + version "0.211.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.211.0.tgz#63b1317dec690989cd386016253506d4d62dbc0f" + integrity sha512-zgHi0QfggHPK86NqNm2eHJo0rXlfnog8SpxjCtBBTEwpalyuk1DrzMe4Z6geq5ibXmo3MwPbFNC0FxXybgiJ6A== follow-redirects@^1.0.0: version "1.15.2" From 240fe2ca45b52bd8180e6c98eb8b49a3d7f2559c Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Wed, 12 Jul 2023 22:39:50 -0500 Subject: [PATCH 023/194] Upgrade Flow to 0.211.1 https://github.com/facebook/flow/releases/tag/v0.211.1 No errors! --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index c963c51ddb5..c20595ef1c0 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.20.6", "eslint-plugin-react-hooks": "4.1.2", "file-url": "2.0.2", - "flow-bin": "0.211.0", + "flow-bin": "0.211.1", "gettext-parser": "3.1.0", "hermes-eslint": "0.16.0", "http-proxy": "1.18.1", diff --git a/yarn.lock b/yarn.lock index 401aed54970..d802ea7e651 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2474,10 +2474,10 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flow-bin@0.211.0: - version "0.211.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.211.0.tgz#63b1317dec690989cd386016253506d4d62dbc0f" - integrity sha512-zgHi0QfggHPK86NqNm2eHJo0rXlfnog8SpxjCtBBTEwpalyuk1DrzMe4Z6geq5ibXmo3MwPbFNC0FxXybgiJ6A== +flow-bin@0.211.1: + version "0.211.1" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.211.1.tgz#97f98acb695a1195f02e56ee9de78015666f2d7d" + integrity sha512-cydJtraQRY9p2+MX1pWISzgEUE5pDgoJVr3HLLQE4/MPaJ6tT94WvGsR2QorKoOBgriHTJJRzz+5ieDumSYhKw== follow-redirects@^1.0.0: version "1.15.2" From 25d7252f3a0ae46aa97a6a86a6b4297c4e377368 Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Wed, 12 Jul 2023 22:40:30 -0500 Subject: [PATCH 024/194] Upgrade Flow to 0.212.0 https://github.com/facebook/flow/releases/tag/v0.212.0 No errors! --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index c20595ef1c0..43c6076f94b 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.20.6", "eslint-plugin-react-hooks": "4.1.2", "file-url": "2.0.2", - "flow-bin": "0.211.1", + "flow-bin": "0.212.0", "gettext-parser": "3.1.0", "hermes-eslint": "0.16.0", "http-proxy": "1.18.1", diff --git a/yarn.lock b/yarn.lock index d802ea7e651..27ec3079522 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2474,10 +2474,10 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flow-bin@0.211.1: - version "0.211.1" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.211.1.tgz#97f98acb695a1195f02e56ee9de78015666f2d7d" - integrity sha512-cydJtraQRY9p2+MX1pWISzgEUE5pDgoJVr3HLLQE4/MPaJ6tT94WvGsR2QorKoOBgriHTJJRzz+5ieDumSYhKw== +flow-bin@0.212.0: + version "0.212.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.212.0.tgz#6ec26d4a26cbfe1e4e02a85cce87a1b08903b804" + integrity sha512-RbKhEsMoorfWbKca/Zdd8j5mQFTbnP5I3Q5vzR2ReVfMQUb5RaV8R9ejKeZzoq/nDf6UreXRTNjnffYJVmn4Fw== follow-redirects@^1.0.0: version "1.15.2" From 3393fe88da3fea5de99d1916a76f7db323d316d4 Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Mon, 7 Aug 2023 11:07:18 -0500 Subject: [PATCH 025/194] Upgrade Flow to 0.213.0 https://github.com/facebook/flow/releases/tag/v0.213.0 No errors! --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 43c6076f94b..cf9ff77d699 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.20.6", "eslint-plugin-react-hooks": "4.1.2", "file-url": "2.0.2", - "flow-bin": "0.212.0", + "flow-bin": "0.213.0", "gettext-parser": "3.1.0", "hermes-eslint": "0.16.0", "http-proxy": "1.18.1", diff --git a/yarn.lock b/yarn.lock index 27ec3079522..4024d22fc9a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2474,10 +2474,10 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flow-bin@0.212.0: - version "0.212.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.212.0.tgz#6ec26d4a26cbfe1e4e02a85cce87a1b08903b804" - integrity sha512-RbKhEsMoorfWbKca/Zdd8j5mQFTbnP5I3Q5vzR2ReVfMQUb5RaV8R9ejKeZzoq/nDf6UreXRTNjnffYJVmn4Fw== +flow-bin@0.213.0: + version "0.213.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.213.0.tgz#02a85537cce3ea1f61bff77e7995a49a1db2e963" + integrity sha512-adGcPA3jiz3l0MM4zHVxVUgatvYsDowjT7cje7AvY38z/M0HO2YKcGLRp2xeqbigCgaqXEV6V3/1TaRDVjR++A== follow-redirects@^1.0.0: version "1.15.2" From ffb7b4a72a3d6b346d6b95148d6bdd45db83552e Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Mon, 7 Aug 2023 11:08:56 -0500 Subject: [PATCH 026/194] Upgrade Flow to 0.213.1 https://github.com/facebook/flow/releases/tag/v0.213.1 No erors! --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index cf9ff77d699..96d90d39613 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.20.6", "eslint-plugin-react-hooks": "4.1.2", "file-url": "2.0.2", - "flow-bin": "0.213.0", + "flow-bin": "0.213.1", "gettext-parser": "3.1.0", "hermes-eslint": "0.16.0", "http-proxy": "1.18.1", diff --git a/yarn.lock b/yarn.lock index 4024d22fc9a..4b8c816eed6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2474,10 +2474,10 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flow-bin@0.213.0: - version "0.213.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.213.0.tgz#02a85537cce3ea1f61bff77e7995a49a1db2e963" - integrity sha512-adGcPA3jiz3l0MM4zHVxVUgatvYsDowjT7cje7AvY38z/M0HO2YKcGLRp2xeqbigCgaqXEV6V3/1TaRDVjR++A== +flow-bin@0.213.1: + version "0.213.1" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.213.1.tgz#194a3b17aa19d6fb8319bc5e067b8fdd93cc0449" + integrity sha512-ptyG+RmHbWx9KEElAdxdLOrZ/qKc3m/aIB6VG0ExH7BEuJ2ruK5rdUfzuC329b9QFtbawjpW2jLGeiFHBdmBvQ== follow-redirects@^1.0.0: version "1.15.2" From 437d39963a1ecbc37f49a74d844257647d99b48f Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Mon, 7 Aug 2023 13:19:12 -0500 Subject: [PATCH 027/194] Upgrade Flow to 0.214.0 https://github.com/facebook/flow/releases/tag/v0.214.0 The following changes caused some new errors that needed to be resolved: * "Flow now has stricter behavior with $Call, $ObjMap, $ObjMapi, $ObjMapConst, $TupleMap. Previously hidden type errors might be revealed now." I resolved this by being more explicit with certain type parameters and making use of mapped types in createField.js. * "You can no longer disable tuple_ehancements, conditional_type, mapped_type, type_guards in flowconfig, since these options have been removed. They were enabled by default since v0.212.0." I resolved this by removing the `type_guards=true` line in .flowconfig. --- .flowconfig | 1 - package.json | 2 +- .../account/components/EditProfileForm.js | 42 ++++++++++++++----- .../components/CollectionEditForm.js | 5 ++- .../scripts/edit/utility/createField.js | 15 ++++--- root/static/scripts/edit/utility/pushField.js | 2 +- root/static/scripts/work/edit.js | 5 ++- yarn.lock | 8 ++-- 8 files changed, 54 insertions(+), 26 deletions(-) diff --git a/.flowconfig b/.flowconfig index 79db2a47562..6ad46ffaf80 100644 --- a/.flowconfig +++ b/.flowconfig @@ -26,7 +26,6 @@ format.bracket_spacing=false format.single_quotes=true module.name_mapper.extension='less' -> '/root/flowstub.js.flow' react.runtime=automatic -type_guards=true [strict] nonstrict-import diff --git a/package.json b/package.json index 96d90d39613..183cefd0939 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.20.6", "eslint-plugin-react-hooks": "4.1.2", "file-url": "2.0.2", - "flow-bin": "0.213.1", + "flow-bin": "0.214.0", "gettext-parser": "3.1.0", "hermes-eslint": "0.16.0", "http-proxy": "1.18.1", diff --git a/root/static/scripts/account/components/EditProfileForm.js b/root/static/scripts/account/components/EditProfileForm.js index 5b2d4a5ab9e..34745a9c4fc 100644 --- a/root/static/scripts/account/components/EditProfileForm.js +++ b/root/static/scripts/account/components/EditProfileForm.js @@ -35,12 +35,17 @@ type AreaClassT = { name: string, }; -type UserLanguageFieldT = CompoundFieldT<{ - +fluency: FieldT, - +language_id: FieldT, +type UserLanguageFieldT = ReadOnlyCompoundFieldT<{ + +fluency: ReadOnlyFieldT, + +language_id: ReadOnlyFieldT, }>; -type EditProfileFormT = FormT<{ +type WritableUserLanguageFieldT = CompoundFieldT<{ + fluency: FieldT, + language_id: FieldT, +}>; + +type EditProfileFormFieldsT = { +area: AreaFieldT, +area_id: FieldT, +biography: FieldT, @@ -51,6 +56,13 @@ type EditProfileFormT = FormT<{ +languages: RepeatableFieldT, +username: FieldT, +website: FieldT, +}; + +type EditProfileFormT = FormT; + +type WritableEditProfileFormT = FormT<{ + ...EditProfileFormFieldsT, + languages: RepeatableFieldT, }>; type Props = { @@ -59,10 +71,15 @@ type Props = { }; type State = { - form: EditProfileFormT, + +form: EditProfileFormT, +languageOptions: MaybeGroupedOptionsT, }; +type WritableState = { + form: WritableEditProfileFormT, + +language_options: MaybeGroupedOptionsT, +}; + const genderOptions = { grouped: false, options: [ @@ -95,7 +112,7 @@ class EditProfileForm extends React.Component { handleAreaChangeBound: (area: AreaClassT) => void; handleAreaChange(area: AreaClassT) { - this.setState(prevState => mutate(prevState, newState => { + this.setState(prevState => mutate(prevState, newState => { const formField = newState.form.field; formField.area_id.value = area.id; formField.area.field.name.value = area.name; @@ -107,7 +124,7 @@ class EditProfileForm extends React.Component { handleGenderChange(e: SyntheticEvent) { const selectedGender = e.currentTarget.value; - this.setState(prevState => mutate(prevState, newState => { + this.setState(prevState => mutate(prevState, newState => { newState.form.field.gender_id.value = parseInt(selectedGender, 10); })); } @@ -117,7 +134,7 @@ class EditProfileForm extends React.Component { languageIndex: number, ) { const selectedLanguage = parseInt(e.currentTarget.value, 10); - this.setState(prevState => mutate(prevState, newState => { + this.setState(prevState => mutate(prevState, newState => { const compound = newState.form.field.languages.field[languageIndex]; compound.field.language_id.value = selectedLanguage; })); @@ -136,7 +153,7 @@ class EditProfileForm extends React.Component { case 'native': selectedFluency = selectedValue; } - this.setState(prevState => mutate(prevState, newState => { + this.setState(prevState => mutate(prevState, newState => { const compound = newState.form.field.languages.field[languageIndex]; compound.field.fluency.value = selectedFluency; })); @@ -151,8 +168,11 @@ class EditProfileForm extends React.Component { handleLanguageAddBound: () => void; handleLanguageAdd() { - this.setState(prevState => mutate(prevState, newState => { - pushCompoundField(newState.form.field.languages, { + this.setState(prevState => mutate(prevState, newState => { + pushCompoundField<{ + fluency: FluencyT | null, + language_id: number | null, + }>(newState.form.field.languages, { fluency: null, language_id: null, }); diff --git a/root/static/scripts/collection/components/CollectionEditForm.js b/root/static/scripts/collection/components/CollectionEditForm.js index c2bbe49caf3..0c418c01ad0 100644 --- a/root/static/scripts/collection/components/CollectionEditForm.js +++ b/root/static/scripts/collection/components/CollectionEditForm.js @@ -93,7 +93,10 @@ function addCollaborator( collaborators, (copy: WritableCollaboratorsStateT) => { const name = copy.html_name + '.' + String(++copy.last_index); - const field = createCompoundFieldFromObject(name, { + const field = createCompoundFieldFromObject<{ + id: ?number, + name: string, + }>(name, { id: null, name: '', }); diff --git a/root/static/scripts/edit/utility/createField.js b/root/static/scripts/edit/utility/createField.js index c5d57368a5b..d561a768eb5 100644 --- a/root/static/scripts/edit/utility/createField.js +++ b/root/static/scripts/edit/utility/createField.js @@ -15,18 +15,21 @@ */ let LAST_FIELD_ID = 99999; -export type MapFields = $ObjMap(T) => FieldT>; +export type MapFields = {[K in keyof F]: FieldT}; export function createCompoundFieldFromObject< - F: {[fieldValueKey: string]: mixed, ...}, + F: {...}, >( name: string, fieldValues: F, ): CompoundFieldT> { - const field: MapFields = {}; - for (const key in fieldValues) { - field[key] = createField(name + '.' + key, fieldValues[key]); - } + // $FlowIssue[incompatible-type] + const field: MapFields = Object.fromEntries( + Object.entries(fieldValues).map(([key, value]) => [ + key, + createField(name + '.' + key, value), + ]) + ); return { errors: [], field, diff --git a/root/static/scripts/edit/utility/pushField.js b/root/static/scripts/edit/utility/pushField.js index aaf5213bc09..3bb30b5ffdf 100644 --- a/root/static/scripts/edit/utility/pushField.js +++ b/root/static/scripts/edit/utility/pushField.js @@ -26,7 +26,7 @@ export function pushField( } export function pushCompoundField( - repeatable: RepeatableFieldT>>>, + repeatable: RepeatableFieldT>>, fieldValues: F, ) { const name = repeatable.html_name + '.' + String(++repeatable.last_index); diff --git a/root/static/scripts/work/edit.js b/root/static/scripts/work/edit.js index 741baecbd56..2b12ed3aebe 100644 --- a/root/static/scripts/work/edit.js +++ b/root/static/scripts/work/edit.js @@ -279,7 +279,10 @@ function byID( const attributes = form.field.attributes; if (!attributes.field.length) { form = mutate(form, newForm => { - pushCompoundField(newForm.field.attributes, { + pushCompoundField<{ + +type_id: ?number, + +value: ?StrOrNum, + }>(newForm.field.attributes, { type_id: null, value: null, }); diff --git a/yarn.lock b/yarn.lock index 4b8c816eed6..483c0d56ab6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2474,10 +2474,10 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flow-bin@0.213.1: - version "0.213.1" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.213.1.tgz#194a3b17aa19d6fb8319bc5e067b8fdd93cc0449" - integrity sha512-ptyG+RmHbWx9KEElAdxdLOrZ/qKc3m/aIB6VG0ExH7BEuJ2ruK5rdUfzuC329b9QFtbawjpW2jLGeiFHBdmBvQ== +flow-bin@0.214.0: + version "0.214.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.214.0.tgz#3ace7984a69309392e056f96cf3bf8623fa93d1c" + integrity sha512-rPexleFynYsxsBAPHqRvCIqzcRZ9KkPjlFbuOATmFlHyG6vdy9V+SWPYdzBtgsfhGbj9PZ14pzv1zzgNd7rmvQ== follow-redirects@^1.0.0: version "1.15.2" From 75988ebe2c18ec7fccbcc77830bf63233d35c0b2 Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Mon, 7 Aug 2023 14:00:38 -0500 Subject: [PATCH 028/194] Regenerate yarn.lock rm -rf yarn.lock node_modules && yarn --- yarn.lock | 1761 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 990 insertions(+), 771 deletions(-) diff --git a/yarn.lock b/yarn.lock index 483c0d56ab6..aa88b7868ca 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,12 +2,17 @@ # yarn lockfile v1 +"@aashutoshrathi/word-wrap@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== + "@ampproject/remapping@^2.1.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" - integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== + version "2.2.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== dependencies: - "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" "@babel/cli@7.19.3": @@ -26,17 +31,18 @@ "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" chokidar "^3.4.0" -"@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== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.22.13": + version "7.22.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" + integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== dependencies: - "@babel/highlight" "^7.18.6" + "@babel/highlight" "^7.22.13" + chalk "^2.4.2" -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.0", "@babel/compat-data@^7.20.1": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.1.tgz#f2e6ef7790d8c8dbf03d379502dcc246dcce0b30" - integrity sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ== +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.9": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.20.tgz#8df6e96661209623f1975d66c35ffca66f3306d0" + integrity sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw== "@babel/core@7.20.2": version "7.20.2" @@ -59,68 +65,72 @@ json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.20.1", "@babel/generator@^7.20.2", "@babel/generator@^7.4.0": - version "7.20.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.4.tgz#4d9f8f0c30be75fd90a0562099a26e5839602ab8" - integrity sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA== +"@babel/generator@^7.20.2", "@babel/generator@^7.23.0", "@babel/generator@^7.4.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" + integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== dependencies: - "@babel/types" "^7.20.2" + "@babel/types" "^7.23.0" "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@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== +"@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" + integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== dependencies: - "@babel/types" "^7.18.6" + "@babel/types" "^7.22.5" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": - 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== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956" + integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== dependencies: - "@babel/helper-explode-assignable-expression" "^7.18.6" - "@babel/types" "^7.18.9" + "@babel/types" "^7.22.15" "@babel/helper-builder-react-jsx@^7.18.6": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.19.0.tgz#a1f4fef805388eda4b3c1bd8994dc585b0afa351" - integrity sha512-xvrbORmJ13lWrqyMErk4vczhXNNWdOSg1BZ+R/7D34SjDjToR5g3M5UpD6MyUekstI50qAHLWA1j7w5o1WK2Pw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/types" "^7.19.0" - -"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz#6bf5374d424e1b3922822f1d9bdaa43b1a139d0a" - integrity sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ== - dependencies: - "@babel/compat-data" "^7.20.0" - "@babel/helper-validator-option" "^7.18.6" - browserslist "^4.21.3" - semver "^6.3.0" - -"@babel/helper-create-class-features-plugin@^7.18.6": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.2.tgz#3c08a5b5417c7f07b5cf3dfb6dc79cbec682e8c2" - integrity sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-member-expression-to-functions" "^7.18.9" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.19.1" - "@babel/helper-split-export-declaration" "^7.18.6" - -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz#7976aca61c0984202baca73d84e2337a5424a41b" - integrity sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - regexpu-core "^5.1.0" + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.22.10.tgz#591b1b44a80eb16123b46ad55e9ba42335d6f103" + integrity sha512-cZr0nzCwrMp7Z8owt+YN8OncOqhG1eZLp/aRT5ftBnkLJTCB3Dnq/t52vSfWc6sGRWdDeawbksuh3pYQGCzVwA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/types" "^7.22.10" + +"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.20.0", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" + integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== + dependencies: + "@babel/compat-data" "^7.22.9" + "@babel/helper-validator-option" "^7.22.15" + browserslist "^4.21.9" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4" + integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.15" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" + integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + regexpu-core "^5.3.1" + semver "^6.3.1" "@babel/helper-define-polyfill-provider@^0.3.3": version "0.3.3" @@ -134,186 +144,172 @@ resolve "^1.14.2" semver "^6.1.2" -"@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-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.22.20", "@babel/helper-environment-visitor@^7.22.5": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== -"@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== +"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== dependencies: - "@babel/types" "^7.18.6" + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" -"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" - integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== dependencies: - "@babel/template" "^7.18.10" - "@babel/types" "^7.19.0" + "@babel/types" "^7.22.5" -"@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== +"@babel/helper-member-expression-to-functions@^7.22.15": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" + integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== dependencies: - "@babel/types" "^7.18.6" + "@babel/types" "^7.23.0" -"@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== +"@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== dependencies: - "@babel/types" "^7.18.9" + "@babel/types" "^7.22.15" -"@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== +"@babel/helper-module-transforms@^7.20.2", "@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz#3ec246457f6c842c0aee62a01f60739906f7047e" + integrity sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw== dependencies: - "@babel/types" "^7.18.6" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.20" -"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.6", "@babel/helper-module-transforms@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz#ac53da669501edd37e658602a21ba14c08748712" - integrity sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA== +"@babel/helper-optimise-call-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" + integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.20.2" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.19.1" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.2" + "@babel/types" "^7.22.5" -"@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.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.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.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" - integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== +"@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.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" + integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== -"@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== +"@babel/helper-remap-async-to-generator@^7.18.9", "@babel/helper-remap-async-to-generator@^7.22.5": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" + integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-wrap-function" "^7.18.9" - "@babel/types" "^7.18.9" + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-wrap-function" "^7.22.20" -"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz#e1592a9b4b368aa6bdb8784a711e0bcbf0612b78" - integrity sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw== +"@babel/helper-replace-supers@^7.22.5", "@babel/helper-replace-supers@^7.22.9": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" + integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== dependencies: - "@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.19.1" - "@babel/types" "^7.19.0" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-member-expression-to-functions" "^7.22.15" + "@babel/helper-optimise-call-expression" "^7.22.5" -"@babel/helper-simple-access@^7.19.4", "@babel/helper-simple-access@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" - integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== dependencies: - "@babel/types" "^7.20.2" + "@babel/types" "^7.22.5" -"@babel/helper-skip-transparent-expression-wrappers@^7.18.9": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" - integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== +"@babel/helper-skip-transparent-expression-wrappers@^7.18.9", "@babel/helper-skip-transparent-expression-wrappers@^7.20.0", "@babel/helper-skip-transparent-expression-wrappers@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" + integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== dependencies: - "@babel/types" "^7.20.0" + "@babel/types" "^7.22.5" -"@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== +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== dependencies: - "@babel/types" "^7.18.6" + "@babel/types" "^7.22.5" -"@babel/helper-string-parser@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" - integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== +"@babel/helper-string-parser@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" + integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== + +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== -"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== +"@babel/helper-validator-option@^7.18.6", "@babel/helper-validator-option@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" + integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== -"@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.18.9": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz#89f18335cff1152373222f76a4b37799636ae8b1" - integrity sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg== +"@babel/helper-wrap-function@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569" + integrity sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw== dependencies: - "@babel/helper-function-name" "^7.19.0" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.0" - "@babel/types" "^7.19.0" + "@babel/helper-function-name" "^7.22.5" + "@babel/template" "^7.22.15" + "@babel/types" "^7.22.19" "@babel/helpers@^7.20.1": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.1.tgz#2ab7a0fcb0a03b5bf76629196ed63c2d7311f4c9" - integrity sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg== + version "7.23.1" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.1.tgz#44e981e8ce2b9e99f8f0b703f3326a4636c16d15" + integrity sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA== dependencies: - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.0" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.0" + "@babel/types" "^7.23.0" -"@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== +"@babel/highlight@^7.22.13": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" + integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.18.10", "@babel/parser@^7.20.1", "@babel/parser@^7.20.2", "@babel/parser@^7.4.3", "@babel/parser@^7.5.5": - version "7.20.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.3.tgz#5358cf62e380cf69efcb87a7bb922ff88bfac6e2" - integrity sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg== +"@babel/parser@^7.20.2", "@babel/parser@^7.22.15", "@babel/parser@^7.23.0", "@babel/parser@^7.4.3", "@babel/parser@^7.5.5": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" + integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== "@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== + version "7.22.15" + 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.22.15.tgz#02dc8a03f613ed5fdc29fb2f728397c78146c962" + integrity sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" "@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== + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz#2aeb91d337d4e1a1e7ce85b76a37f5301781200f" + integrity sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ== dependencies: - "@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/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.22.15" "@babel/plugin-proposal-async-generator-functions@^7.20.1": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz#352f02baa5d69f4e7529bdac39aaa02d41146af9" - integrity sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g== + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" + integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== dependencies: "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/helper-remap-async-to-generator" "^7.18.9" "@babel/plugin-syntax-async-generators" "^7.8.4" @@ -326,12 +322,12 @@ "@babel/helper-plugin-utils" "^7.18.6" "@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== + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz#77bdd66fb7b605f3a61302d224bdfacf5547977d" + integrity sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.21.0" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-proposal-dynamic-import@^7.18.6": @@ -359,11 +355,11 @@ "@babel/plugin-syntax-json-strings" "^7.8.3" "@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== + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" + integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-proposal-nullish-coalescing-operator@7.18.6", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": @@ -383,15 +379,15 @@ "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-proposal-object-rest-spread@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz#a556f59d555f06961df1e572bb5eca864c84022d" - integrity sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ== + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" + integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== dependencies: - "@babel/compat-data" "^7.20.1" - "@babel/helper-compilation-targets" "^7.20.0" + "@babel/compat-data" "^7.20.5" + "@babel/helper-compilation-targets" "^7.20.7" "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.20.1" + "@babel/plugin-transform-parameters" "^7.20.7" "@babel/plugin-proposal-optional-catch-binding@^7.18.6": version "7.18.6" @@ -401,7 +397,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@7.18.9", "@babel/plugin-proposal-optional-chaining@^7.18.9": +"@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== @@ -410,6 +406,15 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" "@babel/plugin-syntax-optional-chaining" "^7.8.3" +"@babel/plugin-proposal-optional-chaining@^7.18.9": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" + integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@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" @@ -419,13 +424,13 @@ "@babel/helper-plugin-utils" "^7.18.6" "@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== + version "7.21.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz#69d597086b6760c4126525cfa154f34631ff272c" + integrity sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw== dependencies: "@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/helper-create-class-features-plugin" "^7.21.0" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": @@ -471,19 +476,19 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-flow@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz#774d825256f2379d06139be0c723c4dd444f3ca1" - integrity sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A== +"@babel/plugin-syntax-flow@^7.18.6", "@babel/plugin-syntax-flow@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz#163b820b9e7696ce134df3ee716d9c0c98035859" + integrity sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-import-assertions@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" - integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz#07d252e2aa0bc6125567f742cd58619cb14dce98" + integrity sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg== dependencies: - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" @@ -493,11 +498,11 @@ "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-jsx@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" - integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" + integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" @@ -556,88 +561,89 @@ "@babel/helper-plugin-utils" "^7.14.5" "@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== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz#e5ba566d0c58a5b2ba2a8b795450641950b71958" + integrity sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" "@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== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz#c7a85f44e46f8952f6d27fe57c2ed3cc084c3775" + integrity sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ== dependencies: - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-remap-async-to-generator" "^7.18.6" + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.5" "@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== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz#27978075bfaeb9fa586d3cb63a3d30c1de580024" + integrity sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-block-scoping@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.2.tgz#f59b1767e6385c663fd0bce655db6ca9c8b236ed" - integrity sha512-y5V15+04ry69OV2wULmwhEA6jwSWXO1TwAtIwiPXcvHcoOQUqpyMVd2bDsQJMW8AurjulIyUV8kDqtjSwHy1uQ== + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz#8744d02c6c264d82e1a4bc5d2d501fd8aff6f022" + integrity sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-classes@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz#c0033cf1916ccf78202d04be4281d161f6709bb2" - integrity sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-compilation-targets" "^7.20.0" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-replace-supers" "^7.19.1" - "@babel/helper-split-export-declaration" "^7.18.6" + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz#aaf4753aee262a232bbc95451b4bdf9599c65a0b" + integrity sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.9" + "@babel/helper-split-export-declaration" "^7.22.6" globals "^11.1.0" "@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== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz#cd1e994bf9f316bd1c2dafcd02063ec261bb3869" + integrity sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/template" "^7.22.5" "@babel/plugin-transform-destructuring@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz#c23741cfa44ddd35f5e53896e88c75331b8b2792" - integrity sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw== + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz#6447aa686be48b32eaf65a73e0e2c0bd010a266c" + integrity sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.22.5" "@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== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165" + integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" "@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== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz#b6e6428d9416f5f0bba19c70d1e6e7e0b88ab285" + integrity sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" "@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== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz#402432ad544a1f9a480da865fda26be653e48f6a" + integrity sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-flow-strip-types@7.19.0", "@babel/plugin-transform-flow-strip-types@^7.18.6": +"@babel/plugin-transform-flow-strip-types@7.19.0": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.19.0.tgz#e9e8606633287488216028719638cbbb2f2dde8f" integrity sha512-sgeMlNaQVbCSpgLSKP4ZZKfsJVnFnNQlUSk6gPYzR/q7tzCgQF2t8RBKAP6cKJeZdveei7Q7Jm527xepI8lNLg== @@ -645,107 +651,124 @@ "@babel/helper-plugin-utils" "^7.19.0" "@babel/plugin-syntax-flow" "^7.18.6" +"@babel/plugin-transform-flow-strip-types@^7.18.6": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.22.5.tgz#0bb17110c7bf5b35a60754b2f00c58302381dee2" + integrity sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-flow" "^7.22.5" + "@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== + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz#f64b4ccc3a4f131a996388fae7680b472b306b29" + integrity sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" "@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== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz#935189af68b01898e0d6d99658db6b164205c143" + integrity sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg== dependencies: - "@babel/helper-compilation-targets" "^7.18.9" - "@babel/helper-function-name" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-compilation-targets" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" "@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== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz#e9341f4b5a167952576e23db8d435849b1dd7920" + integrity sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" "@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== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz#4fcc9050eded981a468347dd374539ed3e058def" + integrity sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-modules-amd@^7.19.6": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz#aca391801ae55d19c4d8d2ebfeaa33df5f2a2cbd" - integrity sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg== + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz#05b2bc43373faa6d30ca89214731f76f966f3b88" + integrity sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw== dependencies: - "@babel/helper-module-transforms" "^7.19.6" - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-module-transforms" "^7.23.0" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-modules-commonjs@^7.19.6": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz#25b32feef24df8038fc1ec56038917eacb0b730c" - integrity sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ== + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz#b3dba4757133b2762c00f4f94590cf6d52602481" + integrity sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ== dependencies: - "@babel/helper-module-transforms" "^7.19.6" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/helper-simple-access" "^7.19.4" + "@babel/helper-module-transforms" "^7.23.0" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" "@babel/plugin-transform-modules-systemjs@^7.19.6": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz#59e2a84064b5736a4471b1aa7b13d4431d327e0d" - integrity sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ== + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz#77591e126f3ff4132a40595a6cccd00a6b60d160" + integrity sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg== dependencies: - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-module-transforms" "^7.19.6" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/helper-validator-identifier" "^7.19.1" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-module-transforms" "^7.23.0" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" "@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== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz#4694ae40a87b1745e3775b6a7fe96400315d4f98" + integrity sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ== dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-named-capturing-groups-regex@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz#ec7455bab6cd8fb05c525a94876f435a48128888" - integrity sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" + integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.19.0" - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" "@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== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz#1b248acea54ce44ea06dfd37247ba089fcf9758d" + integrity sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" "@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== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz#794a8d2fcb5d0835af722173c1a9d704f44e218c" + integrity sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.5" -"@babel/plugin-transform-parameters@^7.20.1": - version "7.20.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.3.tgz#7b3468d70c3c5b62e46be0a47b6045d8590fb748" - integrity sha512-oZg/Fpx0YDrj13KsLyO8I/CX3Zdw7z0O9qOd95SqcoIzuqy/WTGWvePeHAnZCN54SfdyjHcb1S30gc8zlzlHcA== +"@babel/plugin-transform-optional-chaining@^7.22.15": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz#73ff5fc1cf98f542f09f29c0631647d8ad0be158" + integrity sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.20.1", "@babel/plugin-transform-parameters@^7.20.7": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz#719ca82a01d177af358df64a514d64c2e3edb114" + integrity sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" "@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== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz#b5ddabd73a4f7f26cd0e20f5db48290b88732766" + integrity sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-react-constant-elements@7.20.2": version "7.20.2" @@ -774,19 +797,19 @@ "@babel/types" "^7.19.0" "@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== + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz#8ceef3bd7375c4db7652878b0241b2be5d0c3cca" + integrity sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - regenerator-transform "^0.15.0" + "@babel/helper-plugin-utils" "^7.22.5" + regenerator-transform "^0.15.2" "@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== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz#832cd35b81c287c4bcd09ce03e22199641f964fb" + integrity sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-runtime@7.19.6": version "7.19.6" @@ -801,55 +824,55 @@ semver "^6.3.0" "@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== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz#6e277654be82b5559fc4b9f58088507c24f0c624" + integrity sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-spread@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz#dd60b4620c2fec806d60cfaae364ec2188d593b6" - integrity sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz#6487fd29f229c95e284ba6c98d65eafb893fea6b" + integrity sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg== dependencies: - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@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== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz#295aba1595bfc8197abd02eae5fc288c0deb26aa" + integrity sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" "@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== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz#8f38cf291e5f7a8e60e9f733193f0bcc10909bff" + integrity sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" "@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== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz#5e2ba478da4b603af8673ff7c54f75a97b716b34" + integrity sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" "@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== + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz#c723f380f40a2b2f57a62df24c9005834c8616d9" + integrity sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.22.5" "@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== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz#ce7e7bb3ef208c4ff67e02a22816656256d7a183" + integrity sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/preset-env@7.20.2": version "7.20.2" @@ -942,9 +965,9 @@ "@babel/plugin-transform-flow-strip-types" "^7.18.6" "@babel/preset-modules@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" - integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== + version "0.1.6" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6.tgz#31bcdd8f19538437339d17af00d177d854d9d458" + integrity sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" @@ -963,45 +986,57 @@ pirates "^4.0.5" source-map-support "^0.5.16" -"@babel/runtime@7.20.1", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== + +"@babel/runtime@7.20.1": version "7.20.1" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.1.tgz#1148bb33ab252b165a06698fde7576092a78b4a9" integrity sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg== dependencies: regenerator-runtime "^0.13.10" -"@babel/template@^7.18.10", "@babel/template@^7.4.0": - 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.10" - "@babel/types" "^7.18.10" - -"@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.20.1", "@babel/traverse@^7.4.3": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.1.tgz#9b15ccbf882f6d107eeeecf263fbcdd208777ec8" - integrity sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.1" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.20.1" - "@babel/types" "^7.20.0" +"@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": + version "7.23.1" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.1.tgz#72741dc4d413338a91dcb044a86f3c0bc402646d" + integrity sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.18.10", "@babel/template@^7.22.15", "@babel/template@^7.22.5", "@babel/template@^7.4.0": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" + +"@babel/traverse@^7.20.1", "@babel/traverse@^7.23.0", "@babel/traverse@^7.4.3": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.0.tgz#18196ddfbcf4ccea324b7f6d3ada00d8c5a99c53" + integrity sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.0" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.23.0" + "@babel/types" "^7.23.0" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.4.0", "@babel/types@^7.4.4": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.2.tgz#67ac09266606190f496322dbaff360fdaa5e7842" - integrity sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog== +"@babel/types@^7.19.0", "@babel/types@^7.20.2", "@babel/types@^7.22.10", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" + integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== dependencies: - "@babel/helper-string-parser" "^7.19.4" - "@babel/helper-validator-identifier" "^7.19.1" + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" "@eslint/eslintrc@^0.1.3": @@ -1020,53 +1055,45 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" -"@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/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== + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== dependencies: "@jridgewell/set-array" "^1.0.1" "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/resolve-uri@3.1.0": - 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/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== -"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": +"@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" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" - integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== +"@jridgewell/source-map@^0.3.3": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91" + integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ== dependencies: "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": - 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/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.14", "@jridgewell/trace-mapping@^0.3.8", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.17" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" - integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.8", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.19" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" + integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" "@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3": version "2.1.8-no-fsevents.3" @@ -1157,25 +1184,25 @@ tslib "^1.9.3" "@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== + version "3.7.5" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.5.tgz#e28b09dbb1d9d35fdfa8a884225f00440dfc5a3e" + integrity sha512-JNvhIEyxVW6EoMIFIvj93ZOywYFatlpu9deeH6eSx6PE3WHYvHaQtmHmQeNw7aA81bYGBPPQqdtBm6b1SsQMmA== dependencies: "@types/eslint" "*" "@types/estree" "*" "@types/eslint@*": - version "8.4.10" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.10.tgz#19731b9685c19ed1552da7052b6f668ed7eb64bb" - integrity sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw== + version "8.44.3" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.3.tgz#96614fae4875ea6328f56de38666f582d911d962" + integrity sha512-iM/WfkwAhwmPff3wZuPLYiHX18HI24jU8k1ZSH7P8FHwxTjZ2P6CoX2wnF43oprR+YXJM6UUxATkNvyv/JHd+g== 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== + version "1.0.2" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.2.tgz#ff02bc3dc8317cd668dfec247b750ba1f1d62453" + integrity sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA== "@types/estree@^0.0.51": version "0.0.51" @@ -1183,9 +1210,9 @@ integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== "@types/json-schema@*", "@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== + version "7.0.13" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.13.tgz#02c24f4363176d2d18fc8b70b9f3c54aba178a85" + integrity sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ== "@types/json5@^0.0.29": version "0.0.29" @@ -1193,9 +1220,9 @@ integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/node@*": - version "18.11.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.9.tgz#02d013de7058cea16d36168ef2fc653464cfbad4" - integrity sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg== + version "20.8.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.8.2.tgz#d76fb80d87d0d8abfe334fc6d292e83e5524efc4" + integrity sha512-Vvycsc9FQdwhxE3y3DzeIxuEJbWGDsnrxvMADzTDF/lcdR9/K+AQIeAghTQsHtotg/q0j3WEOYS/jQgSdWue3w== "@webassemblyjs/ast@1.11.1": version "1.11.1" @@ -1334,9 +1361,9 @@ abbrev@1: integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== 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== + version "1.9.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== acorn-jsx@^5.3.1: version "5.3.2" @@ -1348,10 +1375,10 @@ acorn@^7.4.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.4.1, acorn@^8.5.0: - version "8.8.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" - integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== +acorn@^8.4.1, acorn@^8.8.2: + version "8.10.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" + integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== agent-base@^4.3.0: version "4.3.0" @@ -1372,7 +1399,7 @@ ajv-keywords@^3.5.2: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv-keywords@^5.0.0: +ajv-keywords@^5.1.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== @@ -1389,10 +1416,10 @@ ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.8.0: - version "8.11.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.2.tgz#aecb20b50607acf2569b6382167b65a96008bb78" - integrity sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg== +ajv@^8.0.0, ajv@^8.9.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -1460,9 +1487,9 @@ any-promise@^1.0.0: integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" @@ -1486,47 +1513,73 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" + array-find-index@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" integrity sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw== array-includes@^3.1.1: - version "3.1.6" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" - integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== + version "3.1.7" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" + integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.3" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" is-string "^1.0.7" array.prototype.flat@^1.2.3: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" - integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" array.prototype.flatmap@^1.2.3: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" - integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" +arraybuffer.prototype.slice@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" + integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + is-array-buffer "^3.0.2" + is-shared-array-buffer "^1.0.2" + astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + babel-loader@9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-9.1.0.tgz#839e9ae88aea930864ef9ec0f356dfca96ecf238" @@ -1611,15 +1664,15 @@ braces@~3.0.2: dependencies: fill-range "^7.0.1" -browserslist@^4.14.5, browserslist@^4.21.3, browserslist@^4.21.4: - version "4.21.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" - integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== +browserslist@^4.14.5, browserslist@^4.21.9, browserslist@^4.22.1: + version "4.22.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.1.tgz#ba91958d1a59b87dab6fed8dfbcb3da5e2e9c619" + integrity sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ== dependencies: - caniuse-lite "^1.0.30001400" - electron-to-chromium "^1.4.251" - node-releases "^2.0.6" - update-browserslist-db "^1.0.9" + caniuse-lite "^1.0.30001541" + electron-to-chromium "^1.4.535" + node-releases "^2.0.13" + update-browserslist-db "^1.0.13" buffer-from@^1.0.0: version "1.1.2" @@ -1690,10 +1743,10 @@ camelcase@^5.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caniuse-lite@^1.0.30001400: - version "1.0.30001431" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz#e7c59bd1bc518fae03a4656be442ce6c4887a795" - integrity sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ== +caniuse-lite@^1.0.30001541: + version "1.0.30001546" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001546.tgz#10fdad03436cfe3cc632d3af7a99a0fb497407f0" + integrity sha512-zvtSJwuQFpewSyRrI3AsftF6rM0X80mZkChIt1spBGEvRglCrjTniXvinc8JKRoqTwXAgvqTImaN9igfSMtUBw== canonical-json@0.0.4: version "0.0.4" @@ -1708,7 +1761,7 @@ center-align@^0.1.1: align-text "^0.1.3" lazy-cache "^1.0.3" -chalk@^2.0.0, chalk@^2.3.2: +chalk@^2.3.2, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -1886,11 +1939,11 @@ copy-anything@^2.0.1: is-what "^3.14.1" core-js-compat@^3.25.1: - version "3.26.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.26.1.tgz#0e710b09ebf689d719545ac36e49041850f943df" - integrity sha512-622/KzTudvXCDLRw70iHW4KKs1aGpcRcowGWyYJr2DEBfRrd6hNJybxSWJFuZYD4ma86xhrwDDHxmDaIq4EA8A== + version "3.33.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.33.0.tgz#24aa230b228406450b2277b7c8bfebae932df966" + integrity sha512-0w4LcLXsVEuNkIqwjjf9rjCoPhK8uqA4tMRh4Ge26vfLtUutshn+aRJU21I9LCJlh2QQHfisNToLjw1XEJLTWw== dependencies: - browserslist "^4.21.4" + browserslist "^4.22.1" core-js@3.6.5: version "3.6.5" @@ -1985,11 +2038,21 @@ default-require-extensions@^2.0.0: dependencies: strip-bom "^3.0.0" -define-properties@^1.1.2, 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== +define-data-property@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.0.tgz#0db13540704e1d8d479a0656cf781267531b9451" + integrity sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g== + dependencies: + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + +define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== dependencies: + define-data-property "^1.0.1" has-property-descriptors "^1.0.0" object-keys "^1.1.1" @@ -2049,10 +2112,10 @@ duplexer@^0.1.1: resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== -electron-to-chromium@^1.4.251: - version "1.4.284" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" - integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== +electron-to-chromium@^1.4.535: + version "1.4.543" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.543.tgz#51116ffc9fba1ee93514d6a40d34676aa6d7d1c4" + integrity sha512-t2ZP4AcGE0iKCCQCBx/K2426crYdxD3YU6l0uK2EO3FZH0pbC4pFz/sZm2ruZsND6hQBTcDWWlo/MLpiOdif5g== emoji-regex@^7.0.1: version "7.0.3" @@ -2067,19 +2130,20 @@ encoding@^0.1.11, encoding@^0.1.12: iconv-lite "^0.6.2" enhanced-resolve@^5.9.3: - version "5.10.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz#0dc579c3bb2a1032e357ac45b8f3a6f3ad4fb1e6" - integrity sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ== + version "5.15.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" + integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" enquirer@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + version "2.4.1" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" + integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== dependencies: ansi-colors "^4.1.1" + strip-ansi "^6.0.1" errno@^0.1.1: version "0.1.8" @@ -2095,41 +2159,65 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.19.0, es-abstract@^1.20.4, es-abstract@^1.5.0: - version "1.20.4" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861" - integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA== +es-abstract@^1.22.1, es-abstract@^1.5.0: + version "1.22.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.2.tgz#90f7282d91d0ad577f505e423e52d4c1d93c1b8a" + integrity sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA== dependencies: + array-buffer-byte-length "^1.0.0" + arraybuffer.prototype.slice "^1.0.2" + available-typed-arrays "^1.0.5" call-bind "^1.0.2" + es-set-tostringtag "^2.0.1" es-to-primitive "^1.2.1" - function-bind "^1.1.1" - function.prototype.name "^1.1.5" - get-intrinsic "^1.1.3" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.1" get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" has "^1.0.3" has-property-descriptors "^1.0.0" + has-proto "^1.0.1" has-symbols "^1.0.3" - internal-slot "^1.0.3" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" is-callable "^1.2.7" is-negative-zero "^2.0.2" is-regex "^1.1.4" is-shared-array-buffer "^1.0.2" is-string "^1.0.7" + is-typed-array "^1.1.12" is-weakref "^1.0.2" - object-inspect "^1.12.2" + object-inspect "^1.12.3" object-keys "^1.1.1" object.assign "^4.1.4" - regexp.prototype.flags "^1.4.3" + regexp.prototype.flags "^1.5.1" + safe-array-concat "^1.0.1" safe-regex-test "^1.0.0" - string.prototype.trimend "^1.0.5" - string.prototype.trimstart "^1.0.5" + string.prototype.trim "^1.2.8" + string.prototype.trimend "^1.0.7" + string.prototype.trimstart "^1.0.7" + typed-array-buffer "^1.0.0" + typed-array-byte-length "^1.0.0" + typed-array-byte-offset "^1.0.0" + typed-array-length "^1.0.4" unbox-primitive "^1.0.2" + which-typed-array "^1.1.11" 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== +es-set-tostringtag@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" + integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + has-tostringtag "^1.0.0" + es-shim-unscopables@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" @@ -2174,17 +2262,18 @@ escape-string-regexp@^1.0.5: integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== eslint-import-resolver-node@^0.3.3: - version "0.3.6" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" - integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== + version "0.3.9" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== dependencies: debug "^3.2.7" - resolve "^1.20.0" + is-core-module "^2.13.0" + resolve "^1.22.4" eslint-module-utils@^2.6.0: - version "2.7.4" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" - integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== + version "2.8.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" + integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== dependencies: debug "^3.2.7" @@ -2325,9 +2414,9 @@ esprima@^4.0.0: integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" @@ -2480,11 +2569,11 @@ flow-bin@0.214.0: integrity sha512-rPexleFynYsxsBAPHqRvCIqzcRZ9KkPjlFbuOATmFlHyG6vdy9V+SWPYdzBtgsfhGbj9PZ14pzv1zzgNd7rmvQ== follow-redirects@^1.0.0: - version "1.15.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" - integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + version "1.15.3" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" + integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== -for-each@~0.3.2: +for-each@^0.3.3, for-each@~0.3.2: version "0.3.3" resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== @@ -2510,31 +2599,31 @@ fs.realpath@^1.0.0: integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== function-bind@^1.0.2, function-bind@^1.1.1, function-bind@~1.1.0: version "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== +function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== -functions-have-names@^1.2.2: +functions-have-names@^1.2.3: 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== @@ -2556,13 +2645,14 @@ get-caller-file@^2.0.1: 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.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== dependencies: function-bind "^1.1.1" has "^1.0.3" + has-proto "^1.0.1" has-symbols "^1.0.3" get-stdin@^4.0.1: @@ -2654,10 +2744,24 @@ globals@^12.1.0: dependencies: type-fest "^0.8.1" +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.2.4, 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== + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== "graceful-readlink@>= 1.0.0": version "1.0.1" @@ -2691,6 +2795,11 @@ has-property-descriptors@^1.0.0: dependencies: get-intrinsic "^1.1.1" +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + 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" @@ -2704,11 +2813,9 @@ has-tostringtag@^1.0.0: has-symbols "^1.0.2" has@^1.0.3, has@~1.0.1: - 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" + version "1.0.4" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" + integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== hasha@^3.0.0: version "3.0.0" @@ -2867,12 +2974,12 @@ inherits@2, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -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== +internal-slot@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== dependencies: - get-intrinsic "^1.1.0" + get-intrinsic "^1.2.0" has "^1.0.3" side-channel "^1.0.4" @@ -2881,6 +2988,15 @@ interpret@^1.0.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -2918,10 +3034,10 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.9.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" - integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== +is-core-module@^2.13.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" + integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== dependencies: has "^1.0.3" @@ -3012,6 +3128,13 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" +is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: + version "1.1.12" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" + integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== + dependencies: + which-typed-array "^1.1.11" + is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" @@ -3039,6 +3162,11 @@ isarray@^1.0.0, isarray@~1.0.0: resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -3120,9 +3248,9 @@ jquery@1.11.2: integrity sha512-jebe4XYv2S9CZ6RPj705j6yriQHm05BOJa9urxeji7Rq1fxBOwdjYTqJsLOAE9vNwDGIOsa/WmIQv6Q1glOyWg== jquery@>=1.2.6: - version "3.6.1" - resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.1.tgz#fab0408f8b45fc19f956205773b62b292c147a16" - integrity sha512-opJeO4nCucVnsjiXOE+/PcCgYw9Gwpvs/a6B1LL/lQhwWwpbVEVYDZ1FokFr8PRc7ghYlrFPuyHuiiDNTQxmcw== + version "3.7.1" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.7.1.tgz#083ef98927c9a6a74d05a6af02806566d16274de" + integrity sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" @@ -3179,17 +3307,17 @@ json5@2.1.3: dependencies: minimist "^1.2.5" -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== +json5@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== dependencies: minimist "^1.2.0" json5@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" - integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== jsx-ast-utils@^2.4.1: version "2.4.1" @@ -3222,9 +3350,9 @@ kind-of@^6.0.2: integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== klona@^2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc" - integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ== + version "2.0.6" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" + integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== "knockout-arraytransforms@https://github.com/mwiencek/knockout-arraytransforms.git#9673e91": version "2.1.1" @@ -3407,6 +3535,13 @@ lru-cache@^4.0.1: pseudomap "^1.0.2" yallist "^2.1.2" +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" @@ -3497,14 +3632,14 @@ minimist@1.2.0: integrity sha512-7Wl+Jz+IGWuSdgsQEJ4JunV0si/iMhg42MnQQG6h1R6TNeVenp4U9x5CC5v/gYqz/fENLQITAWXidNtVL0NNbw== minimist@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.2.2.tgz#2592640f29a3e60863175b95b48c9e51f5050afe" - integrity sha512-g92kDfAOAszDRtHNagjZPPI/9lfOFaRBL/Ud6Z0RKZua/x+49awTydZLh5Gkhb80Xy5hmcvZNLGzscW5n5yd0g== + version "0.2.4" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.2.4.tgz#0085d5501e29033748a2f2a4da0180142697a475" + integrity sha512-Pkrrm8NjyQ8yVt8Am9M+yUt74zE3iokhzbG1bFVNjLB92vwM71hf40RkEsryg98BujhVOncKm/C1xROxZ030LQ== minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@~1.2.0: - version "1.2.7" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" - integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== mkdirp@^0.5.0, mkdirp@^0.5.1: version "0.5.6" @@ -3566,10 +3701,10 @@ nested-error-stacks@^2.0.0: resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz#26c8a3cee6cc05fbcf1e333cd2fc3e003326c0b5" integrity sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw== -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== +node-releases@^2.0.13: + version "2.0.13" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" + integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== nodemon@2.0.20: version "2.0.20" @@ -3658,10 +3793,10 @@ object-assign@^4.0.1, object-assign@^4.1.1: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.12.2, 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-inspect@^1.12.3, object-inspect@^1.9.0: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== object-inspect@~1.2.2: version "1.2.2" @@ -3684,31 +3819,31 @@ object.assign@^4.1.0, object.assign@^4.1.4: object-keys "^1.1.1" object.entries@^1.1.2: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23" - integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w== + version "1.1.7" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.7.tgz#2b47760e2a2e3a752f39dd874655c61a7f03c131" + integrity sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" object.fromentries@^2.0.2: - version "2.0.6" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" - integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== + version "2.0.7" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" + integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" object.values@^1.1.1: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" - integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== + version "1.1.7" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" + integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" once@^1.3.0: version "1.4.0" @@ -3718,16 +3853,16 @@ once@^1.3.0: wrappy "1" optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + version "0.9.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== dependencies: + "@aashutoshrathi/word-wrap" "^1.2.3" deep-is "^0.1.3" fast-levenshtein "^2.0.6" levn "^0.4.1" prelude-ls "^1.2.1" type-check "^0.4.0" - word-wrap "^1.2.3" os-homedir@^1.0.1: version "1.0.2" @@ -3904,9 +4039,9 @@ path-type@^3.0.0: pify "^3.0.0" pg-connection-string@^2.3.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.5.0.tgz#538cadd0f7e603fc09a12590f3b8a452c2c0cf34" - integrity sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ== + version "2.6.2" + resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.2.tgz#713d82053de4e2bd166fab70cd4f26ad36aab475" + integrity sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA== pg-cursor@2.3.3: version "2.3.3" @@ -3919,14 +4054,14 @@ pg-int8@1.0.1: integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== pg-pool@^3.2.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.5.2.tgz#ed1bed1fb8d79f1c6fd5fb1c99e990fbf9ddf178" - integrity sha512-His3Fh17Z4eg7oANLob6ZvH8xIVen3phEZh2QuyrIl4dQSDVEabNducv6ysROKpDNPSD+12tONZVWfSgMvDD9w== + version "3.6.1" + resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.6.1.tgz#5a902eda79a8d7e3c928b77abf776b3cb7d351f7" + integrity sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og== pg-protocol@^1.2.5: - version "1.5.0" - resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.5.0.tgz#b5dd452257314565e2d54ab3c132adc46565a6a0" - integrity sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ== + version "1.6.0" + resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.0.tgz#4c91613c0315349363af2084608db843502f8833" + integrity sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q== pg-types@^2.1.0: version "2.2.0" @@ -3998,9 +4133,9 @@ pinkie@^2.0.0: integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== pirates@^4.0.1, pirates@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== pkg-dir@^3.0.0: version "3.0.0" @@ -4111,11 +4246,16 @@ pstree.remy@^1.1.8: resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== -punycode@2.1.1, punycode@^2.1.0: +punycode@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +punycode@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + querystring@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" @@ -4233,9 +4373,9 @@ readable-stream@2.2.9: string_decoder "~0.10.x" readable-stream@^3.0.6, readable-stream@^3.5.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" @@ -4252,9 +4392,9 @@ readable-stream@~1.1.11: string_decoder "~0.10.x" readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -4294,9 +4434,9 @@ redux@4.2.0: "@babel/runtime" "^7.9.2" regenerate-unicode-properties@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" - integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== + version "10.1.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" + integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== dependencies: regenerate "^1.4.2" @@ -4310,44 +4450,44 @@ regenerator-runtime@^0.13.10: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== -regenerator-transform@^0.15.0: - version "0.15.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" - integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== +regenerator-runtime@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" + integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== dependencies: "@babel/runtime" "^7.8.4" -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== +regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" + integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - functions-have-names "^1.2.2" + define-properties "^1.2.0" + set-function-name "^2.0.0" regexpp@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -regexpu-core@^5.1.0: - version "5.2.2" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.2.2.tgz#3e4e5d12103b64748711c3aad69934d7718e75fc" - integrity sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw== +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== dependencies: + "@babel/regjsgen" "^0.8.0" regenerate "^1.4.2" regenerate-unicode-properties "^10.1.0" - regjsgen "^0.7.1" regjsparser "^0.9.1" unicode-match-property-ecmascript "^2.0.0" unicode-match-property-value-ecmascript "^2.1.0" -regjsgen@^0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.7.1.tgz#ee5ef30e18d3f09b7c369b76e7c2373ed25546f6" - integrity sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA== - regjsparser@^0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" @@ -4399,12 +4539,12 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.20.0: - version "1.22.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.22.4: + version "1.22.6" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.6.tgz#dd209739eca3aef739c626fea1b4f3c506195362" + integrity sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw== dependencies: - is-core-module "^2.9.0" + is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -4443,6 +4583,16 @@ rimraf@^2.6.2, rimraf@^2.6.3: dependencies: glob "^7.1.3" +safe-array-concat@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" + integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + isarray "^2.0.5" + safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" @@ -4468,9 +4618,9 @@ safe-regex-test@^1.0.0: integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sax@>=0.6.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== + version "1.3.0" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.3.0.tgz#a5dbe77db3be05c9d1ee7785dbd3ea9de51593d0" + integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA== scheduler@^0.22.0: version "0.22.0" @@ -4480,23 +4630,23 @@ scheduler@^0.22.0: loose-envify "^1.1.0" schema-utils@^3.0.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== + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== dependencies: "@types/json-schema" "^7.0.8" 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== + version "4.2.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b" + integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== dependencies: "@types/json-schema" "^7.0.9" - ajv "^8.8.0" + ajv "^8.9.0" ajv-formats "^2.1.1" - ajv-keywords "^5.0.0" + ajv-keywords "^5.1.0" selenium-webdriver@4.0.0-alpha.5: version "4.0.0-alpha.5" @@ -4509,24 +4659,24 @@ selenium-webdriver@4.0.0-alpha.5: xml2js "^0.4.19" "semver@2 || 3 || 4 || 5", semver@^5.6.0, semver@^5.7.1: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== semver@4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7" integrity sha512-VyFUffiBx8hABJ9HYSTXLRwyZtdDHMzMtFmID1aiNAD2BZppBmJm0Hqw3p2jkgxP9BNt1pQ9RnC49P0EcXf6cA== -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@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0, semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.2.1: - version "7.3.8" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" @@ -4535,10 +4685,10 @@ semver@~7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -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== +serialize-javascript@^6.0.0, serialize-javascript@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" + integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== dependencies: randombytes "^2.1.0" @@ -4547,6 +4697,15 @@ set-blocking@^2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== +set-function-name@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" + integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== + dependencies: + define-data-property "^1.0.1" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.0" + setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" @@ -4600,9 +4759,9 @@ signal-exit@^3.0.0, signal-exit@^3.0.2: integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== simple-update-notifier@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-1.0.7.tgz#7edf75c5bdd04f88828d632f762b2bc32996a9cc" - integrity sha512-BBKgR84BJQJm6WjWFMHgLVuo61FBDSj1z/xSFUIozqO6wO7ii0JxCqlIud7Enr/+LhlbNI0whErq96P2qHNWew== + version "1.1.0" + resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz#67694c121de354af592b347cdba798463ed49c82" + integrity sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg== dependencies: semver "~7.0.0" @@ -4658,9 +4817,9 @@ spawn-wrap@^1.4.2: which "^1.3.0" spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + version "3.2.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== dependencies: spdx-expression-parse "^3.0.0" spdx-license-ids "^3.0.0" @@ -4679,14 +4838,14 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.12" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz#69077835abe2710b65f03969898b6637b505a779" - integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== + version "3.0.16" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz#a14f64e0954f6e25cc6587bd4f392522db0d998f" + integrity sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw== split2@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/split2/-/split2-4.1.0.tgz#101907a24370f85bb782f08adaabe4e281ecf809" - integrity sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ== + version "4.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" + integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== split@1.0.0: version "1.0.0" @@ -4723,19 +4882,29 @@ string-width@^3.0.0, string-width@^3.1.0: strip-ansi "^5.1.0" string.prototype.matchall@^4.0.2: - version "4.0.8" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" - integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg== + version "4.0.10" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz#a1553eb532221d4180c51581d6072cd65d1ee100" + integrity sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.3" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" has-symbols "^1.0.3" - internal-slot "^1.0.3" - regexp.prototype.flags "^1.4.3" + internal-slot "^1.0.5" + regexp.prototype.flags "^1.5.0" + set-function-name "^2.0.0" side-channel "^1.0.4" +string.prototype.trim@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" + integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + string.prototype.trim@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea" @@ -4745,23 +4914,23 @@ string.prototype.trim@~1.1.2: es-abstract "^1.5.0" function-bind "^1.0.2" -string.prototype.trimend@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" - integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== +string.prototype.trimend@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" + integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" -string.prototype.trimstart@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" - integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== +string.prototype.trimstart@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" + integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" string_decoder@^1.1.1: version "1.3.0" @@ -4796,7 +4965,7 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" -strip-ansi@^6.0.0: +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -4980,23 +5149,23 @@ terser-webpack-plugin@5.1.4: terser "^5.7.0" terser-webpack-plugin@^5.1.3: - version "5.3.6" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz#5590aec31aa3c6f771ce1b1acca60639eab3195c" - integrity sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ== + version "5.3.9" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" + integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== dependencies: - "@jridgewell/trace-mapping" "^0.3.14" + "@jridgewell/trace-mapping" "^0.3.17" jest-worker "^27.4.5" schema-utils "^3.1.1" - serialize-javascript "^6.0.0" - terser "^5.14.1" + serialize-javascript "^6.0.1" + terser "^5.16.8" -terser@^5.14.1, terser@^5.7.0: - version "5.15.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.15.1.tgz#8561af6e0fd6d839669c73b92bdd5777d870ed6c" - integrity sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw== +terser@^5.16.8, terser@^5.7.0: + version "5.21.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.21.0.tgz#d2b27e92b5e56650bc83b6defa00a110f0b124b2" + integrity sha512-WtnFKrxu9kaoXuiZFSGrcAvvBqAdmKx0SFNmVNYdJamMu9yyN3I/QF0FbH4QcqJQ+y1CJnzxGIKH0cSj+FGYRw== dependencies: - "@jridgewell/source-map" "^0.3.2" - acorn "^8.5.0" + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" commander "^2.20.0" source-map-support "~0.5.20" @@ -5089,12 +5258,12 @@ ts-interface-checker@^0.1.9: integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== tsconfig-paths@^3.9.0: - version "3.14.1" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" - integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== + version "3.14.2" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" + integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== dependencies: "@types/json5" "^0.0.29" - json5 "^1.0.1" + json5 "^1.0.2" minimist "^1.2.6" strip-bom "^3.0.0" @@ -5115,6 +5284,45 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== +typed-array-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" + integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + is-typed-array "^1.1.10" + +typed-array-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" + integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" + integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" @@ -5158,10 +5366,10 @@ unicode-property-aliases-ecmascript@^2.0.0: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== -update-browserslist-db@^1.0.9: - version "1.0.10" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" - integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== dependencies: escalade "^3.1.1" picocolors "^1.0.0" @@ -5189,9 +5397,9 @@ uuid@^3.3.2: integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== v8-compile-cache@^2.0.3: - 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== + version "2.4.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz#cdada8bec61e15865f05d097c5f4fd30e94dc128" + integrity sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw== validate-npm-package-license@^3.0.1: version "3.0.4" @@ -5271,9 +5479,20 @@ which-boxed-primitive@^1.0.2: 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== + version "2.0.1" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" + integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== + +which-typed-array@^1.1.11: + version "1.1.11" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a" + integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" which@^1.2.9, which@^1.3.0: version "1.3.1" @@ -5294,11 +5513,6 @@ window-size@0.1.0: resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" integrity sha512-1pTPQDKTdd61ozlKGNCjhNRd+KPmgLSGa3mZTHoOliaGcESD8G1PXhh7c1fgiPjVbNVfgy2Faw4BI8/m0cC8Mg== -word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - wordwrap@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" @@ -5381,6 +5595,11 @@ yallist@^2.1.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" From 65cbb3d70b7032b4ed9820ea041c42633c309d46 Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Mon, 7 Aug 2023 14:20:41 -0500 Subject: [PATCH 029/194] Upgrade Babel dependencies yarn upgrade --scope @babel --latest --exact --- package.json | 24 +- yarn.lock | 739 +++++++++++++++++++++++++++------------------------ 2 files changed, 397 insertions(+), 366 deletions(-) diff --git a/package.json b/package.json index 183cefd0939..43f8eedc351 100644 --- a/package.json +++ b/package.json @@ -8,20 +8,20 @@ }, "license": "GPL-2.0-or-later", "dependencies": { - "@babel/core": "7.20.2", + "@babel/core": "7.22.10", "@babel/plugin-proposal-class-properties": "7.18.6", "@babel/plugin-proposal-nullish-coalescing-operator": "7.18.6", - "@babel/plugin-proposal-optional-chaining": "7.18.9", + "@babel/plugin-proposal-optional-chaining": "7.21.0", "@babel/plugin-syntax-dynamic-import": "7.8.3", - "@babel/plugin-transform-flow-strip-types": "7.19.0", - "@babel/plugin-transform-react-constant-elements": "7.20.2", - "@babel/plugin-transform-react-inline-elements": "7.18.6", - "@babel/plugin-transform-react-jsx": "7.19.0", - "@babel/plugin-transform-runtime": "7.19.6", - "@babel/preset-env": "7.20.2", - "@babel/preset-flow": "7.18.6", - "@babel/register": "7.18.9", - "@babel/runtime": "7.20.1", + "@babel/plugin-transform-flow-strip-types": "7.22.5", + "@babel/plugin-transform-react-constant-elements": "7.22.5", + "@babel/plugin-transform-react-inline-elements": "7.22.5", + "@babel/plugin-transform-react-jsx": "7.22.5", + "@babel/plugin-transform-runtime": "7.22.10", + "@babel/preset-env": "7.22.10", + "@babel/preset-flow": "7.22.5", + "@babel/register": "7.22.5", + "@babel/runtime": "7.22.10", "@popperjs/core": "2.5.3", "@sentry/browser": "5.10.2", "@sentry/node": "5.10.2", @@ -72,7 +72,7 @@ "yargs": "3.10.0" }, "devDependencies": { - "@babel/cli": "7.19.3", + "@babel/cli": "7.22.10", "babel-plugin-istanbul": "5.2.0", "babel-plugin-syntax-hermes-parser": "0.15.1", "buffer": "6.0.3", diff --git a/yarn.lock b/yarn.lock index aa88b7868ca..d9ab09c0c84 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7,7 +7,7 @@ resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== -"@ampproject/remapping@^2.1.0": +"@ampproject/remapping@^2.2.0": version "2.2.1" resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== @@ -15,12 +15,12 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/cli@7.19.3": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.19.3.tgz#55914ed388e658e0b924b3a95da1296267e278e2" - integrity sha512-643/TybmaCAe101m2tSVHi9UKpETXP9c/Ff4mD2tAwkdP6esKIfaauZFc67vGEM6r9fekbEGid+sZhbEnSe3dg== +"@babel/cli@7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.22.10.tgz#25e4bbd8d0a0d8b4b389e1b5e2d7a238bd4c1b75" + integrity sha512-rM9ZMmaII630zGvtMtQ3P4GyHs28CHLYE9apLG7L8TgaSqcfoIGrlLSLsh4Q8kDTdZQQEXZm1M0nQtOvU/2heg== dependencies: - "@jridgewell/trace-mapping" "^0.3.8" + "@jridgewell/trace-mapping" "^0.3.17" commander "^4.0.1" convert-source-map "^1.1.0" fs-readdir-recursive "^1.1.0" @@ -31,7 +31,7 @@ "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" chokidar "^3.4.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.22.13": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.22.10", "@babel/code-frame@^7.22.13": version "7.22.13" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== @@ -39,33 +39,33 @@ "@babel/highlight" "^7.22.13" chalk "^2.4.2" -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.9": +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.20.tgz#8df6e96661209623f1975d66c35ffca66f3306d0" integrity sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw== -"@babel/core@7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.2.tgz#8dc9b1620a673f92d3624bd926dc49a52cf25b92" - integrity sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.2" - "@babel/helper-compilation-targets" "^7.20.0" - "@babel/helper-module-transforms" "^7.20.2" - "@babel/helpers" "^7.20.1" - "@babel/parser" "^7.20.2" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.2" +"@babel/core@7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.10.tgz#aad442c7bcd1582252cb4576747ace35bc122f35" + integrity sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.22.10" + "@babel/generator" "^7.22.10" + "@babel/helper-compilation-targets" "^7.22.10" + "@babel/helper-module-transforms" "^7.22.9" + "@babel/helpers" "^7.22.10" + "@babel/parser" "^7.22.10" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.10" + "@babel/types" "^7.22.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" + json5 "^2.2.2" + semver "^6.3.1" -"@babel/generator@^7.20.2", "@babel/generator@^7.23.0", "@babel/generator@^7.4.0": +"@babel/generator@^7.22.10", "@babel/generator@^7.23.0", "@babel/generator@^7.4.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== @@ -75,7 +75,7 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.22.5": +"@babel/helper-annotate-as-pure@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== @@ -89,7 +89,7 @@ dependencies: "@babel/types" "^7.22.15" -"@babel/helper-builder-react-jsx@^7.18.6": +"@babel/helper-builder-react-jsx@^7.22.5": version "7.22.10" resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.22.10.tgz#591b1b44a80eb16123b46ad55e9ba42335d6f103" integrity sha512-cZr0nzCwrMp7Z8owt+YN8OncOqhG1eZLp/aRT5ftBnkLJTCB3Dnq/t52vSfWc6sGRWdDeawbksuh3pYQGCzVwA== @@ -97,7 +97,7 @@ "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/types" "^7.22.10" -"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.20.0", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.5": +"@babel/helper-compilation-targets@^7.22.10", "@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== @@ -108,7 +108,7 @@ lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0": +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.22.11", "@babel/helper-create-class-features-plugin@^7.22.5": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4" integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg== @@ -132,19 +132,18 @@ regexpu-core "^5.3.1" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.3.3": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a" - integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww== +"@babel/helper-define-polyfill-provider@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz#82c825cadeeeee7aad237618ebbe8fa1710015d7" + integrity sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw== dependencies: - "@babel/helper-compilation-targets" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" debug "^4.1.1" lodash.debounce "^4.0.8" resolve "^1.14.2" - semver "^6.1.2" -"@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.22.20", "@babel/helper-environment-visitor@^7.22.5": +"@babel/helper-environment-visitor@^7.22.20", "@babel/helper-environment-visitor@^7.22.5": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== @@ -171,14 +170,14 @@ dependencies: "@babel/types" "^7.23.0" -"@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5": +"@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== dependencies: "@babel/types" "^7.22.15" -"@babel/helper-module-transforms@^7.20.2", "@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.23.0": +"@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.22.9", "@babel/helper-module-transforms@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz#3ec246457f6c842c0aee62a01f60739906f7047e" integrity sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw== @@ -196,12 +195,12 @@ dependencies: "@babel/types" "^7.22.5" -"@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.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": +"@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.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== -"@babel/helper-remap-async-to-generator@^7.18.9", "@babel/helper-remap-async-to-generator@^7.22.5": +"@babel/helper-remap-async-to-generator@^7.22.5", "@babel/helper-remap-async-to-generator@^7.22.9": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== @@ -226,7 +225,7 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-skip-transparent-expression-wrappers@^7.18.9", "@babel/helper-skip-transparent-expression-wrappers@^7.20.0", "@babel/helper-skip-transparent-expression-wrappers@^7.22.5": +"@babel/helper-skip-transparent-expression-wrappers@^7.20.0", "@babel/helper-skip-transparent-expression-wrappers@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== @@ -250,7 +249,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== -"@babel/helper-validator-option@^7.18.6", "@babel/helper-validator-option@^7.22.15": +"@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.22.5": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== @@ -264,7 +263,7 @@ "@babel/template" "^7.22.15" "@babel/types" "^7.22.19" -"@babel/helpers@^7.20.1": +"@babel/helpers@^7.22.10": version "7.23.1" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.1.tgz#44e981e8ce2b9e99f8f0b703f3326a4636c16d15" integrity sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA== @@ -282,19 +281,19 @@ chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.20.2", "@babel/parser@^7.22.15", "@babel/parser@^7.23.0", "@babel/parser@^7.4.3", "@babel/parser@^7.5.5": +"@babel/parser@^7.22.10", "@babel/parser@^7.22.15", "@babel/parser@^7.23.0", "@babel/parser@^7.4.3", "@babel/parser@^7.5.5": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": version "7.22.15" 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.22.15.tgz#02dc8a03f613ed5fdc29fb2f728397c78146c962" integrity sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.5": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz#2aeb91d337d4e1a1e7ce85b76a37f5301781200f" integrity sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ== @@ -303,17 +302,7 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-transform-optional-chaining" "^7.22.15" -"@babel/plugin-proposal-async-generator-functions@^7.20.1": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" - integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-remap-async-to-generator" "^7.18.9" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-proposal-class-properties@7.18.6", "@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== @@ -321,48 +310,7 @@ "@babel/helper-create-class-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-class-static-block@^7.18.6": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz#77bdd66fb7b605f3a61302d224bdfacf5547977d" - integrity sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - -"@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.18.6" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@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.9" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@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.18.6" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.18.9": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" - integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@7.18.6", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": +"@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== @@ -370,43 +318,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@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.18.6" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@^7.20.2": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" - integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== - dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.20.7" - -"@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.18.6" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@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.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.18.9": +"@babel/plugin-proposal-optional-chaining@7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== @@ -415,31 +327,10 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@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.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-private-property-in-object@^7.18.6": - version "7.21.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz#69d597086b6760c4126525cfa154f34631ff272c" - integrity sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - -"@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.18.6" - "@babel/helper-plugin-utils" "^7.18.6" +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -476,20 +367,34 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-flow@^7.18.6", "@babel/plugin-syntax-flow@^7.22.5": +"@babel/plugin-syntax-flow@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz#163b820b9e7696ce134df3ee716d9c0c98035859" integrity sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-syntax-import-assertions@^7.20.0": +"@babel/plugin-syntax-import-assertions@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz#07d252e2aa0bc6125567f742cd58619cb14dce98" integrity sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-syntax-import-attributes@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz#ab840248d834410b829f569f5262b9e517555ecb" + integrity sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-meta@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@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" @@ -497,7 +402,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.18.6": +"@babel/plugin-syntax-jsx@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== @@ -560,14 +465,32 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-arrow-functions@^7.18.6": +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz#e5ba566d0c58a5b2ba2a8b795450641950b71958" integrity sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-async-to-generator@^7.18.6": +"@babel/plugin-transform-async-generator-functions@^7.22.10": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.15.tgz#3b153af4a6b779f340d5b80d3f634f55820aefa3" + integrity sha512-jBm1Es25Y+tVoTi5rfd5t1KLmL8ogLKpXszboWOTTtGFGz2RKnQe2yn7HbZ+kb/B8N0FVSGQo874NSlOU1T4+w== + dependencies: + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.9" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-transform-async-to-generator@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz#c7a85f44e46f8952f6d27fe57c2ed3cc084c3775" integrity sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ== @@ -576,21 +499,38 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-remap-async-to-generator" "^7.22.5" -"@babel/plugin-transform-block-scoped-functions@^7.18.6": +"@babel/plugin-transform-block-scoped-functions@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz#27978075bfaeb9fa586d3cb63a3d30c1de580024" integrity sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoping@^7.20.2": +"@babel/plugin-transform-block-scoping@^7.22.10": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz#8744d02c6c264d82e1a4bc5d2d501fd8aff6f022" integrity sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-classes@^7.20.2": +"@babel/plugin-transform-class-properties@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz#97a56e31ad8c9dc06a0b3710ce7803d5a48cca77" + integrity sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-class-static-block@^7.22.5": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz#dc8cc6e498f55692ac6b4b89e56d87cec766c974" + integrity sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.11" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-transform-classes@^7.22.6": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz#aaf4753aee262a232bbc95451b4bdf9599c65a0b" integrity sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw== @@ -605,7 +545,7 @@ "@babel/helper-split-export-declaration" "^7.22.6" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.18.9": +"@babel/plugin-transform-computed-properties@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz#cd1e994bf9f316bd1c2dafcd02063ec261bb3869" integrity sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg== @@ -613,14 +553,14 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/template" "^7.22.5" -"@babel/plugin-transform-destructuring@^7.20.2": +"@babel/plugin-transform-destructuring@^7.22.10": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz#6447aa686be48b32eaf65a73e0e2c0bd010a266c" integrity sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": +"@babel/plugin-transform-dotall-regex@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165" integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw== @@ -628,14 +568,22 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-duplicate-keys@^7.18.9": +"@babel/plugin-transform-duplicate-keys@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz#b6e6428d9416f5f0bba19c70d1e6e7e0b88ab285" integrity sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-exponentiation-operator@^7.18.6": +"@babel/plugin-transform-dynamic-import@^7.22.5": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz#2c7722d2a5c01839eaf31518c6ff96d408e447aa" + integrity sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-transform-exponentiation-operator@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz#402432ad544a1f9a480da865fda26be653e48f6a" integrity sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g== @@ -643,15 +591,15 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-flow-strip-types@7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.19.0.tgz#e9e8606633287488216028719638cbbb2f2dde8f" - integrity sha512-sgeMlNaQVbCSpgLSKP4ZZKfsJVnFnNQlUSk6gPYzR/q7tzCgQF2t8RBKAP6cKJeZdveei7Q7Jm527xepI8lNLg== +"@babel/plugin-transform-export-namespace-from@^7.22.5": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz#b3c84c8f19880b6c7440108f8929caf6056db26c" + integrity sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw== dependencies: - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/plugin-syntax-flow" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-transform-flow-strip-types@^7.18.6": +"@babel/plugin-transform-flow-strip-types@7.22.5", "@babel/plugin-transform-flow-strip-types@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.22.5.tgz#0bb17110c7bf5b35a60754b2f00c58302381dee2" integrity sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA== @@ -659,14 +607,14 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-flow" "^7.22.5" -"@babel/plugin-transform-for-of@^7.18.8": +"@babel/plugin-transform-for-of@^7.22.5": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz#f64b4ccc3a4f131a996388fae7680b472b306b29" integrity sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-function-name@^7.18.9": +"@babel/plugin-transform-function-name@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz#935189af68b01898e0d6d99658db6b164205c143" integrity sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg== @@ -675,21 +623,37 @@ "@babel/helper-function-name" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-literals@^7.18.9": +"@babel/plugin-transform-json-strings@^7.22.5": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz#689a34e1eed1928a40954e37f74509f48af67835" + integrity sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-transform-literals@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz#e9341f4b5a167952576e23db8d435849b1dd7920" integrity sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-member-expression-literals@^7.18.6": +"@babel/plugin-transform-logical-assignment-operators@^7.22.5": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz#24c522a61688bde045b7d9bc3c2597a4d948fc9c" + integrity sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-transform-member-expression-literals@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz#4fcc9050eded981a468347dd374539ed3e058def" integrity sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-amd@^7.19.6": +"@babel/plugin-transform-modules-amd@^7.22.5": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz#05b2bc43373faa6d30ca89214731f76f966f3b88" integrity sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw== @@ -697,7 +661,7 @@ "@babel/helper-module-transforms" "^7.23.0" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-commonjs@^7.19.6": +"@babel/plugin-transform-modules-commonjs@^7.22.5": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz#b3dba4757133b2762c00f4f94590cf6d52602481" integrity sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ== @@ -706,7 +670,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-simple-access" "^7.22.5" -"@babel/plugin-transform-modules-systemjs@^7.19.6": +"@babel/plugin-transform-modules-systemjs@^7.22.5": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz#77591e126f3ff4132a40595a6cccd00a6b60d160" integrity sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg== @@ -716,7 +680,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-validator-identifier" "^7.22.20" -"@babel/plugin-transform-modules-umd@^7.18.6": +"@babel/plugin-transform-modules-umd@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz#4694ae40a87b1745e3775b6a7fe96400315d4f98" integrity sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ== @@ -724,7 +688,7 @@ "@babel/helper-module-transforms" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-named-capturing-groups-regex@^7.19.1": +"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== @@ -732,14 +696,41 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-new-target@^7.18.6": +"@babel/plugin-transform-new-target@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz#1b248acea54ce44ea06dfd37247ba089fcf9758d" integrity sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-object-super@^7.18.6": +"@babel/plugin-transform-nullish-coalescing-operator@^7.22.5": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz#debef6c8ba795f5ac67cd861a81b744c5d38d9fc" + integrity sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-transform-numeric-separator@^7.22.5": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz#498d77dc45a6c6db74bb829c02a01c1d719cbfbd" + integrity sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-transform-object-rest-spread@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz#21a95db166be59b91cde48775310c0df6e1da56f" + integrity sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q== + dependencies: + "@babel/compat-data" "^7.22.9" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.22.15" + +"@babel/plugin-transform-object-super@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz#794a8d2fcb5d0835af722173c1a9d704f44e218c" integrity sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw== @@ -747,7 +738,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-replace-supers" "^7.22.5" -"@babel/plugin-transform-optional-chaining@^7.22.15": +"@babel/plugin-transform-optional-catch-binding@^7.22.5": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz#461cc4f578a127bb055527b3e77404cad38c08e0" + integrity sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-transform-optional-chaining@^7.22.10", "@babel/plugin-transform-optional-chaining@^7.22.15": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz#73ff5fc1cf98f542f09f29c0631647d8ad0be158" integrity sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g== @@ -756,47 +755,65 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-transform-parameters@^7.20.1", "@babel/plugin-transform-parameters@^7.20.7": +"@babel/plugin-transform-parameters@^7.22.15", "@babel/plugin-transform-parameters@^7.22.5": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz#719ca82a01d177af358df64a514d64c2e3edb114" integrity sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-property-literals@^7.18.6": +"@babel/plugin-transform-private-methods@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz#21c8af791f76674420a147ae62e9935d790f8722" + integrity sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-private-property-in-object@^7.22.5": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz#ad45c4fc440e9cb84c718ed0906d96cf40f9a4e1" + integrity sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.11" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz#b5ddabd73a4f7f26cd0e20f5db48290b88732766" integrity sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-react-constant-elements@7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.20.2.tgz#3f02c784e0b711970d7d8ccc96c4359d64e27ac7" - integrity sha512-KS/G8YI8uwMGKErLFOHS/ekhqdHhpEloxs43NecQHVgo2QuQSyJhGIY1fL8UGl9wy5ItVwwoUL4YxVqsplGq2g== +"@babel/plugin-transform-react-constant-elements@7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.22.5.tgz#6dfa7c1c37f7d7279e417ceddf5a04abb8bb9c29" + integrity sha512-BF5SXoO+nX3h5OhlN78XbbDrBOffv+AxPP2ENaJOVqjWCgBDeOY3WcaUcddutGSfoap+5NEQ/q/4I3WZIvgkXA== dependencies: - "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-react-inline-elements@7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-inline-elements/-/plugin-transform-react-inline-elements-7.18.6.tgz#d0676948eb5a11d547de6add7e8a2c522ec708f5" - integrity sha512-uo3yD1EXhDxmk1Y/CeFDdHS5t22IOUBooLPFOrrjfpYmDM9Vg61xbIaWeWkbYQ7Aq0zMf30/FfKoQgFwyqw6Bg== +"@babel/plugin-transform-react-inline-elements@7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-inline-elements/-/plugin-transform-react-inline-elements-7.22.5.tgz#f158486764de87f84706f5e9c98506df3015d9a4" + integrity sha512-m+OHS1E33wsWyv37bQXNzY/AB7vMTR1BYGG/KW+HGHdKeQS03sUAweNdGaDh8wKmAqh6ZbRRtFjPbhyYFToSbQ== dependencies: - "@babel/helper-builder-react-jsx" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-builder-react-jsx" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-react-jsx@7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz#b3cbb7c3a00b92ec8ae1027910e331ba5c500eb9" - integrity sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg== +"@babel/plugin-transform-react-jsx@7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz#932c291eb6dd1153359e2a90cb5e557dcf068416" + integrity sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA== dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/plugin-syntax-jsx" "^7.18.6" - "@babel/types" "^7.19.0" + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.22.5" + "@babel/types" "^7.22.5" -"@babel/plugin-transform-regenerator@^7.18.6": +"@babel/plugin-transform-regenerator@^7.22.10": version "7.22.10" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz#8ceef3bd7375c4db7652878b0241b2be5d0c3cca" integrity sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw== @@ -804,33 +821,33 @@ "@babel/helper-plugin-utils" "^7.22.5" regenerator-transform "^0.15.2" -"@babel/plugin-transform-reserved-words@^7.18.6": +"@babel/plugin-transform-reserved-words@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz#832cd35b81c287c4bcd09ce03e22199641f964fb" integrity sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-runtime@7.19.6": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz#9d2a9dbf4e12644d6f46e5e75bfbf02b5d6e9194" - integrity sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw== +"@babel/plugin-transform-runtime@7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.10.tgz#89eda6daf1d3af6f36fb368766553054c8d7cd46" + integrity sha512-RchI7HePu1eu0CYNKHHHQdfenZcM4nz8rew5B1VWqeRKdcwW5aQ5HeG9eTUbWiAS1UrmHVLmoxTWHt3iLD/NhA== dependencies: - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.19.0" - babel-plugin-polyfill-corejs2 "^0.3.3" - babel-plugin-polyfill-corejs3 "^0.6.0" - babel-plugin-polyfill-regenerator "^0.4.1" - semver "^6.3.0" + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + babel-plugin-polyfill-corejs2 "^0.4.5" + babel-plugin-polyfill-corejs3 "^0.8.3" + babel-plugin-polyfill-regenerator "^0.5.2" + semver "^6.3.1" -"@babel/plugin-transform-shorthand-properties@^7.18.6": +"@babel/plugin-transform-shorthand-properties@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz#6e277654be82b5559fc4b9f58088507c24f0c624" integrity sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-spread@^7.19.0": +"@babel/plugin-transform-spread@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz#6487fd29f229c95e284ba6c98d65eafb893fea6b" integrity sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg== @@ -838,35 +855,43 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" -"@babel/plugin-transform-sticky-regex@^7.18.6": +"@babel/plugin-transform-sticky-regex@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz#295aba1595bfc8197abd02eae5fc288c0deb26aa" integrity sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-template-literals@^7.18.9": +"@babel/plugin-transform-template-literals@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz#8f38cf291e5f7a8e60e9f733193f0bcc10909bff" integrity sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-typeof-symbol@^7.18.9": +"@babel/plugin-transform-typeof-symbol@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz#5e2ba478da4b603af8673ff7c54f75a97b716b34" integrity sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-unicode-escapes@^7.18.10": +"@babel/plugin-transform-unicode-escapes@^7.22.10": version "7.22.10" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz#c723f380f40a2b2f57a62df24c9005834c8616d9" integrity sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-unicode-regex@^7.18.6": +"@babel/plugin-transform-unicode-property-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz#098898f74d5c1e86660dc112057b2d11227f1c81" + integrity sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-regex@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz#ce7e7bb3ef208c4ff67e02a22816656256d7a183" integrity sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg== @@ -874,38 +899,34 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/preset-env@7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.20.2.tgz#9b1642aa47bb9f43a86f9630011780dab7f86506" - integrity sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg== +"@babel/plugin-transform-unicode-sets-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz#77788060e511b708ffc7d42fdfbc5b37c3004e91" + integrity sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/preset-env@7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.10.tgz#3263b9fe2c8823d191d28e61eac60a79f9ce8a0f" + integrity sha512-riHpLb1drNkpLlocmSyEg4oYJIQFeXAK/d7rI6mbD0XsvoTOOweXDmQPG/ErxsEhWk3rl3Q/3F6RFQlVFS8m0A== dependencies: - "@babel/compat-data" "^7.20.1" - "@babel/helper-compilation-targets" "^7.20.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@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.9" - "@babel/plugin-proposal-async-generator-functions" "^7.20.1" - "@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.9" - "@babel/plugin-proposal-json-strings" "^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.20.2" - "@babel/plugin-proposal-optional-catch-binding" "^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" + "@babel/compat-data" "^7.22.9" + "@babel/helper-compilation-targets" "^7.22.10" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.5" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.5" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.5" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@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.20.0" + "@babel/plugin-syntax-import-assertions" "^7.22.5" + "@babel/plugin-syntax-import-attributes" "^7.22.5" + "@babel/plugin-syntax-import-meta" "^7.10.4" "@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" @@ -915,70 +936,85 @@ "@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.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.20.2" - "@babel/plugin-transform-classes" "^7.20.2" - "@babel/plugin-transform-computed-properties" "^7.18.9" - "@babel/plugin-transform-destructuring" "^7.20.2" - "@babel/plugin-transform-dotall-regex" "^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.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.19.6" - "@babel/plugin-transform-modules-commonjs" "^7.19.6" - "@babel/plugin-transform-modules-systemjs" "^7.19.6" - "@babel/plugin-transform-modules-umd" "^7.18.6" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.19.1" - "@babel/plugin-transform-new-target" "^7.18.6" - "@babel/plugin-transform-object-super" "^7.18.6" - "@babel/plugin-transform-parameters" "^7.20.1" - "@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.19.0" - "@babel/plugin-transform-sticky-regex" "^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.20.2" - babel-plugin-polyfill-corejs2 "^0.3.3" - babel-plugin-polyfill-corejs3 "^0.6.0" - babel-plugin-polyfill-regenerator "^0.4.1" - core-js-compat "^3.25.1" - semver "^6.3.0" - -"@babel/preset-flow@7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.18.6.tgz#83f7602ba566e72a9918beefafef8ef16d2810cb" - integrity sha512-E7BDhL64W6OUqpuyHnSroLnqyRTcG6ZdOBl1OKI/QK/HJfplqK/S3sq1Cckx7oTodJ5yOXyfw7rEADJ6UjoQDQ== + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.22.5" + "@babel/plugin-transform-async-generator-functions" "^7.22.10" + "@babel/plugin-transform-async-to-generator" "^7.22.5" + "@babel/plugin-transform-block-scoped-functions" "^7.22.5" + "@babel/plugin-transform-block-scoping" "^7.22.10" + "@babel/plugin-transform-class-properties" "^7.22.5" + "@babel/plugin-transform-class-static-block" "^7.22.5" + "@babel/plugin-transform-classes" "^7.22.6" + "@babel/plugin-transform-computed-properties" "^7.22.5" + "@babel/plugin-transform-destructuring" "^7.22.10" + "@babel/plugin-transform-dotall-regex" "^7.22.5" + "@babel/plugin-transform-duplicate-keys" "^7.22.5" + "@babel/plugin-transform-dynamic-import" "^7.22.5" + "@babel/plugin-transform-exponentiation-operator" "^7.22.5" + "@babel/plugin-transform-export-namespace-from" "^7.22.5" + "@babel/plugin-transform-for-of" "^7.22.5" + "@babel/plugin-transform-function-name" "^7.22.5" + "@babel/plugin-transform-json-strings" "^7.22.5" + "@babel/plugin-transform-literals" "^7.22.5" + "@babel/plugin-transform-logical-assignment-operators" "^7.22.5" + "@babel/plugin-transform-member-expression-literals" "^7.22.5" + "@babel/plugin-transform-modules-amd" "^7.22.5" + "@babel/plugin-transform-modules-commonjs" "^7.22.5" + "@babel/plugin-transform-modules-systemjs" "^7.22.5" + "@babel/plugin-transform-modules-umd" "^7.22.5" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" + "@babel/plugin-transform-new-target" "^7.22.5" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.5" + "@babel/plugin-transform-numeric-separator" "^7.22.5" + "@babel/plugin-transform-object-rest-spread" "^7.22.5" + "@babel/plugin-transform-object-super" "^7.22.5" + "@babel/plugin-transform-optional-catch-binding" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.22.10" + "@babel/plugin-transform-parameters" "^7.22.5" + "@babel/plugin-transform-private-methods" "^7.22.5" + "@babel/plugin-transform-private-property-in-object" "^7.22.5" + "@babel/plugin-transform-property-literals" "^7.22.5" + "@babel/plugin-transform-regenerator" "^7.22.10" + "@babel/plugin-transform-reserved-words" "^7.22.5" + "@babel/plugin-transform-shorthand-properties" "^7.22.5" + "@babel/plugin-transform-spread" "^7.22.5" + "@babel/plugin-transform-sticky-regex" "^7.22.5" + "@babel/plugin-transform-template-literals" "^7.22.5" + "@babel/plugin-transform-typeof-symbol" "^7.22.5" + "@babel/plugin-transform-unicode-escapes" "^7.22.10" + "@babel/plugin-transform-unicode-property-regex" "^7.22.5" + "@babel/plugin-transform-unicode-regex" "^7.22.5" + "@babel/plugin-transform-unicode-sets-regex" "^7.22.5" + "@babel/preset-modules" "0.1.6-no-external-plugins" + "@babel/types" "^7.22.10" + babel-plugin-polyfill-corejs2 "^0.4.5" + babel-plugin-polyfill-corejs3 "^0.8.3" + babel-plugin-polyfill-regenerator "^0.5.2" + core-js-compat "^3.31.0" + semver "^6.3.1" + +"@babel/preset-flow@7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.22.5.tgz#876f24ab6b38bd79703a93f32020ca2162312784" + integrity sha512-ta2qZ+LSiGCrP5pgcGt8xMnnkXQrq8Sa4Ulhy06BOlF5QbLw9q5hIx7bn5MrsvyTGAfh6kTOo07Q+Pfld/8Y5Q== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-validator-option" "^7.18.6" - "@babel/plugin-transform-flow-strip-types" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.5" + "@babel/plugin-transform-flow-strip-types" "^7.22.5" -"@babel/preset-modules@^0.1.5": - version "0.1.6" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6.tgz#31bcdd8f19538437339d17af00d177d854d9d458" - integrity sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg== +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/register@7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.18.9.tgz#1888b24bc28d5cc41c412feb015e9ff6b96e439c" - integrity sha512-ZlbnXDcNYHMR25ITwwNKT88JiaukkdVj/nG7r3wnuXkOTHc60Uy05PwMCPre0hSkY68E6zK3xz+vUJSP2jWmcw== +"@babel/register@7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.22.5.tgz#e4d8d0f615ea3233a27b5c6ada6750ee59559939" + integrity sha512-vV6pm/4CijSQ8Y47RH5SopXzursN35RQINfGJkmOlcpAtGuf94miFvIPhCKGQN7WGIcsgG1BHEX2KVdTYwTwUQ== dependencies: clone-deep "^4.0.1" find-cache-dir "^2.0.0" @@ -991,12 +1027,12 @@ resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@7.20.1": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.1.tgz#1148bb33ab252b165a06698fde7576092a78b4a9" - integrity sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg== +"@babel/runtime@7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.10.tgz#ae3e9631fd947cb7e3610d3e9d8fef5f76696682" + integrity sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ== dependencies: - regenerator-runtime "^0.13.10" + regenerator-runtime "^0.14.0" "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": version "7.23.1" @@ -1005,7 +1041,7 @@ dependencies: regenerator-runtime "^0.14.0" -"@babel/template@^7.18.10", "@babel/template@^7.22.15", "@babel/template@^7.22.5", "@babel/template@^7.4.0": +"@babel/template@^7.22.15", "@babel/template@^7.22.5", "@babel/template@^7.4.0": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== @@ -1014,7 +1050,7 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/traverse@^7.20.1", "@babel/traverse@^7.23.0", "@babel/traverse@^7.4.3": +"@babel/traverse@^7.22.10", "@babel/traverse@^7.23.0", "@babel/traverse@^7.4.3": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.0.tgz#18196ddfbcf4ccea324b7f6d3ada00d8c5a99c53" integrity sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw== @@ -1030,7 +1066,7 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.19.0", "@babel/types@^7.20.2", "@babel/types@^7.22.10", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4": +"@babel/types@^7.22.10", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== @@ -1087,7 +1123,7 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.8", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": version "0.3.19" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== @@ -1598,29 +1634,29 @@ babel-plugin-istanbul@5.2.0: istanbul-lib-instrument "^3.3.0" test-exclude "^5.2.3" -babel-plugin-polyfill-corejs2@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122" - integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q== +babel-plugin-polyfill-corejs2@^0.4.5: + version "0.4.5" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz#8097b4cb4af5b64a1d11332b6fb72ef5e64a054c" + integrity sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg== dependencies: - "@babel/compat-data" "^7.17.7" - "@babel/helper-define-polyfill-provider" "^0.3.3" - semver "^6.1.1" + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.4.2" + semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a" - integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA== +babel-plugin-polyfill-corejs3@^0.8.3: + version "0.8.4" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.4.tgz#1fac2b1dcef6274e72b3c72977ed8325cb330591" + integrity sha512-9l//BZZsPR+5XjyJMPtZSK4jv0BsTO1zDac2GC6ygx9WLGlcsnRd1Co0B2zT5fF5Ic6BZy+9m3HNZ3QcOeDKfg== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.3" - core-js-compat "^3.25.1" + "@babel/helper-define-polyfill-provider" "^0.4.2" + core-js-compat "^3.32.2" -babel-plugin-polyfill-regenerator@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747" - integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw== +babel-plugin-polyfill-regenerator@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz#80d0f3e1098c080c8b5a65f41e9427af692dc326" + integrity sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.3" + "@babel/helper-define-polyfill-provider" "^0.4.2" babel-plugin-syntax-hermes-parser@0.15.1: version "0.15.1" @@ -1938,7 +1974,7 @@ copy-anything@^2.0.1: dependencies: is-what "^3.14.1" -core-js-compat@^3.25.1: +core-js-compat@^3.31.0, core-js-compat@^3.32.2: version "3.33.0" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.33.0.tgz#24aa230b228406450b2277b7c8bfebae932df966" integrity sha512-0w4LcLXsVEuNkIqwjjf9rjCoPhK8uqA4tMRh4Ge26vfLtUutshn+aRJU21I9LCJlh2QQHfisNToLjw1XEJLTWw== @@ -3314,7 +3350,7 @@ json5@^1.0.2: dependencies: minimist "^1.2.0" -json5@^2.2.1: +json5@^2.2.2: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -4445,11 +4481,6 @@ 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.10: - version "0.13.11" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" - integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== - regenerator-runtime@^0.14.0: version "0.14.0" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" @@ -4668,7 +4699,7 @@ semver@4.3.2: resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7" integrity sha512-VyFUffiBx8hABJ9HYSTXLRwyZtdDHMzMtFmID1aiNAD2BZppBmJm0Hqw3p2jkgxP9BNt1pQ9RnC49P0EcXf6cA== -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0, semver@^6.3.1: +semver@^6.0.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== From 1add14fb5a0e6d0d70d839f36efcfdba65c670e0 Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Wed, 9 Aug 2023 01:21:17 -0500 Subject: [PATCH 030/194] Upgrade ESLint and associated plugins This upgrades ESLint to the next major version, v8, from v7. https://eslint.org/docs/latest/use/migrate-to-8.0.0 I didn't see anything in the migration doc that needed action from us specifically. Plugin-wise, react/jsx-sort-default-props was renamed to react/sort-default-props. --- .eslintrc.yaml | 2 +- .flowconfig | 2 +- package.json | 10 +- yarn.lock | 755 ++++++++++++++++++++++++++----------------------- 4 files changed, 401 insertions(+), 368 deletions(-) diff --git a/.eslintrc.yaml b/.eslintrc.yaml index 42b265d854e..1c1814391cd 100644 --- a/.eslintrc.yaml +++ b/.eslintrc.yaml @@ -285,6 +285,7 @@ rules: react/require-render-return: error react/self-closing-comp: error react/sort-comp: off + react/sort-default-props: warn react/sort-prop-types: off react/style-prop-object: error react/void-dom-elements-no-children: error @@ -310,7 +311,6 @@ rules: react/jsx-one-expression-per-line: [warn, {allow: single-child}] react/jsx-curly-brace-presence: [error, {props: never, children: ignore}] react/jsx-pascal-case: error - react/jsx-sort-default-props: warn react/jsx-sort-props: warn react/jsx-tag-spacing: [error, {beforeClosing: never}] # jsx-uses-react is not implied since diff --git a/.flowconfig b/.flowconfig index 6ad46ffaf80..d709be0cb4c 100644 --- a/.flowconfig +++ b/.flowconfig @@ -3,7 +3,7 @@ /.nyc_output/.* /coverage/.* /lib/.* -/node_modules/resolve/test/resolver/malformed_package_json/package.json +/node_modules/.*resolve/test/resolver/malformed_package_json/package.json /root/static/build/.* /perl_modules/.* /t/.* diff --git a/package.json b/package.json index 43f8eedc351..440e9db892b 100644 --- a/package.json +++ b/package.json @@ -77,12 +77,12 @@ "babel-plugin-syntax-hermes-parser": "0.15.1", "buffer": "6.0.3", "chrome-remote-interface": "0.33.0", - "eslint": "7.9.0", - "eslint-plugin-fb-flow": "0.0.2", + "eslint": "8.46.0", + "eslint-plugin-fb-flow": "0.0.4", "eslint-plugin-ft-flow": "3.0.0", - "eslint-plugin-import": "2.22.0", - "eslint-plugin-react": "7.20.6", - "eslint-plugin-react-hooks": "4.1.2", + "eslint-plugin-import": "2.28.0", + "eslint-plugin-react": "7.33.1", + "eslint-plugin-react-hooks": "4.6.0", "file-url": "2.0.2", "flow-bin": "0.214.0", "gettext-parser": "3.1.0", diff --git a/yarn.lock b/yarn.lock index d9ab09c0c84..24cc4276209 100644 --- a/yarn.lock +++ b/yarn.lock @@ -31,7 +31,7 @@ "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" chokidar "^3.4.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.22.10", "@babel/code-frame@^7.22.13": +"@babel/code-frame@^7.22.10", "@babel/code-frame@^7.22.13": version "7.22.13" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== @@ -1075,22 +1075,57 @@ "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" -"@eslint/eslintrc@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.1.3.tgz#7d1a2b2358552cc04834c0979bd4275362e37085" - integrity sha512-4YVwPkANLeNtRjMekzux1ci8hIaH5eGKktGqR0d3LWsKNn5B2X/1Z6Trxy7jQXl9EBGE6Yj02O+t09FMeRllaA== +"@eslint-community/eslint-utils@^4.2.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.6.1": + version "4.9.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.9.1.tgz#449dfa81a57a1d755b09aa58d826c1262e4283b4" + integrity sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA== + +"@eslint/eslintrc@^2.1.1": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.2.tgz#c6936b4b328c64496692f76944e755738be62396" + integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g== dependencies: ajv "^6.12.4" - debug "^4.1.1" - espree "^7.3.0" - globals "^12.1.0" - ignore "^4.0.6" + debug "^4.3.2" + espree "^9.6.0" + globals "^13.19.0" + ignore "^5.2.0" import-fresh "^3.2.1" - js-yaml "^3.13.1" - lodash "^4.17.19" - minimatch "^3.0.4" + js-yaml "^4.1.0" + minimatch "^3.1.2" strip-json-comments "^3.1.1" +"@eslint/js@^8.46.0": + version "8.50.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.50.0.tgz#9e93b850f0f3fa35f5fa59adfd03adae8488e484" + integrity sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ== + +"@humanwhocodes/config-array@^0.11.10": + version "0.11.11" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.11.tgz#88a04c570dbbc7dd943e4712429c3df09bc32844" + integrity sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA== + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": version "0.3.3" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" @@ -1136,6 +1171,27 @@ resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b" integrity sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ== +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + "@popperjs/core@2.5.3": version "2.5.3" resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.5.3.tgz#4982b0b66b7a4cf949b86f5d25a8cf757d3cfd9d" @@ -1401,17 +1457,12 @@ acorn-import-assertions@^1.7.6: resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== -acorn-jsx@^5.3.1: +acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^7.4.0: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.4.1, acorn@^8.8.2: +acorn@^8.4.1, acorn@^8.8.2, acorn@^8.9.0: version "8.10.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== @@ -1442,7 +1493,7 @@ ajv-keywords@^5.1.0: dependencies: fast-deep-equal "^3.1.3" -ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: +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== @@ -1476,11 +1527,6 @@ amdefine@>=0.0.4: resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg== -ansi-colors@^4.1.1: - version "4.1.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" - integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== - ansi-regex@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" @@ -1549,6 +1595,11 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +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-buffer-byte-length@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" @@ -1562,7 +1613,7 @@ array-find-index@^1.0.1: resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" integrity sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw== -array-includes@^3.1.1: +array-includes@^3.1.6: version "3.1.7" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== @@ -1573,7 +1624,18 @@ array-includes@^3.1.1: get-intrinsic "^1.2.1" is-string "^1.0.7" -array.prototype.flat@^1.2.3: +array.prototype.findlastindex@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" + integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + get-intrinsic "^1.2.1" + +array.prototype.flat@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== @@ -1583,7 +1645,7 @@ array.prototype.flat@^1.2.3: es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" -array.prototype.flatmap@^1.2.3: +array.prototype.flatmap@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== @@ -1593,6 +1655,17 @@ array.prototype.flatmap@^1.2.3: es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" +array.prototype.tosorted@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz#620eff7442503d66c799d95503f82b475745cefd" + integrity sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + get-intrinsic "^1.2.1" + arraybuffer.prototype.slice@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" @@ -1606,11 +1679,6 @@ arraybuffer.prototype.slice@^1.0.2: is-array-buffer "^3.0.2" is-shared-array-buffer "^1.0.2" -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== - available-typed-arrays@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" @@ -1947,11 +2015,6 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -contains-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" - integrity sha512-OKZnPGeMQy2RPaUIBPFFd71iNf4791H12MCRuVQDnzGRwCYNYmTDy5pdafo2SLAcEMKzTOQnLWG4QdcjeJUMEg== - convert-source-map@^1.1.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.9.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" @@ -2026,13 +2089,6 @@ currently-unhandled@^0.4.1: dependencies: array-find-index "^1.0.1" -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.1.0, debug@^3.2.6, debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" @@ -2040,7 +2096,7 @@ debug@^3.1.0, debug@^3.2.6, debug@^3.2.7: dependencies: ms "^2.1.1" -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: +debug@^4.1.0, debug@^4.1.1, debug@^4.3.2: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -2121,14 +2177,6 @@ docopt@^0.6.2: resolved "https://registry.yarnpkg.com/docopt/-/docopt-0.6.2.tgz#b28e9e2220da5ec49f7ea5bb24a47787405eeb11" integrity sha512-NqTbaYeE4gA/wU1hdKFdU+AFahpDOpgGLzHP42k6H6DKExJd0A55KEVWYhL9FEmHmgeLvEU2vuKXDuU+4yToOw== -doctrine@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" - integrity sha512-lsGyRuYr4/PIB0txi+Fy2xOMI2dGaTguCaotzFGkVZuKR5usKfcRWIFKNM3QNrU7hh/+w2bwTW+ZeXPK5l8uVg== - dependencies: - esutils "^2.0.2" - isarray "^1.0.0" - doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" @@ -2149,9 +2197,9 @@ duplexer@^0.1.1: integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== electron-to-chromium@^1.4.535: - version "1.4.543" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.543.tgz#51116ffc9fba1ee93514d6a40d34676aa6d7d1c4" - integrity sha512-t2ZP4AcGE0iKCCQCBx/K2426crYdxD3YU6l0uK2EO3FZH0pbC4pFz/sZm2ruZsND6hQBTcDWWlo/MLpiOdif5g== + version "1.4.540" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.540.tgz#c685f2f035e93eb21dd6a9cfe2c735bad8f77401" + integrity sha512-aoCqgU6r9+o9/S7wkcSbmPRFi7OWZWiXS9rtjEd+Ouyu/Xyw5RSq2XN8s5Qp8IaFOLiRrhQCphCIjAxgG3eCAg== emoji-regex@^7.0.1: version "7.0.3" @@ -2173,14 +2221,6 @@ enhanced-resolve@^5.9.3: graceful-fs "^4.2.4" tapable "^2.2.0" -enquirer@^2.3.5: - version "2.4.1" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" - integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== - dependencies: - ansi-colors "^4.1.1" - strip-ansi "^6.0.1" - errno@^0.1.1: version "0.1.8" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" @@ -2297,7 +2337,12 @@ 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-import-resolver-node@^0.3.3: +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-import-resolver-node@^0.3.7: version "0.3.9" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== @@ -2306,17 +2351,17 @@ eslint-import-resolver-node@^0.3.3: is-core-module "^2.13.0" resolve "^1.22.4" -eslint-module-utils@^2.6.0: +eslint-module-utils@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== dependencies: debug "^3.2.7" -eslint-plugin-fb-flow@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-fb-flow/-/eslint-plugin-fb-flow-0.0.2.tgz#54a5d1699872863b86a79f19f39c3085bb65a517" - integrity sha512-Wp5u0rGWLbufdv6rKUoa6A3/DWF1Tc19F762apVmBg2edVET4LjHIApsMl+LIzuRw767uTGF9BB9KuPtrakM0g== +eslint-plugin-fb-flow@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-fb-flow/-/eslint-plugin-fb-flow-0.0.4.tgz#47fa51630a5620b3b03919194e783ddfc094fd5d" + integrity sha512-VWRoULiRkYqgeX4uCw2uIuu4v5DOhtWC+4fLM+qXX2mUtLf07znqhyTtxwIugnX8MgPczkaKmtDPrkuhvFmAoA== eslint-plugin-ft-flow@3.0.0: version "3.0.0" @@ -2326,53 +2371,62 @@ eslint-plugin-ft-flow@3.0.0: lodash "^4.17.21" string-natural-compare "^3.0.1" -eslint-plugin-import@2.22.0: - version "2.22.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz#92f7736fe1fde3e2de77623c838dd992ff5ffb7e" - integrity sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg== - dependencies: - array-includes "^3.1.1" - array.prototype.flat "^1.2.3" - contains-path "^0.1.0" - debug "^2.6.9" - doctrine "1.5.0" - eslint-import-resolver-node "^0.3.3" - eslint-module-utils "^2.6.0" +eslint-plugin-import@2.28.0: + version "2.28.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.28.0.tgz#8d66d6925117b06c4018d491ae84469eb3cb1005" + integrity sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q== + dependencies: + array-includes "^3.1.6" + array.prototype.findlastindex "^1.2.2" + array.prototype.flat "^1.3.1" + array.prototype.flatmap "^1.3.1" + debug "^3.2.7" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.7" + eslint-module-utils "^2.8.0" has "^1.0.3" - minimatch "^3.0.4" - object.values "^1.1.1" - read-pkg-up "^2.0.0" - resolve "^1.17.0" - tsconfig-paths "^3.9.0" + is-core-module "^2.12.1" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.fromentries "^2.0.6" + object.groupby "^1.0.0" + object.values "^1.1.6" + resolve "^1.22.3" + semver "^6.3.1" + tsconfig-paths "^3.14.2" -eslint-plugin-react-hooks@4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.1.2.tgz#2eb53731d11c95826ef7a7272303eabb5c9a271e" - integrity sha512-ykUeqkGyUGgwTtk78C0o8UG2fzwmgJ0qxBGPp2WqRKsTwcLuVf01kTDRAtOsd4u6whX2XOC8749n2vPydP82fg== +eslint-plugin-react-hooks@4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" + integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== -eslint-plugin-react@7.20.6: - version "7.20.6" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.20.6.tgz#4d7845311a93c463493ccfa0a19c9c5d0fd69f60" - integrity sha512-kidMTE5HAEBSLu23CUDvj8dc3LdBU0ri1scwHBZjI41oDv4tjsWZKU7MQccFzH1QYPYhsnTF2ovh7JlcIcmxgg== +eslint-plugin-react@7.33.1: + version "7.33.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.1.tgz#bc27cccf860ae45413a4a4150bf0977345c1ceab" + integrity sha512-L093k0WAMvr6VhNwReB8VgOq5s2LesZmrpPdKz/kZElQDzqS7G7+DnKoqT+w4JwuiGeAhAvHO0fvy0Eyk4ejDA== dependencies: - array-includes "^3.1.1" - array.prototype.flatmap "^1.2.3" + array-includes "^3.1.6" + array.prototype.flatmap "^1.3.1" + array.prototype.tosorted "^1.1.1" doctrine "^2.1.0" - has "^1.0.3" - jsx-ast-utils "^2.4.1" - object.entries "^1.1.2" - object.fromentries "^2.0.2" - object.values "^1.1.1" - prop-types "^15.7.2" - resolve "^1.17.0" - string.prototype.matchall "^4.0.2" + estraverse "^5.3.0" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.1.2" + object.entries "^1.1.6" + object.fromentries "^2.0.6" + object.hasown "^1.1.2" + object.values "^1.1.6" + prop-types "^15.8.1" + resolve "^2.0.0-next.4" + semver "^6.3.1" + string.prototype.matchall "^4.0.8" eslint-plugin-simple-import-sort@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz#a1dad262f46d2184a90095a60c66fef74727f0f8" integrity sha512-U3vEDB5zhYPNfxT5TYR7u01dboFZp+HNpnGhkDB2g/2E4wZ/g1Q9Ton8UwCLfRV9yAKyYqDh62oHOamvkFxsvw== -eslint-scope@5.1.1, eslint-scope@^5.1.0: +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== @@ -2380,76 +2434,77 @@ eslint-scope@5.1.1, eslint-scope@^5.1.0: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + esrecurse "^4.3.0" + estraverse "^5.2.0" -eslint@7.9.0: - version "7.9.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.9.0.tgz#522aeccc5c3a19017cf0cb46ebfd660a79acf337" - integrity sha512-V6QyhX21+uXp4T+3nrNfI3hQNBDa/P8ga7LoQOenwrlEFXrEnUEE+ok1dMtaS3b6rmLXhT1TkTIsG75HMLbknA== - dependencies: - "@babel/code-frame" "^7.0.0" - "@eslint/eslintrc" "^0.1.3" - ajv "^6.10.0" +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint@8.46.0: + version "8.46.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.46.0.tgz#a06a0ff6974e53e643acc42d1dcf2e7f797b3552" + integrity sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.1" + "@eslint/js" "^8.46.0" + "@humanwhocodes/config-array" "^0.11.10" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" - debug "^4.0.1" + debug "^4.3.2" doctrine "^3.0.0" - enquirer "^2.3.5" - eslint-scope "^5.1.0" - eslint-utils "^2.1.0" - eslint-visitor-keys "^1.3.0" - espree "^7.3.0" - esquery "^1.2.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.2" + espree "^9.6.1" + esquery "^1.4.2" esutils "^2.0.2" - file-entry-cache "^5.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^5.0.0" - globals "^12.1.0" - ignore "^4.0.6" - import-fresh "^3.0.0" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" imurmurhash "^0.1.4" is-glob "^4.0.0" - js-yaml "^3.13.1" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" - lodash "^4.17.19" - minimatch "^3.0.4" + lodash.merge "^4.6.2" + minimatch "^3.1.2" natural-compare "^1.4.0" - optionator "^0.9.1" - progress "^2.0.0" - regexpp "^3.1.0" - semver "^7.2.1" - strip-ansi "^6.0.0" - strip-json-comments "^3.1.0" - table "^5.2.3" + optionator "^0.9.3" + strip-ansi "^6.0.1" text-table "^0.2.0" - v8-compile-cache "^2.0.3" -espree@^7.3.0: - version "7.3.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" - integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: - acorn "^7.4.0" - acorn-jsx "^5.3.1" - eslint-visitor-keys "^1.3.0" + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.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== -esquery@^1.2.0: +esquery@^1.4.2: version "1.5.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== @@ -2468,7 +2523,7 @@ estraverse@^4.1.1: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== -estraverse@^5.1.0, estraverse@^5.2.0: +estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== @@ -2513,12 +2568,19 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -file-entry-cache@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" - integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== +fastq@^1.6.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + dependencies: + reusify "^1.0.4" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: - flat-cache "^2.0.1" + flat-cache "^3.0.4" file-url@2.0.2: version "2.0.2" @@ -2563,13 +2625,6 @@ find-up@^1.0.0: path-exists "^2.0.0" pinkie-promise "^2.0.0" -find-up@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== - dependencies: - locate-path "^2.0.0" - find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -2585,19 +2640,27 @@ find-up@^4.0.0: locate-path "^5.0.0" path-exists "^4.0.0" -flat-cache@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" - integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.1.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.1.0.tgz#0e54ab4a1a60fe87e2946b6b00657f1c99e1af3f" + integrity sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew== dependencies: - flatted "^2.0.0" - rimraf "2.6.3" - write "1.0.3" + flatted "^3.2.7" + keyv "^4.5.3" + rimraf "^3.0.2" -flatted@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" - integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== +flatted@^3.2.7: + version "3.2.9" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" + integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== flow-bin@0.214.0: version "0.214.0" @@ -2654,11 +2717,6 @@ function.prototype.name@^1.1.6: es-abstract "^1.22.1" functions-have-names "^1.2.3" -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== - functions-have-names@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" @@ -2720,7 +2778,14 @@ gettext-parser@3.1.0: readable-stream "^3.0.6" safe-buffer "^5.1.2" -glob-parent@^5.0.0, glob-parent@~5.1.2: +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -2773,12 +2838,12 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^12.1.0: - version "12.4.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" - integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== +globals@^13.19.0: + version "13.22.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.22.0.tgz#0c9fcb9c48a2494fbb5edbfee644285543eba9d8" + integrity sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw== dependencies: - type-fest "^0.8.1" + type-fest "^0.20.2" globalthis@^1.0.3: version "1.0.3" @@ -2804,6 +2869,11 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.2.4 resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" integrity sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w== +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + 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" @@ -2954,10 +3024,10 @@ ignore-by-default@^1.0.1: resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== +ignore@^5.2.0: + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== image-size@~0.5.0: version "0.5.5" @@ -2969,7 +3039,7 @@ immediate@~3.0.5: resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== -import-fresh@^3.0.0, import-fresh@^3.2.1: +import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -3070,7 +3140,7 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.13.0: +is-core-module@^2.12.1, is-core-module@^2.13.0, is-core-module@^2.9.0: version "2.13.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== @@ -3099,7 +3169,7 @@ is-fullwidth-code-point@^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@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, 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== @@ -3123,6 +3193,11 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + 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" @@ -3193,16 +3268,16 @@ isarray@0.0.1: resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== -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== - isarray@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== +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== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -3301,6 +3376,13 @@ js-yaml@^3.0.2, js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" +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 "^2.0.1" + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -3311,6 +3393,11 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -3355,13 +3442,15 @@ json5@^2.2.2: resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== -jsx-ast-utils@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz#1114a4c1209481db06c690c2b4f488cc665f657e" - integrity sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w== +"jsx-ast-utils@^2.4.1 || ^3.0.0": + version "3.3.5" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a" + integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== dependencies: - array-includes "^3.1.1" - object.assign "^4.1.0" + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + object.assign "^4.1.4" + object.values "^1.1.6" jszip@^3.1.5: version "3.10.1" @@ -3373,6 +3462,13 @@ jszip@^3.1.5: readable-stream "~2.3.6" setimmediate "^1.0.5" +keyv@^4.5.3: + version "4.5.3" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.3.tgz#00873d2b046df737963157bd04f294ca818c9c25" + integrity sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug== + dependencies: + json-buffer "3.0.1" + kind-of@^3.0.2: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -3480,16 +3576,6 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - integrity sha512-3p6ZOGNbiX4CdvEd1VcE6yi78UrGNpjHO33noGwHCnT/o2fyllJDepsm8+mFFv/DvtwFHht5HIHSyOy5a+ChVQ== - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" @@ -3505,14 +3591,6 @@ loader-runner@^4.2.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - locate-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -3528,6 +3606,13 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^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" @@ -3538,7 +3623,12 @@ lodash.flattendeep@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" integrity sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ== -lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21: +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash@^4.17.15, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -3578,13 +3668,6 @@ lru-cache@^5.1.1: 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" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - lru_map@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" @@ -3655,7 +3738,7 @@ mime@^1.4.1: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -3677,18 +3760,13 @@ minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@~1. resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -mkdirp@^0.5.0, mkdirp@^0.5.1: +mkdirp@^0.5.0: 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" -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -3844,7 +3922,7 @@ object-keys@^1.1.1: resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.0, object.assign@^4.1.4: +object.assign@^4.1.4: version "4.1.4" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== @@ -3854,7 +3932,7 @@ object.assign@^4.1.0, object.assign@^4.1.4: has-symbols "^1.0.3" object-keys "^1.1.1" -object.entries@^1.1.2: +object.entries@^1.1.6: version "1.1.7" resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.7.tgz#2b47760e2a2e3a752f39dd874655c61a7f03c131" integrity sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA== @@ -3863,7 +3941,7 @@ object.entries@^1.1.2: define-properties "^1.2.0" es-abstract "^1.22.1" -object.fromentries@^2.0.2: +object.fromentries@^2.0.6: version "2.0.7" resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== @@ -3872,7 +3950,25 @@ object.fromentries@^2.0.2: define-properties "^1.2.0" es-abstract "^1.22.1" -object.values@^1.1.1: +object.groupby@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" + integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + +object.hasown@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.3.tgz#6a5f2897bb4d3668b8e79364f98ccf971bda55ae" + integrity sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA== + dependencies: + define-properties "^1.2.0" + es-abstract "^1.22.1" + +object.values@^1.1.6: version "1.1.7" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== @@ -3888,7 +3984,7 @@ once@^1.3.0: dependencies: wrappy "1" -optionator@^0.9.1: +optionator@^0.9.3: version "0.9.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== @@ -3910,13 +4006,6 @@ os-tmpdir@~1.0.1: resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -3924,20 +4013,13 @@ p-limit@^2.0.0, p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-limit@^3.1.0: +p-limit@^3.0.2, p-limit@^3.1.0: 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@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== - dependencies: - p-limit "^1.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" @@ -3952,10 +4034,12 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" p-try@^2.0.0: version "2.2.0" @@ -4060,13 +4144,6 @@ path-type@^1.0.0: pify "^2.0.0" pinkie-promise "^2.0.0" -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - integrity sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ== - dependencies: - pify "^2.0.0" - path-type@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" @@ -4253,12 +4330,7 @@ process@0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -prop-types@^15.7.2: +prop-types@^15.8.1: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -4297,6 +4369,11 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g== +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -4342,14 +4419,6 @@ read-pkg-up@^1.0.1: find-up "^1.0.0" read-pkg "^1.0.0" -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - integrity sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w== - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - read-pkg-up@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" @@ -4367,15 +4436,6 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.0.0" -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - integrity sha512-eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA== - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" @@ -4502,11 +4562,6 @@ regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.1: define-properties "^1.2.0" set-function-name "^2.0.0" -regexpp@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - regexpu-core@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" @@ -4570,7 +4625,7 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.22.4: +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.22.3, resolve@^1.22.4: version "1.22.6" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.6.tgz#dd209739eca3aef739c626fea1b4f3c506195362" integrity sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw== @@ -4579,6 +4634,15 @@ resolve@^1.1.6, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.22 path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +resolve@^2.0.0-next.4: + version "2.0.0-next.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" + integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + resolve@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5" @@ -4593,6 +4657,11 @@ resumer@~0.0.0: dependencies: through "~2.3.4" +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + right-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" @@ -4600,13 +4669,6 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@2.6.3: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - rimraf@^2.6.2, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" @@ -4614,6 +4676,20 @@ rimraf@^2.6.2, rimraf@^2.6.3: dependencies: glob "^7.1.3" +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + safe-array-concat@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" @@ -4704,13 +4780,6 @@ semver@^6.0.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.2.1: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - semver@~7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" @@ -4801,15 +4870,6 @@ slash@^2.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== -slice-ansi@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== - dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" - is-fullwidth-code-point "^2.0.0" - sliced@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41" @@ -4912,7 +4972,7 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string.prototype.matchall@^4.0.2: +string.prototype.matchall@^4.0.8: version "4.0.10" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz#a1553eb532221d4180c51581d6072cd65d1ee100" integrity sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ== @@ -4996,7 +5056,7 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -5032,7 +5092,7 @@ strip-indent@^1.0.1: dependencies: get-stdin "^4.0.1" -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -5082,16 +5142,6 @@ supports-preserve-symlinks-flag@^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== -table@^5.2.3: - version "5.4.6" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" - integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== - dependencies: - ajv "^6.10.2" - lodash "^4.17.14" - slice-ansi "^2.1.0" - string-width "^3.0.0" - tablesorter@2.31.3: version "2.31.3" resolved "https://registry.yarnpkg.com/tablesorter/-/tablesorter-2.31.3.tgz#94c33234ba0e5d9efc5ba4e48651010a396c8b64" @@ -5288,7 +5338,7 @@ ts-interface-checker@^0.1.9: resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== -tsconfig-paths@^3.9.0: +tsconfig-paths@^3.14.2: version "3.14.2" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== @@ -5310,10 +5360,10 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== typed-array-buffer@^1.0.0: version "1.0.0" @@ -5427,11 +5477,6 @@ uuid@^3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -v8-compile-cache@^2.0.3: - version "2.4.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz#cdada8bec61e15865f05d097c5f4fd30e94dc128" - integrity sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw== - validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -5572,13 +5617,6 @@ write-file-atomic@^2.4.2: imurmurhash "^0.1.4" signal-exit "^3.0.2" -write@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" - integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== - dependencies: - mkdirp "^0.5.1" - ws@^7.2.0: version "7.5.9" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" @@ -5631,11 +5669,6 @@ yallist@^3.0.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -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== - yargs-parser@^13.0.0, yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" From b855837d538491c8631baf0e83bfd558a20bd603 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Tamargo?= Date: Fri, 6 Oct 2023 17:48:39 +0200 Subject: [PATCH 031/194] Fix newly detected eslint issues The upgrade from eslint 7 to 8 seems to have found a few new issues that it was not aware of before. This fixes those. --- flow-typed/npm/cookie_v0.4.x.js | 2 +- flow-typed/npm/fast-diff_v1.x.x.js | 3 +- flow-typed/npm/jed_v1.x.x.js | 16 ++--- flow-typed/npm/pg_v8.x.x.js | 1 + root/report/components/ArtistUrlList.js | 2 +- root/report/components/LabelUrlList.js | 2 +- root/report/components/ReleaseGroupUrlList.js | 2 +- root/report/components/ReleaseUrlList.js | 2 +- .../account/components/EditProfileForm.js | 62 ++++++++++------- root/static/scripts/common.js | 22 +++--- .../scripts/common/components/Autocomplete.js | 4 +- .../common/components/Autocomplete2.js | 3 +- .../common/components/ExpandedArtistCredit.js | 4 +- .../scripts/common/components/TagEditor.js | 4 +- root/static/scripts/edit.js | 44 ++++++------ .../scripts/edit/utility/createField.js | 2 +- root/static/scripts/edit/validation.js | 2 +- root/static/scripts/release-editor.js | 32 ++++----- root/static/scripts/tests/browser-runner.js | 2 +- root/static/scripts/tests/dialog.js | 6 +- root/static/scripts/tests/index-web.js | 68 +++++++++---------- script/generate_json_flow_type.js | 2 +- script/xgettext.js | 2 +- 23 files changed, 150 insertions(+), 139 deletions(-) diff --git a/flow-typed/npm/cookie_v0.4.x.js b/flow-typed/npm/cookie_v0.4.x.js index 0bd5a406ad3..34b76403d81 100644 --- a/flow-typed/npm/cookie_v0.4.x.js +++ b/flow-typed/npm/cookie_v0.4.x.js @@ -18,7 +18,7 @@ declare module 'cookie' { parse: ( str: string, options?: CookeParseOptions, - ) => {[string]: string, ...}, + ) => {[cookieName: string]: string, ...}, serialize: ( name: string, value: string, diff --git a/flow-typed/npm/fast-diff_v1.x.x.js b/flow-typed/npm/fast-diff_v1.x.x.js index 258639d5ddd..132859ec7e8 100644 --- a/flow-typed/npm/fast-diff_v1.x.x.js +++ b/flow-typed/npm/fast-diff_v1.x.x.js @@ -14,8 +14,9 @@ declare module 'fast-diff' { * EQUAL = 0 * DELETE = -1 */ - declare type FastEditDiff = [-1 | 0 | 1, string]; + declare type FastEditDiff = [1 | 0 | -1, string]; + // eslint-disable-next-line no-unused-vars declare function diff( a: string, b: string, diff --git a/flow-typed/npm/jed_v1.x.x.js b/flow-typed/npm/jed_v1.x.x.js index f207c699bbd..27c21603a06 100644 --- a/flow-typed/npm/jed_v1.x.x.js +++ b/flow-typed/npm/jed_v1.x.x.js @@ -2,13 +2,13 @@ declare module 'jed' { declare export type JedOptions = { domain?: string, locale_data: { - [string]: { + [domain: string]: { '': { domain: string, lang: string, plural_forms: string, }, - [string]: Array, + [messageId: string]: Array, ... }, ... @@ -17,17 +17,17 @@ declare module 'jed' { }; declare class Jed { - constructor(options: JedOptions): Jed; - locale?: string, - options: JedOptions; - dgettext(domain: string, key: string): string; + constructor(options: JedOptions): Jed, + dgettext(domain: string, key: string): string, dngettext( domain: string, singular_key: string, plural_key: string, value: number, - ): string; - dpgettext(domain: string, context: string, key: string): string; + ): string, + dpgettext(domain: string, context: string, key: string): string, + locale?: string, + options: JedOptions, } declare module.exports: typeof Jed; diff --git a/flow-typed/npm/pg_v8.x.x.js b/flow-typed/npm/pg_v8.x.x.js index bfd211fbeb5..5f249db1a8b 100644 --- a/flow-typed/npm/pg_v8.x.x.js +++ b/flow-typed/npm/pg_v8.x.x.js @@ -18,6 +18,7 @@ declare module 'pg' { +host?: string, }; + // eslint-disable-next-line no-unused-vars declare export type QueryConfig<+V = mixed> = { +name?: string, +text: string, diff --git a/root/report/components/ArtistUrlList.js b/root/report/components/ArtistUrlList.js index 7193bf97270..48ec956d8ff 100644 --- a/root/report/components/ArtistUrlList.js +++ b/root/report/components/ArtistUrlList.js @@ -38,7 +38,7 @@ const ArtistUrlList = ({ {items.map((item, index) => { if (!item.url) { - return ; + return ; } lastGID = currentGID; currentGID = item.url.gid; diff --git a/root/report/components/LabelUrlList.js b/root/report/components/LabelUrlList.js index 7ed7f55e2b9..845b1297560 100644 --- a/root/report/components/LabelUrlList.js +++ b/root/report/components/LabelUrlList.js @@ -38,7 +38,7 @@ const LabelUrlList = ({ {items.map((item, index) => { if (!item.url) { - return ; + return ; } lastGID = currentGID; diff --git a/root/report/components/ReleaseGroupUrlList.js b/root/report/components/ReleaseGroupUrlList.js index 126959b2249..fd8990ce630 100644 --- a/root/report/components/ReleaseGroupUrlList.js +++ b/root/report/components/ReleaseGroupUrlList.js @@ -41,7 +41,7 @@ const ReleaseGroupUrlList = ({ {items.map((item, index) => { if (!item.url) { - return ; + return ; } lastGID = currentGID; diff --git a/root/report/components/ReleaseUrlList.js b/root/report/components/ReleaseUrlList.js index 2bc1f63a4de..ea276a9308c 100644 --- a/root/report/components/ReleaseUrlList.js +++ b/root/report/components/ReleaseUrlList.js @@ -41,7 +41,7 @@ const ReleaseUrlList = ({ {items.map((item, index) => { if (!item.url) { - return ; + return ; } lastGID = currentGID; diff --git a/root/static/scripts/account/components/EditProfileForm.js b/root/static/scripts/account/components/EditProfileForm.js index 34745a9c4fc..721130be177 100644 --- a/root/static/scripts/account/components/EditProfileForm.js +++ b/root/static/scripts/account/components/EditProfileForm.js @@ -112,21 +112,25 @@ class EditProfileForm extends React.Component { handleAreaChangeBound: (area: AreaClassT) => void; handleAreaChange(area: AreaClassT) { - this.setState(prevState => mutate(prevState, newState => { - const formField = newState.form.field; - formField.area_id.value = area.id; - formField.area.field.name.value = area.name; - formField.area.field.gid.value = area.gid; - })); + this.setState( + prevState => mutate(prevState, newState => { + const formField = newState.form.field; + formField.area_id.value = area.id; + formField.area.field.name.value = area.name; + formField.area.field.gid.value = area.gid; + }), + ); } handleGenderChangeBound: (e: SyntheticEvent) => void; handleGenderChange(e: SyntheticEvent) { const selectedGender = e.currentTarget.value; - this.setState(prevState => mutate(prevState, newState => { - newState.form.field.gender_id.value = parseInt(selectedGender, 10); - })); + this.setState( + prevState => mutate(prevState, newState => { + newState.form.field.gender_id.value = parseInt(selectedGender, 10); + }), + ); } handleLanguageChange( @@ -134,10 +138,12 @@ class EditProfileForm extends React.Component { languageIndex: number, ) { const selectedLanguage = parseInt(e.currentTarget.value, 10); - this.setState(prevState => mutate(prevState, newState => { - const compound = newState.form.field.languages.field[languageIndex]; - compound.field.language_id.value = selectedLanguage; - })); + this.setState( + prevState => mutate(prevState, newState => { + const compound = newState.form.field.languages.field[languageIndex]; + compound.field.language_id.value = selectedLanguage; + }), + ); } handleFluencyChange( @@ -153,10 +159,12 @@ class EditProfileForm extends React.Component { case 'native': selectedFluency = selectedValue; } - this.setState(prevState => mutate(prevState, newState => { - const compound = newState.form.field.languages.field[languageIndex]; - compound.field.fluency.value = selectedFluency; - })); + this.setState( + prevState => mutate(prevState, newState => { + const compound = newState.form.field.languages.field[languageIndex]; + compound.field.fluency.value = selectedFluency; + }), + ); } removeLanguage(languageIndex: number) { @@ -168,15 +176,17 @@ class EditProfileForm extends React.Component { handleLanguageAddBound: () => void; handleLanguageAdd() { - this.setState(prevState => mutate(prevState, newState => { - pushCompoundField<{ - fluency: FluencyT | null, - language_id: number | null, - }>(newState.form.field.languages, { - fluency: null, - language_id: null, - }); - })); + this.setState( + prevState => mutate(prevState, newState => { + pushCompoundField<{ + fluency: FluencyT | null, + language_id: number | null, + }>(newState.form.field.languages, { + fluency: null, + language_id: null, + }); + }), + ); } render(): React$Element<'form'> { diff --git a/root/static/scripts/common.js b/root/static/scripts/common.js index 97d023f769f..1c3d048f3bd 100644 --- a/root/static/scripts/common.js +++ b/root/static/scripts/common.js @@ -7,24 +7,24 @@ /* Global polyfills not provided by core-js */ require('whatwg-fetch'); -require('./common/focusin-focusout-polyfill'); +require('./common/focusin-focusout-polyfill.js'); /* End of global polyfills */ -require('./public-path'); -require('./common/sentry'); +require('./public-path.js'); +require('./common/sentry.js'); window.ko = require('knockout'); window.$ = window.jQuery = require('jquery'); -require('../lib/jquery.ui/ui/jquery-ui.custom'); +require('../lib/jquery.ui/ui/jquery-ui.custom.js'); -require('./common/components/Annotation'); -require('./common/components/CommonsImage'); -require('./common/components/FingerprintTable'); -require('./common/components/WikipediaExtract'); -require('./common/MB/Control/Autocomplete'); -require('./common/MB/Control/SelectAll'); -require('./common/components/TagEditor'); +require('./common/components/Annotation.js'); +require('./common/components/CommonsImage.js'); +require('./common/components/FingerprintTable.js'); +require('./common/components/WikipediaExtract.js'); +require('./common/MB/Control/Autocomplete.js'); +require('./common/MB/Control/SelectAll.js'); +require('./common/components/TagEditor.js'); import('./common/artworkViewer.js'); import('./common/dialogs.js'); diff --git a/root/static/scripts/common/components/Autocomplete.js b/root/static/scripts/common/components/Autocomplete.js index 1dbd3af5b0e..faca6b782d9 100644 --- a/root/static/scripts/common/components/Autocomplete.js +++ b/root/static/scripts/common/components/Autocomplete.js @@ -16,7 +16,7 @@ import SearchIcon from './SearchIcon.js'; class Autocomplete extends React.Component { componentDidMount() { const $ = require('jquery'); - require('../MB/Control/Autocomplete'); + require('../MB/Control/Autocomplete.js'); const currentSelection = ko.observable(); const options = {...this.props}; @@ -34,7 +34,7 @@ class Autocomplete extends React.Component { componentWillUnmount() { const $ = require('jquery'); - require('../MB/Control/Autocomplete'); + require('../MB/Control/Autocomplete.js'); this._subscription.dispose(); this._subscription = null; diff --git a/root/static/scripts/common/components/Autocomplete2.js b/root/static/scripts/common/components/Autocomplete2.js index c899a46a2c0..0c74c2bbdea 100644 --- a/root/static/scripts/common/components/Autocomplete2.js +++ b/root/static/scripts/common/components/Autocomplete2.js @@ -715,8 +715,7 @@ const Autocomplete2 = (React.memo(<+T: EntityItemT>( item.type === 'option' && item.entity.id === selectedItem.id )} - // XXX Until Flow supports https://github.com/facebook/flow/issues/7672 - // $FlowIssue[incompatible-type-arg] + // $FlowIssue[incompatible-type-arg] until Flow supports https://github.com/facebook/flow/issues/7672 item={item} key={item.id} selectItem={selectItem} diff --git a/root/static/scripts/common/components/ExpandedArtistCredit.js b/root/static/scripts/common/components/ExpandedArtistCredit.js index 29ca65a64cb..dc2fc4cd53e 100644 --- a/root/static/scripts/common/components/ExpandedArtistCredit.js +++ b/root/static/scripts/common/components/ExpandedArtistCredit.js @@ -26,9 +26,9 @@ export const ExpandedArtistCreditList = ({ let artistList: Array = []; if (names.some(x => x.artist.name !== x.name || x.artist.comment)) { - artistList = names.map(name => { + artistList = names.map((name, index) => { if (name.artist.name === name.name) { - return ; + return ; } return exp.l( '{artist} as {name}', diff --git a/root/static/scripts/common/components/TagEditor.js b/root/static/scripts/common/components/TagEditor.js index 5d00fc97b4b..bb677cea498 100644 --- a/root/static/scripts/common/components/TagEditor.js +++ b/root/static/scripts/common/components/TagEditor.js @@ -295,7 +295,7 @@ class TagEditor extends React.Component { args: {+url: string}, ) => $.ajax({...args, dataType: 'json'}); } else { - doRequest = require('../utility/request').default; + doRequest = require('../utility/request.js').default; } for (const [action, items] of Object.entries(actions)) { @@ -313,7 +313,7 @@ class TagEditor extends React.Component { } componentDidMount() { - require('../../../lib/jquery-ui'); + require('../../../lib/jquery-ui.js'); window.addEventListener('beforeunload', this.onBeforeUnloadBound); } diff --git a/root/static/scripts/edit.js b/root/static/scripts/edit.js index c73296727c8..ee090169761 100644 --- a/root/static/scripts/edit.js +++ b/root/static/scripts/edit.js @@ -1,27 +1,27 @@ /* eslint-disable import/no-commonjs */ -require('./common'); +require('./common.js'); -require('../lib/knockout/knockout-delegatedEvents'); +require('../lib/knockout/knockout-delegatedEvents.js'); -require('./edit/common'); -require('./edit/confirmNavigationFallback'); -require('./edit/ExampleRelationships'); -require('./edit/forms'); -require('./edit/validation'); -require('./edit/externalLinks'); -require('./edit/utility/guessFeat'); -require('./edit/utility/toggleEnded'); -require('./edit/MB/Control/Area'); -require('./edit/components/ArtistCreditEditor'); -require('./edit/components/ReleaseMergeStrategy'); -require('./edit/components/forms'); -require('./edit/MB/Control/ArtistEdit'); -require('./edit/MB/Control/Bubble'); -require('./edit/URLCleanup'); -require('./edit/MB/edit'); -require('./edit/MB/reltypeslist'); -require('./edit/MB/TextList'); -require('./edit/check-duplicates'); +require('./edit/common.js'); +require('./edit/confirmNavigationFallback.js'); +require('./edit/ExampleRelationships.js'); +require('./edit/forms.js'); +require('./edit/validation.js'); +require('./edit/externalLinks.js'); +require('./edit/utility/guessFeat.js'); +require('./edit/utility/toggleEnded.js'); +require('./edit/MB/Control/Area.js'); +require('./edit/components/ArtistCreditEditor.js'); +require('./edit/components/ReleaseMergeStrategy.js'); +require('./edit/components/forms.js'); +require('./edit/MB/Control/ArtistEdit.js'); +require('./edit/MB/Control/Bubble.js'); +require('./edit/URLCleanup.js'); +require('./edit/MB/edit.js'); +require('./edit/MB/reltypeslist.js'); +require('./edit/MB/TextList.js'); +require('./edit/check-duplicates.js'); -require('./guess-case/MB/Control/GuessCase'); +require('./guess-case/MB/Control/GuessCase.js'); diff --git a/root/static/scripts/edit/utility/createField.js b/root/static/scripts/edit/utility/createField.js index d561a768eb5..a7a5416f63f 100644 --- a/root/static/scripts/edit/utility/createField.js +++ b/root/static/scripts/edit/utility/createField.js @@ -28,7 +28,7 @@ export function createCompoundFieldFromObject< Object.entries(fieldValues).map(([key, value]) => [ key, createField(name + '.' + key, value), - ]) + ]), ); return { errors: [], diff --git a/root/static/scripts/edit/validation.js b/root/static/scripts/edit/validation.js index 622866dde7f..5265c5a3c64 100644 --- a/root/static/scripts/edit/validation.js +++ b/root/static/scripts/edit/validation.js @@ -40,7 +40,7 @@ MB.validation = { if (typeof document !== 'undefined') { const $ = require('jquery'); - const clean = require('../common/utility/clean').default; + const clean = require('../common/utility/clean.js').default; errorsExist.subscribe(function (value) { $('#page form button[type=submit]').prop('disabled', value); diff --git a/root/static/scripts/release-editor.js b/root/static/scripts/release-editor.js index ff6bd370c47..e45af005987 100644 --- a/root/static/scripts/release-editor.js +++ b/root/static/scripts/release-editor.js @@ -1,21 +1,21 @@ /* eslint-disable import/no-commonjs */ -require('./edit'); +require('./edit.js'); -require('./edit/confirmNavigationFallback'); +require('./edit/confirmNavigationFallback.js'); // The order here is important! -require('./release-editor/viewModel'); -require('./release-editor/utils'); -require('./release-editor/actions'); -require('./release-editor/bubbles'); -require('./release-editor/dialogs'); -require('./release-editor/duplicates'); -require('./release-editor/edits'); -require('./release-editor/fields'); -require('./release-editor/bindingHandlers'); -require('./release-editor/init'); -require('./release-editor/recordingAssociation'); -require('./release-editor/seeding'); -require('./release-editor/trackParser'); -require('./release-editor/validation'); +require('./release-editor/viewModel.js'); +require('./release-editor/utils.js'); +require('./release-editor/actions.js'); +require('./release-editor/bubbles.js'); +require('./release-editor/dialogs.js'); +require('./release-editor/duplicates.js'); +require('./release-editor/edits.js'); +require('./release-editor/fields.js'); +require('./release-editor/bindingHandlers.js'); +require('./release-editor/init.js'); +require('./release-editor/recordingAssociation.js'); +require('./release-editor/seeding.js'); +require('./release-editor/trackParser.js'); +require('./release-editor/validation.js'); diff --git a/root/static/scripts/tests/browser-runner.js b/root/static/scripts/tests/browser-runner.js index 4147e8edbff..1e6e6827b26 100644 --- a/root/static/scripts/tests/browser-runner.js +++ b/root/static/scripts/tests/browser-runner.js @@ -45,4 +45,4 @@ window.addEventListener('error', function (event) { console.log('Line number: ' + event.lineno); }); -require('./index-web'); +require('./index-web.js'); diff --git a/root/static/scripts/tests/dialog.js b/root/static/scripts/tests/dialog.js index d10be18d5d0..0f53f06b557 100644 --- a/root/static/scripts/tests/dialog.js +++ b/root/static/scripts/tests/dialog.js @@ -12,9 +12,9 @@ const React = require('react'); const ReactDOMClient = require('react-dom/client'); -const Modal = require('../common/components/Modal').default; -const ButtonPopover = require('../common/components/ButtonPopover').default; -const useReturnFocus = require('../common/hooks/useReturnFocus').default; +const Modal = require('../common/components/Modal.js').default; +const ButtonPopover = require('../common/components/ButtonPopover.js').default; +const useReturnFocus = require('../common/hooks/useReturnFocus.js').default; const container = document.createElement('div'); document.body?.insertBefore(container, document.getElementById('page')); diff --git a/root/static/scripts/tests/index-web.js b/root/static/scripts/tests/index-web.js index ce764cd1a51..c87bd26e30e 100644 --- a/root/static/scripts/tests/index-web.js +++ b/root/static/scripts/tests/index-web.js @@ -1,36 +1,36 @@ /* eslint-disable import/no-commonjs */ -require('./autocomplete'); -require('./common/immutable-entities'); -require('./Control/URLCleanup'); -require('./CoverArt'); -require('./edit'); -require('./edit/utility/linkPhrase'); -require('./entity'); -require('./GuessCase'); -require('./guessFeat'); -require('./i18n'); -require('./i18n/expand2'); -require('./relationship-editor'); -require('./relationship-editor/dialog'); -require('./release-editor/actions'); -require('./release-editor/common'); -require('./release-editor/dialogs'); -require('./release-editor/edits'); -require('./release-editor/fields'); -require('./release-editor/trackParser'); -require('./release-editor/utils'); -require('./release-editor/validation'); -require('./utility/age'); -require('./utility/areDatesEqual'); -require('./utility/compareDates'); -require('./utility/dates'); -require('./utility/formatDate'); -require('./utility/formatDatePeriod'); -require('./utility/formatSetlist'); -require('./utility/formatTrackLength'); -require('./utility/formatUserDate'); -require('./utility/fullwidthLatin'); -require('./utility/isShortenedUrl'); -require('./utility/parseDate'); -require('./utility/sanitizedEditor'); +require('./autocomplete.js'); +require('./common/immutable-entities.js'); +require('./Control/URLCleanup.js'); +require('./CoverArt.js'); +require('./edit.js'); +require('./edit/utility/linkPhrase.js'); +require('./entity.js'); +require('./GuessCase.js'); +require('./guessFeat.js'); +require('./i18n.js'); +require('./i18n/expand2.js'); +require('./relationship-editor.js'); +require('./relationship-editor/dialog.js'); +require('./release-editor/actions.js'); +require('./release-editor/common.js'); +require('./release-editor/dialogs.js'); +require('./release-editor/edits.js'); +require('./release-editor/fields.js'); +require('./release-editor/trackParser.js'); +require('./release-editor/utils.js'); +require('./release-editor/validation.js'); +require('./utility/age.js'); +require('./utility/areDatesEqual.js'); +require('./utility/compareDates.js'); +require('./utility/dates.js'); +require('./utility/formatDate.js'); +require('./utility/formatDatePeriod.js'); +require('./utility/formatSetlist.js'); +require('./utility/formatTrackLength.js'); +require('./utility/formatUserDate.js'); +require('./utility/fullwidthLatin.js'); +require('./utility/isShortenedUrl.js'); +require('./utility/parseDate.js'); +require('./utility/sanitizedEditor.js'); diff --git a/script/generate_json_flow_type.js b/script/generate_json_flow_type.js index 37b3e21328e..ce4ba121166 100755 --- a/script/generate_json_flow_type.js +++ b/script/generate_json_flow_type.js @@ -12,7 +12,7 @@ const readline = require('readline'); -const {generateFlowType} = require('../root/utility/generateFlowType'); +const {generateFlowType} = require('../root/utility/generateFlowType.js'); (async function () { console.log( diff --git a/script/xgettext.js b/script/xgettext.js index 51c582ac123..3d49df8d477 100755 --- a/script/xgettext.js +++ b/script/xgettext.js @@ -29,7 +29,7 @@ const XGettext = require('xgettext-js'); const argv = require('yargs').argv; const cleanMsgid = - require('../root/static/scripts/common/i18n/cleanMsgid').default; + require('../root/static/scripts/common/i18n/cleanMsgid.js').default; const PO_DIR = path.resolve(__dirname, '../po'); From 6bda034c7dd7263bc19988c2a4c17d608500c579 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Tamargo?= Date: Tue, 10 Oct 2023 19:07:32 +0300 Subject: [PATCH 032/194] MBS-13317: Remove Kget.jp from lyrics whitelist (#3052) Site apparently closed in March. Since it's a lyrics site and no longer licensed I will remove the existing URLs with MBBE-82. --- lib/MusicBrainz/Server/Data/URL.pm | 1 - lib/MusicBrainz/Server/Entity/URL/Kget.pm | 23 ------------ .../images/external-favicons/kget-32.png | Bin 1452 -> 0 bytes root/static/scripts/common/constants.js | 1 - root/static/scripts/edit/URLCleanup.js | 34 ------------------ .../scripts/tests/Control/URLCleanup.js | 15 -------- root/static/styles/favicons.less | 1 - 7 files changed, 75 deletions(-) delete mode 100644 lib/MusicBrainz/Server/Entity/URL/Kget.pm delete mode 100644 root/static/images/external-favicons/kget-32.png diff --git a/lib/MusicBrainz/Server/Data/URL.pm b/lib/MusicBrainz/Server/Data/URL.pm index 601d285e9cc..85f437560e5 100644 --- a/lib/MusicBrainz/Server/Data/URL.pm +++ b/lib/MusicBrainz/Server/Data/URL.pm @@ -103,7 +103,6 @@ my %URL_SPECIALIZATIONS = ( 'JunoDownload' => qr{^https?://(?:www\.)?junodownload\.com/}i, 'Kashinavi' => qr{^https?://(?:www\.)?kashinavi\.com/}i, 'KBR' => qr{^https?://opac\.kbr\.be/}i, - 'Kget' => qr{^https?://(?:www\.)?kget\.jp/}i, 'Kickstarter' => qr{^https?://(?:www\.)?kickstarter\.com/}i, 'Kofi' => qr{^https?://(?:www\.)?ko-fi\.com/}i, 'LaBoiteAuxParoles' => qr{^https?://(?:www\.)?laboiteauxparoles\.com/}i, diff --git a/lib/MusicBrainz/Server/Entity/URL/Kget.pm b/lib/MusicBrainz/Server/Entity/URL/Kget.pm deleted file mode 100644 index 6627a92560a..00000000000 --- a/lib/MusicBrainz/Server/Entity/URL/Kget.pm +++ /dev/null @@ -1,23 +0,0 @@ -package MusicBrainz::Server::Entity::URL::Kget; - -use Moose; -use utf8; - -extends 'MusicBrainz::Server::Entity::URL'; -with 'MusicBrainz::Server::Entity::URL::Sidebar'; - -sub sidebar_name { '歌詞GET' } - -__PACKAGE__->meta->make_immutable; -no Moose; -1; - -=head1 COPYRIGHT AND LICENSE - -Copyright (C) 2019 MetaBrainz Foundation - -This file is part of MusicBrainz, the open internet music database, -and is licensed under the GPL version 2, or (at your option) any -later version: http://www.gnu.org/licenses/gpl-2.0.txt - -=cut diff --git a/root/static/images/external-favicons/kget-32.png b/root/static/images/external-favicons/kget-32.png deleted file mode 100644 index 782883debfb5c73980497e64dfbef7785148ced0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1452 zcmV;d1ylNoP)v)bjJX3!~ku-0BgShXS)Dnxd2|Z09&yDS+M|DuK-l62#(wS`};ge?QoWKwg6+X0AQ&AUZ((9r~p%-08gC(Oq~Esl>kVV07R3-GJ>X@=A!j{p|9v!P}_U@d{$809c=BuiVYm=)le9z0T*k#o*T7 z@BiiQ!Ga9n!)Ad&fykQl`n9r{@UjOK!|Cq+W*+* z07{Urrp%Mg?oyr4|Ip##)8>Mh#L~Lg%*Ns-XSPgqtr(QkZ77E={bwX(y!D1r^vgIyXm0DO(u=wKnZMkg z#s8GN|B|}>l)M;5iU2~6jjz}UNsd{y=KqYhUSXZ(inmg*hcfPx4jdT_5OKt0`dBms{gG!)fMCvvcv0I2JZN08QX0P329goBLsa*!gZ7VTd# z0J?K5G>I+TN2nigVi;iEHYgx~fGI*6=(<{lFr<{U=D|l04|dTICV(GJRQ4eOA`*zd z5R91m58bza-IhA75Du8Laz_GPs~a&-Tw63OP*VU1Oe$)+qU9$ez=#IZF?Y?F^6$6I z0}$|&F$P*v(^BJf8nphk--?QjBV?~V*)S^sS;7_N#?2Ok_xB$j=$3}Mx|M!4G7A9V zh8kurDyE>csy5^Sr;=_RMsTBx5e740UZ*0B{0$-_~fAVIZfY;`l zExG5q%>a#3^`;x7xYnun!}nu-8H!eq{HjK`m;;Ck+7MS}OmdTM5BLV;zI2vPH?;!W5r9N_&mQ)YUet=Lb zGp9XB&KCoI>%9~Ii$#i4IL`0|Eb`t_Hu{rIadF9Om?d}k`E32C^xL9O3(+)r6*|N7DugJ-;T z+7wvbD#fZP4|O8=bQE9I*4jXaj{&+Dhs$pJXV)!VPVUb6C-2Dp`GFsH)xkOdldtZ= z|5JQ`k>pG7R)7@%gJ{Zvc!r-5Fo_FG-p*%WkPmeSN&*1svD?Faw20>b0000 Date: Tue, 17 Oct 2023 12:33:54 -0500 Subject: [PATCH 033/194] MBS-8952: Can rename recordings via autocomplete (#3039) I was able to reproduce this using the steps in https://tickets.metabrainz.org/browse/MBS-13021. The primary issue is that recordings from the search server don't include a database row ID, so the `if (currentSelection.id)` check modified here didn't clear the selection when modifying text. The `else` branch updated the recording name with the entered text and notified all subscribers of the autocomplete observable. Checking for `currentSelection.gid` there fixes the bug. I also changed the edit generation code to revert any recording changes if the necessary settings to update them aren't enabled. --- .../scripts/common/MB/Control/Autocomplete.js | 6 +- root/static/scripts/release-editor/edits.js | 4 + t/selenium.mjs | 1 + t/selenium/MBS-8952.json5 | 115 ++++++++++++++++++ 4 files changed, 125 insertions(+), 1 deletion(-) create mode 100644 t/selenium/MBS-8952.json5 diff --git a/root/static/scripts/common/MB/Control/Autocomplete.js b/root/static/scripts/common/MB/Control/Autocomplete.js index 60e1d984a9a..35d3d9ab6b2 100644 --- a/root/static/scripts/common/MB/Control/Autocomplete.js +++ b/root/static/scripts/common/MB/Control/Autocomplete.js @@ -288,7 +288,11 @@ $.widget('mb.entitylookup', $.ui.autocomplete, { * entity (like release group types). */ - if (currentSelection.id) { + if ( + // entities from the search server will not have a numeric id + currentSelection.id || + currentSelection.gid + ) { this.currentSelection(this._dataToEntity({name: name})); } else if (currentSelection.name !== name) { currentSelection.name = name; diff --git a/root/static/scripts/release-editor/edits.js b/root/static/scripts/release-editor/edits.js index 80b2c057783..dbbdb6c0e9b 100644 --- a/root/static/scripts/release-editor/edits.js +++ b/root/static/scripts/release-editor/edits.js @@ -184,10 +184,14 @@ releaseEditor.edits = { if (oldRecording) { if (track.updateRecordingTitle() && !isBlank(trackData.name)) { newRecording.name = trackData.name; + } else { + newRecording.name = oldRecording.name; } if (track.updateRecordingArtist()) { newRecording.artist_credit = trackData.artist_credit; + } else { + newRecording.artist_credit = oldRecording.artist_credit; } if (!deepEqual(newRecording, oldRecording)) { diff --git a/t/selenium.mjs b/t/selenium.mjs index fa5ab48aaef..901ea06cc31 100755 --- a/t/selenium.mjs +++ b/t/selenium.mjs @@ -638,6 +638,7 @@ const seleniumTests = [ {name: 'MBS-2604.json5', login: true}, {name: 'MBS-5387.json5', login: true}, {name: 'MBS-7456.json5', login: true}, + {name: 'MBS-8952.json5', login: true}, {name: 'MBS-9548.json5'}, {name: 'MBS-9669.json5'}, {name: 'MBS-9941.json5', login: true}, diff --git a/t/selenium/MBS-8952.json5 b/t/selenium/MBS-8952.json5 new file mode 100644 index 00000000000..3591c9d5eac --- /dev/null +++ b/t/selenium/MBS-8952.json5 @@ -0,0 +1,115 @@ +{ + title: 'MBS-8952', + commands: [ + { + command: 'open', + target: '/release/add', + value: '', + }, + { + command: 'type', + target: 'id=name', + value: 'Travelling Man', + }, + { + command: 'type', + target: "css=td.release-artist span.autocomplete input.name", + value: 'Nine Inch Nails', + }, + { + command: 'click', + target: "css=td.release-artist span.autocomplete img.search", + value: '', + }, + { + command: 'pause', + target: '1000', + value: '', + }, + { + command: 'click', + target: "xpath=//li[contains(@class, 'ui-menu-item')][contains(., 'Nine Inch Nails')]", + value: '', + }, + { + command: 'click', + target: "xpath=//a[@href='#tracklist']", + value: '', + }, + { + command: 'uncheck', + target: "xpath=//div[@id='add-medium-parser']//input[@name='lines-have-artists']", + value: '', + }, + { + command: 'check', + target: "xpath=//div[@id='add-medium-parser']//input[@name='use-titles']", + value: '', + }, + { + command: 'type', + target: "xpath=//div[@id='add-medium-parser']//textarea[contains(@class, 'tracklist')]", + value: '1. Travelling Man', + }, + { + command: 'click', + target: "xpath=//div[@id='add-medium-dialog']//button[contains(text(), 'Add Medium')]", + value: '', + }, + { + command: 'select', + target: "xpath=(//select[contains(@id, 'medium-format-')])[1]", + value: 'label=Vinyl', + }, + { + command: 'click', + target: "xpath=//a[@href='#recordings']", + value: '', + }, + { + command: 'click', + target: 'css=#recordings tr.track button.edit-track-recording', + value: '', + }, + { + command: 'check', + target: 'css=#recording-assoc-bubble input[value="0f42ab32-22cd-4dcf-927b-a8d9a183d68b"]', + value: '', + }, + { + command: 'type', + target: 'css=#recording-assoc-bubble input.name.lookup-performed', + value: 'asdf', + }, + { + command: 'assertEval', + target: 'document.querySelector("#recording-assoc-bubble input.name").classList.contains("lookup-performed")', + value: 'false', + }, + { + command: 'click', + target: "xpath=//a[@href='#edit-note']", + value: '', + }, + { + command: 'assertEval', + target: 'document.querySelector("#enter-edit").disabled', + value: 'true', + }, + { + command: 'open', + target: '/', + value: '', + }, + { + command: 'handleAlert', + target: 'accept', + value: '', + }, + { + command: 'waitUntilUrlIs', + target: '/', + value: '', + }, + ], +} From 734561b951e15c8372cc6bec89e363b31facc23b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Tamargo?= Date: Tue, 17 Oct 2023 22:02:24 +0300 Subject: [PATCH 034/194] Use our new contains_ functions in more places (#3051) These are way more readable than an any { $_ eq whatever } call. --- admin/ExportAllTables | 5 +++-- docs/database_schema_diagrams/write_graphs.pl | 17 +++++++++-------- lib/MusicBrainz/Server/Data/Artist.pm | 5 +++-- lib/MusicBrainz/Server/Data/Edit.pm | 11 +++++++++-- lib/MusicBrainz/Server/Sitemap/Builder.pm | 4 ++-- lib/MusicBrainz/Server/Translation.pm | 5 +++-- lib/MusicBrainz/Server/Validation.pm | 7 ++++++- t/hydration_i18n.t | 4 ++-- 8 files changed, 37 insertions(+), 21 deletions(-) diff --git a/admin/ExportAllTables b/admin/ExportAllTables index 1400b382bfc..5d6ccff32ab 100755 --- a/admin/ExportAllTables +++ b/admin/ExportAllTables @@ -27,6 +27,7 @@ use MusicBrainz::Server::Constants qw( @WIKIDOCS_TABLE_LIST @DOCUMENTATION_TABLE_LIST ); +use MusicBrainz::Server::Data::Utils qw( contains_string ); use MusicBrainz::Server::Log qw( log_info ); use Getopt::Long; @@ -154,7 +155,7 @@ my $mbdump = MusicBrainz::Script::DatabaseDump->new( @tables = () if not $fDoFullExport; # Sanitise various things for public consumption -if (any { $_ eq 'editor_sanitised' } @tables) +if (contains_string(\@tables, 'editor_sanitised')) { $sql->do("SELECT $EDITOR_SANITISED_COLUMNS INTO TEMPORARY editor_sanitised @@ -295,7 +296,7 @@ if ($fDoReplication) # Dump this /after/ we've possibly updated the current_replication_sequence # Dump this table only if we're dumping everything (i.e., @tablelist is empty) or if it's explicitly requested. -$mbdump->dump_table('replication_control') if (scalar @tablelist == 0 || any { $_ eq 'replication_control' } @tablelist); +$mbdump->dump_table('replication_control') if (scalar @tablelist == 0 || contains_string(\@tablelist, 'replication_control')); $mbdump->end_dump; diff --git a/docs/database_schema_diagrams/write_graphs.pl b/docs/database_schema_diagrams/write_graphs.pl index ca43610a2a3..254af3ae5b1 100755 --- a/docs/database_schema_diagrams/write_graphs.pl +++ b/docs/database_schema_diagrams/write_graphs.pl @@ -71,6 +71,7 @@ =head1 COPYRIGHT AND LICENSE use File::Slurp qw( read_file ); use JSON::XS qw( decode_json ); use List::AllUtils qw( any ); +use MusicBrainz::Server::Data::Utils qw( contains_string ); use MusicBrainz::Server::Log qw( log_error log_info log_warning ); use Readonly; @@ -190,7 +191,7 @@ sub write_dot_files my @dfks; foreach my $cfk (@cfks) { my $ref_table = $cfk->[1]; - if (any { $_ eq $ref_table } @diagram_tables_names) { + if (contains_string(\@diagram_tables_names, $ref_table)) { push @dfks, $cfk; } } @@ -199,10 +200,10 @@ sub write_dot_files my %diagram_columns; foreach my $table (@diagram_tables_names) { - if (not any { $_ eq $table } @created_tables) { + unless (contains_string(\@created_tables, $table)) { log_warning { "The table '$table' in '$diagram_id' diagram doesn't exist." }; } - if (any { $_ eq 'shortened' } @{ %$diagram_tables_props{$table} }) { + if (contains_string([ %$diagram_tables_props{$table} ], 'shortened')) { my $is_any_column_hidden = 0; my @columns; if (exists $created_primary_keys{$table}) { @@ -226,7 +227,7 @@ sub write_dot_files if (@columns) { my @sorted_columns; foreach my $column (@{ $created_columns{$table} }) { - if (any { $_ eq $column } @columns) { + if (contains_string(\@columns, $column)) { push @sorted_columns, $column; } else { $is_any_column_hidden = 1; @@ -267,10 +268,10 @@ sub write_dot_files foreach my $table (@diagram_tables_names) { my $bgcolor = - (any { $_ eq 'highlighted' } @{ %$diagram_tables_props{$table} }) + (contains_string([ %$diagram_tables_props{$table} ], 'highlighted')) ? "$HI_TABLE_COLOR" : "$TABLE_COLOR"; my $title = - (any { $_ eq 'materialized' } @{ %$diagram_tables_props{$table} }) + (contains_string([ %$diagram_tables_props{$table} ], 'materialized')) ? "$table (m)" : "$table"; print $graph_fh <<~"EOF"; "$table" [ @@ -281,7 +282,7 @@ sub write_dot_files if (exists $diagram_columns{$table}) { my @column_names = @{ $diagram_columns{$table} }; foreach my $col (@column_names) { - if (any { $_ eq $col } @{ $created_primary_keys{$table} }) { + if (contains_string($created_primary_keys{$table}, $col)) { print $graph_fh <<~"EOF"; $col EOF @@ -308,7 +309,7 @@ sub write_dot_files foreach my $schema (keys %created_schemas) { my @schema_tables; foreach my $table (@diagram_tables_names) { - if (any { $_ eq $table } @{ $created_schemas{$schema} }) { + if (contains_string($created_schemas{$schema}, $table)) { push @schema_tables, $table; } } diff --git a/lib/MusicBrainz/Server/Data/Artist.pm b/lib/MusicBrainz/Server/Data/Artist.pm index 095c8765003..3bfa6562dce 100644 --- a/lib/MusicBrainz/Server/Data/Artist.pm +++ b/lib/MusicBrainz/Server/Data/Artist.pm @@ -13,6 +13,7 @@ use MusicBrainz::Server::Data::Utils qw( is_special_artist add_partial_date_to_row conditional_merge_column_query + contains_string hash_to_row load_subobjects merge_table_attributes @@ -397,12 +398,12 @@ sub merge my $merged_type_is_group = defined $merged_type && - any { $merged_type eq $_ } @$group_types; + contains_string($group_types, $merged_type); if ($merged_type_is_group && $merged_gender) { my $target_type_is_group = defined $target_type && - any { $target_type eq $_ } @$group_types; + contains_string($group_types, $target_type); if ($target_type_is_group) { $dropped_columns{gender} = $merged_gender; diff --git a/lib/MusicBrainz/Server/Data/Edit.pm b/lib/MusicBrainz/Server/Data/Edit.pm index 44c52100945..c0bdaabcf51 100644 --- a/lib/MusicBrainz/Server/Data/Edit.pm +++ b/lib/MusicBrainz/Server/Data/Edit.pm @@ -14,7 +14,11 @@ use Encode qw( decode ); use Try::Tiny; use List::AllUtils qw( any uniq zip ); use MusicBrainz::Server::Data::Editor; -use MusicBrainz::Server::Data::Utils qw( non_empty type_to_model ); +use MusicBrainz::Server::Data::Utils qw( + contains_string + non_empty + type_to_model +); use MusicBrainz::Server::EditRegistry; use MusicBrainz::Server::Edit::Exceptions; use MusicBrainz::Server::Constants qw( @@ -649,7 +653,10 @@ sub load_all } else { for my $extra_model (@$extra_models) { push @{ $post_load_models->{$model}->{$object_id} }, $extra_model - unless (any { $_ eq $extra_model } @{ $post_load_models->{$model}->{$object_id} }); + unless (contains_string( + $post_load_models->{$model}->{$object_id}, + $extra_model, + )); } } } diff --git a/lib/MusicBrainz/Server/Sitemap/Builder.pm b/lib/MusicBrainz/Server/Sitemap/Builder.pm index fc7e89ffc1e..b3eca226670 100644 --- a/lib/MusicBrainz/Server/Sitemap/Builder.pm +++ b/lib/MusicBrainz/Server/Sitemap/Builder.pm @@ -13,6 +13,7 @@ use List::AllUtils qw( any natatime ); use Moose; use MusicBrainz::Server::Constants qw( %ENTITIES ); use MusicBrainz::Server::Context; +use MusicBrainz::Server::Data::Utils qw( contains_string ); use MusicBrainz::Server::Log qw( log_info ); use MusicBrainz::Server::Sitemap::Constants qw( $MAX_SITEMAP_SIZE ); use MusicBrainz::Server::Sitemap::Utils qw( @@ -131,7 +132,6 @@ has sitemap_files => ( traits => ['Array', 'NoGetopt'], handles => { add_sitemap_file => 'push', - all_sitemap_files => 'elements', }, ); @@ -432,7 +432,7 @@ cleanup, after writing the index file. sub do_not_delete { my ($self, $file) = @_; - any { $_ eq $file } $self->all_sitemap_files; + contains_string($self->sitemap_files, $file); } __PACKAGE__->meta->make_immutable; diff --git a/lib/MusicBrainz/Server/Translation.pm b/lib/MusicBrainz/Server/Translation.pm index 87e44155687..d9a6e80e9d2 100644 --- a/lib/MusicBrainz/Server/Translation.pm +++ b/lib/MusicBrainz/Server/Translation.pm @@ -13,6 +13,7 @@ use POSIX qw( setlocale ); use Text::Balanced qw( extract_bracketed ); use Unicode::ICU::Collator qw( UCOL_NUMERIC_COLLATION UCOL_ON ); +use MusicBrainz::Server::Data::Utils qw( contains_string ); use MusicBrainz::Server::Validation qw( encode_entities ); with 'MusicBrainz::Server::Role::Translation' => { domain => 'mb_server' }; @@ -141,7 +142,7 @@ sub set_language return $set_lang; } # Check if the language without country code is in MB_LANGUAGES - elsif (any { $set_lang_nocountry eq $_ } DBDefs->MB_LANGUAGES) { + elsif (contains_string([ DBDefs->MB_LANGUAGES ], $set_lang_nocountry)) { return $set_lang_nocountry; } # Give up, return the full language even though it looks wrong @@ -176,7 +177,7 @@ sub language_from_cookie any { $cookie->value eq $_ || $cookie_munge eq $_ } DBDefs->MB_LANGUAGES) { return $cookie->value; } elsif (defined $cookie && - any { $cookie_nocountry eq $_ } DBDefs->MB_LANGUAGES) { + contains_string([ DBDefs->MB_LANGUAGES ], $cookie_nocountry)) { return $cookie_nocountry; } else { return undef; diff --git a/lib/MusicBrainz/Server/Validation.pm b/lib/MusicBrainz/Server/Validation.pm index e8a14038533..12d76c27267 100644 --- a/lib/MusicBrainz/Server/Validation.pm +++ b/lib/MusicBrainz/Server/Validation.pm @@ -4,6 +4,7 @@ use warnings; use Date::Calc; use List::AllUtils qw( any ); +use Readonly; require Exporter; { @@ -52,6 +53,7 @@ use Encode qw( decode encode ); use Scalar::Util qw( looks_like_number ); use Text::Unaccent::PurePerl qw( unac_string_utf16 ); use MusicBrainz::Server::Constants qw( $MAX_POSTGRES_INT $MAX_POSTGRES_BIGINT ); +use MusicBrainz::Server::Data::Utils qw( contains_number ); use utf8; sub unaccent_utf16 ($) @@ -260,6 +262,8 @@ sub is_valid_iso_3166_3 return $iso_3166_3 =~ /^[A-Z]{4}$/; } +Readonly my @MONTHS_WITH_30_DAYS => (4, 6, 9, 11); + sub is_valid_partial_date { my ($year, $month, $day) = @_; @@ -274,7 +278,8 @@ sub is_valid_partial_date if (defined $month && $day) { return 0 if $day > 29 && $month == 2; - return 0 if $day > 30 && any { $_ == $month } (4, 6, 9, 11); + return 0 if $day > 30 && + contains_number(\@MONTHS_WITH_30_DAYS, $month); } if (defined $year) { diff --git a/t/hydration_i18n.t b/t/hydration_i18n.t index f80b6f502e2..3f901dd2f9e 100644 --- a/t/hydration_i18n.t +++ b/t/hydration_i18n.t @@ -5,7 +5,7 @@ use Cwd; use File::Basename; use File::Spec; use FindBin qw( $Bin ); -use List::AllUtils qw( any ); +use MusicBrainz::Server::Data::Utils qw( contains_string ); use String::ShellQuote qw( shell_quote ); use Test::More; @@ -95,7 +95,7 @@ sub check_imports { ); } - unless (any { $_ eq $import } @source_path) { + unless (contains_string(\@source_path, $import)) { check_imports(@source_path, $import); } } From e1c5036f52442d932e895c657b18ab0c5892e455 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Tamargo?= Date: Tue, 17 Oct 2023 22:02:38 +0300 Subject: [PATCH 035/194] MBS-13319: Show help bubble for language/script on release editor (#3053) It's not particularly obvious that these should be the language/script of the track titles rather than the lyrics or the liner notes. This adds a bubble for each, with a sentence based on the wording in the Style/Release guideline. --- root/release/edit/information.tt | 18 ++++++++++++++++-- root/static/scripts/release-editor/bubbles.js | 4 ++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/root/release/edit/information.tt b/root/release/edit/information.tt index 8c5370bde7e..fdc3d5a29ec 100644 --- a/root/release/edit/information.tt +++ b/root/release/edit/information.tt @@ -111,9 +111,11 @@ [% table_row_select('status', l('Status:'), 2, 'value: statusID, controlsBubble: $root.statusBubble', statuses) %] - [% table_row_select('language', l('Language:'), 2, 'value: languageID', languages) %] + [% table_row_select('language', l('Language:'), 2, + 'value: languageID, controlsBubble: $root.languageBubble', languages) %] - [% table_row_select('script', l('Script:'), 2, 'value: scriptID', scripts) %] + [% table_row_select('script', l('Script:'), 2, + 'value: scriptID, controlsBubble: $root.scriptBubble', scripts) %] @@ -307,6 +309,18 @@

+
+

+ [% l('The language attribute should be set to the language used for the release title and track titles. It should not be set to the language the lyrics are written in, nor to the language used for other extra information on the cover.') %] +

+
+ +
+

+ [% l('The script attribute should be set to the script used for the release title and track titles.') %] +

+
+

@@ -514,7 +514,7 @@ [% l('Some discs contain one or more data tracks after all audio tracks. Use this to add (or remove) the special data tracks section. You should only add data tracks that contain audio or video ({info|more info})', { info => { href => doc_link('Data_Track'), target => '_blank' } }) %]

- [% l('Keep in mind that unselecting this will delete the tracks if the medium has a disc ID! If you unselect it by mistake, please readd the data tracks before submitting.') %] + [% l('Keep in mind that unselecting this will remove the tracks if the medium has a disc ID! If you unselect it by mistake, please readd the data tracks before submitting.') %]

diff --git a/root/static/scripts/common/MB/Control/EditSummary.js b/root/static/scripts/common/MB/Control/EditSummary.js index c2ae8b28e8b..6d9539ee58d 100644 --- a/root/static/scripts/common/MB/Control/EditSummary.js +++ b/root/static/scripts/common/MB/Control/EditSummary.js @@ -20,7 +20,7 @@ MB.Control.EditSummary = function (container) { self.addNote = function () { $toggleEditNote - .text(l('Delete Note')) + .text(lp('Remove Note', 'Edit note field toggle')) .unbind('click').click(self.deleteNote); $editNote.show(); $editNoteField.focus(); @@ -28,7 +28,7 @@ MB.Control.EditSummary = function (container) { self.deleteNote = function () { $toggleEditNote - .text(l('Add Note')) + .text(lp('Add Note', 'Edit note field toggle')) .unbind('click').click(self.addNote); $editNote.hide(); $editNoteField.val(''); diff --git a/root/user/UserProfile.js b/root/user/UserProfile.js index cdc8cbd495f..33b38bfc713 100644 --- a/root/user/UserProfile.js +++ b/root/user/UserProfile.js @@ -807,7 +807,7 @@ const UserProfileStatistics = ({ - {lp('Deleted', 'tags')} + {lp('Removed', 'tags')} ) : $c.user && upvotedTagCount > 0 ? exp.l( '{count} ({view_url|view})', @@ -823,7 +823,7 @@ const UserProfileStatistics = ({ - {lp('Deleted', 'tags')} + {lp('Removed', 'tags')} ) : $c.user && downvotedTagCount > 0 ? exp.l( '{count} ({view_url|view})', @@ -843,7 +843,7 @@ const UserProfileStatistics = ({ l('Ratings are removed when an editor is deleted.') } > - {lp('Deleted', 'ratings')} + {lp('Removed', 'ratings')} ) : $c.user && ratingCount > 0 ? exp.l( From b5d4d1686276223b6101e5a6925bac3b5abd1dca Mon Sep 17 00:00:00 2001 From: Vac31 Date: Wed, 1 Nov 2023 16:27:56 +0000 Subject: [PATCH 079/194] Translated using Weblate (Lithuanian) Currently translated at 72.9% (400 of 548 strings) Translated using Weblate (Lithuanian) Currently translated at 20.4% (360 of 1762 strings) Translated using Weblate (Lithuanian) Currently translated at 18.2% (321 of 1762 strings) Translated using Weblate (Lithuanian) Currently translated at 16.6% (294 of 1762 strings) Translated using Weblate (Lithuanian) Currently translated at 72.6% (398 of 548 strings) Translated using Weblate (Lithuanian) Currently translated at 70.4% (386 of 548 strings) Translated using Weblate (Lithuanian) Currently translated at 100.0% (258 of 258 strings) Translated using Weblate (Lithuanian) Currently translated at 9.5% (318 of 3323 strings) Translated using Weblate (Lithuanian) Currently translated at 100.0% (159 of 159 strings) Translated using Weblate (Lithuanian) Currently translated at 67.8% (372 of 548 strings) Translated using Weblate (Lithuanian) Currently translated at 100.0% (258 of 258 strings) Translated using Weblate (Lithuanian) Currently translated at 62.5% (343 of 548 strings) Translated using Weblate (Lithuanian) Currently translated at 100.0% (159 of 159 strings) Translated using Weblate (Lithuanian) Currently translated at 61.6% (338 of 548 strings) Translated using Weblate (Lithuanian) Currently translated at 4.6% (75 of 1625 strings) Translated using Weblate (Lithuanian) Currently translated at 100.0% (159 of 159 strings) Translated using Weblate (Lithuanian) Currently translated at 45.4% (249 of 548 strings) Translated using Weblate (Lithuanian) Currently translated at 9.5% (317 of 3323 strings) Translated using Weblate (Lithuanian) Currently translated at 14.5% (256 of 1762 strings) Translated using Weblate (Lithuanian) Currently translated at 10.7% (190 of 1762 strings) Translated using Weblate (Lithuanian) Currently translated at 8.9% (158 of 1762 strings) Translated using Weblate (Lithuanian) Currently translated at 8.4% (149 of 1762 strings) Translated using Weblate (Lithuanian) Currently translated at 5.9% (105 of 1762 strings) Translated using Weblate (Lithuanian) Currently translated at 5.6% (37 of 660 strings) Translated using Weblate (Lithuanian) Currently translated at 5.9% (104 of 1762 strings) Translated using Weblate (Lithuanian) Currently translated at 9.5% (317 of 3323 strings) Translated using Weblate (Lithuanian) Currently translated at 100.0% (159 of 159 strings) Translated using Weblate (Lithuanian) Currently translated at 18.6% (102 of 548 strings) Translated using Weblate (Lithuanian) Currently translated at 3.1% (55 of 1762 strings) Co-authored-by: Vac31 Translate-URL: https://translations.metabrainz.org/projects/musicbrainz/attributes/lt/ Translate-URL: https://translations.metabrainz.org/projects/musicbrainz/countries/lt/ Translate-URL: https://translations.metabrainz.org/projects/musicbrainz/languages/lt/ Translate-URL: https://translations.metabrainz.org/projects/musicbrainz/relationship-types/lt/ Translate-URL: https://translations.metabrainz.org/projects/musicbrainz/scripts/lt/ Translate-URL: https://translations.metabrainz.org/projects/musicbrainz/server/lt/ Translate-URL: https://translations.metabrainz.org/projects/musicbrainz/statistics/lt/ Translation: MusicBrainz/Attributes Translation: MusicBrainz/Countries Translation: MusicBrainz/Languages Translation: MusicBrainz/Relationship Types Translation: MusicBrainz/Scripts Translation: MusicBrainz/Server Translation: MusicBrainz/Statistics --- po/attributes.lt.po | 88 +++-- po/countries.lt.po | 10 +- po/languages.lt.po | 634 ++++++++++++++++----------------- po/mb_server.lt.po | 16 +- po/relationships.lt.po | 782 ++++++++++++++++++++++++----------------- po/scripts.lt.po | 40 +-- po/statistics.lt.po | 4 +- 7 files changed, 883 insertions(+), 691 deletions(-) diff --git a/po/attributes.lt.po b/po/attributes.lt.po index 9ff4b6cf554..7c02bf53417 100644 --- a/po/attributes.lt.po +++ b/po/attributes.lt.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2023-09-24 15:27+0000\n" +"PO-Revision-Date: 2023-10-08 19:27+0000\n" "Last-Translator: \"Vac31.\" \n" "Language-Team: Lithuanian \n" @@ -14,8 +14,8 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < " -"11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? " -"1 : n % 1 != 0 ? 2: 3);\n" +"11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 :" +" n % 1 != 0 ? 2: 3);\n" "X-Generator: Weblate 5.0.2\n" #: DB:work_type/description:9 @@ -120,6 +120,8 @@ msgid "" "90 rpm, vertical-cut shellac discs, produced by the Pathé label from 1906 to " "1932." msgstr "" +"90 apsukų per minutę, vertikaliai pjaustyti šelako diskai, kuriuos leidykla " +"Pathé gamino nuo 1906 iki 1932 m." #: DB:release_group_secondary_type/description:1 msgctxt "release_group_secondary_type" @@ -271,6 +273,9 @@ msgid "" "often in the first track, that will have to be skipped in many audio " "players. Relatively common in old video game CDs." msgstr "" +"CD, kuriame yra ir garsas, ir duomenys tame pačiame seanse. Duomenys dažnai " +"būna pirmajame takelyje, kurį daugelyje garso grotuvų tenka praleisti. " +"Santykinai dažnai sutinkamas senuose vaizdo žaidimų CD." #: DB:medium_format/description:42 msgctxt "medium_format" @@ -279,6 +284,9 @@ msgid "" "they are properly separated, audio players will not try to play the data " "session and it won't be part of the disc ID for the CD." msgstr "" +"CD, kuriame yra dvi sesijos – viena su garsu, kita su duomenimis. Kadangi " +"jos tinkamai atskirtos, garso grotuvai nebandys groti duomenų sesijos ir ji " +"nebus įtraukta į CD disko ID." #: DB:release_group_secondary_type/description:8 msgctxt "release_group_secondary_type" @@ -289,6 +297,11 @@ msgid "" "manner, and the DJ who does this modification is usually (although not " "always) credited in a fairly prominent way." msgstr "" +"DJ miksas – tai kelių įrašų, grojantys vienas po kito, seka, kiekvienas " +"modifikuotas taip, kad susilietų į vientisą muzikos srautą. DJ mikso " +"leidinys reikalauja, kad įrašai būtų kaip nors modifikuoti, o šį " +"modifikavimą atlikęs (-usi) DJ paprastai (nors ne visada) būna įrašytas (-a) " +"gana ryškiai." #: DB:work_attribute_type_allowed_value/value:794 msgctxt "work_attribute_type_allowed_value" @@ -366,6 +379,9 @@ msgid "" "A grouping of multiple musicians who perform together (in some cases, some " "or all of the members might differ in different performances or recordings)." msgstr "" +"Grupė, susidedanti iš kelių muzikantų, kurie muzikuoja kartu (kai kuriais " +"atvejais, kai kurie ar visi nariai gali skirtis skirtinguose pasirodymuose " +"arba įrašuose)." #: DB:instrument_type/description:7 msgctxt "instrument_type" @@ -373,11 +389,14 @@ msgid "" "A grouping of related but different instruments, like the different violin-" "like instruments" msgstr "" +"Susijusių, bet skirtingų instrumentų grupė, kaip skirtingi į smuiką panašūs " +"instrumentai" #: DB:label_type/description:5 msgctxt "label_type" msgid "A label that primarily puts out unsanctioned (bootleg) releases." msgstr "" +"Leidykla, kuri daugiausia išleidžia nesankcionuotus (neoficialus) leidinius." #: DB:release_packaging/description:55 msgctxt "release_packaging" @@ -391,7 +410,7 @@ msgstr "" #: DB:place_type/description:43 msgctxt "place_type" msgid "A large, permanent outdoor stage, typically with a fixed seating area." -msgstr "" +msgstr "Didelė nuolatinė lauko scena, paprastai su stacionaria sėdimų vieta." #: DB:work_attribute_type_allowed_value/value:28 msgctxt "work_attribute_type_allowed_value" @@ -488,6 +507,9 @@ msgid "" "Religious buildings often host concerts and serve as recording locations, " "especially for classical music." msgstr "" +"Vieta, kurioje atliekama pagrindinė garbinimo ar religijos studijų funkcija. " +"Religiniuose pastatuose dažnai rengiami koncertai ir naudojamos kaip įrašų " +"vietos, ypač klasikinės muzikos." #: DB:place_type/description:4 msgctxt "place_type" @@ -587,31 +609,33 @@ msgid "" "A school, university or other similar educational institution (especially, " "but not only, one where music is taught)" msgstr "" +"Mokykla, universitetas ar kita panaši švietimo įstaiga (ypač, bet ne tik ta, " +"kurioje mokoma muzikos)" #: DB:series_type/description:14 msgctxt "series_type" msgid "A series of artists honoured by the same award." -msgstr "" +msgstr "Serija atlikėjų, pagerbtų tuo pačiu apdovanojimu." #: DB:series_type/description:13 msgctxt "series_type" msgid "A series of artists." -msgstr "" +msgstr "Atlikėjų serija." #: DB:series_type/description:15 msgctxt "series_type" msgid "A series of award ceremonies, usually one per year." -msgstr "" +msgstr "Apdovanojimų ceremonijų serija, paprastai viena per metus." #: DB:series_type/description:6 msgctxt "series_type" msgid "A series of events." -msgstr "" +msgstr "Renginių serija." #: DB:series_type/description:9 msgctxt "series_type" msgid "A series of performances of the same show at the same venue." -msgstr "" +msgstr "Pasirodymų serija to paties šou toje pačioje vietoje." #: DB:series_type/description:48 msgctxt "series_type" @@ -708,6 +732,10 @@ msgid "" "as soundtracks because the musical properties of the CDs are more " "interesting to MusicBrainz than their data properties." msgstr "" +"Garso takelis – filmo, televizijos serialo, scenos šou, vaizdo žaidimo ar " +"kitos medijos muzikinė partitūra. Vaizdo žaidimų CD su garso takeliais " +"turėtų būti klasifikuojami kaip garso takeliai, nes MusicBrainz labiau " +"domina muzikinės CD ypatybės nei jų duomenų ypatybės." #: DB:instrument_type/description:6 msgctxt "instrument_type" @@ -787,6 +815,9 @@ msgid "" "and sung scenes, the latter incorporating operatic and popular song, as well " "as dance." msgstr "" +"Zarzuela – ispanų lyrinis dramos kūrinys, kuriame kaitaliojamos kalbamos ir " +"dainuojamos scenos, į pastarąsias įtraukiamos operinės ir populiarios " +"dainos, taip pat šokiai." #: DB:work_attribute_type_allowed_value/value:26 msgctxt "work_attribute_type_allowed_value" @@ -811,42 +842,42 @@ msgstr "" #: DB:work_attribute_type/name:57 msgctxt "work_attribute_type" msgid "AACIMH ID" -msgstr "" +msgstr "AACIMH ID" #: DB:work_attribute_type/name:44 msgctxt "work_attribute_type" msgid "ACAM ID" -msgstr "" +msgstr "ACAM ID" #: DB:work_attribute_type/name:47 msgctxt "work_attribute_type" msgid "ACDAM ID" -msgstr "" +msgstr "ACDAM ID" #: DB:work_attribute_type/name:58 msgctxt "work_attribute_type" msgid "AEI ID" -msgstr "" +msgstr "AEI ID" #: DB:work_attribute_type/name:43 msgctxt "work_attribute_type" msgid "AGADU ID" -msgstr "" +msgstr "AGADU ID" #: DB:work_attribute_type/name:63 msgctxt "work_attribute_type" msgid "AKKA/LAA ID" -msgstr "" +msgstr "AKKA/LAA ID" #: DB:work_attribute_type/name:23 msgctxt "work_attribute_type" msgid "AKM ID" -msgstr "" +msgstr "AKM ID" #: DB:work_attribute_type/name:38 msgctxt "work_attribute_type" msgid "AMRA ID" -msgstr "" +msgstr "AMRA ID" #: DB:work_attribute_type/name:46 msgctxt "work_attribute_type" @@ -856,22 +887,22 @@ msgstr "APA ID" #: DB:work_attribute_type/name:41 msgctxt "work_attribute_type" msgid "APDAYC ID" -msgstr "" +msgstr "APDAYC ID" #: DB:work_attribute_type/name:13 msgctxt "work_attribute_type" msgid "APRA ID" -msgstr "" +msgstr "APRA ID" #: DB:work_attribute_type/name:48 msgctxt "work_attribute_type" msgid "ARTISJUS ID" -msgstr "" +msgstr "ARTISJUS ID" #: DB:work_attribute_type/name:6 msgctxt "work_attribute_type" msgid "ASCAP ID" -msgstr "" +msgstr "ASCAP ID" #: DB:work_attribute_type_allowed_value/value:299 msgctxt "work_attribute_type_allowed_value" @@ -1054,6 +1085,9 @@ msgid "" "accompaniment. They are most common inside operas, but also appear in " "cantatas, oratorios and even on their own (concert arias)." msgstr "" +"Arija – tai savarankiškas kūrinys vienam balsui, paprastai su orkestro " +"akompanimentu. Dažniausiai jos būna operose, tačiau taip pat skamba " +"kantatose, oratorijose ir netgi atskirai (koncertinės arijos)." #: DB:work_type/description:25 msgctxt "work_type" @@ -1061,6 +1095,8 @@ msgid "" "An audio drama is a dramatized, purely acoustic performance, broadcast on " "radio or published on an audio medium (tape, CD, etc.)." msgstr "" +"Garso drama – dramatizuotas grynai akustinis spektaklis, transliuotas per " +"radiją arba išleistas garso laikmenoje (kasetėje, CD ir pan.)." #: DB:release_group_secondary_type/description:11 msgctxt "release_group_secondary_type" @@ -1069,11 +1105,14 @@ msgid "" "always, meant for radio). Unlike audiobooks, it usually has multiple " "performers rather than a main narrator." msgstr "" +"Garso drama – tai tik garsinis pjesės atlikimas (dažnai, bet ne visada, " +"skirtas radijui). Skirtingai nei garso knygose, paprastai ją atlieka keli " +"atlikėjai, o ne pagrindinis pasakotojas (-a)." #: DB:release_group_secondary_type/description:5 msgctxt "release_group_secondary_type" msgid "An audiobook is a book read by a narrator without music." -msgstr "" +msgstr "Garso knyga – knyga, kurią skaito pasakotojas (-a) be muzikos." #: DB:event_type/description:7 msgctxt "event_type" @@ -1082,6 +1121,9 @@ msgid "" "but often includes musical performances in between the awarding of said " "prizes, especially for musical awards." msgstr "" +"Apdovanojimų ceremonija – tai renginys, kuriame daugiausia dėmesio skiriama " +"apdovanojimams įteikti, tačiau dažnai tarp apdovanojimų įteikimo vyksta " +"muzikiniai pasirodymai, ypač muzikinių apdovanojimai." #: DB:release_group_primary_type/description:12 msgctxt "release_group_primary_type" @@ -1089,6 +1131,8 @@ msgid "" "An episodic release that was originally broadcast via radio, television, or " "the Internet, including podcasts." msgstr "" +"Epizodinis leidinys, kuris iš pradžių buvo transliuojamas per radiją, " +"televiziją ar internetą, įskaitant tinklalaides." #: DB:event_type/description:2 msgctxt "event_type" diff --git a/po/countries.lt.po b/po/countries.lt.po index d3359ea3a34..e00c63ec7d7 100644 --- a/po/countries.lt.po +++ b/po/countries.lt.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2023-09-15 22:27+0000\n" +"PO-Revision-Date: 2023-10-09 22:27+0000\n" "Last-Translator: \"Vac31.\" \n" "Language-Team: Lithuanian \n" @@ -16,7 +16,7 @@ msgstr "" "Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < " "11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 :" " n % 1 != 0 ? 2: 3);\n" -"X-Generator: Weblate 5.0.1\n" +"X-Generator: Weblate 5.0.2\n" #. iso.code:AF #: DB:area JOIN iso_3166_1 iso ON iso.area = area.id/area.name:1 @@ -796,7 +796,7 @@ msgstr "Namibija" #. iso.code:NR #: DB:area JOIN iso_3166_1 iso ON iso.area = area.id/area.name:148 msgid "Nauru" -msgstr "Nauru" +msgstr "Naurų" #. iso.code:NP #: DB:area JOIN iso_3166_1 iso ON iso.area = area.id/area.name:149 @@ -1166,7 +1166,7 @@ msgstr "Togas" #. iso.code:TK #: DB:area JOIN iso_3166_1 iso ON iso.area = area.id/area.name:210 msgid "Tokelau" -msgstr "Tokelavas" +msgstr "Tokelavų" #. iso.code:TO #: DB:area JOIN iso_3166_1 iso ON iso.area = area.id/area.name:211 @@ -1196,7 +1196,7 @@ msgstr "Terkso ir Kaikoso salos" #. iso.code:TV #: DB:area JOIN iso_3166_1 iso ON iso.area = area.id/area.name:217 msgid "Tuvalu" -msgstr "Tuvalu" +msgstr "Tuvalų" #. iso.code:TR #: DB:area JOIN iso_3166_1 iso ON iso.area = area.id/area.name:214 diff --git a/po/languages.lt.po b/po/languages.lt.po index e991296f1d6..85c42b2cb51 100644 --- a/po/languages.lt.po +++ b/po/languages.lt.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2023-10-01 20:27+0000\n" +"PO-Revision-Date: 2023-10-14 18:27+0000\n" "Last-Translator: \"Vac31.\" \n" "Language-Team: Lithuanian \n" @@ -231,52 +231,52 @@ msgstr "Balučių" #. frequency:1 iso_code_3:bam #: DB:language/name:39 msgid "Bambara" -msgstr "" +msgstr "Bambarų" #. frequency:0 iso_code_3:null #: DB:language/name:36 msgid "Bamileke languages" -msgstr "" +msgstr "Bamilekių kalbos" #. frequency:0 iso_code_3:null #: DB:language/name:35 msgid "Banda languages" -msgstr "" +msgstr "Bangų kalbos" #. frequency:0 iso_code_3:null #: DB:language/name:55 msgid "Bantu languages" -msgstr "" +msgstr "Bantų kalbos" #. frequency:1 iso_code_3:bas #: DB:language/name:42 msgid "Basa" -msgstr "" +msgstr "Basų" #. frequency:1 iso_code_3:bak #: DB:language/name:37 msgid "Bashkir" -msgstr "" +msgstr "Baškirų" #. frequency:1 iso_code_3:eus #: DB:language/name:41 msgid "Basque" -msgstr "" +msgstr "Baskų" #. frequency:0 iso_code_3:null #: DB:language/name:59 msgid "Batak languages" -msgstr "" +msgstr "Batakų kalbos" #. frequency:1 iso_code_3:bar #: DB:language/name:982 msgid "Bavarian" -msgstr "" +msgstr "Bavarų" #. frequency:1 iso_code_3:bej #: DB:language/name:44 msgid "Beja" -msgstr "" +msgstr "Bejų" #. frequency:1 iso_code_3:bel #: DB:language/name:45 @@ -296,37 +296,37 @@ msgstr "Bengalų" #. frequency:0 iso_code_3:null #: DB:language/name:48 msgid "Berber languages" -msgstr "" +msgstr "Berberų kalbos" #. frequency:1 iso_code_3:bho #: DB:language/name:49 msgid "Bhojpuri" -msgstr "" +msgstr "Bhojpurų" #. frequency:0 iso_code_3:null #: DB:language/name:50 msgid "Bihari languages" -msgstr "" +msgstr "Biharų kalbos" #. frequency:1 iso_code_3:bik #: DB:language/name:51 msgid "Bikol" -msgstr "" +msgstr "Bikolių" #. frequency:1 iso_code_3:bin #: DB:language/name:52 msgid "Bini" -msgstr "" +msgstr "Binių" #. frequency:1 iso_code_3:bis #: DB:language/name:53 msgid "Bislama" -msgstr "" +msgstr "Bislamų" #. frequency:1 iso_code_3:byn #: DB:language/name:64 msgid "Blin" -msgstr "" +msgstr "Blinų" #. frequency:0 iso_code_3:zbl #: DB:language/name:482 @@ -336,27 +336,27 @@ msgstr "Bliuzo simbolių" #. frequency:1 iso_code_3:brx #: DB:language/name:1394 msgid "Bodo (India)" -msgstr "" +msgstr "Bodų (Indija)" #. frequency:1 iso_code_3:bos #: DB:language/name:56 msgid "Bosnian" -msgstr "" +msgstr "Bosnių" #. frequency:1 iso_code_3:bra #: DB:language/name:57 msgid "Braj" -msgstr "" +msgstr "Bradžių" #. frequency:1 iso_code_3:bre #: DB:language/name:58 msgid "Breton" -msgstr "" +msgstr "Bretonų" #. frequency:1 iso_code_3:box #: DB:language/name:1322 msgid "Buamu" -msgstr "" +msgstr "Buamų" #. frequency:1 iso_code_3:bug #: DB:language/name:61 @@ -366,92 +366,92 @@ msgstr "Buginų" #. frequency:1 iso_code_3:bul #: DB:language/name:62 msgid "Bulgarian" -msgstr "" +msgstr "Bulgarų" #. frequency:1 iso_code_3:bua #: DB:language/name:60 msgid "Buriat" -msgstr "" +msgstr "Buriatų" #. frequency:1 iso_code_3:mya #: DB:language/name:63 msgid "Burmese" -msgstr "" +msgstr "Birmiečių" #. frequency:1 iso_code_3:bsk #: DB:language/name:1406 msgid "Burushaski" -msgstr "" +msgstr "Burušaskų" #. frequency:1 iso_code_3:cad #: DB:language/name:65 msgid "Caddo" -msgstr "" +msgstr "Kaddų" #. frequency:1 iso_code_3:frc #: DB:language/name:2311 msgid "Cajun French" -msgstr "" +msgstr "Kajunų prancūzų" #. frequency:1 iso_code_3:cat #: DB:language/name:68 msgid "Catalan" -msgstr "" +msgstr "Katalonų" #. frequency:0 iso_code_3:null #: DB:language/name:69 msgid "Caucasian languages" -msgstr "" +msgstr "Kaukaziečių kalbos" #. frequency:1 iso_code_3:ceb #: DB:language/name:70 msgid "Cebuano" -msgstr "" +msgstr "Cebuanų" #. frequency:1 iso_code_3:xce #: DB:language/name:7217 msgid "Celtiberian" -msgstr "" +msgstr "Keltiberų" #. frequency:0 iso_code_3:null #: DB:language/name:71 msgid "Celtic languages" -msgstr "" +msgstr "Keltų kalbos" #. frequency:0 iso_code_3:null #: DB:language/name:66 msgid "Central American Indian languages" -msgstr "" +msgstr "Centrinės Amerikos indėnų kalbos" #. frequency:1 iso_code_3:ryu #: DB:language/name:5809 msgid "Central Okinawan" -msgstr "" +msgstr "Centrinė okinavų" #. frequency:1 iso_code_3:esu #: DB:language/name:2243 msgid "Central Yupik" -msgstr "" +msgstr "Centrinė jupikų" #. frequency:1 iso_code_3:chg #: DB:language/name:75 msgid "Chagatai" -msgstr "" +msgstr "Čagatų" #. frequency:0 iso_code_3:null #: DB:language/name:86 msgid "Chamic languages" -msgstr "" +msgstr "Chamų kalbos" #. frequency:1 iso_code_3:cha #: DB:language/name:72 msgid "Chamorro" -msgstr "" +msgstr "Čamorrų" #. frequency:1 iso_code_3:che #: DB:language/name:74 msgid "Chechen" -msgstr "" +msgstr "Čečėnų" #. frequency:1 iso_code_3:chr #: DB:language/name:82 @@ -461,62 +461,62 @@ msgstr "Čerokių" #. frequency:1 iso_code_3:chy #: DB:language/name:85 msgid "Cheyenne" -msgstr "" +msgstr "Šajenų" #. frequency:1 iso_code_3:chb #: DB:language/name:73 msgid "Chibcha" -msgstr "" +msgstr "Čibčų" #. frequency:1 iso_code_3:nya #: DB:language/name:313 msgid "Chichewa" -msgstr "" +msgstr "Čičevų" #. frequency:2 iso_code_3:zho #: DB:language/name:76 msgid "Chinese" -msgstr "" +msgstr "Kinų" #. frequency:1 iso_code_3:chn #: DB:language/name:79 msgid "Chinook jargon" -msgstr "" +msgstr "Činokių žargono" #. frequency:1 iso_code_3:chp #: DB:language/name:81 msgid "Chipewyan" -msgstr "" +msgstr "Čipevjanų" #. frequency:1 iso_code_3:cho #: DB:language/name:80 msgid "Choctaw" -msgstr "" +msgstr "Čokotų" #. frequency:1 iso_code_3:chu #: DB:language/name:83 msgid "Church Slavic" -msgstr "" +msgstr "Bažnyčios slavų" #. frequency:1 iso_code_3:chk #: DB:language/name:77 msgid "Chuukese" -msgstr "" +msgstr "Čuukiečių" #. frequency:1 iso_code_3:chv #: DB:language/name:84 msgid "Chuvash" -msgstr "" +msgstr "Čuvašų" #. frequency:0 iso_code_3:nwc #: DB:language/name:312 msgid "Classical Newari" -msgstr "" +msgstr "Klasikinė niūarų" #. frequency:0 iso_code_3:syc #: DB:language/name:481 msgid "Classical Syriac" -msgstr "" +msgstr "Klasikinė sirų" #. frequency:1 iso_code_3:cop #: DB:language/name:87 @@ -526,242 +526,242 @@ msgstr "Koptų" #. frequency:1 iso_code_3:cor #: DB:language/name:88 msgid "Cornish" -msgstr "" +msgstr "Kornvalų" #. frequency:1 iso_code_3:cos #: DB:language/name:89 msgid "Corsican" -msgstr "" +msgstr "Korsikiečių" #. frequency:1 iso_code_3:cre #: DB:language/name:93 msgid "Cree" -msgstr "" +msgstr "Kryų" #. frequency:1 iso_code_3:mus #: DB:language/name:286 msgid "Creek" -msgstr "" +msgstr "Kriukų" #. frequency:0 iso_code_3:null #: DB:language/name:95 msgid "Creoles and pidgins" -msgstr "" +msgstr "Kreolų ir pidžinų" #. frequency:0 iso_code_3:null #: DB:language/name:90 msgid "Creoles and pidgins, English based" -msgstr "" +msgstr "Kreolų ir pidžinų, anglų kalba" #. frequency:0 iso_code_3:null #: DB:language/name:91 msgid "Creoles and pidgins, French-based" -msgstr "" +msgstr "Kreolų ir pidžinų, prancūzų kalba" #. frequency:0 iso_code_3:null #: DB:language/name:92 msgid "Creoles and pidgins, Portuguese-based" -msgstr "" +msgstr "Kreolų ir pidžinų, portugalų kalba" #. frequency:1 iso_code_3:crh #: DB:language/name:94 msgid "Crimean Tatar" -msgstr "" +msgstr "Krymo totorių" #. frequency:1 iso_code_3:hrv #: DB:language/name:366 msgid "Croatian" -msgstr "" +msgstr "Kroatų" #. frequency:1 iso_code_3:xlu #: DB:language/name:7303 msgid "Cuneiform Luwian" -msgstr "" +msgstr "Kaunietiška luvių" #. frequency:0 iso_code_3:null #: DB:language/name:97 msgid "Cushitic languages" -msgstr "" +msgstr "Kušitų kalbos" #. frequency:1 iso_code_3:ces #: DB:language/name:98 msgid "Czech" -msgstr "" +msgstr "Čekų" #. frequency:1 iso_code_3:dak #: DB:language/name:99 msgid "Dakota" -msgstr "" +msgstr "Dakotų" #. frequency:1 iso_code_3:dan #: DB:language/name:100 msgid "Danish" -msgstr "" +msgstr "Danų" #. frequency:1 iso_code_3:dar #: DB:language/name:101 msgid "Dargwa" -msgstr "" +msgstr "Dargvių" #. frequency:1 iso_code_3:del #: DB:language/name:103 msgid "Delaware" -msgstr "" +msgstr "Delavarų" #. frequency:1 iso_code_3:din #: DB:language/name:106 msgid "Dinka" -msgstr "" +msgstr "Dinkų" #. frequency:1 iso_code_3:div #: DB:language/name:107 msgid "Divehi" -msgstr "" +msgstr "Divehių" #. frequency:1 iso_code_3:doi #: DB:language/name:108 msgid "Dogri" -msgstr "" +msgstr "Dogrų" #. frequency:1 iso_code_3:dgr #: DB:language/name:105 msgid "Dogrib" -msgstr "" +msgstr "Dogribų" #. frequency:0 iso_code_3:null #: DB:language/name:109 msgid "Dravidian languages" -msgstr "" +msgstr "Dravidų kalbos" #. frequency:1 iso_code_3:dua #: DB:language/name:111 msgid "Duala" -msgstr "" +msgstr "Dualų" #. frequency:2 iso_code_3:nld #: DB:language/name:113 msgid "Dutch" -msgstr "" +msgstr "Olandų" #. frequency:1 iso_code_3:dum #: DB:language/name:112 msgid "Dutch, Middle (ca.1050-1350)" -msgstr "" +msgstr "Olandų, vidurinioji (apie 1050-1350 m.)" #. frequency:1 iso_code_3:dyu #: DB:language/name:114 msgid "Dyula" -msgstr "" +msgstr "Diulių" #. frequency:1 iso_code_3:dzo #: DB:language/name:115 msgid "Dzongkha" -msgstr "" +msgstr "Dzongkhų" #. frequency:1 iso_code_3:aer #: DB:language/name:584 msgid "Eastern Arrernte" -msgstr "" +msgstr "Rytų Arrerntės" #. frequency:1 iso_code_3:efi #: DB:language/name:116 msgid "Efik" -msgstr "" +msgstr "Efikų" #. frequency:1 iso_code_3:egy #: DB:language/name:117 msgid "Egyptian (Ancient)" -msgstr "" +msgstr "Egiptiečių (senovės)" #. frequency:1 iso_code_3:eka #: DB:language/name:118 msgid "Ekajuk" -msgstr "" +msgstr "Ekajukų" #. frequency:1 iso_code_3:elx #: DB:language/name:119 msgid "Elamite" -msgstr "" +msgstr "Elamitų" #. frequency:2 iso_code_3:eng #: DB:language/name:120 msgid "English" -msgstr "Anglų k." +msgstr "Anglų" #. frequency:1 iso_code_3:enm #: DB:language/name:121 msgid "English, Middle (1100-1500)" -msgstr "" +msgstr "Anglų, vidurinioji (1100-1500 m.)" #. frequency:1 iso_code_3:ang #: DB:language/name:16 msgid "English, Old (ca.450-1100)" -msgstr "" +msgstr "Anglų, senoji (apie 450-1100 m.)" #. frequency:1 iso_code_3:myv #: DB:language/name:290 msgid "Erzya" -msgstr "" +msgstr "Eržų" #. frequency:1 iso_code_3:epo #: DB:language/name:122 msgid "Esperanto" -msgstr "" +msgstr "Esperantų" #. frequency:1 iso_code_3:est #: DB:language/name:123 msgid "Estonian" -msgstr "Estų kalba" +msgstr "Estų" #. frequency:1 iso_code_3:ewe #: DB:language/name:124 msgid "Ewe" -msgstr "" +msgstr "Avių" #. frequency:1 iso_code_3:ewo #: DB:language/name:125 msgid "Ewondo" -msgstr "" +msgstr "Evondų" #. frequency:1 iso_code_3:fan #: DB:language/name:126 msgid "Fang" -msgstr "" +msgstr "Fangų" #. frequency:1 iso_code_3:fat #: DB:language/name:128 msgid "Fanti" -msgstr "" +msgstr "Fantų" #. frequency:1 iso_code_3:fao #: DB:language/name:127 msgid "Faroese" -msgstr "" +msgstr "Farerų" #. frequency:1 iso_code_3:fij #: DB:language/name:129 msgid "Fijian" -msgstr "" +msgstr "Fidžų" #. frequency:1 iso_code_3:fil #: DB:language/name:130 msgid "Filipino" -msgstr "" +msgstr "Filipinų" #. frequency:2 iso_code_3:fin #: DB:language/name:131 msgid "Finnish" -msgstr "Suomių kalba" +msgstr "Suomių" #. frequency:0 iso_code_3:null #: DB:language/name:132 msgid "Finno-Ugrian languages" -msgstr "" +msgstr "Finougrų kalbos" #. frequency:1 iso_code_3:fon #: DB:language/name:133 msgid "Fon" -msgstr "" +msgstr "Fonų" #. frequency:2 iso_code_3:fra #: DB:language/name:134 @@ -771,167 +771,167 @@ msgstr "Prancūzų" #. frequency:0 iso_code_3:frm #: DB:language/name:135 msgid "French, Middle (ca.1400-1600)" -msgstr "" +msgstr "Prancūzų, vidurinioji (apie 1400-1600 m.)" #. frequency:1 iso_code_3:fro #: DB:language/name:136 msgid "French, Old (842-ca.1400)" -msgstr "" +msgstr "Prancūzų, senoji (842-apie 1400 m.)" #. frequency:1 iso_code_3:frs #: DB:language/name:485 msgid "Frisian, Eastern" -msgstr "" +msgstr "Fryzų, rytų" #. frequency:1 iso_code_3:frr #: DB:language/name:484 msgid "Frisian, Northern" -msgstr "" +msgstr "Fryzų, šiaurės" #. frequency:1 iso_code_3:fry #: DB:language/name:137 msgid "Frisian, Western" -msgstr "" +msgstr "Fryzų, vakarų" #. frequency:1 iso_code_3:fur #: DB:language/name:139 msgid "Friulian" -msgstr "" +msgstr "Friulių" #. frequency:1 iso_code_3:ful #: DB:language/name:138 msgid "Fulah" -msgstr "" +msgstr "Fulagų" #. frequency:1 iso_code_3:gaa #: DB:language/name:140 msgid "Ga" -msgstr "" +msgstr "Gų" #. frequency:1 iso_code_3:car #: DB:language/name:67 msgid "Galibi Carib" -msgstr "" +msgstr "Galibi karibų" #. frequency:1 iso_code_3:glg #: DB:language/name:150 msgid "Galician" -msgstr "" +msgstr "Galisų" #. frequency:1 iso_code_3:lug #: DB:language/name:249 msgid "Ganda" -msgstr "" +msgstr "Gandrų" #. frequency:1 iso_code_3:cab #: DB:language/name:1591 msgid "Garifuna" -msgstr "" +msgstr "Garifunų" #. frequency:1 iso_code_3:gay #: DB:language/name:141 msgid "Gayo" -msgstr "" +msgstr "Gajų" #. frequency:1 iso_code_3:gba #: DB:language/name:142 msgid "Gbaya" -msgstr "" +msgstr "Gbajų" #. frequency:1 iso_code_3:gez #: DB:language/name:146 msgid "Geez" -msgstr "" +msgstr "Gizų" #. frequency:1 iso_code_3:kat #: DB:language/name:144 msgid "Georgian" -msgstr "Gruziniškas" +msgstr "Gruzinų" #. frequency:2 iso_code_3:deu #: DB:language/name:145 msgid "German" -msgstr "Vokiečių kalba" +msgstr "Vokiečių" #. frequency:1 iso_code_3:nds #: DB:language/name:299 msgid "German, Low" -msgstr "" +msgstr "Vokiečių, žemoji" #. frequency:1 iso_code_3:gmh #: DB:language/name:152 msgid "German, Middle High (ca.1050-1500)" -msgstr "" +msgstr "Vokiečių, vidurinioji aukštoji (apie 1050-1500 m.)" #. frequency:1 iso_code_3:goh #: DB:language/name:153 msgid "German, Old High (ca.750-1050)" -msgstr "" +msgstr "Vokiečių, senoji aukštoji (apie 750-1050 m.)" #. frequency:1 iso_code_3:gsw #: DB:language/name:476 msgid "German, Swiss" -msgstr "" +msgstr "Vokiečių, šveicarų" #. frequency:0 iso_code_3:null #: DB:language/name:143 msgid "Germanic languages" -msgstr "" +msgstr "Germanų kalbos" #. frequency:1 iso_code_3:gil #: DB:language/name:147 msgid "Gilbertese" -msgstr "" +msgstr "Gilbertų" #. frequency:1 iso_code_3:gon #: DB:language/name:154 msgid "Gondi" -msgstr "" +msgstr "Gondių" #. frequency:1 iso_code_3:gor #: DB:language/name:155 msgid "Gorontalo" -msgstr "" +msgstr "Gorontalų" #. frequency:1 iso_code_3:got #: DB:language/name:156 msgid "Gothic" -msgstr "Gotikinis" +msgstr "Gotų" #. frequency:1 iso_code_3:grb #: DB:language/name:157 msgid "Grebo" -msgstr "" +msgstr "Grebų" #. frequency:2 iso_code_3:ell #: DB:language/name:159 msgid "Greek" -msgstr "Graikiškas" +msgstr "Graikų" #. frequency:1 iso_code_3:grc #: DB:language/name:158 msgid "Greek, Ancient" -msgstr "" +msgstr "Graikų, senovės" #. frequency:1 iso_code_3:kal #: DB:language/name:204 msgid "Greenlandic" -msgstr "" +msgstr "Grenlandų" #. frequency:1 iso_code_3:gos #: DB:language/name:2534 msgid "Gronings" -msgstr "" +msgstr "Groningų" #. frequency:1 iso_code_3:gcf #: DB:language/name:2386 msgid "Guadeloupean Creole French" -msgstr "" +msgstr "Gvadelupės kreolų prancūzų" #. frequency:1 iso_code_3:grn #: DB:language/name:160 msgid "Guarani" -msgstr "" +msgstr "Guaranių" #. frequency:1 iso_code_3:guj #: DB:language/name:161 @@ -941,42 +941,42 @@ msgstr "Gudžaratų" #. frequency:1 iso_code_3:gnn #: DB:language/name:2511 msgid "Gumatj" -msgstr "" +msgstr "Gumačių" #. frequency:1 iso_code_3:guf #: DB:language/name:2581 msgid "Gupapuyngu" -msgstr "" +msgstr "Gupapuindžų" #. frequency:1 iso_code_3:gyn #: DB:language/name:2638 msgid "Guyanese Creole English" -msgstr "" +msgstr "Gajanos kreolų anglų" #. frequency:1 iso_code_3:gwi #: DB:language/name:162 msgid "Gwich'in" -msgstr "" +msgstr "Gvičinų" #. frequency:1 iso_code_3:hai #: DB:language/name:163 msgid "Haida" -msgstr "" +msgstr "Haidų" #. frequency:1 iso_code_3:hat #: DB:language/name:164 msgid "Haitian Creole" -msgstr "" +msgstr "Haičio kreolų" #. frequency:1 iso_code_3:hau #: DB:language/name:165 msgid "Hausa" -msgstr "" +msgstr "Hausų" #. frequency:1 iso_code_3:haw #: DB:language/name:166 msgid "Hawaiian" -msgstr "" +msgstr "Havajiečių" #. frequency:1 iso_code_3:heb #: DB:language/name:167 @@ -986,162 +986,162 @@ msgstr "Hebrajų" #. frequency:1 iso_code_3:her #: DB:language/name:168 msgid "Herero" -msgstr "" +msgstr "Hererų" #. frequency:1 iso_code_3:hil #: DB:language/name:169 msgid "Hiligaynon" -msgstr "" +msgstr "Hiligainonų" #. frequency:0 iso_code_3:null #: DB:language/name:170 msgid "Himachali languages" -msgstr "" +msgstr "Himačalių kalbos" #. frequency:2 iso_code_3:hin #: DB:language/name:171 msgid "Hindi" -msgstr "" +msgstr "Hindų" #. frequency:1 iso_code_3:hmo #: DB:language/name:174 msgid "Hiri Motu" -msgstr "" +msgstr "Hiri Motų" #. frequency:0 iso_code_3:hit #: DB:language/name:172 msgid "Hittite" -msgstr "" +msgstr "Hetitų" #. frequency:1 iso_code_3:hmn #: DB:language/name:173 msgid "Hmong" -msgstr "" +msgstr "Hmongų" #. frequency:1 iso_code_3:hun #: DB:language/name:176 msgid "Hungarian" -msgstr "" +msgstr "Vengrų" #. frequency:1 iso_code_3:hup #: DB:language/name:177 msgid "Hupa" -msgstr "" +msgstr "Hupų" #. frequency:1 iso_code_3:iba #: DB:language/name:178 msgid "Iban" -msgstr "" +msgstr "Ibanų" #. frequency:1 iso_code_3:isl #: DB:language/name:180 msgid "Icelandic" -msgstr "" +msgstr "Islandų" #. frequency:1 iso_code_3:ido #: DB:language/name:181 msgid "Ido" -msgstr "" +msgstr "Idų" #. frequency:1 iso_code_3:ibo #: DB:language/name:179 msgid "Igbo" -msgstr "" +msgstr "Igbų" #. frequency:0 iso_code_3:null #: DB:language/name:183 msgid "Ijo languages" -msgstr "" +msgstr "Idžų kalbos" #. frequency:1 iso_code_3:ilo #: DB:language/name:186 msgid "Iloko" -msgstr "" +msgstr "Ilokų" #. frequency:0 iso_code_3:null #: DB:language/name:188 msgid "Indic languages" -msgstr "" +msgstr "Indų kalbos" #. frequency:0 iso_code_3:null #: DB:language/name:190 msgid "Indo-European languages" -msgstr "" +msgstr "Indoeuropiečių kalbos" #. frequency:1 iso_code_3:ind #: DB:language/name:189 msgid "Indonesian" -msgstr "" +msgstr "Indoneziečių" #. frequency:1 iso_code_3:izh #: DB:language/name:2967 msgid "Ingrian" -msgstr "" +msgstr "Ingrų" #. frequency:1 iso_code_3:inh #: DB:language/name:191 msgid "Ingush" -msgstr "" +msgstr "Ingušų" #. frequency:1 iso_code_3:moe #: DB:language/name:4369 msgid "Innu" -msgstr "" +msgstr "Innų" #. frequency:1 iso_code_3:ina #: DB:language/name:187 msgid "Interlingua" -msgstr "" +msgstr "Interlingvių" #. frequency:1 iso_code_3:ile #: DB:language/name:185 msgid "Interlingue" -msgstr "" +msgstr "Interlingų" #. frequency:1 iso_code_3:iku #: DB:language/name:184 msgid "Inuktitut" -msgstr "" +msgstr "Inuktitutų" #. frequency:1 iso_code_3:ipk #: DB:language/name:192 msgid "Inupiaq" -msgstr "" +msgstr "Inupiakų" #. frequency:0 iso_code_3:null #: DB:language/name:193 msgid "Iranian languages" -msgstr "" +msgstr "Iraniečių kalbos" #. frequency:1 iso_code_3:gle #: DB:language/name:149 msgid "Irish" -msgstr "" +msgstr "Airių" #. frequency:0 iso_code_3:mga #: DB:language/name:270 msgid "Irish, Middle (900-1200)" -msgstr "" +msgstr "Airių, vidurinioji (900-1200 m.)" #. frequency:0 iso_code_3:sga #: DB:language/name:369 msgid "Irish, Old (to 900)" -msgstr "" +msgstr "Airių, senoji (iki 900 m.)" #. frequency:0 iso_code_3:null #: DB:language/name:194 msgid "Iroquoian languages" -msgstr "" +msgstr "Irokėzų kalbos" #. frequency:2 iso_code_3:ita #: DB:language/name:195 msgid "Italian" -msgstr "Italų kalba" +msgstr "Italų" #. frequency:1 iso_code_3:jam #: DB:language/name:2980 msgid "Jamaican Creole English" -msgstr "" +msgstr "Jamaikos kreolų anglų" #. frequency:2 iso_code_3:jpn #: DB:language/name:198 @@ -1156,47 +1156,47 @@ msgstr "Javanų" #. frequency:1 iso_code_3:tmr #: DB:language/name:6526 msgid "Jewish Babylonian Aramaic (ca. 200-1200 CE)" -msgstr "" +msgstr "Žydų babiloniečių aramėjų (apie 200-1200 m. po Kr.)" #. frequency:1 iso_code_3:jrb #: DB:language/name:200 msgid "Judeo-Arabic" -msgstr "" +msgstr "Judėjų arabų" #. frequency:1 iso_code_3:jpr #: DB:language/name:199 msgid "Judeo-Persian" -msgstr "" +msgstr "Judėjų persų" #. frequency:1 iso_code_3:kbd #: DB:language/name:212 msgid "Kabardian" -msgstr "" +msgstr "Kabardų" #. frequency:1 iso_code_3:kea #: DB:language/name:3185 msgid "Kabuverdianu" -msgstr "" +msgstr "Kabuverdianų" #. frequency:1 iso_code_3:kab #: DB:language/name:202 msgid "Kabyle" -msgstr "" +msgstr "Kabilų" #. frequency:1 iso_code_3:kac #: DB:language/name:203 msgid "Kachin" -msgstr "" +msgstr "Kačinų" #. frequency:1 iso_code_3:xal #: DB:language/name:459 msgid "Kalmyk" -msgstr "" +msgstr "Kalmukų" #. frequency:1 iso_code_3:kam #: DB:language/name:205 msgid "Kamba" -msgstr "" +msgstr "Kambų" #. frequency:1 iso_code_3:kan #: DB:language/name:206 @@ -1206,122 +1206,122 @@ msgstr "Kanadų" #. frequency:1 iso_code_3:kau #: DB:language/name:209 msgid "Kanuri" -msgstr "" +msgstr "Kanurų" #. frequency:1 iso_code_3:kaa #: DB:language/name:201 msgid "Kara-Kalpak" -msgstr "" +msgstr "Kara kalpakų" #. frequency:1 iso_code_3:krc #: DB:language/name:227 msgid "Karachay-Balkar" -msgstr "" +msgstr "Karačajų balkarų" #. frequency:1 iso_code_3:krl #: DB:language/name:477 msgid "Karelian" -msgstr "" +msgstr "Karelų" #. frequency:0 iso_code_3:null #: DB:language/name:207 msgid "Karen languages" -msgstr "" +msgstr "Karenų kalbos" #. frequency:1 iso_code_3:kas #: DB:language/name:208 msgid "Kashmiri" -msgstr "" +msgstr "Kašmyrų" #. frequency:1 iso_code_3:csb #: DB:language/name:96 msgid "Kashubian" -msgstr "" +msgstr "Kašubų" #. frequency:0 iso_code_3:kaw #: DB:language/name:210 msgid "Kawi" -msgstr "" +msgstr "Kavių" #. frequency:1 iso_code_3:kaz #: DB:language/name:211 msgid "Kazakh" -msgstr "" +msgstr "Kazachų" #. frequency:1 iso_code_3:kca #: DB:language/name:3137 msgid "Khanty" -msgstr "" +msgstr "Chantų" #. frequency:1 iso_code_3:kha #: DB:language/name:213 msgid "Khasi" -msgstr "" +msgstr "Khasų" #. frequency:1 iso_code_3:khm #: DB:language/name:215 msgid "Khmer, Central" -msgstr "" +msgstr "Khmerų, centrinė" #. frequency:0 iso_code_3:null #: DB:language/name:214 msgid "Khoisan languages" -msgstr "" +msgstr "Khoisanų kalbos" #. frequency:0 iso_code_3:kho #: DB:language/name:216 msgid "Khotanese" -msgstr "" +msgstr "Chotanų" #. frequency:1 iso_code_3:kik #: DB:language/name:217 msgid "Kikuyu" -msgstr "" +msgstr "Kikujų" #. frequency:1 iso_code_3:kmb #: DB:language/name:220 msgid "Kimbundu" -msgstr "" +msgstr "Kimbundų" #. frequency:1 iso_code_3:kin #: DB:language/name:218 msgid "Kinyarwanda" -msgstr "" +msgstr "Kinjarvandų" #. frequency:1 iso_code_3:kir #: DB:language/name:219 msgid "Kirghiz" -msgstr "" +msgstr "Kirgizų" #. frequency:1 iso_code_3:tlh #: DB:language/name:421 msgid "Klingon" -msgstr "" +msgstr "Klingonų" #. frequency:1 iso_code_3:kom #: DB:language/name:222 msgid "Komi" -msgstr "" +msgstr "Komių" #. frequency:1 iso_code_3:kon #: DB:language/name:223 msgid "Kongo" -msgstr "" +msgstr "Kongų" #. frequency:1 iso_code_3:kok #: DB:language/name:221 msgid "Konkani" -msgstr "" +msgstr "Konkanų" #. frequency:2 iso_code_3:kor #: DB:language/name:224 msgid "Korean" -msgstr "Korėjietiškas" +msgstr "Korėjiečių" #. frequency:1 iso_code_3:kos #: DB:language/name:225 msgid "Kosraean" -msgstr "" +msgstr "Kosrajų" #. frequency:1 iso_code_3:kpe #: DB:language/name:226 @@ -1331,37 +1331,37 @@ msgstr "Kpelių" #. frequency:0 iso_code_3:null #: DB:language/name:228 msgid "Kru languages" -msgstr "" +msgstr "Krų kalbos" #. frequency:1 iso_code_3:kua #: DB:language/name:230 msgid "Kuanyama" -msgstr "" +msgstr "Kuanjamų" #. frequency:1 iso_code_3:kum #: DB:language/name:231 msgid "Kumyk" -msgstr "" +msgstr "Kumykų" #. frequency:1 iso_code_3:xug #: DB:language/name:7421 msgid "Kunigami" -msgstr "" +msgstr "Kunigamių" #. frequency:1 iso_code_3:kur #: DB:language/name:232 msgid "Kurdish" -msgstr "" +msgstr "Kurdų" #. frequency:1 iso_code_3:kru #: DB:language/name:229 msgid "Kurukh" -msgstr "" +msgstr "Kurukų" #. frequency:1 iso_code_3:kut #: DB:language/name:233 msgid "Kutenai" -msgstr "" +msgstr "Kutenų" #. frequency:1 iso_code_3:ksh #: DB:language/name:3529 @@ -1371,37 +1371,37 @@ msgstr "" #. frequency:1 iso_code_3:lld #: DB:language/name:3885 msgid "Ladin" -msgstr "" +msgstr "Ladų" #. frequency:1 iso_code_3:lad #: DB:language/name:234 msgid "Ladino" -msgstr "" +msgstr "Ladinų" #. frequency:1 iso_code_3:lah #: DB:language/name:235 msgid "Lahnda" -msgstr "" +msgstr "Lahndų" #. frequency:1 iso_code_3:lkt #: DB:language/name:3880 msgid "Lakota" -msgstr "" +msgstr "Lakotų" #. frequency:1 iso_code_3:lam #: DB:language/name:236 msgid "Lamba" -msgstr "" +msgstr "Lambų" #. frequency:0 iso_code_3:null #: DB:language/name:102 msgid "Land Dayak languages" -msgstr "" +msgstr "Žemės dajakų kalbos" #. frequency:1 iso_code_3:lao #: DB:language/name:237 msgid "Lao" -msgstr "Laoso" +msgstr "Laosų" #. frequency:1 iso_code_3:lat #: DB:language/name:238 @@ -1411,127 +1411,127 @@ msgstr "Lotynų" #. frequency:1 iso_code_3:lav #: DB:language/name:239 msgid "Latvian" -msgstr "" +msgstr "Latvių" #. frequency:1 iso_code_3:lzz #: DB:language/name:4039 msgid "Laz" -msgstr "" +msgstr "Lazų" #. frequency:1 iso_code_3:lez #: DB:language/name:240 msgid "Lezghian" -msgstr "" +msgstr "Lezgių" #. frequency:1 iso_code_3:lim #: DB:language/name:241 msgid "Limburgish" -msgstr "" +msgstr "Limburgų" #. frequency:1 iso_code_3:lin #: DB:language/name:242 msgid "Lingala" -msgstr "" +msgstr "Lingalų" #. frequency:1 iso_code_3:lit #: DB:language/name:243 msgid "Lithuanian" -msgstr "" +msgstr "Lietuvių" #. frequency:1 iso_code_3:liv #: DB:language/name:3858 msgid "Liv" -msgstr "" +msgstr "Lyvių" #. frequency:1 iso_code_3:jbo #: DB:language/name:197 msgid "Lojban" -msgstr "" +msgstr "Ložbanų" #. frequency:1 iso_code_3:lou #: DB:language/name:3958 msgid "Louisiana Creole French" -msgstr "" +msgstr "Luizianos kreolų prancūzų" #. frequency:1 iso_code_3:loz #: DB:language/name:245 msgid "Lozi" -msgstr "" +msgstr "Lozių" #. frequency:1 iso_code_3:lub #: DB:language/name:248 msgid "Luba-Katanga" -msgstr "" +msgstr "Luba katangų" #. frequency:1 iso_code_3:lua #: DB:language/name:247 msgid "Luba-Lulua" -msgstr "" +msgstr "Lubų lulua" #. frequency:1 iso_code_3:lui #: DB:language/name:250 msgid "Luiseno" -msgstr "" +msgstr "Luisenų" #. frequency:1 iso_code_3:lun #: DB:language/name:251 msgid "Lunda" -msgstr "" +msgstr "Lundų" #. frequency:1 iso_code_3:luo #: DB:language/name:252 msgid "Luo" -msgstr "" +msgstr "Lumių" #. frequency:1 iso_code_3:lus #: DB:language/name:253 msgid "Lushai" -msgstr "" +msgstr "Lušajų" #. frequency:1 iso_code_3:ltz #: DB:language/name:246 msgid "Luxembourgish" -msgstr "" +msgstr "Liuksemburgiečių" #. frequency:1 iso_code_3:luy #: DB:language/name:4018 msgid "Luyia" -msgstr "" +msgstr "Lujų" #. frequency:1 iso_code_3:mkd #: DB:language/name:254 msgid "Macedonian" -msgstr "" +msgstr "Makedoniečių" #. frequency:1 iso_code_3:mad #: DB:language/name:255 msgid "Madurese" -msgstr "" +msgstr "Madurezų" #. frequency:1 iso_code_3:mag #: DB:language/name:256 msgid "Magahi" -msgstr "" +msgstr "Magahių" #. frequency:1 iso_code_3:mai #: DB:language/name:258 msgid "Maithili" -msgstr "" +msgstr "Maithilių" #. frequency:1 iso_code_3:mak #: DB:language/name:259 msgid "Makasar" -msgstr "" +msgstr "Makasarų" #. frequency:1 iso_code_3:mlg #: DB:language/name:275 msgid "Malagasy" -msgstr "" +msgstr "Malagasių" #. frequency:1 iso_code_3:msa #: DB:language/name:266 msgid "Malay" -msgstr "" +msgstr "Malajiečių" #. frequency:1 iso_code_3:mal #: DB:language/name:260 @@ -1541,182 +1541,182 @@ msgstr "Malajalamų" #. frequency:1 iso_code_3:mlt #: DB:language/name:276 msgid "Maltese" -msgstr "" +msgstr "Maltiečių" #. frequency:1 iso_code_3:mnc #: DB:language/name:277 msgid "Manchu" -msgstr "" +msgstr "Mandžiūrų" #. frequency:1 iso_code_3:mdr #: DB:language/name:268 msgid "Mandar" -msgstr "" +msgstr "Mandarų" #. frequency:1 iso_code_3:cmn #: DB:language/name:1739 msgid "Mandarin Chinese" -msgstr "" +msgstr "Mandarinų kinų" #. frequency:1 iso_code_3:man #: DB:language/name:261 msgid "Mandingo" -msgstr "" +msgstr "Mandingų" #. frequency:1 iso_code_3:mni #: DB:language/name:278 msgid "Manipuri" -msgstr "" +msgstr "Manipurų" #. frequency:0 iso_code_3:null #: DB:language/name:279 msgid "Manobo languages" -msgstr "" +msgstr "Manobų kalbos" #. frequency:1 iso_code_3:mns #: DB:language/name:4358 msgid "Mansi" -msgstr "" +msgstr "Mansių" #. frequency:1 iso_code_3:glv #: DB:language/name:151 msgid "Manx" -msgstr "" +msgstr "Manksų" #. frequency:1 iso_code_3:mri #: DB:language/name:262 msgid "Maori" -msgstr "" +msgstr "Maorių" #. frequency:1 iso_code_3:arn #: DB:language/name:22 msgid "Mapudungun" -msgstr "" +msgstr "Mapudungunų" #. frequency:1 iso_code_3:mar #: DB:language/name:264 msgid "Marathi" -msgstr "" +msgstr "Maratų" #. frequency:1 iso_code_3:chm #: DB:language/name:78 msgid "Mari" -msgstr "" +msgstr "Marių" #. frequency:1 iso_code_3:mah #: DB:language/name:257 msgid "Marshallese" -msgstr "" +msgstr "Maršalų" #. frequency:1 iso_code_3:mwr #: DB:language/name:288 msgid "Marwari" -msgstr "" +msgstr "Marvarių" #. frequency:1 iso_code_3:mas #: DB:language/name:265 msgid "Masai" -msgstr "" +msgstr "Masajų" #. frequency:0 iso_code_3:null #: DB:language/name:289 msgid "Mayan languages" -msgstr "" +msgstr "Majų kalbos" #. frequency:1 iso_code_3:men #: DB:language/name:269 msgid "Mende" -msgstr "" +msgstr "Mendų" #. frequency:1 iso_code_3:mic #: DB:language/name:271 msgid "Mi'kmaq" -msgstr "" +msgstr "Mikmakų" #. frequency:1 iso_code_3:nan #: DB:language/name:4663 msgid "Min Nan Chinese" -msgstr "" +msgstr "Min Nan kinų" #. frequency:1 iso_code_3:hna #: DB:language/name:2735 msgid "Mina (Cameroon)" -msgstr "" +msgstr "Minų (Kamerūnas)" #. frequency:1 iso_code_3:min #: DB:language/name:272 msgid "Minangkabau" -msgstr "" +msgstr "Minangkabų" #. frequency:1 iso_code_3:mwl #: DB:language/name:287 msgid "Mirandese" -msgstr "" +msgstr "Mirandiečių" #. frequency:1 iso_code_3:mvi #: DB:language/name:4538 msgid "Miyako" -msgstr "" +msgstr "Mijakų" #. frequency:1 iso_code_3:moh #: DB:language/name:280 msgid "Mohawk" -msgstr "" +msgstr "Mohavkų" #. frequency:1 iso_code_3:mdf #: DB:language/name:267 msgid "Moksha" -msgstr "" +msgstr "Mokošų" #. frequency:0 iso_code_3:null #: DB:language/name:281 msgid "Moldavian" -msgstr "" +msgstr "Moldavų" #. frequency:0 iso_code_3:null #: DB:language/name:274 msgid "Mon-Khmer languages" -msgstr "" +msgstr "Mon khmerų kalbos" #. frequency:1 iso_code_3:lol #: DB:language/name:244 msgid "Mongo" -msgstr "" +msgstr "Mongų" #. frequency:1 iso_code_3:mon #: DB:language/name:282 msgid "Mongolian" -msgstr "" +msgstr "Mongolų" #. frequency:1 iso_code_3:mos #: DB:language/name:283 msgid "Mossi" -msgstr "" +msgstr "Mosių" #. frequency:0 iso_code_3:null #: DB:language/name:285 msgid "Munda languages" -msgstr "" +msgstr "Mundų kalbos" #. frequency:1 iso_code_3:nqo #: DB:language/name:478 msgid "N'Ko" -msgstr "" +msgstr "N'Ko" #. frequency:0 iso_code_3:null #: DB:language/name:291 msgid "Nahuatl languages" -msgstr "" +msgstr "Nahuatlų kalbos" #. frequency:1 iso_code_3:nau #: DB:language/name:294 msgid "Nauru" -msgstr "Nauru" +msgstr "Naurų" #. frequency:1 iso_code_3:nav #: DB:language/name:295 msgid "Navajo" -msgstr "" +msgstr "Navahų" #. frequency:1 iso_code_3:nde #: DB:language/name:297 @@ -2291,7 +2291,7 @@ msgstr "" #. frequency:2 iso_code_3:spa #: DB:language/name:393 msgid "Spanish" -msgstr "Ispanų kalba" +msgstr "Ispanų" #. frequency:1 iso_code_3:srn #: DB:language/name:480 @@ -2336,12 +2336,12 @@ msgstr "" #. frequency:2 iso_code_3:swe #: DB:language/name:403 msgid "Swedish" -msgstr "Švedų kalba" +msgstr "Švedų" #. frequency:1 iso_code_3:syr #: DB:language/name:404 msgid "Syriac" -msgstr "Siriškas" +msgstr "Sirų" #. frequency:1 iso_code_3:tgl #: DB:language/name:414 @@ -2421,97 +2421,97 @@ msgstr "" #. frequency:1 iso_code_3:tiv #: DB:language/name:419 msgid "Tiv" -msgstr "" +msgstr "Tivų" #. frequency:1 iso_code_3:tli #: DB:language/name:422 msgid "Tlingit" -msgstr "" +msgstr "Tlingitų" #. frequency:1 iso_code_3:tpi #: DB:language/name:426 msgid "Tok Pisin" -msgstr "" +msgstr "Tok pisinų" #. frequency:1 iso_code_3:tkl #: DB:language/name:420 msgid "Tokelau" -msgstr "Tokelavas" +msgstr "Tokelavų" #. frequency:1 iso_code_3:tok #: DB:language/name:7845 msgid "Toki Pona" -msgstr "" +msgstr "Toki ponų" #. frequency:1 iso_code_3:tog #: DB:language/name:424 msgid "Tonga (Nyasa)" -msgstr "" +msgstr "Tongų (Nyasa)" #. frequency:1 iso_code_3:ton #: DB:language/name:425 msgid "Tonga (Tonga Islands)" -msgstr "" +msgstr "Tongų (Tongos salos)" #. frequency:1 iso_code_3:tsi #: DB:language/name:427 msgid "Tsimshian" -msgstr "" +msgstr "Timšėnų" #. frequency:1 iso_code_3:tso #: DB:language/name:429 msgid "Tsonga" -msgstr "" +msgstr "Tsongų" #. frequency:1 iso_code_3:tsn #: DB:language/name:428 msgid "Tswana" -msgstr "" +msgstr "Tsvanų" #. frequency:1 iso_code_3:tum #: DB:language/name:431 msgid "Tumbuka" -msgstr "" +msgstr "Tumbukų" #. frequency:0 iso_code_3:null #: DB:language/name:432 msgid "Tupi languages" -msgstr "" +msgstr "Tupių kalbos" #. frequency:2 iso_code_3:tur #: DB:language/name:433 msgid "Turkish" -msgstr "" +msgstr "Turkų" #. frequency:1 iso_code_3:ota #: DB:language/name:324 msgid "Turkish, Ottoman" -msgstr "" +msgstr "Turkų, osmanų" #. frequency:1 iso_code_3:tuk #: DB:language/name:430 msgid "Turkmen" -msgstr "" +msgstr "Turkmėnų" #. frequency:1 iso_code_3:tvl #: DB:language/name:435 msgid "Tuvalu" -msgstr "Tuvalu" +msgstr "Tuvalų" #. frequency:1 iso_code_3:tyv #: DB:language/name:437 msgid "Tuvinian" -msgstr "" +msgstr "Tuvinų" #. frequency:1 iso_code_3:twi #: DB:language/name:436 msgid "Twi" -msgstr "" +msgstr "Tvių" #. frequency:1 iso_code_3:udm #: DB:language/name:438 msgid "Udmurt" -msgstr "" +msgstr "Udmurtų" #. frequency:0 iso_code_3:uga #: DB:language/name:439 @@ -2526,12 +2526,12 @@ msgstr "" #. frequency:1 iso_code_3:ukr #: DB:language/name:441 msgid "Ukrainian" -msgstr "" +msgstr "Ukrainiečių" #. frequency:1 iso_code_3:umb #: DB:language/name:442 msgid "Umbundu" -msgstr "" +msgstr "Umbundų" #. frequency:1 iso_code_3:sju #: DB:language/name:5995 @@ -2541,7 +2541,7 @@ msgstr "" #. frequency:0 iso_code_3:mis #: DB:language/name:273 msgid "Uncoded languages" -msgstr "" +msgstr "Nekoduotos kalbos" #. frequency:0 iso_code_3:und #: DB:language/name:443 @@ -2596,37 +2596,37 @@ msgstr "" #. frequency:0 iso_code_3:null #: DB:language/name:451 msgid "Wakashan languages" -msgstr "" +msgstr "Vakašanų kalbos" #. frequency:1 iso_code_3:wln #: DB:language/name:457 msgid "Walloon" -msgstr "" +msgstr "Valonų" #. frequency:1 iso_code_3:wae #: DB:language/name:6981 msgid "Walser" -msgstr "" +msgstr "Valserių" #. frequency:1 iso_code_3:war #: DB:language/name:453 msgid "Waray" -msgstr "" +msgstr "Varajų" #. frequency:1 iso_code_3:wbp #: DB:language/name:7009 msgid "Warlpiri" -msgstr "" +msgstr "Varlpirių" #. frequency:1 iso_code_3:was #: DB:language/name:454 msgid "Washo" -msgstr "" +msgstr "Vašų" #. frequency:1 iso_code_3:cym #: DB:language/name:455 msgid "Welsh" -msgstr "" +msgstr "Velsiečių" #. frequency:1 iso_code_3:are #: DB:language/name:820 @@ -2651,7 +2651,7 @@ msgstr "" #. frequency:1 iso_code_3:xho #: DB:language/name:460 msgid "Xhosa" -msgstr "" +msgstr "Ksosų" #. frequency:1 iso_code_3:rys #: DB:language/name:5808 @@ -2681,7 +2681,7 @@ msgstr "" #. frequency:1 iso_code_3:yox #: DB:language/name:7602 msgid "Yoron" -msgstr "" +msgstr "Joronų" #. frequency:1 iso_code_3:yor #: DB:language/name:464 @@ -2756,4 +2756,4 @@ msgstr "[Kelios kalbos]" #. frequency:1 iso_code_3:zxx #: DB:language/name:486 msgid "[No linguistic content]" -msgstr "" +msgstr "[Nėra kalbinio turinio]" diff --git a/po/mb_server.lt.po b/po/mb_server.lt.po index 57ed5b8440e..edc4be00471 100644 --- a/po/mb_server.lt.po +++ b/po/mb_server.lt.po @@ -12,7 +12,7 @@ msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-09-27 17:01+0000\n" -"PO-Revision-Date: 2023-09-24 15:27+0000\n" +"PO-Revision-Date: 2023-10-09 22:27+0000\n" "Last-Translator: \"Vac31.\" \n" "Language-Team: Lithuanian \n" @@ -21,8 +21,8 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < " -"11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? " -"1 : n % 1 != 0 ? 2: 3);\n" +"11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 :" +" n % 1 != 0 ? 2: 3);\n" "X-Generator: Weblate 5.0.2\n" #: ../root/components/common-macros.tt:12 @@ -1077,7 +1077,7 @@ msgstr "Galutinis taškas:" #: ../root/components/forms.tt:258 ../root/components/forms.tt:283 #: ../root/static/scripts/edit/components/GuessCaseOptions.js:113 msgid "English" -msgstr "Anglų k." +msgstr "Anglų" #: ../root/release/edit/tracklist.tt:3 msgid "Enter a tracklist below:" @@ -3102,7 +3102,7 @@ msgstr "" #: ../root/components/forms.tt:261 ../root/components/forms.tt:286 #: ../root/static/scripts/edit/components/GuessCaseOptions.js:116 msgid "Turkish" -msgstr "" +msgstr "Turkų" #: ../root/layout.tt:118 ../root/layout/components/Footer.js:34 msgid "Twitter" @@ -6329,7 +6329,7 @@ msgstr "" #: ../root/admin/EditBanner.js:39 ../root/admin/wikidoc/EditWikiDoc.js:51 #: ../root/admin/wikidoc/WikiDocIndex.js:102 msgid "Update" -msgstr "" +msgstr "Atnaujinti" #: ../root/account/applications/RegisterApplication.js:22 #: ../root/account/applications/RegisterApplication.js:23 @@ -6400,7 +6400,7 @@ msgstr "" #: ../root/admin/DeleteUser.js:75 msgid "Delete {e}" -msgstr "" +msgstr "Ištrinti {e}" #: ../root/admin/DeleteUser.js:84 msgid "" @@ -6456,7 +6456,7 @@ msgstr "" #: ../root/admin/EditUser.js:79 ../root/admin/PrivilegeSearch.js:67 msgid "Auto-editor" -msgstr "" +msgstr "Autoredaktorius (-ė)" #: ../root/admin/EditUser.js:84 ../root/admin/PrivilegeSearch.js:72 msgid "Transclusion editor" diff --git a/po/relationships.lt.po b/po/relationships.lt.po index 4807934e8f9..4c9dbb7bc3c 100644 --- a/po/relationships.lt.po +++ b/po/relationships.lt.po @@ -1,24 +1,28 @@ # # Translators: # Vaclovas lntas (Vac.)

[% l('Please enter the barcode of the release you are entering, see Barcode for more information.', diff --git a/root/static/scripts/release-editor/bubbles.js b/root/static/scripts/release-editor/bubbles.js index b30fcea5ed5..0d2d929274d 100644 --- a/root/static/scripts/release-editor/bubbles.js +++ b/root/static/scripts/release-editor/bubbles.js @@ -37,6 +37,10 @@ releaseEditor.dateBubble = bubbleDoc({ }, }); +releaseEditor.languageBubble = bubbleDoc(); + +releaseEditor.scriptBubble = bubbleDoc(); + releaseEditor.packagingBubble = bubbleDoc(); releaseEditor.labelBubble = bubbleDoc({ From 8be92ebf25cc4958c3bacab4ec90e2825cb6847f Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Sat, 7 Oct 2023 14:05:10 +0200 Subject: [PATCH 036/194] Upgrade Flow to 0.215.0 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 440e9db892b..4c4c3dab013 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.33.1", "eslint-plugin-react-hooks": "4.6.0", "file-url": "2.0.2", - "flow-bin": "0.214.0", + "flow-bin": "0.215.0", "gettext-parser": "3.1.0", "hermes-eslint": "0.16.0", "http-proxy": "1.18.1", diff --git a/yarn.lock b/yarn.lock index 24cc4276209..d04dde5f81a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2662,10 +2662,10 @@ flatted@^3.2.7: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== -flow-bin@0.214.0: - version "0.214.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.214.0.tgz#3ace7984a69309392e056f96cf3bf8623fa93d1c" - integrity sha512-rPexleFynYsxsBAPHqRvCIqzcRZ9KkPjlFbuOATmFlHyG6vdy9V+SWPYdzBtgsfhGbj9PZ14pzv1zzgNd7rmvQ== +flow-bin@0.215.0: + version "0.215.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.215.0.tgz#6f6b42ab34a56758f381bbd0543173f06a20b7be" + integrity sha512-oleH4I3o1moLjN8wwfiiD4H9VVhgq6EP7y3xcrQaBMm0/qiYSmnhcSnqcDnc2KPTI9a+X2Z5BWSbO/lXeRTW5A== follow-redirects@^1.0.0: version "1.15.3" From e1182d00fe3aec0d96a6f6ae18cf639762116aea Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Sat, 7 Oct 2023 14:05:49 +0200 Subject: [PATCH 037/194] Upgrade Flow to 0.215.1 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 4c4c3dab013..c99f13a48b0 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.33.1", "eslint-plugin-react-hooks": "4.6.0", "file-url": "2.0.2", - "flow-bin": "0.215.0", + "flow-bin": "0.215.1", "gettext-parser": "3.1.0", "hermes-eslint": "0.16.0", "http-proxy": "1.18.1", diff --git a/yarn.lock b/yarn.lock index d04dde5f81a..4faa69181e7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2662,10 +2662,10 @@ flatted@^3.2.7: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== -flow-bin@0.215.0: - version "0.215.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.215.0.tgz#6f6b42ab34a56758f381bbd0543173f06a20b7be" - integrity sha512-oleH4I3o1moLjN8wwfiiD4H9VVhgq6EP7y3xcrQaBMm0/qiYSmnhcSnqcDnc2KPTI9a+X2Z5BWSbO/lXeRTW5A== +flow-bin@0.215.1: + version "0.215.1" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.215.1.tgz#1df7f284087a2edca89b6af5df8e7cc13f53f926" + integrity sha512-Q8Ed0w492tI9O/US11bC2Gtme0gkK/RNZBLTXBgSnRo3JaQor2cPRcKcwQX2mPBoV9/KrtAVVCnhzu4zTpkWTg== follow-redirects@^1.0.0: version "1.15.3" From 4ca90a976e15ca0c08629ee4da4ffdbc389187f7 Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Sat, 7 Oct 2023 14:06:33 +0200 Subject: [PATCH 038/194] Upgrade Flow to 0.216.0 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index c99f13a48b0..84163f6fda7 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.33.1", "eslint-plugin-react-hooks": "4.6.0", "file-url": "2.0.2", - "flow-bin": "0.215.1", + "flow-bin": "0.216.0", "gettext-parser": "3.1.0", "hermes-eslint": "0.16.0", "http-proxy": "1.18.1", diff --git a/yarn.lock b/yarn.lock index 4faa69181e7..ae0d59e7f2d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2662,10 +2662,10 @@ flatted@^3.2.7: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== -flow-bin@0.215.1: - version "0.215.1" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.215.1.tgz#1df7f284087a2edca89b6af5df8e7cc13f53f926" - integrity sha512-Q8Ed0w492tI9O/US11bC2Gtme0gkK/RNZBLTXBgSnRo3JaQor2cPRcKcwQX2mPBoV9/KrtAVVCnhzu4zTpkWTg== +flow-bin@0.216.0: + version "0.216.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.216.0.tgz#7d5967fba730d4296ae41500ac0ba18c4924b056" + integrity sha512-f1+TsvnPEL0V7XerPhLkoX6XlEkEAkLbKT7Z5Y7LT4OLd5K2FlfZ9/ChsL/HXQFBqCjnNQJwJvAyiSPIa7+hCw== follow-redirects@^1.0.0: version "1.15.3" From e80d8560899bc13c4d3559107b9141f7bbdcd05b Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Sat, 7 Oct 2023 14:07:02 +0200 Subject: [PATCH 039/194] Upgrade Flow to 0.216.1 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 84163f6fda7..c244aab9cb5 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.33.1", "eslint-plugin-react-hooks": "4.6.0", "file-url": "2.0.2", - "flow-bin": "0.216.0", + "flow-bin": "0.216.1", "gettext-parser": "3.1.0", "hermes-eslint": "0.16.0", "http-proxy": "1.18.1", diff --git a/yarn.lock b/yarn.lock index ae0d59e7f2d..1675821b228 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2662,10 +2662,10 @@ flatted@^3.2.7: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== -flow-bin@0.216.0: - version "0.216.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.216.0.tgz#7d5967fba730d4296ae41500ac0ba18c4924b056" - integrity sha512-f1+TsvnPEL0V7XerPhLkoX6XlEkEAkLbKT7Z5Y7LT4OLd5K2FlfZ9/ChsL/HXQFBqCjnNQJwJvAyiSPIa7+hCw== +flow-bin@0.216.1: + version "0.216.1" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.216.1.tgz#c370af830e46645087a2aea4056507cc44acc031" + integrity sha512-mdhkQiSSZ/nyPq/pmk2tdbV3btYTlTYqBT/96nSSTGQmvTWQ0no9XMLZ/SygNafL4PPerfkpwQwprA1M35+9Bg== follow-redirects@^1.0.0: version "1.15.3" From 4a5c53d0678e8c9e3267c0229f9b898b06e0928a Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Thu, 19 Oct 2023 05:27:54 -0500 Subject: [PATCH 040/194] Fix indentation in PhraseVarArgs class For some reason, the class members/methods were indented 3 spaces instead of 2. --- .../static/scripts/edit/utility/linkPhrase.js | 76 +++++++++---------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/root/static/scripts/edit/utility/linkPhrase.js b/root/static/scripts/edit/utility/linkPhrase.js index 924fc3536c0..8758491fe7c 100644 --- a/root/static/scripts/edit/utility/linkPhrase.js +++ b/root/static/scripts/edit/utility/linkPhrase.js @@ -54,44 +54,44 @@ class PhraseVarArgs * didn't appear in the link phrase, so that we can display them * separately). */ - +usedPhraseAttributes: Array; - - constructor( - args: ?VarArgsObject, - i18n: LinkPhraseI18n, - entity0: ?T, - entity1: ?T, - ) { - super(args || EMPTY_OBJECT); - this.i18n = i18n; - this.entity0 = nonEmpty(entity0) ? entity0 : ''; - this.entity1 = nonEmpty(entity1) ? entity1 : ''; - this.usedPhraseAttributes = []; - } - - get(name: string): T | string { - if (name === 'entity0') { - return this.entity0; - } - if (name === 'entity1') { - return this.entity1; - } - const attributes = this.data[name]; - if (attributes == null) { - return ''; - } - if (Array.isArray(attributes)) { - return this.i18n.commaList( - attributes.map(this.i18n.displayLinkAttribute), - ); - } - return this.i18n.displayLinkAttribute(attributes); - } - - has(name: string): boolean { - this.usedPhraseAttributes.push(name); - return true; - } + +usedPhraseAttributes: Array; + + constructor( + args: ?VarArgsObject, + i18n: LinkPhraseI18n, + entity0: ?T, + entity1: ?T, + ) { + super(args || EMPTY_OBJECT); + this.i18n = i18n; + this.entity0 = nonEmpty(entity0) ? entity0 : ''; + this.entity1 = nonEmpty(entity1) ? entity1 : ''; + this.usedPhraseAttributes = []; + } + + get(name: string): T | string { + if (name === 'entity0') { + return this.entity0; + } + if (name === 'entity1') { + return this.entity1; + } + const attributes = this.data[name]; + if (attributes == null) { + return ''; + } + if (Array.isArray(attributes)) { + return this.i18n.commaList( + attributes.map(this.i18n.displayLinkAttribute), + ); + } + return this.i18n.displayLinkAttribute(attributes); + } + + has(name: string): boolean { + this.usedPhraseAttributes.push(name); + return true; + } } export type LinkPhraseI18n = { From 2e7cf4c8b626c44be19f95548e8f4e2e95d49a65 Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Fri, 20 Oct 2023 14:58:38 -0500 Subject: [PATCH 041/194] Remove unnecessary check in concatStringMatch We don't need to check `gotMatch(match)` here, because `parseContinuous` only invokes `matchCallback` on matches. --- root/static/scripts/common/i18n/expand2.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/root/static/scripts/common/i18n/expand2.js b/root/static/scripts/common/i18n/expand2.js index d40d250ebae..796ad35d01a 100644 --- a/root/static/scripts/common/i18n/expand2.js +++ b/root/static/scripts/common/i18n/expand2.js @@ -167,11 +167,11 @@ export function parseContinuous( function concatStringMatch( accum: string | NO_MATCH, - match: string | NO_MATCH, + match: string, ): string { return ( (gotMatch(accum) ? accum : '') + - (gotMatch(match) ? match : '') + match ); } From 9a59f6d904997fa0066894bab8b08896b4ab167d Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Wed, 18 Oct 2023 10:28:29 -0500 Subject: [PATCH 042/194] Upgrade Flow to 0.217.0 https://github.com/facebook/flow/releases/tag/v0.217.0 The primary change here is that variance annotations in functions are no longer supported. I guess they didn't do anything before, anyway -- kinda, because simply removing them revealed some new errors that I've fixed here. --- package.json | 2 +- .../common/components/Autocomplete2.js | 6 ++-- .../components/Autocomplete2/formatters.js | 4 +-- .../components/Autocomplete2/recentItems.js | 8 ++--- .../components/Autocomplete2/reducer.js | 24 +++++++-------- .../components/Autocomplete2/searchItems.js | 14 ++++----- root/static/scripts/common/i18n/expand2.js | 11 ++++--- .../scripts/common/i18n/expand2react.js | 2 +- .../scripts/common/utility/buildOptionList.js | 2 +- .../scripts/common/utility/cloneDeep.mjs | 10 +++---- .../common/utility/formatDatePeriod.js | 2 +- .../scripts/common/utility/formatEndDate.js | 2 +- root/static/scripts/common/utility/memoize.js | 6 ++-- .../scripts/common/utility/pThrottle.js | 4 +-- .../edit/components/edit/RelationshipDiff.js | 1 + .../edit/components/withLoadedTypeInfo.js | 8 ++--- .../scripts/edit/utility/createField.js | 2 +- root/static/scripts/edit/utility/editDiff.js | 2 +- .../static/scripts/edit/utility/linkPhrase.js | 30 +++++++++---------- .../edit/utility/reducerWithErrorHandling.js | 2 +- .../utility/exportTypeInfo.js | 4 +-- .../utility/prettyPrintRelationshipState.js | 2 +- root/utility/age.js | 4 +-- yarn.lock | 8 ++--- 24 files changed, 80 insertions(+), 80 deletions(-) diff --git a/package.json b/package.json index c244aab9cb5..99e7d05b7ea 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.33.1", "eslint-plugin-react-hooks": "4.6.0", "file-url": "2.0.2", - "flow-bin": "0.216.1", + "flow-bin": "0.217.0", "gettext-parser": "3.1.0", "hermes-eslint": "0.16.0", "http-proxy": "1.18.1", diff --git a/root/static/scripts/common/components/Autocomplete2.js b/root/static/scripts/common/components/Autocomplete2.js index 0c74c2bbdea..bd1e949ae75 100644 --- a/root/static/scripts/common/components/Autocomplete2.js +++ b/root/static/scripts/common/components/Autocomplete2.js @@ -167,7 +167,7 @@ type InitialStateT = { const EMPTY_ITEMS: $ReadOnlyArray> = Object.freeze([]); -export function createInitialState<+T: EntityItemT>( +export function createInitialState( initialState: InitialStateT, ): {...StateT} { const { @@ -238,7 +238,7 @@ type AutocompleteItemPropsT = { selectItem: (ItemT) => boolean, }; -const AutocompleteItem = React.memo(<+T: EntityItemT>({ +const AutocompleteItem = React.memo(({ autocompleteId, dispatch, formatOptions, @@ -308,7 +308,7 @@ const AutocompleteItem = React.memo(<+T: EntityItemT>({ ); }); -const Autocomplete2 = (React.memo(<+T: EntityItemT>( +const Autocomplete2 = (React.memo(( props: PropsT, ): React$Element<'div'> => { const {dispatch, state} = props; diff --git a/root/static/scripts/common/components/Autocomplete2/formatters.js b/root/static/scripts/common/components/Autocomplete2/formatters.js index dcc6a880a75..f3edc3fbee5 100644 --- a/root/static/scripts/common/components/Autocomplete2/formatters.js +++ b/root/static/scripts/common/components/Autocomplete2/formatters.js @@ -65,7 +65,7 @@ function showExtraInfoLine( ); } -function formatName<+T: EntityItemT>(entity: T): string { +function formatName(entity: T): string { return unwrapNl(entity.name); } @@ -560,7 +560,7 @@ export type FormatOptionsT = { +showDescriptions?: boolean, }; -export default function formatItem<+T: EntityItemT>( +export default function formatItem( item: ItemT, options?: ?FormatOptionsT, ): Expand2ReactOutput { diff --git a/root/static/scripts/common/components/Autocomplete2/recentItems.js b/root/static/scripts/common/components/Autocomplete2/recentItems.js index 57f1788b374..5082ccae4fa 100644 --- a/root/static/scripts/common/components/Autocomplete2/recentItems.js +++ b/root/static/scripts/common/components/Autocomplete2/recentItems.js @@ -33,7 +33,7 @@ import type { */ type RecentEntitiesT = {[entityTypeKey: string]: mixed}; -type WsJsEntitiesDataT<+T: EntityItemT> = { +type WsJsEntitiesDataT = { +results: {+[id: string]: ?T}, }; @@ -156,7 +156,7 @@ export function clearRecentItems( const _recentItemsCache = new Map>>(); -export function getRecentItems<+T: EntityItemT>( +export function getRecentItems( key: string, ): $ReadOnlyArray> { // $FlowIgnore[incompatible-return] @@ -180,7 +180,7 @@ function getEntityName( } } -export async function getOrFetchRecentItems<+T: EntityItemT>( +export async function getOrFetchRecentItems( entityType: string, key?: string = entityType, ): Promise<$ReadOnlyArray>> { @@ -253,7 +253,7 @@ export async function getOrFetchRecentItems<+T: EntityItemT>( return Promise.resolve(cachedList); } -export function pushRecentItem<+T: EntityItemT>( +export function pushRecentItem( item: OptionItemT, key?: string = item.entity.entityType, ): $ReadOnlyArray> { diff --git a/root/static/scripts/common/components/Autocomplete2/reducer.js b/root/static/scripts/common/components/Autocomplete2/reducer.js index e2986b0f961..2c975956902 100644 --- a/root/static/scripts/common/components/Autocomplete2/reducer.js +++ b/root/static/scripts/common/components/Autocomplete2/reducer.js @@ -45,7 +45,7 @@ import type { StateT, } from './types.js'; -function initSearch<+T: EntityItemT>( +function initSearch( state: {...StateT}, action: SearchActionT, ) { @@ -69,7 +69,7 @@ function initSearch<+T: EntityItemT>( } } -export function generateItems<+T: EntityItemT>( +export function generateItems( state: StateT, ): $ReadOnlyArray> { const items: Array> = []; @@ -188,7 +188,7 @@ export function generateItems<+T: EntityItemT>( return items; } -export function determineIfUserCanAddEntities<+T: EntityItemT>( +export function determineIfUserCanAddEntities( state: StateT, ): boolean { const user = getCatalystContext().user; @@ -212,7 +212,7 @@ export function determineIfUserCanAddEntities<+T: EntityItemT>( } } -function getFirstHighlightableIndex<+T: EntityItemT>( +function getFirstHighlightableIndex( state: StateT, ): number { const items = state.items; @@ -227,7 +227,7 @@ function getFirstHighlightableIndex<+T: EntityItemT>( return -1; } -export function generateStatusMessage<+T: EntityItemT>( +export function generateStatusMessage( state: StateT, ): string { if (state.isOpen) { @@ -270,7 +270,7 @@ export function generateStatusMessage<+T: EntityItemT>( return ''; } -export function filterStaticItems<+T: EntityItemT>( +export function filterStaticItems( state: {...StateT}, newInputValue: string, ): void { @@ -279,7 +279,7 @@ export function filterStaticItems<+T: EntityItemT>( state.results = searchItems(staticItems, newInputValue); } -export function resetPage<+T: EntityItemT>( +export function resetPage( state: {...StateT}, ): void { state.highlightedIndex = -1; @@ -289,7 +289,7 @@ export function resetPage<+T: EntityItemT>( state.error = 0; } -function selectItem<+T: EntityItemT>( +function selectItem( state: {...StateT}, item: ItemT, ) { @@ -327,7 +327,7 @@ function selectItem<+T: EntityItemT>( state.pendingSearch = null; } -function setError<+T: EntityItemT>( +function setError( state: {...StateT}, error: number, ) { @@ -335,7 +335,7 @@ function setError<+T: EntityItemT>( state.isOpen = true; } -function highlightNextItem<+T: EntityItemT>( +function highlightNextItem( state: {...StateT}, startingIndex: number, offset: number, @@ -365,7 +365,7 @@ function highlightNextItem<+T: EntityItemT>( } // `runReducer` should only be run on a copy of the existing state. -export function runReducer<+T: EntityItemT>( +export function runReducer( state: {...StateT}, action: ActionT, ): void { @@ -625,7 +625,7 @@ export function runReducer<+T: EntityItemT>( } } -export default function reducer<+T: EntityItemT>( +export default function reducer( state: StateT, action: ActionT, ): StateT { diff --git a/root/static/scripts/common/components/Autocomplete2/searchItems.js b/root/static/scripts/common/components/Autocomplete2/searchItems.js index 597e412308f..96747b53fd9 100644 --- a/root/static/scripts/common/components/Autocomplete2/searchItems.js +++ b/root/static/scripts/common/components/Autocomplete2/searchItems.js @@ -62,16 +62,16 @@ function* getNGrams( } } -export function getItemName<+T: EntityItemT>( +export function getItemName( item: OptionItemT, ): Array { return [unwrapNl(item.name)]; } const createItemSet = - <+T: EntityItemT>(): Set> => new Set(); + (): Set> => new Set(); -export function indexItems<+T: EntityItemT>( +export function indexItems( items: $ReadOnlyArray>, extractSearchTerms: (OptionItemT) => Array, ): void { @@ -99,7 +99,7 @@ export function indexItems<+T: EntityItemT>( itemIndexes.set(items, index); } -function getItem<+T: EntityItemT>( +function getItem( itemAndRank: [OptionItemT, number], ): OptionItemT { const itemCopy = {...itemAndRank[0]}; @@ -112,14 +112,14 @@ function getItem<+T: EntityItemT>( return itemCopy; } -function compareItemRanks<+T: EntityItemT>( +function compareItemRanks( a: [OptionItemT, number], b: [OptionItemT, number], ): number { return b[1] - a[1]; } -function weightEntry<+T: EntityItemT>( +function weightEntry( itemAndRank: [OptionItemT, number], searchTerm: string, ): number { @@ -146,7 +146,7 @@ function weightEntry<+T: EntityItemT>( return rank; } -export default function searchItems<+T: EntityItemT>( +export default function searchItems( items: $ReadOnlyArray>, searchTerm: string, ): $ReadOnlyArray> { diff --git a/root/static/scripts/common/i18n/expand2.js b/root/static/scripts/common/i18n/expand2.js index 796ad35d01a..de8be9034bc 100644 --- a/root/static/scripts/common/i18n/expand2.js +++ b/root/static/scripts/common/i18n/expand2.js @@ -34,14 +34,14 @@ export interface VarArgsClass<+T> { has(name: string): boolean, } -export class VarArgs<+T, +U = T> implements VarArgsClass { +export class VarArgs<+T> implements VarArgsClass { +data: VarArgsObject; constructor(data: VarArgsObject) { this.data = data; } - get(name: string): T | U { + get(name: string): T { return this.data[name]; } @@ -53,7 +53,6 @@ export class VarArgs<+T, +U = T> implements VarArgsClass { export type Parser<+T, -V> = (VarArgsClass) => T; const EMPTY_OBJECT = Object.freeze({}); -const EMPTY_VARARGS = new VarArgs(EMPTY_OBJECT); type State = { /* @@ -187,7 +186,7 @@ export function parseContinuousString( ); } -export const createTextContentParser = <+T, V>( +export const createTextContentParser = ( textPattern: RegExp, mapValue: (string) => T, ): Parser => () => { @@ -276,7 +275,7 @@ export const createCondSubstParser = ( * Thus these signatures provide type safety on both the return value * and input arg values. */ -export default function expand<+T, V>( +export default function expand( rootParser: (VarArgsClass) => T, source: ?string, args: ?VarArgsClass, @@ -300,7 +299,7 @@ export default function expand<+T, V>( let result; try { - result = rootParser(args ?? EMPTY_VARARGS); + result = rootParser(args ?? (new VarArgs(EMPTY_OBJECT))); if (state.remainder) { throw error('unexpected token'); diff --git a/root/static/scripts/common/i18n/expand2react.js b/root/static/scripts/common/i18n/expand2react.js index e0d02d0ee2c..c1d82e90c16 100644 --- a/root/static/scripts/common/i18n/expand2react.js +++ b/root/static/scripts/common/i18n/expand2react.js @@ -131,7 +131,7 @@ const parseLinkSubst: Parser< if (typeof props === 'string') { props = ({href: props}: AnchorProps); } - if (!props || typeof props === 'number' || empty(props.href)) { + if (props == null || typeof props !== 'object' || empty(props.href)) { throw error('bad link props'); } return React.createElement('a', props, ...children); diff --git a/root/static/scripts/common/utility/buildOptionList.js b/root/static/scripts/common/utility/buildOptionList.js index 11200115ad1..27aa4e85e52 100644 --- a/root/static/scripts/common/utility/buildOptionList.js +++ b/root/static/scripts/common/utility/buildOptionList.js @@ -15,7 +15,7 @@ import {groupBy} from './arrays.js'; * Unlike MB.forms.buildOptionsTree, this builds from a flat list. * TODO: These should probably be combined at some point? */ -export default function buildOptionList<+T>( +export default function buildOptionList( options: $ReadOnlyArray>, localizeName: (string) => string, ): OptionListT { diff --git a/root/static/scripts/common/utility/cloneDeep.mjs b/root/static/scripts/common/utility/cloneDeep.mjs index 8759d6dab30..e01bcf24f89 100644 --- a/root/static/scripts/common/utility/cloneDeep.mjs +++ b/root/static/scripts/common/utility/cloneDeep.mjs @@ -7,7 +7,7 @@ * later version: http://www.gnu.org/licenses/gpl-2.0.txt */ -function _cloneDeep<+T>( +function _cloneDeep( value: T, seen: WeakMap, ): any { @@ -24,7 +24,7 @@ function _cloneDeep<+T>( return value; } -function _cloneArrayDeep<+T>( +function _cloneArrayDeep( array: $ReadOnlyArray, seen: WeakMap, ): $ReadOnlyArray { @@ -37,7 +37,7 @@ function _cloneArrayDeep<+T>( return clone; } -export function cloneArrayDeep<+T>( +export function cloneArrayDeep( array: $ReadOnlyArray, ): $ReadOnlyArray { return _cloneArrayDeep(array, new WeakMap()); @@ -50,7 +50,7 @@ export function cloneArrayDeep<+T>( // $FlowIgnore[method-unbinding] const hasOwnProperty = Object.prototype.hasOwnProperty; -function _cloneObjectDeep<+T: {...}>( +function _cloneObjectDeep( object: T, seen: WeakMap, ): T { @@ -64,7 +64,7 @@ function _cloneObjectDeep<+T: {...}>( return clone; } -export function cloneObjectDeep<+T: {...}>( +export function cloneObjectDeep( object: T, ): T { return _cloneObjectDeep(object, new WeakMap()); diff --git a/root/static/scripts/common/utility/formatDatePeriod.js b/root/static/scripts/common/utility/formatDatePeriod.js index 9a6066760e6..97cdb887927 100644 --- a/root/static/scripts/common/utility/formatDatePeriod.js +++ b/root/static/scripts/common/utility/formatDatePeriod.js @@ -12,7 +12,7 @@ import ko from 'knockout'; import formatDate from './formatDate.js'; function formatDatePeriod< - +T: $ReadOnly<{...DatePeriodRoleT, ...}>, + T: $ReadOnly<{...DatePeriodRoleT, ...}>, >(entity: T): string { const beginDate = formatDate(entity.begin_date); const endDate = formatDate(entity.end_date); diff --git a/root/static/scripts/common/utility/formatEndDate.js b/root/static/scripts/common/utility/formatEndDate.js index a297ee0e170..09160883650 100644 --- a/root/static/scripts/common/utility/formatEndDate.js +++ b/root/static/scripts/common/utility/formatEndDate.js @@ -9,7 +9,7 @@ import formatDate from './formatDate.js'; -export default function formatEndDate<+T: $ReadOnly<{ +export default function formatEndDate>(entity: T): null | string { diff --git a/root/static/scripts/common/utility/memoize.js b/root/static/scripts/common/utility/memoize.js index 8b4f1fcb9d0..a1b9ecedae0 100644 --- a/root/static/scripts/common/utility/memoize.js +++ b/root/static/scripts/common/utility/memoize.js @@ -21,7 +21,7 @@ type ObjectType = interface {} | $ReadOnlyArray; const createWeakMap = (): WeakMap => new WeakMap(); -function memoizeGeneric<-T, +U>( +function memoizeGeneric( func: (T) => U, createCache: () => MapInterface, ): (T) => U { @@ -37,13 +37,13 @@ function memoizeGeneric<-T, +U>( }; } -export default function memoize<-T: interface {}, +U>( +export default function memoize( func: (T) => U, ): (T) => U { return memoizeGeneric(func, createWeakMap); } -export function memoizeWithDefault<-T: interface {}, +U>( +export function memoizeWithDefault( func: (T) => U, defaultValue: U, ): (?T) => U { diff --git a/root/static/scripts/common/utility/pThrottle.js b/root/static/scripts/common/utility/pThrottle.js index b0232eecb88..3e4b1270c26 100644 --- a/root/static/scripts/common/utility/pThrottle.js +++ b/root/static/scripts/common/utility/pThrottle.js @@ -50,8 +50,8 @@ export type ThrottleResultT<+R: mixed> = { }; const pThrottle = < - -A: $ReadOnlyArray, - +R: mixed, + A: $ReadOnlyArray, + R: mixed, >({ interval, limit, diff --git a/root/static/scripts/edit/components/edit/RelationshipDiff.js b/root/static/scripts/edit/components/edit/RelationshipDiff.js index 1f69f890525..900a8bc8c1a 100644 --- a/root/static/scripts/edit/components/edit/RelationshipDiff.js +++ b/root/static/scripts/edit/components/edit/RelationshipDiff.js @@ -72,6 +72,7 @@ const RelationshipDiff = (React.memo(({ const i18nConfig: LinkPhraseI18n = { commaList, + defaultValue: '', displayLinkAttribute: function (attr: LinkAttrT) { const typeId = String(attr.typeID); const display = displayLinkAttribute(attr); diff --git a/root/static/scripts/edit/components/withLoadedTypeInfo.js b/root/static/scripts/edit/components/withLoadedTypeInfo.js index a0a7a60d163..34c444c522b 100644 --- a/root/static/scripts/edit/components/withLoadedTypeInfo.js +++ b/root/static/scripts/edit/components/withLoadedTypeInfo.js @@ -20,14 +20,14 @@ import { const typeInfoPromises = new Map>(); const loadedTypeInfo = new Set(); -export default function withLoadedTypeInfo<-Config, +Instance = mixed>( +export default function withLoadedTypeInfo( WrappedComponent: React$AbstractComponent, typeInfoToLoad: $ReadOnlySet, ): React$AbstractComponent { const ComponentWrapper = React.forwardRef(( props: Config, ref: - | {current: Instance | null, ...} + | {-current: Instance | null, ...} | ((Instance | null) => mixed), ) => { const [isLoading, setLoading] = React.useState(true); @@ -154,8 +154,8 @@ export default function withLoadedTypeInfo<-Config, +Instance = mixed>( } export function withLoadedTypeInfoForRelationshipEditor< - -Config, - +Instance = mixed, + Config, + Instance = mixed, >( WrappedComponent: React$AbstractComponent, extraTypeInfoToLoad?: $ReadOnlyArray = [], diff --git a/root/static/scripts/edit/utility/createField.js b/root/static/scripts/edit/utility/createField.js index a7a5416f63f..2c1e9a202d1 100644 --- a/root/static/scripts/edit/utility/createField.js +++ b/root/static/scripts/edit/utility/createField.js @@ -40,7 +40,7 @@ export function createCompoundFieldFromObject< }; } -export function createCompoundField<+T>( +export function createCompoundField( name: string, fieldValues: T, ): ReadOnlyCompoundFieldT { diff --git a/root/static/scripts/edit/utility/editDiff.js b/root/static/scripts/edit/utility/editDiff.js index 016b6ad4670..f04982e028e 100644 --- a/root/static/scripts/edit/utility/editDiff.js +++ b/root/static/scripts/edit/utility/editDiff.js @@ -48,7 +48,7 @@ export type StringEditDiff = { +type: EditType, }; -function getChangeType<+T>(diff: GenericEditDiff): EditType { +function getChangeType(diff: GenericEditDiff): EditType { if (!diff.added && !diff.removed) { return EQUAL; } diff --git a/root/static/scripts/edit/utility/linkPhrase.js b/root/static/scripts/edit/utility/linkPhrase.js index 8758491fe7c..f7934cc380d 100644 --- a/root/static/scripts/edit/utility/linkPhrase.js +++ b/root/static/scripts/edit/utility/linkPhrase.js @@ -11,7 +11,6 @@ import commaList, {commaListText} from '../../common/i18n/commaList.js'; import { type VarArgsClass, type VarArgsObject, - VarArgs, } from '../../common/i18n/expand2.js'; import { expand2reactWithVarArgsInstance, @@ -39,14 +38,14 @@ export type LinkPhraseProp = | 'long_link_phrase' | 'reverse_link_phrase'; -class PhraseVarArgs - extends VarArgs - implements VarArgsClass { +class PhraseVarArgs implements VarArgsClass { + +data: VarArgsObject; + +i18n: LinkPhraseI18n; - +entity0: T | string; + +entity0: T; - +entity1: T | string; + +entity1: T; /* * Contains attributes that appear in the text of the given link @@ -62,14 +61,14 @@ class PhraseVarArgs entity0: ?T, entity1: ?T, ) { - super(args || EMPTY_OBJECT); + this.data = args || EMPTY_OBJECT; this.i18n = i18n; - this.entity0 = nonEmpty(entity0) ? entity0 : ''; - this.entity1 = nonEmpty(entity1) ? entity1 : ''; + this.entity0 = nonEmpty(entity0) ? entity0 : i18n.defaultValue; + this.entity1 = nonEmpty(entity1) ? entity1 : i18n.defaultValue; this.usedPhraseAttributes = []; } - get(name: string): T | string { + get(name: string): T { if (name === 'entity0') { return this.entity0; } @@ -78,7 +77,7 @@ class PhraseVarArgs } const attributes = this.data[name]; if (attributes == null) { - return ''; + return this.i18n.defaultValue; } if (Array.isArray(attributes)) { return this.i18n.commaList( @@ -96,24 +95,26 @@ class PhraseVarArgs export type LinkPhraseI18n = { commaList: ($ReadOnlyArray) => T, + defaultValue: T, displayLinkAttribute: (LinkAttrT) => T, expand: (string, VarArgsClass) => T, }; const reactI18n: LinkPhraseI18n = { commaList, + defaultValue: '', displayLinkAttribute, expand: expand2reactWithVarArgsInstance, }; const textI18n: LinkPhraseI18n = { commaList: commaListText, + defaultValue: '', displayLinkAttribute: displayLinkAttributeText, expand: expand2textWithVarArgsClass, }; -function _getAttributesByRootName( - i18n: LinkPhraseI18n, +function _getAttributesByRootName( linkType: LinkTypeT, attributes: $ReadOnlyArray, ): LinkAttrsByRootName { @@ -218,8 +219,7 @@ export function getPhraseAndExtraAttributes( return ['', []]; } - const attributesByRootName = _getAttributesByRootName( - i18n, + const attributesByRootName = _getAttributesByRootName( linkType, attributes, ); diff --git a/root/static/scripts/edit/utility/reducerWithErrorHandling.js b/root/static/scripts/edit/utility/reducerWithErrorHandling.js index 5a1884312d3..c68386c33a7 100644 --- a/root/static/scripts/edit/utility/reducerWithErrorHandling.js +++ b/root/static/scripts/edit/utility/reducerWithErrorHandling.js @@ -19,7 +19,7 @@ import coerceToError from '../../common/utility/coerceToError.js'; */ export default function reducerWithErrorHandling< S: {+reducerError: Error | null, ...}, - -A, + A, >( reducer: (S, A) => S, ): (S, A) => S { diff --git a/root/static/scripts/relationship-editor/utility/exportTypeInfo.js b/root/static/scripts/relationship-editor/utility/exportTypeInfo.js index 348016b513d..7285b0af83c 100644 --- a/root/static/scripts/relationship-editor/utility/exportTypeInfo.js +++ b/root/static/scripts/relationship-editor/utility/exportTypeInfo.js @@ -24,7 +24,7 @@ export function exportLinkTypeInfo( [entityTypes: string]: Array, } = {}; - function mapItems<-T: LinkTypeT>( + function mapItems( result: {-[idOrGid: StrOrNum]: T}, item: T, ) { @@ -78,7 +78,7 @@ export function exportLinkAttributeTypeInfo( const linkAttributeTypeChildren = groupBy(allLinkAttributeTypes, x => String(x.parent_id)); - function mapItems<-T: LinkAttrTypeT>( + function mapItems( result: {-[idOrGid: StrOrNum]: T}, item: T, ) { diff --git a/root/static/scripts/relationship-editor/utility/prettyPrintRelationshipState.js b/root/static/scripts/relationship-editor/utility/prettyPrintRelationshipState.js index 8038d423e7c..d19460f9aa4 100644 --- a/root/static/scripts/relationship-editor/utility/prettyPrintRelationshipState.js +++ b/root/static/scripts/relationship-editor/utility/prettyPrintRelationshipState.js @@ -25,7 +25,7 @@ const _displayLinkType = (linkType: LinkTypeT | null): string => { return linkType ? linkType.name : 'none'; }; -const _displayAttribute = (attribute: LinkAttrT): string => { +const _displayAttribute = (attribute: LinkAttrT): StrOrNum => { return displayLinkAttributeCustom( attribute, (x) => x.name, diff --git a/root/utility/age.js b/root/utility/age.js index 165971f31a5..422a5439181 100644 --- a/root/utility/age.js +++ b/root/utility/age.js @@ -18,7 +18,7 @@ function timestamp(date: PartialDateT) { ); } -export function hasAge<+T: $ReadOnly<{...DatePeriodRoleT, ...}>>( +export function hasAge>( entity: T, ): boolean { const begin = entity.begin_date; @@ -79,7 +79,7 @@ export function hasAge<+T: $ReadOnly<{...DatePeriodRoleT, ...}>>( return false; } -export function age<+T: $ReadOnly<{...DatePeriodRoleT, ...}>>( +export function age>( entity: T, ): [number, number, number] | null { const begin = entity.begin_date; diff --git a/yarn.lock b/yarn.lock index 1675821b228..39180696048 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2662,10 +2662,10 @@ flatted@^3.2.7: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== -flow-bin@0.216.1: - version "0.216.1" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.216.1.tgz#c370af830e46645087a2aea4056507cc44acc031" - integrity sha512-mdhkQiSSZ/nyPq/pmk2tdbV3btYTlTYqBT/96nSSTGQmvTWQ0no9XMLZ/SygNafL4PPerfkpwQwprA1M35+9Bg== +flow-bin@0.217.0: + version "0.217.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.217.0.tgz#c255b4d8d815520d396416c2f712ab849d61f467" + integrity sha512-AbbDE6QUpR+jpY9ejNROAk0P5D/2PxJzjU4D5vfmMwtS+QjjPjzfZGuatEJIn2k4PTZ2agbncaCtyHGO0AvG7A== follow-redirects@^1.0.0: version "1.15.3" From eda720c20c4ffa8d9c9b2f944952056a0a0dac6c Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Thu, 19 Oct 2023 05:35:08 -0500 Subject: [PATCH 043/194] Upgrade Flow to 0.217.1 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 99e7d05b7ea..088cff26f32 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.33.1", "eslint-plugin-react-hooks": "4.6.0", "file-url": "2.0.2", - "flow-bin": "0.217.0", + "flow-bin": "0.217.1", "gettext-parser": "3.1.0", "hermes-eslint": "0.16.0", "http-proxy": "1.18.1", diff --git a/yarn.lock b/yarn.lock index 39180696048..65b4d1d9e2d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2662,10 +2662,10 @@ flatted@^3.2.7: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== -flow-bin@0.217.0: - version "0.217.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.217.0.tgz#c255b4d8d815520d396416c2f712ab849d61f467" - integrity sha512-AbbDE6QUpR+jpY9ejNROAk0P5D/2PxJzjU4D5vfmMwtS+QjjPjzfZGuatEJIn2k4PTZ2agbncaCtyHGO0AvG7A== +flow-bin@0.217.1: + version "0.217.1" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.217.1.tgz#45fd32309cf968bd6ff6656aaeaafbc1c30b006a" + integrity sha512-CJ4nIKzkCDcQ6BxbQz84xVGbtcOuousPsDvCJiuQQO305nukPGXEPNBirCgqg/HJK+aqTRWMbPm38UDC7eNpWA== follow-redirects@^1.0.0: version "1.15.3" From f5e0a780a35bc137a3e78c8a151b06ff1c752da8 Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Thu, 19 Oct 2023 05:35:43 -0500 Subject: [PATCH 044/194] Upgrade Flow to 0.217.2 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 088cff26f32..a88d008fbfc 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.33.1", "eslint-plugin-react-hooks": "4.6.0", "file-url": "2.0.2", - "flow-bin": "0.217.1", + "flow-bin": "0.217.2", "gettext-parser": "3.1.0", "hermes-eslint": "0.16.0", "http-proxy": "1.18.1", diff --git a/yarn.lock b/yarn.lock index 65b4d1d9e2d..40b7a4854f8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2662,10 +2662,10 @@ flatted@^3.2.7: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== -flow-bin@0.217.1: - version "0.217.1" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.217.1.tgz#45fd32309cf968bd6ff6656aaeaafbc1c30b006a" - integrity sha512-CJ4nIKzkCDcQ6BxbQz84xVGbtcOuousPsDvCJiuQQO305nukPGXEPNBirCgqg/HJK+aqTRWMbPm38UDC7eNpWA== +flow-bin@0.217.2: + version "0.217.2" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.217.2.tgz#96affa17f3cb303019f740bffeb28cfab7ce1250" + integrity sha512-fk4NcfybYjzlww1sEsfk71nqXvonAYpMRFEjmZxibDWWBiaw8DGmqXWZ7XzSunVB15VkJfOstn/sYP1EYPPyWg== follow-redirects@^1.0.0: version "1.15.3" From 253ba80e340713235892e34ea8bbbd63cc5799fc Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Thu, 19 Oct 2023 05:36:21 -0500 Subject: [PATCH 045/194] Upgrade Flow to 0.218.0 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index a88d008fbfc..6d2875ae0db 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.33.1", "eslint-plugin-react-hooks": "4.6.0", "file-url": "2.0.2", - "flow-bin": "0.217.2", + "flow-bin": "0.218.0", "gettext-parser": "3.1.0", "hermes-eslint": "0.16.0", "http-proxy": "1.18.1", diff --git a/yarn.lock b/yarn.lock index 40b7a4854f8..96cbd66e97e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2662,10 +2662,10 @@ flatted@^3.2.7: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== -flow-bin@0.217.2: - version "0.217.2" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.217.2.tgz#96affa17f3cb303019f740bffeb28cfab7ce1250" - integrity sha512-fk4NcfybYjzlww1sEsfk71nqXvonAYpMRFEjmZxibDWWBiaw8DGmqXWZ7XzSunVB15VkJfOstn/sYP1EYPPyWg== +flow-bin@0.218.0: + version "0.218.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.218.0.tgz#f91acd8a31d472cd8568442819d925c0881081f7" + integrity sha512-u4E0+AIoKKMSuv09Co2mNiQB2DqCcakWtMAPbMkVvvTTNoBSo+gYKrYKoRrmb0QqhdyHy1mRXQXjESW8Lml/MA== follow-redirects@^1.0.0: version "1.15.3" From d9e9f148244c99b81326704470d75126f225319e Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Thu, 19 Oct 2023 05:37:06 -0500 Subject: [PATCH 046/194] Upgrade Flow to 0.218.1 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 6d2875ae0db..9a02fb23752 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.33.1", "eslint-plugin-react-hooks": "4.6.0", "file-url": "2.0.2", - "flow-bin": "0.218.0", + "flow-bin": "0.218.1", "gettext-parser": "3.1.0", "hermes-eslint": "0.16.0", "http-proxy": "1.18.1", diff --git a/yarn.lock b/yarn.lock index 96cbd66e97e..0c94183156e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2662,10 +2662,10 @@ flatted@^3.2.7: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== -flow-bin@0.218.0: - version "0.218.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.218.0.tgz#f91acd8a31d472cd8568442819d925c0881081f7" - integrity sha512-u4E0+AIoKKMSuv09Co2mNiQB2DqCcakWtMAPbMkVvvTTNoBSo+gYKrYKoRrmb0QqhdyHy1mRXQXjESW8Lml/MA== +flow-bin@0.218.1: + version "0.218.1" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.218.1.tgz#2d6c14509db57b3b3ab609cc87bef44faf2970db" + integrity sha512-D0479Oxu6HWCBiALCTjf5RF99FkPODhbDQnLDK4f0FGS+L3+XVqFPZPdzOzWwe2k5jAWCfARLVjqKVa6brAgtg== follow-redirects@^1.0.0: version "1.15.3" From e30c473b0475f284bd0299d9fbb8d85d9def75bc Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Thu, 19 Oct 2023 05:37:47 -0500 Subject: [PATCH 047/194] Upgrade Flow to 0.219.0 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 9a02fb23752..568bbf6a197 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.33.1", "eslint-plugin-react-hooks": "4.6.0", "file-url": "2.0.2", - "flow-bin": "0.218.1", + "flow-bin": "0.219.0", "gettext-parser": "3.1.0", "hermes-eslint": "0.16.0", "http-proxy": "1.18.1", diff --git a/yarn.lock b/yarn.lock index 0c94183156e..350eaf49ef1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2662,10 +2662,10 @@ flatted@^3.2.7: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== -flow-bin@0.218.1: - version "0.218.1" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.218.1.tgz#2d6c14509db57b3b3ab609cc87bef44faf2970db" - integrity sha512-D0479Oxu6HWCBiALCTjf5RF99FkPODhbDQnLDK4f0FGS+L3+XVqFPZPdzOzWwe2k5jAWCfARLVjqKVa6brAgtg== +flow-bin@0.219.0: + version "0.219.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.219.0.tgz#193ae6551e4eccad7435b2ec0cfa455a40f38889" + integrity sha512-nX1hLdYI+mRaO5hG4acjwMni9K3KqQzt3v0pDPHKGu1lEvxEPbL3GxruFbaq8dhKR3Ntk13ptsf2krYubZ1nCw== follow-redirects@^1.0.0: version "1.15.3" From 643afa083d4d826fa671f2d01c72ede2ad726d0a Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Thu, 19 Oct 2023 05:38:19 -0500 Subject: [PATCH 048/194] Upgrade Flow to 0.219.2 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 568bbf6a197..77360a46548 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.33.1", "eslint-plugin-react-hooks": "4.6.0", "file-url": "2.0.2", - "flow-bin": "0.219.0", + "flow-bin": "0.219.2", "gettext-parser": "3.1.0", "hermes-eslint": "0.16.0", "http-proxy": "1.18.1", diff --git a/yarn.lock b/yarn.lock index 350eaf49ef1..6622a61224b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2662,10 +2662,10 @@ flatted@^3.2.7: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== -flow-bin@0.219.0: - version "0.219.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.219.0.tgz#193ae6551e4eccad7435b2ec0cfa455a40f38889" - integrity sha512-nX1hLdYI+mRaO5hG4acjwMni9K3KqQzt3v0pDPHKGu1lEvxEPbL3GxruFbaq8dhKR3Ntk13ptsf2krYubZ1nCw== +flow-bin@0.219.2: + version "0.219.2" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.219.2.tgz#46d32f51df0e855974ef97ebda12acce8ff5652a" + integrity sha512-E0Dh5ZFIgjeW4VoCEr9KNPG3LS4PKqLMHOGQrzlJ/wOyFQvpNS4gXsxAPeqtxD+MHeV/tVeoD17WYJXkAXpgYw== follow-redirects@^1.0.0: version "1.15.3" From 3b70d775b8f8e4696b5ed0c87531719792c86a0b Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Thu, 19 Oct 2023 05:44:07 -0500 Subject: [PATCH 049/194] Replace $MakeReadOnly type with one using infer https://flow.org/en/docs/types/conditional/ I took the new implementation from https://github.com/facebook/flow/commit/5914a18 --- entities.mjs | 6 +----- root/types/misc.js | 4 ++++ 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/entities.mjs b/entities.mjs index 4ffdaaeb97d..59f26a3ef48 100644 --- a/entities.mjs +++ b/entities.mjs @@ -21,10 +21,6 @@ type AutomaticRemovalPropsT = { ... }; -type $MakeReadOnly = - & ((T) => $ReadOnly<$ObjMap>) - & ((T) => T); - const ENTITIES = { annotation: { model: 'Annotation', @@ -895,4 +891,4 @@ const ENTITIES = { deepFreeze(ENTITIES); -export default (ENTITIES: $Call<$MakeReadOnly, typeof ENTITIES>); +export default (ENTITIES: DeepReadOnly); diff --git a/root/types/misc.js b/root/types/misc.js index 75dd3eb210c..8bb87245d10 100644 --- a/root/types/misc.js +++ b/root/types/misc.js @@ -9,6 +9,10 @@ /* eslint-disable no-unused-vars */ +declare type DeepReadOnly = + T extends $ReadOnlyArray ? $ReadOnlyArray> : + T extends {...} ? {+[K in keyof T]: DeepReadOnly} : T; + /* * See http://search.cpan.org/~lbrocard/Data-Page-2.02/lib/Data/Page.pm * Serialized in MusicBrainz::Server::TO_JSON. From 8641fc87d9b47d5c0b32ddd8a5c3e387c31561ee Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Thu, 19 Oct 2023 06:22:27 -0500 Subject: [PATCH 050/194] Remove uses of any in SeriesIndex.js Make use of the mapped types feature to generate ListPickerProps, which can then be refined as a tagged union. --- lib/MusicBrainz/Server/Controller/Series.pm | 7 ++- root/series/SeriesIndex.js | 56 +++++++++------------ root/types/entity.js | 25 ++++----- 3 files changed, 40 insertions(+), 48 deletions(-) diff --git a/lib/MusicBrainz/Server/Controller/Series.pm b/lib/MusicBrainz/Server/Controller/Series.pm index 6db89ea9268..977a1d2cc4b 100644 --- a/lib/MusicBrainz/Server/Controller/Series.pm +++ b/lib/MusicBrainz/Server/Controller/Series.pm @@ -109,11 +109,14 @@ sub show : PathPart('') Chained('load') { } my %props = ( - entities => to_json_array(\@entities), + listProps => { + entities => to_json_array(\@entities), + seriesEntityType => $series->type->item_entity_type, + seriesItemNumbers => \@item_numbers, + }, numberOfRevisions => $c->stash->{number_of_revisions}, pager => serialize_pager($c->stash->{pager}), series => $series->TO_JSON, - seriesItemNumbers => \@item_numbers, wikipediaExtract => to_json_object($c->stash->{wikipedia_extract}), ); diff --git a/root/series/SeriesIndex.js b/root/series/SeriesIndex.js index 1e5714ecaf1..10ab040cde0 100644 --- a/root/series/SeriesIndex.js +++ b/root/series/SeriesIndex.js @@ -1,5 +1,5 @@ /* - * @flow + * @flow strict-local * Copyright (C) 2019 MetaBrainz Foundation * * This file is part of MusicBrainz, the open internet music database, @@ -26,25 +26,25 @@ import {formatPluralEntityTypeName} import SeriesLayout from './SeriesLayout.js'; -type ListPickerProps = { - ...SeriesItemNumbersRoleT, - +entities: $ReadOnlyArray, - +seriesEntityType: EntityWithSeriesTypeT, -}; +type ListPickerProps = $Values<{ + +[EntityType in keyof EntityWithSeriesMapT]: { + ...SeriesItemNumbersRoleT, + +entities: $ReadOnlyArray, + +seriesEntityType: EntityType, + }, +}>; -const listPicker = ({ - entities, - seriesEntityType, - seriesItemNumbers, -}: ListPickerProps) => { +const listPicker = ( + props: ListPickerProps, +): React$MixedElement => { const sharedProps = { - seriesItemNumbers: seriesItemNumbers, + seriesItemNumbers: props.seriesItemNumbers, }; - switch (seriesEntityType) { + switch (props.seriesEntityType) { case 'artist': return ( )} + artists={props.entities} showBeginEnd showRatings {...sharedProps} @@ -53,7 +53,7 @@ const listPicker = ({ case 'event': return ( )} + events={props.entities} showArtists showLocation showRatings @@ -63,9 +63,7 @@ const listPicker = ({ case 'recording': return ( ) - } + recordings={props.entities} showRatings {...sharedProps} /> @@ -73,14 +71,14 @@ const listPicker = ({ case 'release': return ( )} + releases={props.entities} {...sharedProps} /> ); case 'release_group': return ( )} + releaseGroups={props.entities} showRatings {...sharedProps} /> @@ -89,19 +87,19 @@ const listPicker = ({ return ( )} + works={props.entities} {...sharedProps} /> ); default: - throw `Unsupported entity type value: ${seriesEntityType}`; + throw `Unsupported entity type value: ${props.seriesEntityType}`; } }; type SeriesIndexProps = { ...SeriesItemNumbersRoleT, +eligibleForCleanup: boolean, - +entities: ?$ReadOnlyArray, + +listProps: ListPickerProps, +numberOfRevisions: number, +pager: PagerT, +series: $ReadOnly<{...SeriesT, +type: SeriesTypeT}>, @@ -110,15 +108,13 @@ type SeriesIndexProps = { const SeriesIndex = ({ eligibleForCleanup, - entities, + listProps, numberOfRevisions, pager, series, - seriesItemNumbers, wikipediaExtract, }: SeriesIndexProps): React$Element => { const seriesEntityType = series.type.item_entity_type; - const existingEntities = entities?.length ? entities : null; return ( {eligibleForCleanup ? ( @@ -137,13 +133,9 @@ const SeriesIndex = ({

{formatPluralEntityTypeName(seriesEntityType)}

- {existingEntities ? ( + {listProps.entities?.length ? ( - {listPicker({ - entities: existingEntities, - seriesEntityType, - seriesItemNumbers, - })} + {listPicker(listProps)} ) : (

diff --git a/root/types/entity.js b/root/types/entity.js index d97ade2d7e6..62821ea4b24 100644 --- a/root/types/entity.js +++ b/root/types/entity.js @@ -37,21 +37,18 @@ declare type EntityWithAliasesTypeT = | 'series' | 'work'; -declare type EntityWithSeriesT = - | ArtistT - | EventT - | RecordingT - | ReleaseT - | ReleaseGroupT - | WorkT; +declare type EntityWithSeriesMapT = { + 'artist': ArtistT, + 'event': EventT, + 'recording': RecordingWithArtistCreditT, + 'release': ReleaseT, + 'release_group': ReleaseGroupT, + 'work': WorkT, +}; -declare type EntityWithSeriesTypeT = - | 'artist' - | 'event' - | 'recording' - | 'release' - | 'release_group' - | 'work'; +declare type EntityWithSeriesT = $Values; + +declare type EntityWithSeriesTypeT = $Keys; declare type AppearancesT = { +hits: number, From 3c4756b88151623df99b9b1a7eb811bb647a23e6 Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Fri, 20 Oct 2023 06:27:23 -0500 Subject: [PATCH 051/194] Remove a few $FlowIgnores --- root/edit/components/EditNote.js | 6 +---- root/release/ChangeQuality.js | 8 +++--- .../common/utility/relationshipDateText.js | 27 ++++++++++--------- .../edit/components/FormRowCheckbox.js | 2 +- 4 files changed, 20 insertions(+), 23 deletions(-) diff --git a/root/edit/components/EditNote.js b/root/edit/components/EditNote.js index 8a00cd9b89e..3b27a20c6c4 100644 --- a/root/edit/components/EditNote.js +++ b/root/edit/components/EditNote.js @@ -87,7 +87,7 @@ const EditNote = ({ const changeReason = editNote.latest_change?.reason; const changeTime = editNote.latest_change?.change_time ? formatUserDate($c, editNote.latest_change.change_time) - : null; + : ''; /* * We only want to show the controls for modifying/removing a note @@ -212,14 +212,12 @@ const EditNote = ({ Reason given: “{reason}”.`, { reason: changeReason, - // $FlowIgnore[incompatible-call] time: changeTime, }, ) ) : ( texp.l( 'Last modified by the note author ({time}).', - // $FlowIgnore[incompatible-call] {time: changeTime}, ) ) @@ -230,14 +228,12 @@ const EditNote = ({ Reason given: “{reason}”.`, { reason: changeReason, - // $FlowIgnore[incompatible-call] time: changeTime, }, ) ) : ( texp.l( 'Last modified by an admin ({time}).', - // $FlowIgnore[incompatible-call] {time: changeTime}, ) ) diff --git a/root/release/ChangeQuality.js b/root/release/ChangeQuality.js index d350d09135b..bd1d4a09a11 100644 --- a/root/release/ChangeQuality.js +++ b/root/release/ChangeQuality.js @@ -13,6 +13,7 @@ import EnterEditNote from '../static/scripts/edit/components/EnterEditNote.js'; import FormRowSelect from '../static/scripts/edit/components/FormRowSelect.js'; +import {expect} from '../utility/invariant.js'; import ReleaseLayout from './ReleaseLayout.js'; @@ -37,9 +38,9 @@ const ChangeQuality = ({ const qualityOptions = { grouped: false, options: [ - {label: QUALITY_NAMES.get(0), value: 0}, - {label: QUALITY_NAMES.get(1), value: 1}, - {label: QUALITY_NAMES.get(2), value: 2}, + {label: expect(QUALITY_NAMES.get(0)), value: 0}, + {label: expect(QUALITY_NAMES.get(1)), value: 1}, + {label: expect(QUALITY_NAMES.get(2)), value: 2}, ], }; @@ -64,7 +65,6 @@ const ChangeQuality = ({ diff --git a/root/static/scripts/common/utility/relationshipDateText.js b/root/static/scripts/common/utility/relationshipDateText.js index 06b0745e7df..96cc4f5d474 100644 --- a/root/static/scripts/common/utility/relationshipDateText.js +++ b/root/static/scripts/common/utility/relationshipDateText.js @@ -16,25 +16,26 @@ export default function relationshipDateText( r: $ReadOnly<{...DatePeriodRoleT, ...}>, bracketEnded?: boolean = true, ): string { - if (!isDateEmpty(r.begin_date)) { - if (!isDateEmpty(r.end_date)) { - if (areDatesEqual(r.begin_date, r.end_date)) { - // $FlowIssue[incompatible-use] - if (r.begin_date.day != null) { - return texp.l('on {date}', {date: formatDate(r.begin_date)}); + const beginDate = r.begin_date; + const endDate = r.end_date; + if (!isDateEmpty(beginDate)) { + if (!isDateEmpty(endDate)) { + if (areDatesEqual(beginDate, endDate)) { + if (beginDate.day != null) { + return texp.l('on {date}', {date: formatDate(beginDate)}); } - return texp.l('in {date}', {date: formatDate(r.begin_date)}); + return texp.l('in {date}', {date: formatDate(beginDate)}); } return texp.l('from {begin_date} until {end_date}', { - begin_date: formatDate(r.begin_date), - end_date: formatDate(r.end_date), + begin_date: formatDate(beginDate), + end_date: formatDate(endDate), }); } else if (r.ended) { - return texp.l('from {date} to ????', {date: formatDate(r.begin_date)}); + return texp.l('from {date} to ????', {date: formatDate(beginDate)}); } - return texp.l('from {date} to present', {date: formatDate(r.begin_date)}); - } else if (!isDateEmpty(r.end_date)) { - return texp.l('until {date}', {date: formatDate(r.end_date)}); + return texp.l('from {date} to present', {date: formatDate(beginDate)}); + } else if (!isDateEmpty(endDate)) { + return texp.l('until {date}', {date: formatDate(endDate)}); } else if (r.ended) { let text = l('ended'); if (bracketEnded) { diff --git a/root/static/scripts/edit/components/FormRowCheckbox.js b/root/static/scripts/edit/components/FormRowCheckbox.js index be66202e4b0..86a718fd2fc 100644 --- a/root/static/scripts/edit/components/FormRowCheckbox.js +++ b/root/static/scripts/edit/components/FormRowCheckbox.js @@ -27,6 +27,7 @@ type Props = }> | $ReadOnly<{ ...CommonProps, + onChange?: void, uncontrolled: true, }>; @@ -37,7 +38,6 @@ const FormRowCheckbox = ({ hasNoMargin = false, help, label, - // $FlowIssue[prop-missing] onChange, uncontrolled, }: Props): React$Element => { From 50a692bb491ad9ecf3a2a18516bed3e4cdcb7c6e Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Sat, 21 Oct 2023 15:48:20 -0500 Subject: [PATCH 052/194] Upgrade Flow to 0.219.3 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 77360a46548..fcea4624431 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.33.1", "eslint-plugin-react-hooks": "4.6.0", "file-url": "2.0.2", - "flow-bin": "0.219.2", + "flow-bin": "0.219.3", "gettext-parser": "3.1.0", "hermes-eslint": "0.16.0", "http-proxy": "1.18.1", diff --git a/yarn.lock b/yarn.lock index 6622a61224b..0dcf41c0cfe 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2662,10 +2662,10 @@ flatted@^3.2.7: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== -flow-bin@0.219.2: - version "0.219.2" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.219.2.tgz#46d32f51df0e855974ef97ebda12acce8ff5652a" - integrity sha512-E0Dh5ZFIgjeW4VoCEr9KNPG3LS4PKqLMHOGQrzlJ/wOyFQvpNS4gXsxAPeqtxD+MHeV/tVeoD17WYJXkAXpgYw== +flow-bin@0.219.3: + version "0.219.3" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.219.3.tgz#a3a26d27c726c7e20477f394570ec6b1fb41fbe0" + integrity sha512-5O+G8pXqu0UClXLhTj2g/ZdNCQo4odYKs/6VHCnhOcvATrJIJcOJuW7WgjXMsGuV4aVeBmeFO93isE4cop9K/Q== follow-redirects@^1.0.0: version "1.15.3" From 39abb32457ecb64c8e30b1d0f4c46e8a8f1a1d72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Tamargo?= Date: Thu, 26 Oct 2023 12:29:43 +0300 Subject: [PATCH 053/194] Split new editor creation test to new subtest Also removing a couple checks that seem pointless and adding labels to the rest. --- t/lib/t/MusicBrainz/Server/Data/Editor.pm | 106 ++++++++++++++-------- 1 file changed, 70 insertions(+), 36 deletions(-) diff --git a/t/lib/t/MusicBrainz/Server/Data/Editor.pm b/t/lib/t/MusicBrainz/Server/Data/Editor.pm index 695f4307e18..a6962adc591 100644 --- a/t/lib/t/MusicBrainz/Server/Data/Editor.pm +++ b/t/lib/t/MusicBrainz/Server/Data/Editor.pm @@ -82,6 +82,75 @@ test 'Remember me tokens' => sub { 'Allocating tokens for unknown users returns undefined'); }; +test 'Creating a new editor' => sub { + my $test = shift; + MusicBrainz::Server::Test->prepare_test_database($test->c, '+editor'); + my $editor_data = MusicBrainz::Server::Data::Editor->new(c => $test->c); + + note('We create a new editor with just name / password'); + my $new_editor_2 = $editor_data->insert({ + name => 'new_editor_2', + password => 'password', + }); + is( + $new_editor_2->name, + 'new_editor_2', + 'The new editor has the expected name', + ); + ok( + $new_editor_2->match_password('password'), + 'The new editor has the expected password', + ); + is( + $editor_data->various_edit_counts($new_editor_2->id)->{accepted_count}, + 0, + 'The new editor has no accepted edits', + ); + + my $editor = $editor_data->get_by_id($new_editor_2->id); + is($editor->email, undef, 'The new editor has no stored email'); + is( + $editor->email_confirmation_date, + undef, + 'The new editor has no email confirmation date', + ); + is( + $editor->ha1, + md5_hex(join(':', $editor->name, 'musicbrainz.org', 'password')), + 'The ha1 for the new editor was generated correctly', + ); + + my $now = DateTime::Format::Pg->parse_datetime( + $test->c->sql->select_single_value('SELECT now()')); + note('We set an email for the new editor with update_email'); + $editor_data->update_email($new_editor_2, 'editor@example.com'); + + $editor = $editor_data->get_by_id($new_editor_2->id); + is( + $editor->email, + 'editor@example.com', + 'The new editor has the correct e-mail address', + ); + ok( + $now <= $editor->email_confirmation_date, + 'The email confirmation date was updated correctly', + ); + + note('We set a new password for the new editor with update_password'); + $editor_data->update_password($new_editor_2->name, 'password2'); + + $editor = $editor_data->get_by_id($new_editor_2->id); + ok( + $editor->match_password('password2'), + 'The new editor has the expected new password', + ); + + note('We search for the new editor email with find_by_email'); + my @editors = $editor_data->find_by_email('editor@example.com'); + is(scalar(@editors), 1, 'An editor was found with the exact email'); + is($editors[0]->id, $new_editor_2->id, 'The right editor was found'); +}; + test all => sub { my $test = shift; @@ -144,42 +213,7 @@ is($alice->preferences->public_ratings, 0, 'load preferences'); is($alice->preferences->datetime_format, '%m/%d/%Y %H:%M:%S', 'datetime_format loaded'); is($alice->preferences->timezone, 'UTC', 'timezone loaded'); - -my $new_editor_2 = $editor_data->insert({ - name => 'new_editor_2', - password => 'password', -}); -ok($new_editor_2->id > $editor->id); -is($new_editor_2->name, 'new_editor_2', 'new editor 2 has name new_editor_2'); -ok($new_editor_2->match_password('password'), 'new editor 2 has correct password'); -is($editor_data->various_edit_counts($new_editor_2->id)->{accepted_count}, 0, 'new editor 2 has no accepted edits'); - - -$editor = $editor_data->get_by_id($new_editor_2->id); -is($editor->email, undef); -is($editor->email_confirmation_date, undef); -is($editor->ha1, md5_hex(join(':', $editor->name, 'musicbrainz.org', 'password')), 'ha1 was generated correctly'); - -my $now = DateTime::Format::Pg->parse_datetime( - $test->c->sql->select_single_value('SELECT now()')); -$editor_data->update_email($new_editor_2, 'editor@example.com'); - -$editor = $editor_data->get_by_id($new_editor_2->id); -is($editor->email, 'editor@example.com', 'editor has correct e-mail address'); -ok($now <= $editor->email_confirmation_date, 'email confirmation date updated correctly'); -is($new_editor_2->email_confirmation_date, $editor->email_confirmation_date); - -$editor_data->update_password($new_editor_2->name, 'password2'); - -$editor = $editor_data->get_by_id($new_editor_2->id); -ok($editor->match_password('password2')); - -my @editors = $editor_data->find_by_email('editor@example.com'); -is(scalar(@editors), 1); -is($editors[0]->id, $new_editor_2->id); - - -@editors = $editor_data->find_by_subscribed_editor(2, 10, 0); +my @editors = $editor_data->find_by_subscribed_editor(2, 10, 0); is($editors[1], 1, 'alice is subscribed to one person ...'); is($editors[0][0]->id, 1, ' ... that person is new_editor'); From 2c808bb8b7828bdaee77a52760ac83d4ba8134a8 Mon Sep 17 00:00:00 2001 From: Daniel Erat Date: Thu, 26 Oct 2023 12:36:35 -0400 Subject: [PATCH 054/194] MBS-13320: Prompt before unloading modified forms (#3054) Install a beforeunload event listener on the artist, event, label, place, recording, release group, series, and work edit pages that prompts the user if any of the form's inputs have been changed. This is intended to prevent data loss if the page is accidentally closed before the form has been submitted. One limitation of the approach used here is that it doesn't detect relationship changes. Note that the release editor already displays a prompt if the page is unloaded with unsubmitted changes. --- root/artist/edit_form.tt | 2 ++ root/event/edit_form.tt | 2 ++ root/label/edit_form.tt | 2 ++ root/place/edit_form.tt | 6 ++++ root/recording/edit_form.tt | 1 + root/release_group/edit_form.tt | 1 + root/series/edit_form.tt | 1 + root/static/scripts/edit/components/forms.js | 33 ++++++++++++++++++++ root/work/edit_form.tt | 6 ++++ t/selenium/Artist_Credit_Editor.json5 | 11 +++++++ t/selenium/Check_Duplicates.json5 | 11 +++++++ t/selenium/External_Links_Editor.json5 | 17 ++++++++++ t/selenium/MBS-9941.json5 | 6 ++++ 13 files changed, 99 insertions(+) diff --git a/root/artist/edit_form.tt b/root/artist/edit_form.tt index 053fc45a8c7..5de06ded150 100644 --- a/root/artist/edit_form.tt +++ b/root/artist/edit_form.tt @@ -111,5 +111,7 @@ MB.Control.initializeBubble("#ipi-bubble", "input[name=edit-artist\\.ipi_codes\\.0]"); MB.Control.initializeBubble("#isni-bubble", "input[name=edit-artist\\.isni_codes\\.0]"); + + MB.installFormUnloadWarning(); }()); diff --git a/root/event/edit_form.tt b/root/event/edit_form.tt index 6b52d27d753..6b04214c6e6 100644 --- a/root/event/edit_form.tt +++ b/root/event/edit_form.tt @@ -68,5 +68,7 @@ MB.Control.initializeGuessCase("event", "id-edit-event"); MB.initializeTooShortYearChecks('event'); + + MB.installFormUnloadWarning(); }()); diff --git a/root/label/edit_form.tt b/root/label/edit_form.tt index f3b0b01675c..2fe0ec5a986 100644 --- a/root/label/edit_form.tt +++ b/root/label/edit_form.tt @@ -69,5 +69,7 @@ MB.Control.initializeBubble("#ipi-bubble", "input[name=edit-label\\.ipi_codes\\.0]"); MB.Control.initializeBubble("#isni-bubble", "input[name=edit-label\\.isni_codes\\.0]"); + + MB.installFormUnloadWarning(); }()); diff --git a/root/place/edit_form.tt b/root/place/edit_form.tt index 51feb112ea7..7f6d591bfa7 100644 --- a/root/place/edit_form.tt +++ b/root/place/edit_form.tt @@ -59,3 +59,9 @@ [%- guesscase_options() -%] [% script_manifest('place/edit.js') %] + + diff --git a/root/recording/edit_form.tt b/root/recording/edit_form.tt index 290256dbf73..4c31b3a4811 100644 --- a/root/recording/edit_form.tt +++ b/root/recording/edit_form.tt @@ -70,5 +70,6 @@ ); MB.Control.initGuessFeatButton('edit-recording'); MB.Control.initializeBubble("#isrcs-bubble", "input[name=edit-recording\\.isrcs\\.0]"); + MB.installFormUnloadWarning(); }); diff --git a/root/release_group/edit_form.tt b/root/release_group/edit_form.tt index dcb377d901b..4b565bbaf86 100644 --- a/root/release_group/edit_form.tt +++ b/root/release_group/edit_form.tt @@ -40,5 +40,6 @@ ); MB.Control.initializeGuessCase("release_group", "id-edit-release-group"); MB.Control.initGuessFeatButton('edit-release-group'); + MB.installFormUnloadWarning(); }); diff --git a/root/series/edit_form.tt b/root/series/edit_form.tt index 7406f6d8651..241d99895cf 100644 --- a/root/series/edit_form.tt +++ b/root/series/edit_form.tt @@ -48,6 +48,7 @@ $(function () { [%- USE JSON.Escape -%] MB.orderingTypesByID = [% series_ordering_types.json %]; + MB.installFormUnloadWarning(); }); diff --git a/root/static/scripts/edit/components/forms.js b/root/static/scripts/edit/components/forms.js index 132ed3d68f6..33d0d70081d 100644 --- a/root/static/scripts/edit/components/forms.js +++ b/root/static/scripts/edit/components/forms.js @@ -59,3 +59,36 @@ MB.initializeArtistCredit = function (form, initialArtistCredit) { ); }); }; + +/* + * Registers a beforeunload event listener on the window that prompts + * the user if any of the page's form inputs have been changed. + */ +MB.installFormUnloadWarning = function () { + let modified = false; + + const form = document.querySelector('#page form'); + + /* + * This is somewhat heavy-handed, in that it will still warn even if the + * user changes an input back to its original value. + */ + form.addEventListener('change', () => { + modified = true; + }); + + // Disarm the warning when the form is being submitted. + form.addEventListener('submit', () => { + modified = false; + }); + + window.addEventListener('beforeunload', event => { + if (!modified) { + return false; + } + event.returnValue = l( + 'All of your changes will be lost if you leave this page.', + ); + return event.returnValue; + }); +}; diff --git a/root/work/edit_form.tt b/root/work/edit_form.tt index d45fec9ca93..f51d3f67899 100644 --- a/root/work/edit_form.tt +++ b/root/work/edit_form.tt @@ -109,3 +109,9 @@ [%- USE JSON.Escape; script_manifest('work/edit.js', {'data-args' => work_form_json.json}) -%] + + diff --git a/t/selenium/Artist_Credit_Editor.json5 b/t/selenium/Artist_Credit_Editor.json5 index 8d491531b3f..430eac33c84 100644 --- a/t/selenium/Artist_Credit_Editor.json5 +++ b/t/selenium/Artist_Credit_Editor.json5 @@ -300,6 +300,17 @@ target: '/release/add', value: '', }, + // dismiss the beforeunload alert (shown since inputs were changed) + { + command: 'handleAlert', + target: 'accept', + value: '', + }, + { + command: 'waitUntilUrlIs', + target: '/release/add', + value: '', + }, { command: 'click', target: 'css=a[href="#tracklist"]', diff --git a/t/selenium/Check_Duplicates.json5 b/t/selenium/Check_Duplicates.json5 index b5b89bd9ca7..a5420d4ff1e 100644 --- a/t/selenium/Check_Duplicates.json5 +++ b/t/selenium/Check_Duplicates.json5 @@ -80,5 +80,16 @@ target: 'document.getElementById("id-edit-artist.comment").getAttribute("required")', value: 'required', }, + { + command: 'open', + target: '/', + value: '', + }, + // dismiss the beforeunload alert (shown since inputs were changed) + { + command: 'handleAlert', + target: 'accept', + value: '', + }, ], } diff --git a/t/selenium/External_Links_Editor.json5 b/t/selenium/External_Links_Editor.json5 index 0236845a160..72309f8f1db 100644 --- a/t/selenium/External_Links_Editor.json5 +++ b/t/selenium/External_Links_Editor.json5 @@ -32,6 +32,17 @@ target: '/artist/create', value: '', }, + // dismiss the beforeunload alert (shown since inputs were changed) + { + command: 'handleAlert', + target: 'accept', + value: '', + }, + { + command: 'waitUntilUrlIs', + target: '/artist/create', + value: '', + }, // automatic link type detection for URL { command: 'click', @@ -463,6 +474,12 @@ target: '/release/24d4159a-99d9-425d-a7b8-1b9ec0261a33/edit', value: '', }, + // dismiss the beforeunload alert (shown since inputs were changed) + { + command: 'handleAlert', + target: 'accept', + value: '', + }, { command: 'pause', target: '1500', diff --git a/t/selenium/MBS-9941.json5 b/t/selenium/MBS-9941.json5 index 3037c56e8df..98e675cb743 100644 --- a/t/selenium/MBS-9941.json5 +++ b/t/selenium/MBS-9941.json5 @@ -81,5 +81,11 @@ target: '/set-language/en', value: '', }, + // Dismiss the beforeunload alert (shown since inputs were changed). + { + command: 'handleAlert', + target: 'accept', + value: '', + }, ], } From 32da5cb5f7c3c1a34adcf2dd82ea7f09ed890c15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Tamargo?= Date: Thu, 26 Oct 2023 12:50:58 +0300 Subject: [PATCH 055/194] Split and expand email checking tests To be expanded further once MBS-13334 is fixed (right now the ALLCAPS example breaks find_by_email). --- t/lib/t/MusicBrainz/Server/Data/Editor.pm | 33 +++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/t/lib/t/MusicBrainz/Server/Data/Editor.pm b/t/lib/t/MusicBrainz/Server/Data/Editor.pm index a6962adc591..f3f39db24b0 100644 --- a/t/lib/t/MusicBrainz/Server/Data/Editor.pm +++ b/t/lib/t/MusicBrainz/Server/Data/Editor.pm @@ -144,11 +144,44 @@ test 'Creating a new editor' => sub { $editor->match_password('password2'), 'The new editor has the expected new password', ); +}; + +test 'find_by_email and is_email_used_elsewhere' => sub { + my $test = shift; + MusicBrainz::Server::Test->prepare_test_database($test->c, '+editor'); + my $editor_data = MusicBrainz::Server::Data::Editor->new(c => $test->c); + + note('We create a new editor with just name / password'); + my $new_editor_2 = $editor_data->insert({ + name => 'new_editor_2', + password => 'password', + }); + # For testing is_email_used_elsewhere + my $future_editor_id = $new_editor_2->id + 1; + + note('We set an email for the new editor with update_email'); + $editor_data->update_email($new_editor_2, 'editor@example.com'); note('We search for the new editor email with find_by_email'); my @editors = $editor_data->find_by_email('editor@example.com'); is(scalar(@editors), 1, 'An editor was found with the exact email'); is($editors[0]->id, $new_editor_2->id, 'The right editor was found'); + + note('We check is_email_used_elsewhere shows the email as being in use'); + ok( + $editor_data->is_email_used_elsewhere( + 'editor@example.com', + $future_editor_id, + ), + 'The exact email is shown to be in use if another editor wants it', + ); + ok( + $editor_data->is_email_used_elsewhere( + 'EDITOR@example.com', + $future_editor_id, + ), + 'The email is shown to be in use even if searching with all caps', + ); }; test all => sub { From 4736feb674bfe7009c2bd8a56d59bca74a21e5ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Tamargo?= Date: Thu, 26 Oct 2023 13:04:02 +0300 Subject: [PATCH 056/194] MBS-13334: Also find emails with capitalization differences find_by_email was not finding emails with capitalization differences, meaning lost_username would tell editors their email was not in use. We had a better query in is_email_used_elsewhere so this just reuses effectively the same query for find_by_email. Using _get_by_keys ran load_preferences, which this does not. Since we don't seem to use the preferences for our use of find_by_email I did not bother loading them with the new method. Added some tests to ensure the right responses by email methods regardless of caps. --- lib/MusicBrainz/Server/Data/Editor.pm | 7 ++++- t/lib/t/MusicBrainz/Server/Data/Editor.pm | 34 ++++++++++++++++++++++- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/lib/MusicBrainz/Server/Data/Editor.pm b/lib/MusicBrainz/Server/Data/Editor.pm index b4aa1f5045b..7e837a07c70 100644 --- a/lib/MusicBrainz/Server/Data/Editor.pm +++ b/lib/MusicBrainz/Server/Data/Editor.pm @@ -182,7 +182,12 @@ around '_get_by_keys' => sub { sub find_by_email { my ($self, $email) = @_; - return $self->_get_by_keys('email', $email); + + my $query = 'SELECT ' . $self->_columns . + ' FROM ' . $self->_table . + ' WHERE lower(email) = lower(?)'; + + $self->query_to_list($query, [$email]); } sub find_by_ip { diff --git a/t/lib/t/MusicBrainz/Server/Data/Editor.pm b/t/lib/t/MusicBrainz/Server/Data/Editor.pm index f3f39db24b0..2b9de36fbe3 100644 --- a/t/lib/t/MusicBrainz/Server/Data/Editor.pm +++ b/t/lib/t/MusicBrainz/Server/Data/Editor.pm @@ -167,6 +167,10 @@ test 'find_by_email and is_email_used_elsewhere' => sub { is(scalar(@editors), 1, 'An editor was found with the exact email'); is($editors[0]->id, $new_editor_2->id, 'The right editor was found'); + @editors = $editor_data->find_by_email('EDITOR@EXAMPLE.COM'); + is(scalar(@editors), 1, 'An editor was found searching with all caps'); + is($editors[0]->id, $new_editor_2->id, 'The right editor was found'); + note('We check is_email_used_elsewhere shows the email as being in use'); ok( $editor_data->is_email_used_elsewhere( @@ -177,11 +181,39 @@ test 'find_by_email and is_email_used_elsewhere' => sub { ); ok( $editor_data->is_email_used_elsewhere( - 'EDITOR@example.com', + 'EDITOR@EXAMPLE.COM', $future_editor_id, ), 'The email is shown to be in use even if searching with all caps', ); + + note('We set an all caps email for the new editor with update_email'); + $editor_data->update_email($new_editor_2, 'EDITOR@EXAMPLE.COM'); + + note('We search for the new editor email with find_by_email'); + my @editors = $editor_data->find_by_email('EDITOR@EXAMPLE.COM'); + is(scalar(@editors), 1, 'An editor was found with the exact email'); + is($editors[0]->id, $new_editor_2->id, 'The right editor was found'); + + @editors = $editor_data->find_by_email('editor@example.com'); + is(scalar(@editors), 1, 'An editor was found searching with normal caps'); + is($editors[0]->id, $new_editor_2->id, 'The right editor was found'); + + note('We check is_email_used_elsewhere shows the email as being in use'); + ok( + $editor_data->is_email_used_elsewhere( + 'EDITOR@EXAMPLE.COM', + $future_editor_id, + ), + 'The exact email is shown to be in use if another editor wants it', + ); + ok( + $editor_data->is_email_used_elsewhere( + 'editor@example.com', + $future_editor_id, + ), + 'The email is shown to be in use even if searching with normal caps', + ); }; test all => sub { From 453ce8d8e39bac21b51613bc038e91e7054acb6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Tamargo?= Date: Thu, 26 Oct 2023 13:18:47 +0300 Subject: [PATCH 057/194] Split editor subscription methods into separate test For clarity / readability. Also improve labels. --- t/lib/t/MusicBrainz/Server/Data/Editor.pm | 66 +++++++++++++---------- 1 file changed, 38 insertions(+), 28 deletions(-) diff --git a/t/lib/t/MusicBrainz/Server/Data/Editor.pm b/t/lib/t/MusicBrainz/Server/Data/Editor.pm index 2b9de36fbe3..6ed452a5d48 100644 --- a/t/lib/t/MusicBrainz/Server/Data/Editor.pm +++ b/t/lib/t/MusicBrainz/Server/Data/Editor.pm @@ -277,46 +277,56 @@ $editor_data->load_preferences($alice); is($alice->preferences->public_ratings, 0, 'load preferences'); is($alice->preferences->datetime_format, '%m/%d/%Y %H:%M:%S', 'datetime_format loaded'); is($alice->preferences->timezone, 'UTC', 'timezone loaded'); +}; + +test 'Editor subscription methods' => sub { + my $test = shift; -my @editors = $editor_data->find_by_subscribed_editor(2, 10, 0); -is($editors[1], 1, 'alice is subscribed to one person ...'); -is($editors[0][0]->id, 1, ' ... that person is new_editor'); + MusicBrainz::Server::Test->prepare_test_database($test->c, '+editor'); + my $editor_data = MusicBrainz::Server::Data::Editor->new(c => $test->c); -@editors = $editor_data->find_subscribers(1, 10, 0); -is($editors[1], 1, 'new_editor has one subscriber ...'); -is($editors[0][0]->id, 2, ' ... that subscriber is alice'); + subtest 'find_by_subscribed_editor' => sub { + my @editors = $editor_data->find_by_subscribed_editor(2, 10, 0); + is($editors[1], 1, 'alice is subscribed to one person ...'); + is($editors[0][0]->id, 1, ' ... that person is new_editor'); + @editors = $editor_data->find_by_subscribed_editor(1, 10, 0); + is($editors[1], 0, 'new_editor has not subscribed to anyone'); + }; -@editors = $editor_data->find_by_subscribed_editor(1, 10, 0); -is($editors[1], 0, 'new_editor has not subscribed to anyone'); + subtest 'find_subscribers' => sub { + my @editors = $editor_data->find_subscribers(1, 10, 0); + is($editors[1], 1, 'new_editor has one subscriber ...'); + is($editors[0][0]->id, 2, ' ... that subscriber is alice'); -@editors = $editor_data->find_subscribers(2, 10, 0); -is($editors[1], 0, 'alice has no subscribers'); -subtest 'Find editors with subscriptions' => sub { - my @editors = $editor_data->editors_with_subscriptions(0, 1000); - is(@editors => 1, 'found 1 editor'); - is($editors[0]->id => 2, 'is editor #2'); + @editors = $editor_data->find_subscribers(2, 10, 0); + is($editors[1], 0, 'alice has no subscribers'); + }; - @editors = $editor_data->editors_with_subscriptions(1, 1000); - is(@editors => 1, 'found 1 editor'); - is($editors[0]->id => 2, 'is editor #2'); + subtest 'editors_with_subscriptions' => sub { + my @editors = $editor_data->editors_with_subscriptions(0, 1000); + is(@editors => 1, 'Found 1 editor searching with no offset'); + is($editors[0]->id => 2, 'The editor is editor #2'); - @editors = $editor_data->editors_with_subscriptions(2, 1000); - is(@editors => 0, 'found no editor'); + @editors = $editor_data->editors_with_subscriptions(1, 1000); + is(@editors => 1, 'Found 1 editor searching with offset 1'); + is($editors[0]->id => 2, 'The editor is editor #2'); - note('We mark editor #2 as a spammer (plus block edits and notes privs)'); - $test->c->sql->do(<<~'SQL'); - UPDATE editor - SET privs = 7168 - WHERE id = 2 - SQL + @editors = $editor_data->editors_with_subscriptions(2, 1000); + is(@editors => 0, 'Found no editors searching with offset 2'); - @editors = $editor_data->editors_with_subscriptions(0, 1000); - is(@editors => 0, 'now-spammer editor #2 is no longer returned'); -}; + note('We mark editor #2 as a spammer (+ block edit & notes privs)'); + $test->c->sql->do(<<~'SQL'); + UPDATE editor + SET privs = 7168 + WHERE id = 2 + SQL + @editors = $editor_data->editors_with_subscriptions(0, 1000); + is(@editors => 0, 'Found no editors since spammer is not returned'); + }; }; test 'Deleting editors without data fully deletes them' => sub { From cb7724918f9ddf258bacce1a452a9eaffde32720 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Tamargo?= Date: Thu, 26 Oct 2023 13:30:51 +0300 Subject: [PATCH 058/194] Split various_edit_counts into separate test For clarity / readability. Also improve labels. --- t/lib/t/MusicBrainz/Server/Data/Editor.pm | 55 ++++++++++++++--------- 1 file changed, 33 insertions(+), 22 deletions(-) diff --git a/t/lib/t/MusicBrainz/Server/Data/Editor.pm b/t/lib/t/MusicBrainz/Server/Data/Editor.pm index 6ed452a5d48..2ab3a331789 100644 --- a/t/lib/t/MusicBrainz/Server/Data/Editor.pm +++ b/t/lib/t/MusicBrainz/Server/Data/Editor.pm @@ -231,11 +231,6 @@ is($editor->id, 1, 'id'); is($editor->name, 'new_editor', 'name'); ok($editor->match_password('password')); is($editor->privileges, 1+8+32+512, 'privileges'); -my $edit_counts = $editor_data->various_edit_counts($editor->id); -is($edit_counts->{accepted_count}, 0, 'accepted edits'); -is($edit_counts->{rejected_count}, 0, 'rejected edits'); -is($edit_counts->{failed_count}, 0, 'failed edits'); -is($edit_counts->{accepted_auto_count}, 0, 'auto edits'); is_deeply($editor->last_login_date, DateTime->new(year => 2013, month => 4, day => 5), 'last login date'); @@ -254,23 +249,6 @@ is_deeply($editor, $editor2); $editor2 = $editor_data->get_by_name('nEw_EdItOr'); is_deeply($editor, $editor2, 'fetching by name is case insensitive'); -$test->c->sql->do(<<~"SQL", $editor->id); - INSERT INTO edit (id, editor, type, status, expire_time, autoedit) - VALUES (1, \$1, 1, $STATUS_APPLIED, now(), 0), - (2, \$1, 1, $STATUS_APPLIED, now(), 1), - (3, \$1, 1, $STATUS_FAILEDVOTE, now(), 0), - (4, \$1, 1, $STATUS_FAILEDDEP, now(), 0); - INSERT INTO edit_data (edit, data) - SELECT x, '{}' FROM generate_series(1, 4) x; - SQL - -$editor = $editor_data->get_by_id($editor->id); -$edit_counts = $editor_data->various_edit_counts($editor->id); -is($edit_counts->{accepted_count}, 1, 'accepted edits'); -is($edit_counts->{rejected_count}, 1, 'rejected edits'); -is($edit_counts->{failed_count}, 1, 'failed edits'); -is($edit_counts->{accepted_auto_count}, 1, 'auto edits'); - my $alice = $editor_data->get_by_name('alice'); # Test preferences $editor_data->load_preferences($alice); @@ -279,6 +257,39 @@ is($alice->preferences->datetime_format, '%m/%d/%Y %H:%M:%S', 'datetime_format l is($alice->preferences->timezone, 'UTC', 'timezone loaded'); }; +test 'various_edit_counts' => sub { + my $test = shift; + MusicBrainz::Server::Test->prepare_test_database($test->c, '+editor'); + my $editor_data = MusicBrainz::Server::Data::Editor->new(c => $test->c); + + my $editor = $editor_data->get_by_id(1); + note('We load various_edit_counts for editor 1 (should be empty)'); + my $edit_counts = $editor_data->various_edit_counts(1); + is($edit_counts->{accepted_count}, 0, 'There are no accepted edits'); + is($edit_counts->{rejected_count}, 0, 'There are no rejected edits'); + is($edit_counts->{failed_count}, 0, 'There are no failed edits'); + is($edit_counts->{accepted_auto_count}, 0, 'There are no auto edits'); + + note('We insert a bunch of edits for editor 1'); + $test->c->sql->do(<<~"SQL", $editor->id); + INSERT INTO edit (id, editor, type, status, expire_time, autoedit) + VALUES (1, \$1, 1, $STATUS_APPLIED, now(), 0), + (2, \$1, 1, $STATUS_APPLIED, now(), 1), + (3, \$1, 1, $STATUS_FAILEDVOTE, now(), 0), + (4, \$1, 1, $STATUS_FAILEDDEP, now(), 0); + INSERT INTO edit_data (edit, data) + SELECT x, '{}' FROM generate_series(1, 4) x; + SQL + + $editor = $editor_data->get_by_id(1); + note('We load various_edit_counts for editor 1 again'); + $edit_counts = $editor_data->various_edit_counts($editor->id); + is($edit_counts->{accepted_count}, 1, 'There is 1 accepted edit'); + is($edit_counts->{rejected_count}, 1, 'There is 1 rejected edit'); + is($edit_counts->{failed_count}, 1, 'There is 1 failed edit'); + is($edit_counts->{accepted_auto_count}, 1, 'There is 1 auto edit'); +}; + test 'Editor subscription methods' => sub { my $test = shift; From 1d859080a983de1b5a211ffe8d7876e24efa6eba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Tamargo?= Date: Thu, 26 Oct 2023 13:36:38 +0300 Subject: [PATCH 059/194] Give a name to remaining 'all' test and add labels --- t/lib/t/MusicBrainz/Server/Data/Editor.pm | 93 +++++++++++++++-------- 1 file changed, 63 insertions(+), 30 deletions(-) diff --git a/t/lib/t/MusicBrainz/Server/Data/Editor.pm b/t/lib/t/MusicBrainz/Server/Data/Editor.pm index 2ab3a331789..6c77815ab00 100644 --- a/t/lib/t/MusicBrainz/Server/Data/Editor.pm +++ b/t/lib/t/MusicBrainz/Server/Data/Editor.pm @@ -216,45 +216,78 @@ test 'find_by_email and is_email_used_elsewhere' => sub { ); }; -test all => sub { - -my $test = shift; - -MusicBrainz::Server::Test->prepare_test_database($test->c, '+editor'); - -my $editor_data = MusicBrainz::Server::Data::Editor->new(c => $test->c); +test 'Getting/loading existing editors' => sub { + my $test = shift; -my $editor = $editor_data->get_by_id(1); -ok(defined $editor, 'no editor returned'); -isa_ok($editor, 'MusicBrainz::Server::Entity::Editor', 'not a editor'); -is($editor->id, 1, 'id'); -is($editor->name, 'new_editor', 'name'); -ok($editor->match_password('password')); -is($editor->privileges, 1+8+32+512, 'privileges'); + MusicBrainz::Server::Test->prepare_test_database($test->c, '+editor'); -is_deeply($editor->last_login_date, DateTime->new(year => 2013, month => 4, day => 5), - 'last login date'); + my $editor_data = MusicBrainz::Server::Data::Editor->new(c => $test->c); -is_deeply($editor->email_confirmation_date, DateTime->new(year => 2005, month => 10, day => 20), - 'email confirm'); + note('We get the editor with id 1 using get_by_id'); + my $editor = $editor_data->get_by_id(1); + ok(defined $editor, 'An editor was returned'); + isa_ok($editor, 'MusicBrainz::Server::Entity::Editor'); + is($editor->id, 1, 'The editor has the expected id'); + is($editor->name, 'new_editor', 'The editor has the expected name'); + ok( + $editor->match_password('password'), + 'The editor has the expected password', + ); + is( + $editor->privileges, + 1+8+32+512, + 'The editor has the expected privileges', + ); -is_deeply($editor->registration_date, DateTime->new(year => 1989, month => 7, day => 23), - 'registration date'); + is_deeply( + $editor->last_login_date, + DateTime->new(year => 2013, month => 4, day => 5), + 'The editor has the expected last login date', + ); + is_deeply( + $editor->email_confirmation_date, + DateTime->new(year => 2005, month => 10, day => 20), + 'The editor has the expected email confirmation date', + ); -my $editor2 = $editor_data->get_by_name('new_editor'); -is_deeply($editor, $editor2); + is_deeply( + $editor->registration_date, + DateTime->new(year => 1989, month => 7, day => 23), + 'The editor has the expected registration date', + ); + my $editor2 = $editor_data->get_by_name('new_editor'); + is_deeply( + $editor, + $editor2, + 'Fetching the editor by name with get_by_name returns the same data', + ); -$editor2 = $editor_data->get_by_name('nEw_EdItOr'); -is_deeply($editor, $editor2, 'fetching by name is case insensitive'); + $editor2 = $editor_data->get_by_name('nEw_EdItOr'); + is_deeply( + $editor, + $editor2, + 'Fetching the editor by name with get_by_name is case-insensitive', + ); -my $alice = $editor_data->get_by_name('alice'); -# Test preferences -$editor_data->load_preferences($alice); -is($alice->preferences->public_ratings, 0, 'load preferences'); -is($alice->preferences->datetime_format, '%m/%d/%Y %H:%M:%S', 'datetime_format loaded'); -is($alice->preferences->timezone, 'UTC', 'timezone loaded'); + note('We load editor "alice" and their preferences'); + my $alice = $editor_data->get_by_name('alice'); + $editor_data->load_preferences($alice); + is( + $alice->preferences->public_ratings, + 0, + 'The preference to make ratings private is loaded', + ); + is( + $alice->preferences->datetime_format, + '%m/%d/%Y %H:%M:%S', + 'The datetime_format preference is loaded'); + is( + $alice->preferences->timezone, + 'UTC', + 'The preferred timezone is loaded', + ); }; test 'various_edit_counts' => sub { From ddd6dd026b05868bdfa85a56862d45ace5dac391 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Tamargo?= Date: Thu, 26 Oct 2023 19:00:19 +0300 Subject: [PATCH 060/194] Add labels to all tests in Data::Editor --- t/lib/t/MusicBrainz/Server/Data/Editor.pm | 181 +++++++++++++++------- 1 file changed, 123 insertions(+), 58 deletions(-) diff --git a/t/lib/t/MusicBrainz/Server/Data/Editor.pm b/t/lib/t/MusicBrainz/Server/Data/Editor.pm index 6c77815ab00..24f05c5fa54 100644 --- a/t/lib/t/MusicBrainz/Server/Data/Editor.pm +++ b/t/lib/t/MusicBrainz/Server/Data/Editor.pm @@ -1,6 +1,7 @@ package t::MusicBrainz::Server::Data::Editor; use strict; use warnings; +use utf8; use Test::Fatal; use Test::Routine; @@ -424,20 +425,47 @@ test 'Deleting editors removes most information' => sub { $model->delete(1); my $bob = $model->get_by_id(1); - is($bob->name, 'Deleted Editor #' . $bob->id); - is($bob->password, Authen::Passphrase::RejectAll->new->as_rfc2307); - is($bob->privileges, 0); + is( + $bob->name, + 'Deleted Editor #' . $bob->id, + 'The editor name is now "Deleted Editor" plus an ID', + ); + is( + $bob->password, + Authen::Passphrase::RejectAll->new->as_rfc2307, + 'The password has been deleted', + ); + is($bob->privileges, 0, 'The editor privileges have been blanked'); my $edit_counts = $model->various_edit_counts($bob->id); - is($edit_counts->{accepted_count}, 1); - is($edit_counts->{rejected_count}, 1); - is($edit_counts->{accepted_auto_count}, 0); - is($edit_counts->{failed_count}, 1); - is($bob->deleted, 1); + is( + $edit_counts->{accepted_count}, + 1, + 'The editor’s accepted edit count is unchanged', + ); + is( + $edit_counts->{rejected_count}, + 1, + 'The editor’s rejected edit count is unchanged', + ); + is( + $edit_counts->{accepted_auto_count}, + 0, + 'The editor’s auto-accepted edit count is unchanged', + ); + is( + $edit_counts->{failed_count}, + 1, + 'The editor’s failed edit count is unchanged', + ); + is($bob->deleted, 1, 'The editor is marked as deleted'); # The name should be prevented from being reused by default (MBS-9271). - ok($c->sql->select_single_value( - 'SELECT 1 FROM old_editor_name WHERE name = ?', 'Bob' - )); + ok( + $c->sql->select_single_value( + 'SELECT 1 FROM old_editor_name WHERE name = ?', 'Bob' + ), + 'The editor name is listed in old_editor_name as not reusable', + ); # Ensure all other attributes are cleared my $exclusions = Set::Scalar->new( @@ -448,12 +476,12 @@ test 'Deleting editors removes most information' => sub { for my $attribute (grep { !$exclusions->contains($_->name) } object_attributes($bob)) { attribute_value_is($attribute, $bob, undef, - $attribute->name . ' is now undef'); + $attribute->name . ' has been blanked'); } # Ensure all languages have been cleared $c->model('EditorLanguage')->load_for_editor($bob); - is(@{ $bob->languages }, 0); + is(@{ $bob->languages }, 0, 'The editor languages have been blanked'); # Ensure all preferences are cleared my $prefs = $bob->preferences; @@ -464,7 +492,7 @@ test 'Deleting editors removes most information' => sub { else { attribute_value_is( $attribute, $prefs, $attribute->default($prefs), - 'Preference ' . $attribute->name . ' was cleared'); + 'Preference ' . $attribute->name . ' has been blanked'); } } @@ -472,7 +500,7 @@ test 'Deleting editors removes most information' => sub { my $tags = $c->sql->select_single_column_array( 'SELECT tag FROM area_tag_raw WHERE editor = ?', 1 ); - is(@$tags, 0); + is(@$tags, 0, 'All tags by the editor have been blanked'); }; test 'Deleting an editor cancels all open edits' => sub { @@ -481,6 +509,7 @@ test 'Deleting an editor cancels all open edits' => sub { MusicBrainz::Server::Test->prepare_test_database($test->c, '+editor'); + note('We enter an autoedit for the editor'); my $applied_edit = $c->model('Edit')->create( edit_type => $EDIT_ARTIST_EDIT, editor_id => 1, @@ -490,8 +519,13 @@ test 'Deleting an editor cancels all open edits' => sub { isni_codes => [], ); - is($applied_edit->status, $STATUS_APPLIED); + is( + $applied_edit->status, + $STATUS_APPLIED, + 'The edit is marked as applied', + ); + note('We enter a normal edit for the editor'); my $open_edit = $c->model('Edit')->create( edit_type => $EDIT_ARTIST_EDIT, editor_id => 1, @@ -502,12 +536,21 @@ test 'Deleting an editor cancels all open edits' => sub { privileges => $UNTRUSTED_FLAG, ); - is($open_edit->status, $STATUS_OPEN); + is($open_edit->status, $STATUS_OPEN, 'The edit is marked as open'); + note('We delete the editor'); $c->model('Editor')->delete(1); - is($c->model('Edit')->get_by_id($applied_edit->id)->status, $STATUS_APPLIED); - is($c->model('Edit')->get_by_id($open_edit->id)->status, $STATUS_DELETED); + is( + $c->model('Edit')->get_by_id($applied_edit->id)->status, + $STATUS_APPLIED, + 'The autoedit is still marked as applied', + ); + is( + $c->model('Edit')->get_by_id($open_edit->id)->status, + $STATUS_DELETED, + 'The open edit is now marked as cancelled', + ); }; test 'Deleting an editor changes all Yes/No votes on open edits to Abstain' => sub { @@ -614,7 +657,11 @@ test 'Deleting an editor unsubscribes anyone who was subscribed to them' => sub SQL $c->model('Editor')->delete(1); - is(scalar($c->model('Editor')->subscription->get_subscriptions(2)), 0); + is( + scalar($c->model('Editor')->subscription->get_subscriptions(2)), + 0, + 'The editor has no subscribers anymore', + ); }; test 'Open edit and last-24-hour counts' => sub { @@ -623,6 +670,7 @@ test 'Open edit and last-24-hour counts' => sub { MusicBrainz::Server::Test->prepare_test_database($test->c, '+editor'); + note('We enter an autoedit for the editor'); $c->model('Edit')->create( edit_type => $EDIT_ARTIST_EDIT, editor_id => 1, @@ -632,7 +680,8 @@ test 'Open edit and last-24-hour counts' => sub { isni_codes => [] ); - my $open_edit = $c->model('Edit')->create( + note('We enter a normal for the editor'); + $c->model('Edit')->create( edit_type => $EDIT_ARTIST_EDIT, editor_id => 1, to_edit => $c->model('Artist')->get_by_id(1), @@ -642,10 +691,16 @@ test 'Open edit and last-24-hour counts' => sub { privileges => $UNTRUSTED_FLAG, ); - is($open_edit->status, $STATUS_OPEN); - - is($c->model('Editor')->various_edit_counts(1)->{open_count}, 1, 'Open edit count is 1'); - is($c->model('Editor')->last_24h_edit_count(1), 2, 'Last 24h count is 2'); + is( + $c->model('Editor')->various_edit_counts(1)->{open_count}, + 1, + 'The editor’s open edit count is 1', + ); + is( + $c->model('Editor')->last_24h_edit_count(1), + 2, + 'The editor’s last 24h edit count is 2', + ); }; test 'subscription_summary' => sub { @@ -681,19 +736,29 @@ test 'subscription_summary' => sub { INSERT INTO editor_subscribe_series (id, editor, series, last_edit_sent) VALUES (1, 1, 1, 1); SQL - is_deeply($test->c->model('Editor')->subscription_summary(1), - { artist => 1, - collection => 1, - label => 1, - editor => 1, - series => 1 }); - - is_deeply($test->c->model('Editor')->subscription_summary(2), - { artist => 0, - collection => 0, - label => 1, - editor => 0, - series => 0 }); + is_deeply( + $test->c->model('Editor')->subscription_summary(1), + { + artist => 1, + collection => 1, + label => 1, + editor => 1, + series => 1, + }, + 'The subscription summary for editor 1 has the expected counts', + ); + + is_deeply( + $test->c->model('Editor')->subscription_summary(2), + { + artist => 0, + collection => 0, + label => 1, + editor => 0, + series => 0, + }, + 'The subscription summary for editor 2 has the expected counts', + ); }; @@ -713,45 +778,45 @@ test 'Searching editor by email (for admin only)' => sub { diag('Bounded search with trimmed user info and escaped host name (recommended)'); my ($editors, $hits) = $editor_data->search_by_email('^abc@f\.g\.h$'); - is($hits => 2, 'found 2 editors'); - is(@$editors[0]->id => 1, 'is editor #1'); - is(@$editors[1]->id => 2, 'is editor #2'); + is($hits => 2, 'Found 2 editors'); + is(@$editors[0]->id => 1, 'First is editor #1'); + is(@$editors[1]->id => 2, 'Second is editor #2'); diag('Bounded search with trimmed user info and escaped host name (ALL CAPS)'); ($editors, $hits) = $editor_data->search_by_email('^ABC@F\.G\.H$'); - is($hits => 2, 'found 2 editors'); - is(@$editors[0]->id => 1, 'is editor #1'); - is(@$editors[1]->id => 2, 'is editor #2'); + is($hits => 2, 'Found 2 editors'); + is(@$editors[0]->id => 1, 'First is editor #1'); + is(@$editors[1]->id => 2, 'Second is editor #2'); diag('Search with trimmed user info suffix and escaped host name prefix'); ($editors, $hits) = $editor_data->search_by_email('bc@f\.g'); - is($hits => 2, 'found 2 editors'); - is(@$editors[0]->id => 1, 'is editor #1'); - is(@$editors[1]->id => 2, 'is editor #2'); + is($hits => 2, 'Found 2 editors'); + is(@$editors[0]->id => 1, 'First is editor #1'); + is(@$editors[1]->id => 2, 'Second is editor #2'); diag('Search with trimmed user info and unescaped host name'); ($editors, $hits) = $editor_data->search_by_email('abc@f.g.h'); - is($hits => 3, 'found 3 editors'); - is(@$editors[0]->id => 1, 'is editor #1'); - is(@$editors[1]->id => 2, 'is editor #2'); + is($hits => 3, 'Found 3 editors'); + is(@$editors[0]->id => 1, 'First is editor #1'); + is(@$editors[1]->id => 2, 'Second is editor #2'); # Special character '.' matches '-' - is(@$editors[2]->id => 3, 'is editor #3'); + is(@$editors[2]->id => 3, 'Third is editor #3'); diag('Search with trimmed user info only'); ($editors, $hits) = $editor_data->search_by_email('abc@'); - is($hits => 4, 'found 4 editors'); - is(@$editors[0]->id => 1, 'is editor #1'); - is(@$editors[1]->id => 2, 'is editor #2'); - is(@$editors[2]->id => 3, 'is editor #3'); - is(@$editors[3]->id => 5, 'is editor #5'); + is($hits => 4, 'Found 4 editors'); + is(@$editors[0]->id => 1, 'First is editor #1'); + is(@$editors[1]->id => 2, 'Second is editor #2'); + is(@$editors[2]->id => 3, 'Third is editor #3'); + is(@$editors[3]->id => 5, 'Fourth is editor #5'); diag('Search with untrimmed unescaped user info only'); ($editors, $hits) = $editor_data->search_by_email('a.b.c+d.e@'); - is($hits => 0, 'found 0 editors'); + is($hits => 0, 'Found 0 editors'); diag('Search with untrimmed escaped user info only'); ($editors, $hits) = $editor_data->search_by_email('a\.b\.c\+d\.e@'); - is($hits => 0, 'found 0 editors'); + is($hits => 0, 'Found 0 editors'); }; 1; From ebbadda47b6186597838db03ecdd0dcc67072d96 Mon Sep 17 00:00:00 2001 From: Daniel Erat Date: Tue, 31 Oct 2023 13:24:14 -0400 Subject: [PATCH 061/194] MBS-13320 (II): Warn on form unload with rel changes (#3064) Make the beforeunload listener installed by MB.installFormUnloadWarning additionally use CSS selectors to check for pending relationship or URL changes. Previously, only changes to input elements were detected. --- root/static/scripts/edit/components/forms.js | 22 ++++++++++++++++---- t/selenium/MBS-12641.json5 | 11 ++++++++++ 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/root/static/scripts/edit/components/forms.js b/root/static/scripts/edit/components/forms.js index 33d0d70081d..9030e5a9d97 100644 --- a/root/static/scripts/edit/components/forms.js +++ b/root/static/scripts/edit/components/forms.js @@ -65,7 +65,8 @@ MB.initializeArtistCredit = function (form, initialArtistCredit) { * the user if any of the page's form inputs have been changed. */ MB.installFormUnloadWarning = function () { - let modified = false; + let inputsChanged = false; + let submittingForm = false; const form = document.querySelector('#page form'); @@ -74,18 +75,31 @@ MB.installFormUnloadWarning = function () { * user changes an input back to its original value. */ form.addEventListener('change', () => { - modified = true; + inputsChanged = true; }); // Disarm the warning when the form is being submitted. form.addEventListener('submit', () => { - modified = false; + submittingForm = true; }); window.addEventListener('beforeunload', event => { - if (!modified) { + if (submittingForm) { return false; } + + // Check if there are pending relationship or URL changes. + if (!inputsChanged && !form.querySelector([ + '#relationship-editor .rel-add', + '#relationship-editor .rel-edit', + '#relationship-editor .rel-remove', + '#external-links-editor .rel-add', + '#external-links-editor .rel-edit', + '#external-links-editor .rel-remove', + ].join(', '))) { + return false; + } + event.returnValue = l( 'All of your changes will be lost if you leave this page.', ); diff --git a/t/selenium/MBS-12641.json5 b/t/selenium/MBS-12641.json5 index ddd0b2ccd0e..157b63db852 100644 --- a/t/selenium/MBS-12641.json5 +++ b/t/selenium/MBS-12641.json5 @@ -66,5 +66,16 @@ target: 'document.activeElement === document.querySelector("#add-relationship-dialog select.entity-type")', value: 'true', }, + { + command: 'open', + target: '/', + value: '', + }, + // Dismiss the beforeunload alert (shown since relationships were changed). + { + command: 'handleAlert', + target: 'accept', + value: '', + }, ], } From c0925591bf11d69cd0c1fd01e18bf64f2025e8c6 Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Tue, 31 Oct 2023 12:31:02 -0500 Subject: [PATCH 062/194] Upgrade Flow to 0.220.0 https://github.com/facebook/flow/releases/tag/v0.220.0 Fixes one issue where a parameter to CompT (in EditAliasEditGenericT) was expected to only occur in output positions. I'm not sure which changelog entry is relevant. --- package.json | 2 +- root/types/edit.js | 2 +- yarn.lock | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index fcea4624431..8cef7fbaa08 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "eslint-plugin-react": "7.33.1", "eslint-plugin-react-hooks": "4.6.0", "file-url": "2.0.2", - "flow-bin": "0.219.3", + "flow-bin": "0.220.0", "gettext-parser": "3.1.0", "hermes-eslint": "0.16.0", "http-proxy": "1.18.1", diff --git a/root/types/edit.js b/root/types/edit.js index c7b41148f4f..641cef4c813 100644 --- a/root/types/edit.js +++ b/root/types/edit.js @@ -9,7 +9,7 @@ /* eslint-disable no-unused-vars */ -declare type CompT = { +declare type CompT<+T> = { +new: T, +old: T, }; diff --git a/yarn.lock b/yarn.lock index 0dcf41c0cfe..5b75d831080 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2662,10 +2662,10 @@ flatted@^3.2.7: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== -flow-bin@0.219.3: - version "0.219.3" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.219.3.tgz#a3a26d27c726c7e20477f394570ec6b1fb41fbe0" - integrity sha512-5O+G8pXqu0UClXLhTj2g/ZdNCQo4odYKs/6VHCnhOcvATrJIJcOJuW7WgjXMsGuV4aVeBmeFO93isE4cop9K/Q== +flow-bin@0.220.0: + version "0.220.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.220.0.tgz#4d4736597ad79be5991b1c24014a6d355190ee76" + integrity sha512-FcnXLu6AlkoL54hp2IUKgHkYRhSpt7PtTolHLAC/7nq9Lqkfv3kt8JYaRBb5yufLaC4HNJ/G7KRoa1phJy8yGA== follow-redirects@^1.0.0: version "1.15.3" From c3afb58da3daf7e045266e13016279c341b5ef42 Mon Sep 17 00:00:00 2001 From: Vac31 Date: Tue, 31 Oct 2023 22:27:55 +0000 Subject: [PATCH 063/194] Translated using Weblate (Lithuanian) Currently translated at 72.9% (400 of 548 strings) Translated using Weblate (Lithuanian) Currently translated at 20.4% (360 of 1762 strings) Translated using Weblate (Lithuanian) Currently translated at 18.2% (321 of 1762 strings) Translated using Weblate (Lithuanian) Currently translated at 16.6% (294 of 1762 strings) Translated using Weblate (Lithuanian) Currently translated at 72.6% (398 of 548 strings) Translated using Weblate (Lithuanian) Currently translated at 70.4% (386 of 548 strings) Translated using Weblate (Lithuanian) Currently translated at 100.0% (258 of 258 strings) Translated using Weblate (Lithuanian) Currently translated at 9.5% (318 of 3323 strings) Translated using Weblate (Lithuanian) Currently translated at 100.0% (159 of 159 strings) Translated using Weblate (Lithuanian) Currently translated at 67.8% (372 of 548 strings) Translated using Weblate (Lithuanian) Currently translated at 100.0% (258 of 258 strings) Translated using Weblate (Lithuanian) Currently translated at 62.5% (343 of 548 strings) Translated using Weblate (Lithuanian) Currently translated at 100.0% (159 of 159 strings) Translated using Weblate (Lithuanian) Currently translated at 61.6% (338 of 548 strings) Translated using Weblate (Lithuanian) Currently translated at 4.6% (75 of 1625 strings) Translated using Weblate (Lithuanian) Currently translated at 100.0% (159 of 159 strings) Translated using Weblate (Lithuanian) Currently translated at 45.4% (249 of 548 strings) Translated using Weblate (Lithuanian) Currently translated at 9.5% (317 of 3323 strings) Translated using Weblate (Lithuanian) Currently translated at 14.5% (256 of 1762 strings) Translated using Weblate (Lithuanian) Currently translated at 10.7% (190 of 1762 strings) Translated using Weblate (Lithuanian) Currently translated at 8.9% (158 of 1762 strings) Translated using Weblate (Lithuanian) Currently translated at 8.4% (149 of 1762 strings) Translated using Weblate (Lithuanian) Currently translated at 5.9% (105 of 1762 strings) Translated using Weblate (Lithuanian) Currently translated at 5.6% (37 of 660 strings) Translated using Weblate (Lithuanian) Currently translated at 5.9% (104 of 1762 strings) Translated using Weblate (Lithuanian) Currently translated at 9.5% (317 of 3323 strings) Translated using Weblate (Lithuanian) Currently translated at 100.0% (159 of 159 strings) Translated using Weblate (Lithuanian) Currently translated at 18.6% (102 of 548 strings) Translated using Weblate (Lithuanian) Currently translated at 3.1% (55 of 1762 strings) Co-authored-by: Vac31 Translate-URL: https://translations.metabrainz.org/projects/musicbrainz/attributes/lt/ Translate-URL: https://translations.metabrainz.org/projects/musicbrainz/countries/lt/ Translate-URL: https://translations.metabrainz.org/projects/musicbrainz/languages/lt/ Translate-URL: https://translations.metabrainz.org/projects/musicbrainz/relationship-types/lt/ Translate-URL: https://translations.metabrainz.org/projects/musicbrainz/scripts/lt/ Translate-URL: https://translations.metabrainz.org/projects/musicbrainz/server/lt/ Translate-URL: https://translations.metabrainz.org/projects/musicbrainz/statistics/lt/ Translation: MusicBrainz/Attributes Translation: MusicBrainz/Countries Translation: MusicBrainz/Languages Translation: MusicBrainz/Relationship Types Translation: MusicBrainz/Scripts Translation: MusicBrainz/Server Translation: MusicBrainz/Statistics --- po/attributes.lt.po | 88 +++-- po/countries.lt.po | 10 +- po/languages.lt.po | 634 ++++++++++++++++----------------- po/mb_server.lt.po | 16 +- po/relationships.lt.po | 782 ++++++++++++++++++++++++----------------- po/scripts.lt.po | 40 +-- po/statistics.lt.po | 4 +- 7 files changed, 883 insertions(+), 691 deletions(-) diff --git a/po/attributes.lt.po b/po/attributes.lt.po index 9ff4b6cf554..7c02bf53417 100644 --- a/po/attributes.lt.po +++ b/po/attributes.lt.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2023-09-24 15:27+0000\n" +"PO-Revision-Date: 2023-10-08 19:27+0000\n" "Last-Translator: \"Vac31.\" \n" "Language-Team: Lithuanian \n" @@ -14,8 +14,8 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < " -"11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? " -"1 : n % 1 != 0 ? 2: 3);\n" +"11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 :" +" n % 1 != 0 ? 2: 3);\n" "X-Generator: Weblate 5.0.2\n" #: DB:work_type/description:9 @@ -120,6 +120,8 @@ msgid "" "90 rpm, vertical-cut shellac discs, produced by the Pathé label from 1906 to " "1932." msgstr "" +"90 apsukų per minutę, vertikaliai pjaustyti šelako diskai, kuriuos leidykla " +"Pathé gamino nuo 1906 iki 1932 m." #: DB:release_group_secondary_type/description:1 msgctxt "release_group_secondary_type" @@ -271,6 +273,9 @@ msgid "" "often in the first track, that will have to be skipped in many audio " "players. Relatively common in old video game CDs." msgstr "" +"CD, kuriame yra ir garsas, ir duomenys tame pačiame seanse. Duomenys dažnai " +"būna pirmajame takelyje, kurį daugelyje garso grotuvų tenka praleisti. " +"Santykinai dažnai sutinkamas senuose vaizdo žaidimų CD." #: DB:medium_format/description:42 msgctxt "medium_format" @@ -279,6 +284,9 @@ msgid "" "they are properly separated, audio players will not try to play the data " "session and it won't be part of the disc ID for the CD." msgstr "" +"CD, kuriame yra dvi sesijos – viena su garsu, kita su duomenimis. Kadangi " +"jos tinkamai atskirtos, garso grotuvai nebandys groti duomenų sesijos ir ji " +"nebus įtraukta į CD disko ID." #: DB:release_group_secondary_type/description:8 msgctxt "release_group_secondary_type" @@ -289,6 +297,11 @@ msgid "" "manner, and the DJ who does this modification is usually (although not " "always) credited in a fairly prominent way." msgstr "" +"DJ miksas – tai kelių įrašų, grojantys vienas po kito, seka, kiekvienas " +"modifikuotas taip, kad susilietų į vientisą muzikos srautą. DJ mikso " +"leidinys reikalauja, kad įrašai būtų kaip nors modifikuoti, o šį " +"modifikavimą atlikęs (-usi) DJ paprastai (nors ne visada) būna įrašytas (-a) " +"gana ryškiai." #: DB:work_attribute_type_allowed_value/value:794 msgctxt "work_attribute_type_allowed_value" @@ -366,6 +379,9 @@ msgid "" "A grouping of multiple musicians who perform together (in some cases, some " "or all of the members might differ in different performances or recordings)." msgstr "" +"Grupė, susidedanti iš kelių muzikantų, kurie muzikuoja kartu (kai kuriais " +"atvejais, kai kurie ar visi nariai gali skirtis skirtinguose pasirodymuose " +"arba įrašuose)." #: DB:instrument_type/description:7 msgctxt "instrument_type" @@ -373,11 +389,14 @@ msgid "" "A grouping of related but different instruments, like the different violin-" "like instruments" msgstr "" +"Susijusių, bet skirtingų instrumentų grupė, kaip skirtingi į smuiką panašūs " +"instrumentai" #: DB:label_type/description:5 msgctxt "label_type" msgid "A label that primarily puts out unsanctioned (bootleg) releases." msgstr "" +"Leidykla, kuri daugiausia išleidžia nesankcionuotus (neoficialus) leidinius." #: DB:release_packaging/description:55 msgctxt "release_packaging" @@ -391,7 +410,7 @@ msgstr "" #: DB:place_type/description:43 msgctxt "place_type" msgid "A large, permanent outdoor stage, typically with a fixed seating area." -msgstr "" +msgstr "Didelė nuolatinė lauko scena, paprastai su stacionaria sėdimų vieta." #: DB:work_attribute_type_allowed_value/value:28 msgctxt "work_attribute_type_allowed_value" @@ -488,6 +507,9 @@ msgid "" "Religious buildings often host concerts and serve as recording locations, " "especially for classical music." msgstr "" +"Vieta, kurioje atliekama pagrindinė garbinimo ar religijos studijų funkcija. " +"Religiniuose pastatuose dažnai rengiami koncertai ir naudojamos kaip įrašų " +"vietos, ypač klasikinės muzikos." #: DB:place_type/description:4 msgctxt "place_type" @@ -587,31 +609,33 @@ msgid "" "A school, university or other similar educational institution (especially, " "but not only, one where music is taught)" msgstr "" +"Mokykla, universitetas ar kita panaši švietimo įstaiga (ypač, bet ne tik ta, " +"kurioje mokoma muzikos)" #: DB:series_type/description:14 msgctxt "series_type" msgid "A series of artists honoured by the same award." -msgstr "" +msgstr "Serija atlikėjų, pagerbtų tuo pačiu apdovanojimu." #: DB:series_type/description:13 msgctxt "series_type" msgid "A series of artists." -msgstr "" +msgstr "Atlikėjų serija." #: DB:series_type/description:15 msgctxt "series_type" msgid "A series of award ceremonies, usually one per year." -msgstr "" +msgstr "Apdovanojimų ceremonijų serija, paprastai viena per metus." #: DB:series_type/description:6 msgctxt "series_type" msgid "A series of events." -msgstr "" +msgstr "Renginių serija." #: DB:series_type/description:9 msgctxt "series_type" msgid "A series of performances of the same show at the same venue." -msgstr "" +msgstr "Pasirodymų serija to paties šou toje pačioje vietoje." #: DB:series_type/description:48 msgctxt "series_type" @@ -708,6 +732,10 @@ msgid "" "as soundtracks because the musical properties of the CDs are more " "interesting to MusicBrainz than their data properties." msgstr "" +"Garso takelis – filmo, televizijos serialo, scenos šou, vaizdo žaidimo ar " +"kitos medijos muzikinė partitūra. Vaizdo žaidimų CD su garso takeliais " +"turėtų būti klasifikuojami kaip garso takeliai, nes MusicBrainz labiau " +"domina muzikinės CD ypatybės nei jų duomenų ypatybės." #: DB:instrument_type/description:6 msgctxt "instrument_type" @@ -787,6 +815,9 @@ msgid "" "and sung scenes, the latter incorporating operatic and popular song, as well " "as dance." msgstr "" +"Zarzuela – ispanų lyrinis dramos kūrinys, kuriame kaitaliojamos kalbamos ir " +"dainuojamos scenos, į pastarąsias įtraukiamos operinės ir populiarios " +"dainos, taip pat šokiai." #: DB:work_attribute_type_allowed_value/value:26 msgctxt "work_attribute_type_allowed_value" @@ -811,42 +842,42 @@ msgstr "" #: DB:work_attribute_type/name:57 msgctxt "work_attribute_type" msgid "AACIMH ID" -msgstr "" +msgstr "AACIMH ID" #: DB:work_attribute_type/name:44 msgctxt "work_attribute_type" msgid "ACAM ID" -msgstr "" +msgstr "ACAM ID" #: DB:work_attribute_type/name:47 msgctxt "work_attribute_type" msgid "ACDAM ID" -msgstr "" +msgstr "ACDAM ID" #: DB:work_attribute_type/name:58 msgctxt "work_attribute_type" msgid "AEI ID" -msgstr "" +msgstr "AEI ID" #: DB:work_attribute_type/name:43 msgctxt "work_attribute_type" msgid "AGADU ID" -msgstr "" +msgstr "AGADU ID" #: DB:work_attribute_type/name:63 msgctxt "work_attribute_type" msgid "AKKA/LAA ID" -msgstr "" +msgstr "AKKA/LAA ID" #: DB:work_attribute_type/name:23 msgctxt "work_attribute_type" msgid "AKM ID" -msgstr "" +msgstr "AKM ID" #: DB:work_attribute_type/name:38 msgctxt "work_attribute_type" msgid "AMRA ID" -msgstr "" +msgstr "AMRA ID" #: DB:work_attribute_type/name:46 msgctxt "work_attribute_type" @@ -856,22 +887,22 @@ msgstr "APA ID" #: DB:work_attribute_type/name:41 msgctxt "work_attribute_type" msgid "APDAYC ID" -msgstr "" +msgstr "APDAYC ID" #: DB:work_attribute_type/name:13 msgctxt "work_attribute_type" msgid "APRA ID" -msgstr "" +msgstr "APRA ID" #: DB:work_attribute_type/name:48 msgctxt "work_attribute_type" msgid "ARTISJUS ID" -msgstr "" +msgstr "ARTISJUS ID" #: DB:work_attribute_type/name:6 msgctxt "work_attribute_type" msgid "ASCAP ID" -msgstr "" +msgstr "ASCAP ID" #: DB:work_attribute_type_allowed_value/value:299 msgctxt "work_attribute_type_allowed_value" @@ -1054,6 +1085,9 @@ msgid "" "accompaniment. They are most common inside operas, but also appear in " "cantatas, oratorios and even on their own (concert arias)." msgstr "" +"Arija – tai savarankiškas kūrinys vienam balsui, paprastai su orkestro " +"akompanimentu. Dažniausiai jos būna operose, tačiau taip pat skamba " +"kantatose, oratorijose ir netgi atskirai (koncertinės arijos)." #: DB:work_type/description:25 msgctxt "work_type" @@ -1061,6 +1095,8 @@ msgid "" "An audio drama is a dramatized, purely acoustic performance, broadcast on " "radio or published on an audio medium (tape, CD, etc.)." msgstr "" +"Garso drama – dramatizuotas grynai akustinis spektaklis, transliuotas per " +"radiją arba išleistas garso laikmenoje (kasetėje, CD ir pan.)." #: DB:release_group_secondary_type/description:11 msgctxt "release_group_secondary_type" @@ -1069,11 +1105,14 @@ msgid "" "always, meant for radio). Unlike audiobooks, it usually has multiple " "performers rather than a main narrator." msgstr "" +"Garso drama – tai tik garsinis pjesės atlikimas (dažnai, bet ne visada, " +"skirtas radijui). Skirtingai nei garso knygose, paprastai ją atlieka keli " +"atlikėjai, o ne pagrindinis pasakotojas (-a)." #: DB:release_group_secondary_type/description:5 msgctxt "release_group_secondary_type" msgid "An audiobook is a book read by a narrator without music." -msgstr "" +msgstr "Garso knyga – knyga, kurią skaito pasakotojas (-a) be muzikos." #: DB:event_type/description:7 msgctxt "event_type" @@ -1082,6 +1121,9 @@ msgid "" "but often includes musical performances in between the awarding of said " "prizes, especially for musical awards." msgstr "" +"Apdovanojimų ceremonija – tai renginys, kuriame daugiausia dėmesio skiriama " +"apdovanojimams įteikti, tačiau dažnai tarp apdovanojimų įteikimo vyksta " +"muzikiniai pasirodymai, ypač muzikinių apdovanojimai." #: DB:release_group_primary_type/description:12 msgctxt "release_group_primary_type" @@ -1089,6 +1131,8 @@ msgid "" "An episodic release that was originally broadcast via radio, television, or " "the Internet, including podcasts." msgstr "" +"Epizodinis leidinys, kuris iš pradžių buvo transliuojamas per radiją, " +"televiziją ar internetą, įskaitant tinklalaides." #: DB:event_type/description:2 msgctxt "event_type" diff --git a/po/countries.lt.po b/po/countries.lt.po index d3359ea3a34..e00c63ec7d7 100644 --- a/po/countries.lt.po +++ b/po/countries.lt.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2023-09-15 22:27+0000\n" +"PO-Revision-Date: 2023-10-09 22:27+0000\n" "Last-Translator: \"Vac31.\" \n" "Language-Team: Lithuanian \n" @@ -16,7 +16,7 @@ msgstr "" "Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < " "11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 :" " n % 1 != 0 ? 2: 3);\n" -"X-Generator: Weblate 5.0.1\n" +"X-Generator: Weblate 5.0.2\n" #. iso.code:AF #: DB:area JOIN iso_3166_1 iso ON iso.area = area.id/area.name:1 @@ -796,7 +796,7 @@ msgstr "Namibija" #. iso.code:NR #: DB:area JOIN iso_3166_1 iso ON iso.area = area.id/area.name:148 msgid "Nauru" -msgstr "Nauru" +msgstr "Naurų" #. iso.code:NP #: DB:area JOIN iso_3166_1 iso ON iso.area = area.id/area.name:149 @@ -1166,7 +1166,7 @@ msgstr "Togas" #. iso.code:TK #: DB:area JOIN iso_3166_1 iso ON iso.area = area.id/area.name:210 msgid "Tokelau" -msgstr "Tokelavas" +msgstr "Tokelavų" #. iso.code:TO #: DB:area JOIN iso_3166_1 iso ON iso.area = area.id/area.name:211 @@ -1196,7 +1196,7 @@ msgstr "Terkso ir Kaikoso salos" #. iso.code:TV #: DB:area JOIN iso_3166_1 iso ON iso.area = area.id/area.name:217 msgid "Tuvalu" -msgstr "Tuvalu" +msgstr "Tuvalų" #. iso.code:TR #: DB:area JOIN iso_3166_1 iso ON iso.area = area.id/area.name:214 diff --git a/po/languages.lt.po b/po/languages.lt.po index e991296f1d6..85c42b2cb51 100644 --- a/po/languages.lt.po +++ b/po/languages.lt.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2023-10-01 20:27+0000\n" +"PO-Revision-Date: 2023-10-14 18:27+0000\n" "Last-Translator: \"Vac31.\" \n" "Language-Team: Lithuanian \n" @@ -231,52 +231,52 @@ msgstr "Balučių" #. frequency:1 iso_code_3:bam #: DB:language/name:39 msgid "Bambara" -msgstr "" +msgstr "Bambarų" #. frequency:0 iso_code_3:null #: DB:language/name:36 msgid "Bamileke languages" -msgstr "" +msgstr "Bamilekių kalbos" #. frequency:0 iso_code_3:null #: DB:language/name:35 msgid "Banda languages" -msgstr "" +msgstr "Bangų kalbos" #. frequency:0 iso_code_3:null #: DB:language/name:55 msgid "Bantu languages" -msgstr "" +msgstr "Bantų kalbos" #. frequency:1 iso_code_3:bas #: DB:language/name:42 msgid "Basa" -msgstr "" +msgstr "Basų" #. frequency:1 iso_code_3:bak #: DB:language/name:37 msgid "Bashkir" -msgstr "" +msgstr "Baškirų" #. frequency:1 iso_code_3:eus #: DB:language/name:41 msgid "Basque" -msgstr "" +msgstr "Baskų" #. frequency:0 iso_code_3:null #: DB:language/name:59 msgid "Batak languages" -msgstr "" +msgstr "Batakų kalbos" #. frequency:1 iso_code_3:bar #: DB:language/name:982 msgid "Bavarian" -msgstr "" +msgstr "Bavarų" #. frequency:1 iso_code_3:bej #: DB:language/name:44 msgid "Beja" -msgstr "" +msgstr "Bejų" #. frequency:1 iso_code_3:bel #: DB:language/name:45 @@ -296,37 +296,37 @@ msgstr "Bengalų" #. frequency:0 iso_code_3:null #: DB:language/name:48 msgid "Berber languages" -msgstr "" +msgstr "Berberų kalbos" #. frequency:1 iso_code_3:bho #: DB:language/name:49 msgid "Bhojpuri" -msgstr "" +msgstr "Bhojpurų" #. frequency:0 iso_code_3:null #: DB:language/name:50 msgid "Bihari languages" -msgstr "" +msgstr "Biharų kalbos" #. frequency:1 iso_code_3:bik #: DB:language/name:51 msgid "Bikol" -msgstr "" +msgstr "Bikolių" #. frequency:1 iso_code_3:bin #: DB:language/name:52 msgid "Bini" -msgstr "" +msgstr "Binių" #. frequency:1 iso_code_3:bis #: DB:language/name:53 msgid "Bislama" -msgstr "" +msgstr "Bislamų" #. frequency:1 iso_code_3:byn #: DB:language/name:64 msgid "Blin" -msgstr "" +msgstr "Blinų" #. frequency:0 iso_code_3:zbl #: DB:language/name:482 @@ -336,27 +336,27 @@ msgstr "Bliuzo simbolių" #. frequency:1 iso_code_3:brx #: DB:language/name:1394 msgid "Bodo (India)" -msgstr "" +msgstr "Bodų (Indija)" #. frequency:1 iso_code_3:bos #: DB:language/name:56 msgid "Bosnian" -msgstr "" +msgstr "Bosnių" #. frequency:1 iso_code_3:bra #: DB:language/name:57 msgid "Braj" -msgstr "" +msgstr "Bradžių" #. frequency:1 iso_code_3:bre #: DB:language/name:58 msgid "Breton" -msgstr "" +msgstr "Bretonų" #. frequency:1 iso_code_3:box #: DB:language/name:1322 msgid "Buamu" -msgstr "" +msgstr "Buamų" #. frequency:1 iso_code_3:bug #: DB:language/name:61 @@ -366,92 +366,92 @@ msgstr "Buginų" #. frequency:1 iso_code_3:bul #: DB:language/name:62 msgid "Bulgarian" -msgstr "" +msgstr "Bulgarų" #. frequency:1 iso_code_3:bua #: DB:language/name:60 msgid "Buriat" -msgstr "" +msgstr "Buriatų" #. frequency:1 iso_code_3:mya #: DB:language/name:63 msgid "Burmese" -msgstr "" +msgstr "Birmiečių" #. frequency:1 iso_code_3:bsk #: DB:language/name:1406 msgid "Burushaski" -msgstr "" +msgstr "Burušaskų" #. frequency:1 iso_code_3:cad #: DB:language/name:65 msgid "Caddo" -msgstr "" +msgstr "Kaddų" #. frequency:1 iso_code_3:frc #: DB:language/name:2311 msgid "Cajun French" -msgstr "" +msgstr "Kajunų prancūzų" #. frequency:1 iso_code_3:cat #: DB:language/name:68 msgid "Catalan" -msgstr "" +msgstr "Katalonų" #. frequency:0 iso_code_3:null #: DB:language/name:69 msgid "Caucasian languages" -msgstr "" +msgstr "Kaukaziečių kalbos" #. frequency:1 iso_code_3:ceb #: DB:language/name:70 msgid "Cebuano" -msgstr "" +msgstr "Cebuanų" #. frequency:1 iso_code_3:xce #: DB:language/name:7217 msgid "Celtiberian" -msgstr "" +msgstr "Keltiberų" #. frequency:0 iso_code_3:null #: DB:language/name:71 msgid "Celtic languages" -msgstr "" +msgstr "Keltų kalbos" #. frequency:0 iso_code_3:null #: DB:language/name:66 msgid "Central American Indian languages" -msgstr "" +msgstr "Centrinės Amerikos indėnų kalbos" #. frequency:1 iso_code_3:ryu #: DB:language/name:5809 msgid "Central Okinawan" -msgstr "" +msgstr "Centrinė okinavų" #. frequency:1 iso_code_3:esu #: DB:language/name:2243 msgid "Central Yupik" -msgstr "" +msgstr "Centrinė jupikų" #. frequency:1 iso_code_3:chg #: DB:language/name:75 msgid "Chagatai" -msgstr "" +msgstr "Čagatų" #. frequency:0 iso_code_3:null #: DB:language/name:86 msgid "Chamic languages" -msgstr "" +msgstr "Chamų kalbos" #. frequency:1 iso_code_3:cha #: DB:language/name:72 msgid "Chamorro" -msgstr "" +msgstr "Čamorrų" #. frequency:1 iso_code_3:che #: DB:language/name:74 msgid "Chechen" -msgstr "" +msgstr "Čečėnų" #. frequency:1 iso_code_3:chr #: DB:language/name:82 @@ -461,62 +461,62 @@ msgstr "Čerokių" #. frequency:1 iso_code_3:chy #: DB:language/name:85 msgid "Cheyenne" -msgstr "" +msgstr "Šajenų" #. frequency:1 iso_code_3:chb #: DB:language/name:73 msgid "Chibcha" -msgstr "" +msgstr "Čibčų" #. frequency:1 iso_code_3:nya #: DB:language/name:313 msgid "Chichewa" -msgstr "" +msgstr "Čičevų" #. frequency:2 iso_code_3:zho #: DB:language/name:76 msgid "Chinese" -msgstr "" +msgstr "Kinų" #. frequency:1 iso_code_3:chn #: DB:language/name:79 msgid "Chinook jargon" -msgstr "" +msgstr "Činokių žargono" #. frequency:1 iso_code_3:chp #: DB:language/name:81 msgid "Chipewyan" -msgstr "" +msgstr "Čipevjanų" #. frequency:1 iso_code_3:cho #: DB:language/name:80 msgid "Choctaw" -msgstr "" +msgstr "Čokotų" #. frequency:1 iso_code_3:chu #: DB:language/name:83 msgid "Church Slavic" -msgstr "" +msgstr "Bažnyčios slavų" #. frequency:1 iso_code_3:chk #: DB:language/name:77 msgid "Chuukese" -msgstr "" +msgstr "Čuukiečių" #. frequency:1 iso_code_3:chv #: DB:language/name:84 msgid "Chuvash" -msgstr "" +msgstr "Čuvašų" #. frequency:0 iso_code_3:nwc #: DB:language/name:312 msgid "Classical Newari" -msgstr "" +msgstr "Klasikinė niūarų" #. frequency:0 iso_code_3:syc #: DB:language/name:481 msgid "Classical Syriac" -msgstr "" +msgstr "Klasikinė sirų" #. frequency:1 iso_code_3:cop #: DB:language/name:87 @@ -526,242 +526,242 @@ msgstr "Koptų" #. frequency:1 iso_code_3:cor #: DB:language/name:88 msgid "Cornish" -msgstr "" +msgstr "Kornvalų" #. frequency:1 iso_code_3:cos #: DB:language/name:89 msgid "Corsican" -msgstr "" +msgstr "Korsikiečių" #. frequency:1 iso_code_3:cre #: DB:language/name:93 msgid "Cree" -msgstr "" +msgstr "Kryų" #. frequency:1 iso_code_3:mus #: DB:language/name:286 msgid "Creek" -msgstr "" +msgstr "Kriukų" #. frequency:0 iso_code_3:null #: DB:language/name:95 msgid "Creoles and pidgins" -msgstr "" +msgstr "Kreolų ir pidžinų" #. frequency:0 iso_code_3:null #: DB:language/name:90 msgid "Creoles and pidgins, English based" -msgstr "" +msgstr "Kreolų ir pidžinų, anglų kalba" #. frequency:0 iso_code_3:null #: DB:language/name:91 msgid "Creoles and pidgins, French-based" -msgstr "" +msgstr "Kreolų ir pidžinų, prancūzų kalba" #. frequency:0 iso_code_3:null #: DB:language/name:92 msgid "Creoles and pidgins, Portuguese-based" -msgstr "" +msgstr "Kreolų ir pidžinų, portugalų kalba" #. frequency:1 iso_code_3:crh #: DB:language/name:94 msgid "Crimean Tatar" -msgstr "" +msgstr "Krymo totorių" #. frequency:1 iso_code_3:hrv #: DB:language/name:366 msgid "Croatian" -msgstr "" +msgstr "Kroatų" #. frequency:1 iso_code_3:xlu #: DB:language/name:7303 msgid "Cuneiform Luwian" -msgstr "" +msgstr "Kaunietiška luvių" #. frequency:0 iso_code_3:null #: DB:language/name:97 msgid "Cushitic languages" -msgstr "" +msgstr "Kušitų kalbos" #. frequency:1 iso_code_3:ces #: DB:language/name:98 msgid "Czech" -msgstr "" +msgstr "Čekų" #. frequency:1 iso_code_3:dak #: DB:language/name:99 msgid "Dakota" -msgstr "" +msgstr "Dakotų" #. frequency:1 iso_code_3:dan #: DB:language/name:100 msgid "Danish" -msgstr "" +msgstr "Danų" #. frequency:1 iso_code_3:dar #: DB:language/name:101 msgid "Dargwa" -msgstr "" +msgstr "Dargvių" #. frequency:1 iso_code_3:del #: DB:language/name:103 msgid "Delaware" -msgstr "" +msgstr "Delavarų" #. frequency:1 iso_code_3:din #: DB:language/name:106 msgid "Dinka" -msgstr "" +msgstr "Dinkų" #. frequency:1 iso_code_3:div #: DB:language/name:107 msgid "Divehi" -msgstr "" +msgstr "Divehių" #. frequency:1 iso_code_3:doi #: DB:language/name:108 msgid "Dogri" -msgstr "" +msgstr "Dogrų" #. frequency:1 iso_code_3:dgr #: DB:language/name:105 msgid "Dogrib" -msgstr "" +msgstr "Dogribų" #. frequency:0 iso_code_3:null #: DB:language/name:109 msgid "Dravidian languages" -msgstr "" +msgstr "Dravidų kalbos" #. frequency:1 iso_code_3:dua #: DB:language/name:111 msgid "Duala" -msgstr "" +msgstr "Dualų" #. frequency:2 iso_code_3:nld #: DB:language/name:113 msgid "Dutch" -msgstr "" +msgstr "Olandų" #. frequency:1 iso_code_3:dum #: DB:language/name:112 msgid "Dutch, Middle (ca.1050-1350)" -msgstr "" +msgstr "Olandų, vidurinioji (apie 1050-1350 m.)" #. frequency:1 iso_code_3:dyu #: DB:language/name:114 msgid "Dyula" -msgstr "" +msgstr "Diulių" #. frequency:1 iso_code_3:dzo #: DB:language/name:115 msgid "Dzongkha" -msgstr "" +msgstr "Dzongkhų" #. frequency:1 iso_code_3:aer #: DB:language/name:584 msgid "Eastern Arrernte" -msgstr "" +msgstr "Rytų Arrerntės" #. frequency:1 iso_code_3:efi #: DB:language/name:116 msgid "Efik" -msgstr "" +msgstr "Efikų" #. frequency:1 iso_code_3:egy #: DB:language/name:117 msgid "Egyptian (Ancient)" -msgstr "" +msgstr "Egiptiečių (senovės)" #. frequency:1 iso_code_3:eka #: DB:language/name:118 msgid "Ekajuk" -msgstr "" +msgstr "Ekajukų" #. frequency:1 iso_code_3:elx #: DB:language/name:119 msgid "Elamite" -msgstr "" +msgstr "Elamitų" #. frequency:2 iso_code_3:eng #: DB:language/name:120 msgid "English" -msgstr "Anglų k." +msgstr "Anglų" #. frequency:1 iso_code_3:enm #: DB:language/name:121 msgid "English, Middle (1100-1500)" -msgstr "" +msgstr "Anglų, vidurinioji (1100-1500 m.)" #. frequency:1 iso_code_3:ang #: DB:language/name:16 msgid "English, Old (ca.450-1100)" -msgstr "" +msgstr "Anglų, senoji (apie 450-1100 m.)" #. frequency:1 iso_code_3:myv #: DB:language/name:290 msgid "Erzya" -msgstr "" +msgstr "Eržų" #. frequency:1 iso_code_3:epo #: DB:language/name:122 msgid "Esperanto" -msgstr "" +msgstr "Esperantų" #. frequency:1 iso_code_3:est #: DB:language/name:123 msgid "Estonian" -msgstr "Estų kalba" +msgstr "Estų" #. frequency:1 iso_code_3:ewe #: DB:language/name:124 msgid "Ewe" -msgstr "" +msgstr "Avių" #. frequency:1 iso_code_3:ewo #: DB:language/name:125 msgid "Ewondo" -msgstr "" +msgstr "Evondų" #. frequency:1 iso_code_3:fan #: DB:language/name:126 msgid "Fang" -msgstr "" +msgstr "Fangų" #. frequency:1 iso_code_3:fat #: DB:language/name:128 msgid "Fanti" -msgstr "" +msgstr "Fantų" #. frequency:1 iso_code_3:fao #: DB:language/name:127 msgid "Faroese" -msgstr "" +msgstr "Farerų" #. frequency:1 iso_code_3:fij #: DB:language/name:129 msgid "Fijian" -msgstr "" +msgstr "Fidžų" #. frequency:1 iso_code_3:fil #: DB:language/name:130 msgid "Filipino" -msgstr "" +msgstr "Filipinų" #. frequency:2 iso_code_3:fin #: DB:language/name:131 msgid "Finnish" -msgstr "Suomių kalba" +msgstr "Suomių" #. frequency:0 iso_code_3:null #: DB:language/name:132 msgid "Finno-Ugrian languages" -msgstr "" +msgstr "Finougrų kalbos" #. frequency:1 iso_code_3:fon #: DB:language/name:133 msgid "Fon" -msgstr "" +msgstr "Fonų" #. frequency:2 iso_code_3:fra #: DB:language/name:134 @@ -771,167 +771,167 @@ msgstr "Prancūzų" #. frequency:0 iso_code_3:frm #: DB:language/name:135 msgid "French, Middle (ca.1400-1600)" -msgstr "" +msgstr "Prancūzų, vidurinioji (apie 1400-1600 m.)" #. frequency:1 iso_code_3:fro #: DB:language/name:136 msgid "French, Old (842-ca.1400)" -msgstr "" +msgstr "Prancūzų, senoji (842-apie 1400 m.)" #. frequency:1 iso_code_3:frs #: DB:language/name:485 msgid "Frisian, Eastern" -msgstr "" +msgstr "Fryzų, rytų" #. frequency:1 iso_code_3:frr #: DB:language/name:484 msgid "Frisian, Northern" -msgstr "" +msgstr "Fryzų, šiaurės" #. frequency:1 iso_code_3:fry #: DB:language/name:137 msgid "Frisian, Western" -msgstr "" +msgstr "Fryzų, vakarų" #. frequency:1 iso_code_3:fur #: DB:language/name:139 msgid "Friulian" -msgstr "" +msgstr "Friulių" #. frequency:1 iso_code_3:ful #: DB:language/name:138 msgid "Fulah" -msgstr "" +msgstr "Fulagų" #. frequency:1 iso_code_3:gaa #: DB:language/name:140 msgid "Ga" -msgstr "" +msgstr "Gų" #. frequency:1 iso_code_3:car #: DB:language/name:67 msgid "Galibi Carib" -msgstr "" +msgstr "Galibi karibų" #. frequency:1 iso_code_3:glg #: DB:language/name:150 msgid "Galician" -msgstr "" +msgstr "Galisų" #. frequency:1 iso_code_3:lug #: DB:language/name:249 msgid "Ganda" -msgstr "" +msgstr "Gandrų" #. frequency:1 iso_code_3:cab #: DB:language/name:1591 msgid "Garifuna" -msgstr "" +msgstr "Garifunų" #. frequency:1 iso_code_3:gay #: DB:language/name:141 msgid "Gayo" -msgstr "" +msgstr "Gajų" #. frequency:1 iso_code_3:gba #: DB:language/name:142 msgid "Gbaya" -msgstr "" +msgstr "Gbajų" #. frequency:1 iso_code_3:gez #: DB:language/name:146 msgid "Geez" -msgstr "" +msgstr "Gizų" #. frequency:1 iso_code_3:kat #: DB:language/name:144 msgid "Georgian" -msgstr "Gruziniškas" +msgstr "Gruzinų" #. frequency:2 iso_code_3:deu #: DB:language/name:145 msgid "German" -msgstr "Vokiečių kalba" +msgstr "Vokiečių" #. frequency:1 iso_code_3:nds #: DB:language/name:299 msgid "German, Low" -msgstr "" +msgstr "Vokiečių, žemoji" #. frequency:1 iso_code_3:gmh #: DB:language/name:152 msgid "German, Middle High (ca.1050-1500)" -msgstr "" +msgstr "Vokiečių, vidurinioji aukštoji (apie 1050-1500 m.)" #. frequency:1 iso_code_3:goh #: DB:language/name:153 msgid "German, Old High (ca.750-1050)" -msgstr "" +msgstr "Vokiečių, senoji aukštoji (apie 750-1050 m.)" #. frequency:1 iso_code_3:gsw #: DB:language/name:476 msgid "German, Swiss" -msgstr "" +msgstr "Vokiečių, šveicarų" #. frequency:0 iso_code_3:null #: DB:language/name:143 msgid "Germanic languages" -msgstr "" +msgstr "Germanų kalbos" #. frequency:1 iso_code_3:gil #: DB:language/name:147 msgid "Gilbertese" -msgstr "" +msgstr "Gilbertų" #. frequency:1 iso_code_3:gon #: DB:language/name:154 msgid "Gondi" -msgstr "" +msgstr "Gondių" #. frequency:1 iso_code_3:gor #: DB:language/name:155 msgid "Gorontalo" -msgstr "" +msgstr "Gorontalų" #. frequency:1 iso_code_3:got #: DB:language/name:156 msgid "Gothic" -msgstr "Gotikinis" +msgstr "Gotų" #. frequency:1 iso_code_3:grb #: DB:language/name:157 msgid "Grebo" -msgstr "" +msgstr "Grebų" #. frequency:2 iso_code_3:ell #: DB:language/name:159 msgid "Greek" -msgstr "Graikiškas" +msgstr "Graikų" #. frequency:1 iso_code_3:grc #: DB:language/name:158 msgid "Greek, Ancient" -msgstr "" +msgstr "Graikų, senovės" #. frequency:1 iso_code_3:kal #: DB:language/name:204 msgid "Greenlandic" -msgstr "" +msgstr "Grenlandų" #. frequency:1 iso_code_3:gos #: DB:language/name:2534 msgid "Gronings" -msgstr "" +msgstr "Groningų" #. frequency:1 iso_code_3:gcf #: DB:language/name:2386 msgid "Guadeloupean Creole French" -msgstr "" +msgstr "Gvadelupės kreolų prancūzų" #. frequency:1 iso_code_3:grn #: DB:language/name:160 msgid "Guarani" -msgstr "" +msgstr "Guaranių" #. frequency:1 iso_code_3:guj #: DB:language/name:161 @@ -941,42 +941,42 @@ msgstr "Gudžaratų" #. frequency:1 iso_code_3:gnn #: DB:language/name:2511 msgid "Gumatj" -msgstr "" +msgstr "Gumačių" #. frequency:1 iso_code_3:guf #: DB:language/name:2581 msgid "Gupapuyngu" -msgstr "" +msgstr "Gupapuindžų" #. frequency:1 iso_code_3:gyn #: DB:language/name:2638 msgid "Guyanese Creole English" -msgstr "" +msgstr "Gajanos kreolų anglų" #. frequency:1 iso_code_3:gwi #: DB:language/name:162 msgid "Gwich'in" -msgstr "" +msgstr "Gvičinų" #. frequency:1 iso_code_3:hai #: DB:language/name:163 msgid "Haida" -msgstr "" +msgstr "Haidų" #. frequency:1 iso_code_3:hat #: DB:language/name:164 msgid "Haitian Creole" -msgstr "" +msgstr "Haičio kreolų" #. frequency:1 iso_code_3:hau #: DB:language/name:165 msgid "Hausa" -msgstr "" +msgstr "Hausų" #. frequency:1 iso_code_3:haw #: DB:language/name:166 msgid "Hawaiian" -msgstr "" +msgstr "Havajiečių" #. frequency:1 iso_code_3:heb #: DB:language/name:167 @@ -986,162 +986,162 @@ msgstr "Hebrajų" #. frequency:1 iso_code_3:her #: DB:language/name:168 msgid "Herero" -msgstr "" +msgstr "Hererų" #. frequency:1 iso_code_3:hil #: DB:language/name:169 msgid "Hiligaynon" -msgstr "" +msgstr "Hiligainonų" #. frequency:0 iso_code_3:null #: DB:language/name:170 msgid "Himachali languages" -msgstr "" +msgstr "Himačalių kalbos" #. frequency:2 iso_code_3:hin #: DB:language/name:171 msgid "Hindi" -msgstr "" +msgstr "Hindų" #. frequency:1 iso_code_3:hmo #: DB:language/name:174 msgid "Hiri Motu" -msgstr "" +msgstr "Hiri Motų" #. frequency:0 iso_code_3:hit #: DB:language/name:172 msgid "Hittite" -msgstr "" +msgstr "Hetitų" #. frequency:1 iso_code_3:hmn #: DB:language/name:173 msgid "Hmong" -msgstr "" +msgstr "Hmongų" #. frequency:1 iso_code_3:hun #: DB:language/name:176 msgid "Hungarian" -msgstr "" +msgstr "Vengrų" #. frequency:1 iso_code_3:hup #: DB:language/name:177 msgid "Hupa" -msgstr "" +msgstr "Hupų" #. frequency:1 iso_code_3:iba #: DB:language/name:178 msgid "Iban" -msgstr "" +msgstr "Ibanų" #. frequency:1 iso_code_3:isl #: DB:language/name:180 msgid "Icelandic" -msgstr "" +msgstr "Islandų" #. frequency:1 iso_code_3:ido #: DB:language/name:181 msgid "Ido" -msgstr "" +msgstr "Idų" #. frequency:1 iso_code_3:ibo #: DB:language/name:179 msgid "Igbo" -msgstr "" +msgstr "Igbų" #. frequency:0 iso_code_3:null #: DB:language/name:183 msgid "Ijo languages" -msgstr "" +msgstr "Idžų kalbos" #. frequency:1 iso_code_3:ilo #: DB:language/name:186 msgid "Iloko" -msgstr "" +msgstr "Ilokų" #. frequency:0 iso_code_3:null #: DB:language/name:188 msgid "Indic languages" -msgstr "" +msgstr "Indų kalbos" #. frequency:0 iso_code_3:null #: DB:language/name:190 msgid "Indo-European languages" -msgstr "" +msgstr "Indoeuropiečių kalbos" #. frequency:1 iso_code_3:ind #: DB:language/name:189 msgid "Indonesian" -msgstr "" +msgstr "Indoneziečių" #. frequency:1 iso_code_3:izh #: DB:language/name:2967 msgid "Ingrian" -msgstr "" +msgstr "Ingrų" #. frequency:1 iso_code_3:inh #: DB:language/name:191 msgid "Ingush" -msgstr "" +msgstr "Ingušų" #. frequency:1 iso_code_3:moe #: DB:language/name:4369 msgid "Innu" -msgstr "" +msgstr "Innų" #. frequency:1 iso_code_3:ina #: DB:language/name:187 msgid "Interlingua" -msgstr "" +msgstr "Interlingvių" #. frequency:1 iso_code_3:ile #: DB:language/name:185 msgid "Interlingue" -msgstr "" +msgstr "Interlingų" #. frequency:1 iso_code_3:iku #: DB:language/name:184 msgid "Inuktitut" -msgstr "" +msgstr "Inuktitutų" #. frequency:1 iso_code_3:ipk #: DB:language/name:192 msgid "Inupiaq" -msgstr "" +msgstr "Inupiakų" #. frequency:0 iso_code_3:null #: DB:language/name:193 msgid "Iranian languages" -msgstr "" +msgstr "Iraniečių kalbos" #. frequency:1 iso_code_3:gle #: DB:language/name:149 msgid "Irish" -msgstr "" +msgstr "Airių" #. frequency:0 iso_code_3:mga #: DB:language/name:270 msgid "Irish, Middle (900-1200)" -msgstr "" +msgstr "Airių, vidurinioji (900-1200 m.)" #. frequency:0 iso_code_3:sga #: DB:language/name:369 msgid "Irish, Old (to 900)" -msgstr "" +msgstr "Airių, senoji (iki 900 m.)" #. frequency:0 iso_code_3:null #: DB:language/name:194 msgid "Iroquoian languages" -msgstr "" +msgstr "Irokėzų kalbos" #. frequency:2 iso_code_3:ita #: DB:language/name:195 msgid "Italian" -msgstr "Italų kalba" +msgstr "Italų" #. frequency:1 iso_code_3:jam #: DB:language/name:2980 msgid "Jamaican Creole English" -msgstr "" +msgstr "Jamaikos kreolų anglų" #. frequency:2 iso_code_3:jpn #: DB:language/name:198 @@ -1156,47 +1156,47 @@ msgstr "Javanų" #. frequency:1 iso_code_3:tmr #: DB:language/name:6526 msgid "Jewish Babylonian Aramaic (ca. 200-1200 CE)" -msgstr "" +msgstr "Žydų babiloniečių aramėjų (apie 200-1200 m. po Kr.)" #. frequency:1 iso_code_3:jrb #: DB:language/name:200 msgid "Judeo-Arabic" -msgstr "" +msgstr "Judėjų arabų" #. frequency:1 iso_code_3:jpr #: DB:language/name:199 msgid "Judeo-Persian" -msgstr "" +msgstr "Judėjų persų" #. frequency:1 iso_code_3:kbd #: DB:language/name:212 msgid "Kabardian" -msgstr "" +msgstr "Kabardų" #. frequency:1 iso_code_3:kea #: DB:language/name:3185 msgid "Kabuverdianu" -msgstr "" +msgstr "Kabuverdianų" #. frequency:1 iso_code_3:kab #: DB:language/name:202 msgid "Kabyle" -msgstr "" +msgstr "Kabilų" #. frequency:1 iso_code_3:kac #: DB:language/name:203 msgid "Kachin" -msgstr "" +msgstr "Kačinų" #. frequency:1 iso_code_3:xal #: DB:language/name:459 msgid "Kalmyk" -msgstr "" +msgstr "Kalmukų" #. frequency:1 iso_code_3:kam #: DB:language/name:205 msgid "Kamba" -msgstr "" +msgstr "Kambų" #. frequency:1 iso_code_3:kan #: DB:language/name:206 @@ -1206,122 +1206,122 @@ msgstr "Kanadų" #. frequency:1 iso_code_3:kau #: DB:language/name:209 msgid "Kanuri" -msgstr "" +msgstr "Kanurų" #. frequency:1 iso_code_3:kaa #: DB:language/name:201 msgid "Kara-Kalpak" -msgstr "" +msgstr "Kara kalpakų" #. frequency:1 iso_code_3:krc #: DB:language/name:227 msgid "Karachay-Balkar" -msgstr "" +msgstr "Karačajų balkarų" #. frequency:1 iso_code_3:krl #: DB:language/name:477 msgid "Karelian" -msgstr "" +msgstr "Karelų" #. frequency:0 iso_code_3:null #: DB:language/name:207 msgid "Karen languages" -msgstr "" +msgstr "Karenų kalbos" #. frequency:1 iso_code_3:kas #: DB:language/name:208 msgid "Kashmiri" -msgstr "" +msgstr "Kašmyrų" #. frequency:1 iso_code_3:csb #: DB:language/name:96 msgid "Kashubian" -msgstr "" +msgstr "Kašubų" #. frequency:0 iso_code_3:kaw #: DB:language/name:210 msgid "Kawi" -msgstr "" +msgstr "Kavių" #. frequency:1 iso_code_3:kaz #: DB:language/name:211 msgid "Kazakh" -msgstr "" +msgstr "Kazachų" #. frequency:1 iso_code_3:kca #: DB:language/name:3137 msgid "Khanty" -msgstr "" +msgstr "Chantų" #. frequency:1 iso_code_3:kha #: DB:language/name:213 msgid "Khasi" -msgstr "" +msgstr "Khasų" #. frequency:1 iso_code_3:khm #: DB:language/name:215 msgid "Khmer, Central" -msgstr "" +msgstr "Khmerų, centrinė" #. frequency:0 iso_code_3:null #: DB:language/name:214 msgid "Khoisan languages" -msgstr "" +msgstr "Khoisanų kalbos" #. frequency:0 iso_code_3:kho #: DB:language/name:216 msgid "Khotanese" -msgstr "" +msgstr "Chotanų" #. frequency:1 iso_code_3:kik #: DB:language/name:217 msgid "Kikuyu" -msgstr "" +msgstr "Kikujų" #. frequency:1 iso_code_3:kmb #: DB:language/name:220 msgid "Kimbundu" -msgstr "" +msgstr "Kimbundų" #. frequency:1 iso_code_3:kin #: DB:language/name:218 msgid "Kinyarwanda" -msgstr "" +msgstr "Kinjarvandų" #. frequency:1 iso_code_3:kir #: DB:language/name:219 msgid "Kirghiz" -msgstr "" +msgstr "Kirgizų" #. frequency:1 iso_code_3:tlh #: DB:language/name:421 msgid "Klingon" -msgstr "" +msgstr "Klingonų" #. frequency:1 iso_code_3:kom #: DB:language/name:222 msgid "Komi" -msgstr "" +msgstr "Komių" #. frequency:1 iso_code_3:kon #: DB:language/name:223 msgid "Kongo" -msgstr "" +msgstr "Kongų" #. frequency:1 iso_code_3:kok #: DB:language/name:221 msgid "Konkani" -msgstr "" +msgstr "Konkanų" #. frequency:2 iso_code_3:kor #: DB:language/name:224 msgid "Korean" -msgstr "Korėjietiškas" +msgstr "Korėjiečių" #. frequency:1 iso_code_3:kos #: DB:language/name:225 msgid "Kosraean" -msgstr "" +msgstr "Kosrajų" #. frequency:1 iso_code_3:kpe #: DB:language/name:226 @@ -1331,37 +1331,37 @@ msgstr "Kpelių" #. frequency:0 iso_code_3:null #: DB:language/name:228 msgid "Kru languages" -msgstr "" +msgstr "Krų kalbos" #. frequency:1 iso_code_3:kua #: DB:language/name:230 msgid "Kuanyama" -msgstr "" +msgstr "Kuanjamų" #. frequency:1 iso_code_3:kum #: DB:language/name:231 msgid "Kumyk" -msgstr "" +msgstr "Kumykų" #. frequency:1 iso_code_3:xug #: DB:language/name:7421 msgid "Kunigami" -msgstr "" +msgstr "Kunigamių" #. frequency:1 iso_code_3:kur #: DB:language/name:232 msgid "Kurdish" -msgstr "" +msgstr "Kurdų" #. frequency:1 iso_code_3:kru #: DB:language/name:229 msgid "Kurukh" -msgstr "" +msgstr "Kurukų" #. frequency:1 iso_code_3:kut #: DB:language/name:233 msgid "Kutenai" -msgstr "" +msgstr "Kutenų" #. frequency:1 iso_code_3:ksh #: DB:language/name:3529 @@ -1371,37 +1371,37 @@ msgstr "" #. frequency:1 iso_code_3:lld #: DB:language/name:3885 msgid "Ladin" -msgstr "" +msgstr "Ladų" #. frequency:1 iso_code_3:lad #: DB:language/name:234 msgid "Ladino" -msgstr "" +msgstr "Ladinų" #. frequency:1 iso_code_3:lah #: DB:language/name:235 msgid "Lahnda" -msgstr "" +msgstr "Lahndų" #. frequency:1 iso_code_3:lkt #: DB:language/name:3880 msgid "Lakota" -msgstr "" +msgstr "Lakotų" #. frequency:1 iso_code_3:lam #: DB:language/name:236 msgid "Lamba" -msgstr "" +msgstr "Lambų" #. frequency:0 iso_code_3:null #: DB:language/name:102 msgid "Land Dayak languages" -msgstr "" +msgstr "Žemės dajakų kalbos" #. frequency:1 iso_code_3:lao #: DB:language/name:237 msgid "Lao" -msgstr "Laoso" +msgstr "Laosų" #. frequency:1 iso_code_3:lat #: DB:language/name:238 @@ -1411,127 +1411,127 @@ msgstr "Lotynų" #. frequency:1 iso_code_3:lav #: DB:language/name:239 msgid "Latvian" -msgstr "" +msgstr "Latvių" #. frequency:1 iso_code_3:lzz #: DB:language/name:4039 msgid "Laz" -msgstr "" +msgstr "Lazų" #. frequency:1 iso_code_3:lez #: DB:language/name:240 msgid "Lezghian" -msgstr "" +msgstr "Lezgių" #. frequency:1 iso_code_3:lim #: DB:language/name:241 msgid "Limburgish" -msgstr "" +msgstr "Limburgų" #. frequency:1 iso_code_3:lin #: DB:language/name:242 msgid "Lingala" -msgstr "" +msgstr "Lingalų" #. frequency:1 iso_code_3:lit #: DB:language/name:243 msgid "Lithuanian" -msgstr "" +msgstr "Lietuvių" #. frequency:1 iso_code_3:liv #: DB:language/name:3858 msgid "Liv" -msgstr "" +msgstr "Lyvių" #. frequency:1 iso_code_3:jbo #: DB:language/name:197 msgid "Lojban" -msgstr "" +msgstr "Ložbanų" #. frequency:1 iso_code_3:lou #: DB:language/name:3958 msgid "Louisiana Creole French" -msgstr "" +msgstr "Luizianos kreolų prancūzų" #. frequency:1 iso_code_3:loz #: DB:language/name:245 msgid "Lozi" -msgstr "" +msgstr "Lozių" #. frequency:1 iso_code_3:lub #: DB:language/name:248 msgid "Luba-Katanga" -msgstr "" +msgstr "Luba katangų" #. frequency:1 iso_code_3:lua #: DB:language/name:247 msgid "Luba-Lulua" -msgstr "" +msgstr "Lubų lulua" #. frequency:1 iso_code_3:lui #: DB:language/name:250 msgid "Luiseno" -msgstr "" +msgstr "Luisenų" #. frequency:1 iso_code_3:lun #: DB:language/name:251 msgid "Lunda" -msgstr "" +msgstr "Lundų" #. frequency:1 iso_code_3:luo #: DB:language/name:252 msgid "Luo" -msgstr "" +msgstr "Lumių" #. frequency:1 iso_code_3:lus #: DB:language/name:253 msgid "Lushai" -msgstr "" +msgstr "Lušajų" #. frequency:1 iso_code_3:ltz #: DB:language/name:246 msgid "Luxembourgish" -msgstr "" +msgstr "Liuksemburgiečių" #. frequency:1 iso_code_3:luy #: DB:language/name:4018 msgid "Luyia" -msgstr "" +msgstr "Lujų" #. frequency:1 iso_code_3:mkd #: DB:language/name:254 msgid "Macedonian" -msgstr "" +msgstr "Makedoniečių" #. frequency:1 iso_code_3:mad #: DB:language/name:255 msgid "Madurese" -msgstr "" +msgstr "Madurezų" #. frequency:1 iso_code_3:mag #: DB:language/name:256 msgid "Magahi" -msgstr "" +msgstr "Magahių" #. frequency:1 iso_code_3:mai #: DB:language/name:258 msgid "Maithili" -msgstr "" +msgstr "Maithilių" #. frequency:1 iso_code_3:mak #: DB:language/name:259 msgid "Makasar" -msgstr "" +msgstr "Makasarų" #. frequency:1 iso_code_3:mlg #: DB:language/name:275 msgid "Malagasy" -msgstr "" +msgstr "Malagasių" #. frequency:1 iso_code_3:msa #: DB:language/name:266 msgid "Malay" -msgstr "" +msgstr "Malajiečių" #. frequency:1 iso_code_3:mal #: DB:language/name:260 @@ -1541,182 +1541,182 @@ msgstr "Malajalamų" #. frequency:1 iso_code_3:mlt #: DB:language/name:276 msgid "Maltese" -msgstr "" +msgstr "Maltiečių" #. frequency:1 iso_code_3:mnc #: DB:language/name:277 msgid "Manchu" -msgstr "" +msgstr "Mandžiūrų" #. frequency:1 iso_code_3:mdr #: DB:language/name:268 msgid "Mandar" -msgstr "" +msgstr "Mandarų" #. frequency:1 iso_code_3:cmn #: DB:language/name:1739 msgid "Mandarin Chinese" -msgstr "" +msgstr "Mandarinų kinų" #. frequency:1 iso_code_3:man #: DB:language/name:261 msgid "Mandingo" -msgstr "" +msgstr "Mandingų" #. frequency:1 iso_code_3:mni #: DB:language/name:278 msgid "Manipuri" -msgstr "" +msgstr "Manipurų" #. frequency:0 iso_code_3:null #: DB:language/name:279 msgid "Manobo languages" -msgstr "" +msgstr "Manobų kalbos" #. frequency:1 iso_code_3:mns #: DB:language/name:4358 msgid "Mansi" -msgstr "" +msgstr "Mansių" #. frequency:1 iso_code_3:glv #: DB:language/name:151 msgid "Manx" -msgstr "" +msgstr "Manksų" #. frequency:1 iso_code_3:mri #: DB:language/name:262 msgid "Maori" -msgstr "" +msgstr "Maorių" #. frequency:1 iso_code_3:arn #: DB:language/name:22 msgid "Mapudungun" -msgstr "" +msgstr "Mapudungunų" #. frequency:1 iso_code_3:mar #: DB:language/name:264 msgid "Marathi" -msgstr "" +msgstr "Maratų" #. frequency:1 iso_code_3:chm #: DB:language/name:78 msgid "Mari" -msgstr "" +msgstr "Marių" #. frequency:1 iso_code_3:mah #: DB:language/name:257 msgid "Marshallese" -msgstr "" +msgstr "Maršalų" #. frequency:1 iso_code_3:mwr #: DB:language/name:288 msgid "Marwari" -msgstr "" +msgstr "Marvarių" #. frequency:1 iso_code_3:mas #: DB:language/name:265 msgid "Masai" -msgstr "" +msgstr "Masajų" #. frequency:0 iso_code_3:null #: DB:language/name:289 msgid "Mayan languages" -msgstr "" +msgstr "Majų kalbos" #. frequency:1 iso_code_3:men #: DB:language/name:269 msgid "Mende" -msgstr "" +msgstr "Mendų" #. frequency:1 iso_code_3:mic #: DB:language/name:271 msgid "Mi'kmaq" -msgstr "" +msgstr "Mikmakų" #. frequency:1 iso_code_3:nan #: DB:language/name:4663 msgid "Min Nan Chinese" -msgstr "" +msgstr "Min Nan kinų" #. frequency:1 iso_code_3:hna #: DB:language/name:2735 msgid "Mina (Cameroon)" -msgstr "" +msgstr "Minų (Kamerūnas)" #. frequency:1 iso_code_3:min #: DB:language/name:272 msgid "Minangkabau" -msgstr "" +msgstr "Minangkabų" #. frequency:1 iso_code_3:mwl #: DB:language/name:287 msgid "Mirandese" -msgstr "" +msgstr "Mirandiečių" #. frequency:1 iso_code_3:mvi #: DB:language/name:4538 msgid "Miyako" -msgstr "" +msgstr "Mijakų" #. frequency:1 iso_code_3:moh #: DB:language/name:280 msgid "Mohawk" -msgstr "" +msgstr "Mohavkų" #. frequency:1 iso_code_3:mdf #: DB:language/name:267 msgid "Moksha" -msgstr "" +msgstr "Mokošų" #. frequency:0 iso_code_3:null #: DB:language/name:281 msgid "Moldavian" -msgstr "" +msgstr "Moldavų" #. frequency:0 iso_code_3:null #: DB:language/name:274 msgid "Mon-Khmer languages" -msgstr "" +msgstr "Mon khmerų kalbos" #. frequency:1 iso_code_3:lol #: DB:language/name:244 msgid "Mongo" -msgstr "" +msgstr "Mongų" #. frequency:1 iso_code_3:mon #: DB:language/name:282 msgid "Mongolian" -msgstr "" +msgstr "Mongolų" #. frequency:1 iso_code_3:mos #: DB:language/name:283 msgid "Mossi" -msgstr "" +msgstr "Mosių" #. frequency:0 iso_code_3:null #: DB:language/name:285 msgid "Munda languages" -msgstr "" +msgstr "Mundų kalbos" #. frequency:1 iso_code_3:nqo #: DB:language/name:478 msgid "N'Ko" -msgstr "" +msgstr "N'Ko" #. frequency:0 iso_code_3:null #: DB:language/name:291 msgid "Nahuatl languages" -msgstr "" +msgstr "Nahuatlų kalbos" #. frequency:1 iso_code_3:nau #: DB:language/name:294 msgid "Nauru" -msgstr "Nauru" +msgstr "Naurų" #. frequency:1 iso_code_3:nav #: DB:language/name:295 msgid "Navajo" -msgstr "" +msgstr "Navahų" #. frequency:1 iso_code_3:nde #: DB:language/name:297 @@ -2291,7 +2291,7 @@ msgstr "" #. frequency:2 iso_code_3:spa #: DB:language/name:393 msgid "Spanish" -msgstr "Ispanų kalba" +msgstr "Ispanų" #. frequency:1 iso_code_3:srn #: DB:language/name:480 @@ -2336,12 +2336,12 @@ msgstr "" #. frequency:2 iso_code_3:swe #: DB:language/name:403 msgid "Swedish" -msgstr "Švedų kalba" +msgstr "Švedų" #. frequency:1 iso_code_3:syr #: DB:language/name:404 msgid "Syriac" -msgstr "Siriškas" +msgstr "Sirų" #. frequency:1 iso_code_3:tgl #: DB:language/name:414 @@ -2421,97 +2421,97 @@ msgstr "" #. frequency:1 iso_code_3:tiv #: DB:language/name:419 msgid "Tiv" -msgstr "" +msgstr "Tivų" #. frequency:1 iso_code_3:tli #: DB:language/name:422 msgid "Tlingit" -msgstr "" +msgstr "Tlingitų" #. frequency:1 iso_code_3:tpi #: DB:language/name:426 msgid "Tok Pisin" -msgstr "" +msgstr "Tok pisinų" #. frequency:1 iso_code_3:tkl #: DB:language/name:420 msgid "Tokelau" -msgstr "Tokelavas" +msgstr "Tokelavų" #. frequency:1 iso_code_3:tok #: DB:language/name:7845 msgid "Toki Pona" -msgstr "" +msgstr "Toki ponų" #. frequency:1 iso_code_3:tog #: DB:language/name:424 msgid "Tonga (Nyasa)" -msgstr "" +msgstr "Tongų (Nyasa)" #. frequency:1 iso_code_3:ton #: DB:language/name:425 msgid "Tonga (Tonga Islands)" -msgstr "" +msgstr "Tongų (Tongos salos)" #. frequency:1 iso_code_3:tsi #: DB:language/name:427 msgid "Tsimshian" -msgstr "" +msgstr "Timšėnų" #. frequency:1 iso_code_3:tso #: DB:language/name:429 msgid "Tsonga" -msgstr "" +msgstr "Tsongų" #. frequency:1 iso_code_3:tsn #: DB:language/name:428 msgid "Tswana" -msgstr "" +msgstr "Tsvanų" #. frequency:1 iso_code_3:tum #: DB:language/name:431 msgid "Tumbuka" -msgstr "" +msgstr "Tumbukų" #. frequency:0 iso_code_3:null #: DB:language/name:432 msgid "Tupi languages" -msgstr "" +msgstr "Tupių kalbos" #. frequency:2 iso_code_3:tur #: DB:language/name:433 msgid "Turkish" -msgstr "" +msgstr "Turkų" #. frequency:1 iso_code_3:ota #: DB:language/name:324 msgid "Turkish, Ottoman" -msgstr "" +msgstr "Turkų, osmanų" #. frequency:1 iso_code_3:tuk #: DB:language/name:430 msgid "Turkmen" -msgstr "" +msgstr "Turkmėnų" #. frequency:1 iso_code_3:tvl #: DB:language/name:435 msgid "Tuvalu" -msgstr "Tuvalu" +msgstr "Tuvalų" #. frequency:1 iso_code_3:tyv #: DB:language/name:437 msgid "Tuvinian" -msgstr "" +msgstr "Tuvinų" #. frequency:1 iso_code_3:twi #: DB:language/name:436 msgid "Twi" -msgstr "" +msgstr "Tvių" #. frequency:1 iso_code_3:udm #: DB:language/name:438 msgid "Udmurt" -msgstr "" +msgstr "Udmurtų" #. frequency:0 iso_code_3:uga #: DB:language/name:439 @@ -2526,12 +2526,12 @@ msgstr "" #. frequency:1 iso_code_3:ukr #: DB:language/name:441 msgid "Ukrainian" -msgstr "" +msgstr "Ukrainiečių" #. frequency:1 iso_code_3:umb #: DB:language/name:442 msgid "Umbundu" -msgstr "" +msgstr "Umbundų" #. frequency:1 iso_code_3:sju #: DB:language/name:5995 @@ -2541,7 +2541,7 @@ msgstr "" #. frequency:0 iso_code_3:mis #: DB:language/name:273 msgid "Uncoded languages" -msgstr "" +msgstr "Nekoduotos kalbos" #. frequency:0 iso_code_3:und #: DB:language/name:443 @@ -2596,37 +2596,37 @@ msgstr "" #. frequency:0 iso_code_3:null #: DB:language/name:451 msgid "Wakashan languages" -msgstr "" +msgstr "Vakašanų kalbos" #. frequency:1 iso_code_3:wln #: DB:language/name:457 msgid "Walloon" -msgstr "" +msgstr "Valonų" #. frequency:1 iso_code_3:wae #: DB:language/name:6981 msgid "Walser" -msgstr "" +msgstr "Valserių" #. frequency:1 iso_code_3:war #: DB:language/name:453 msgid "Waray" -msgstr "" +msgstr "Varajų" #. frequency:1 iso_code_3:wbp #: DB:language/name:7009 msgid "Warlpiri" -msgstr "" +msgstr "Varlpirių" #. frequency:1 iso_code_3:was #: DB:language/name:454 msgid "Washo" -msgstr "" +msgstr "Vašų" #. frequency:1 iso_code_3:cym #: DB:language/name:455 msgid "Welsh" -msgstr "" +msgstr "Velsiečių" #. frequency:1 iso_code_3:are #: DB:language/name:820 @@ -2651,7 +2651,7 @@ msgstr "" #. frequency:1 iso_code_3:xho #: DB:language/name:460 msgid "Xhosa" -msgstr "" +msgstr "Ksosų" #. frequency:1 iso_code_3:rys #: DB:language/name:5808 @@ -2681,7 +2681,7 @@ msgstr "" #. frequency:1 iso_code_3:yox #: DB:language/name:7602 msgid "Yoron" -msgstr "" +msgstr "Joronų" #. frequency:1 iso_code_3:yor #: DB:language/name:464 @@ -2756,4 +2756,4 @@ msgstr "[Kelios kalbos]" #. frequency:1 iso_code_3:zxx #: DB:language/name:486 msgid "[No linguistic content]" -msgstr "" +msgstr "[Nėra kalbinio turinio]" diff --git a/po/mb_server.lt.po b/po/mb_server.lt.po index 57ed5b8440e..edc4be00471 100644 --- a/po/mb_server.lt.po +++ b/po/mb_server.lt.po @@ -12,7 +12,7 @@ msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-09-27 17:01+0000\n" -"PO-Revision-Date: 2023-09-24 15:27+0000\n" +"PO-Revision-Date: 2023-10-09 22:27+0000\n" "Last-Translator: \"Vac31.\" \n" "Language-Team: Lithuanian \n" @@ -21,8 +21,8 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < " -"11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? " -"1 : n % 1 != 0 ? 2: 3);\n" +"11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 :" +" n % 1 != 0 ? 2: 3);\n" "X-Generator: Weblate 5.0.2\n" #: ../root/components/common-macros.tt:12 @@ -1077,7 +1077,7 @@ msgstr "Galutinis taškas:" #: ../root/components/forms.tt:258 ../root/components/forms.tt:283 #: ../root/static/scripts/edit/components/GuessCaseOptions.js:113 msgid "English" -msgstr "Anglų k." +msgstr "Anglų" #: ../root/release/edit/tracklist.tt:3 msgid "Enter a tracklist below:" @@ -3102,7 +3102,7 @@ msgstr "" #: ../root/components/forms.tt:261 ../root/components/forms.tt:286 #: ../root/static/scripts/edit/components/GuessCaseOptions.js:116 msgid "Turkish" -msgstr "" +msgstr "Turkų" #: ../root/layout.tt:118 ../root/layout/components/Footer.js:34 msgid "Twitter" @@ -6329,7 +6329,7 @@ msgstr "" #: ../root/admin/EditBanner.js:39 ../root/admin/wikidoc/EditWikiDoc.js:51 #: ../root/admin/wikidoc/WikiDocIndex.js:102 msgid "Update" -msgstr "" +msgstr "Atnaujinti" #: ../root/account/applications/RegisterApplication.js:22 #: ../root/account/applications/RegisterApplication.js:23 @@ -6400,7 +6400,7 @@ msgstr "" #: ../root/admin/DeleteUser.js:75 msgid "Delete {e}" -msgstr "" +msgstr "Ištrinti {e}" #: ../root/admin/DeleteUser.js:84 msgid "" @@ -6456,7 +6456,7 @@ msgstr "" #: ../root/admin/EditUser.js:79 ../root/admin/PrivilegeSearch.js:67 msgid "Auto-editor" -msgstr "" +msgstr "Autoredaktorius (-ė)" #: ../root/admin/EditUser.js:84 ../root/admin/PrivilegeSearch.js:72 msgid "Transclusion editor" diff --git a/po/relationships.lt.po b/po/relationships.lt.po index 4807934e8f9..4c9dbb7bc3c 100644 --- a/po/relationships.lt.po +++ b/po/relationships.lt.po @@ -1,24 +1,28 @@ # # Translators: # Vaclovas lntas (Vac.)

  • A bootleg label reissues another label's catalog.
  • \n" "" msgstr "" +"Tai apibūdina situaciją, kai viena leidykla savo vardu perleidžia kitos " +"leidyklos katalogo (dalį). Taip gali atsitikti bent trimis atvejais:\n" +"
      \n" +"
    • Leidykla tam tikram laikotarpiui įsigyja kitos leidyklos katalogo nuomą " +"tam tikrame pasaulio regione.
    • \n" +"
    • Leidykla nusiperka teises į nebeegzistuojančios leidyklos katalogą arba " +"nusiperka leidyklą (su jos katalogu) ir ją išardo.
    • \n" +"
    • Nelegali leidykla perleidžia kitos leidyklos katalogą.
    • \n" +"
    " #: DB:link_type/description:140 DB:link_type/description:31 msgid "" @@ -1427,10 +1565,11 @@ msgstr "" #: DB:link_type/description:28 DB:link_type/description:138 msgid "This describes an engineer who performed a general engineering role." msgstr "" +"Tai apibūdina inžinierių (-ę), atliekantį bendrąsias inžinerines užduotis." #: DB:link_type/description:103 msgid "This indicates a person is a member of a group." -msgstr "" +msgstr "Tai nurodo, kad asmuo yra grupės narys (-ė)." #: DB:link_type/description:135 DB:link_type/description:62 msgid "" @@ -1465,30 +1604,37 @@ msgid "" "publishing label is a small label (usually a subdivision of a larger one) " "that exclusively handles the rights to works by that artist." msgstr "" +"Tai nurodo asmeninę atlikėjo leidėjo leidyklą. Asmeninė leidėjos leidykla – " +"tai nedidelė leidykla (paprastai didesnės leidyklos padalinys), kuri " +"išimtinai rūpinasi tik to atlikėjo kūrinių teisėmis." #: DB:link_type/description:1011 msgid "" "This indicates a recording engineer that recorded field recordings for the " "recording." msgstr "" +"Tai nurodo įrašo inžinierių (-ę), kuris (-i) įrašinėjo lauko įrašus šiam " +"įrašui." #: DB:link_type/description:1012 msgid "" "This indicates a recording engineer that recorded field recordings for the " "release." msgstr "" +"Tai nurodo įrašo inžinierių (-ę), kuris (-i) įrašinėjo lauko įrašus " +"leidiniui." #: DB:link_type/description:1174 msgid "This indicates an agency that did the art direction for the release." -msgstr "" +msgstr "Tai nurodo agentūrą, kuri kūrė leidinio meno vadovą." #: DB:link_type/description:1171 msgid "This indicates an agency who did design for the release." -msgstr "" +msgstr "Tai nurodo agentūrą, kuri kūrė leidinio dizainą." #: DB:link_type/description:1173 msgid "This indicates an agency who did illustration for the release." -msgstr "" +msgstr "Tai nurodo agentūrą, kuri atliko leidinio iliustraciją." #: DB:link_type/description:1172 msgid "" @@ -1516,17 +1662,19 @@ msgstr "" #: DB:link_attribute_type/description:921 msgid "This indicates an artist cancelled their appearance at an event." -msgstr "" +msgstr "Tai nurodo, kad atlikėjas (-a) atšaukė savo pasirodymą renginyje." #: DB:link_type/description:917 msgid "" "This indicates an artist reconstructed a work (usually one where the score " "was lost) to make it ready for performance." msgstr "" +"Tai nurodo, kad atlikėjas (-a) rekonstravo kūrinį (paprastai tokį, kurio " +"partitūra buvo prarasta), kad paruoštų jį atlikimui." #: DB:link_type/description:18 msgid "This indicates an artist that did the art direction for the release." -msgstr "" +msgstr "Tai nurodo atlikėją, kuris (-i) kūrė leidinio meno vadovą." #: DB:link_type/description:151 msgid "" @@ -1612,7 +1760,7 @@ msgstr "" msgid "" "This indicates that a person or agency did the art direction for the " "recording." -msgstr "" +msgstr "Tai nurodo, kad įrašo meno vadovavimą kūrė asmuo arba agentūra." #: DB:link_type/description:142 msgid "" @@ -3886,7 +4034,7 @@ msgstr "" #: DB:link_type/name:137 DB:link_type/name:1174 DB:link_type/name:18 msgid "art direction" -msgstr "" +msgstr "meno vadovavimas" #: DB:link_type/link_phrase:1192 msgid "art galleries" @@ -4655,65 +4803,65 @@ msgstr "" #: DB:link_type/name:1011 DB:link_type/name:1012 msgid "field recordist" -msgstr "" +msgstr "lauko įrašinėtojas (-a)" #: DB:link_type/link_phrase:1011 DB:link_type/link_phrase:1012 msgid "field recordist for" -msgstr "" +msgstr "lauko įrašinėtojas (-a)" #: DB:link_type/name:238 msgid "first track release" -msgstr "" +msgstr "pirmojo takelio išleidimas" #: DB:link_attribute_type/name:1133 msgid "folk music" -msgstr "" +msgstr "liaudies muzika" #: DB:link_type/link_phrase:832 DB:link_type/link_phrase:116 #: DB:link_type/link_phrase:895 DB:link_type/link_phrase:1004 #: DB:link_type/long_link_phrase:832 DB:link_type/long_link_phrase:116 #: DB:link_type/long_link_phrase:895 DB:link_type/long_link_phrase:1004 msgid "founded" -msgstr "" +msgstr "įkurta" #: DB:link_type/reverse_link_phrase:895 msgid "founded by" -msgstr "" +msgstr "įkūrė" #: DB:link_type/name:832 DB:link_type/name:895 DB:link_type/name:1004 msgid "founder" -msgstr "" +msgstr "įkūrėjas (-a)" #: DB:link_type/reverse_link_phrase:832 DB:link_type/reverse_link_phrase:116 #: DB:link_type/reverse_link_phrase:1004 msgid "founders" -msgstr "" +msgstr "įkūrėjai" #: DB:link_type/reverse_link_phrase:958 DB:link_type/reverse_link_phrase:75 #: DB:link_type/reverse_link_phrase:177 DB:link_type/reverse_link_phrase:255 msgid "free download page for" -msgstr "" +msgstr "nemokamas atsisiuntimo puslapis" #: DB:link_type/link_phrase:274 msgid "free download page for the score of" -msgstr "" +msgstr "nemokamas atsisiuntimo partitūros puslapis" #: DB:link_type/reverse_link_phrase:997 DB:link_type/reverse_link_phrase:194 msgid "free music streaming page for" -msgstr "" +msgstr "nemokamas muzikos srautinės transliacijos puslapis" #: DB:link_type/reverse_link_phrase:85 DB:link_type/reverse_link_phrase:268 msgid "free music {video} streaming page for" -msgstr "" +msgstr "nemokamas muzikos {video} srautinės transliacijos puslapis" #: DB:link_type/name:997 DB:link_type/name:85 DB:link_type/name:268 #: DB:link_type/name:194 msgid "free streaming" -msgstr "" +msgstr "nemokamas srautinis transliavimas" #: DB:link_type/reverse_link_phrase:1088 DB:link_type/reverse_link_phrase:752 msgid "from" -msgstr "" +msgstr "iš" #: DB:link_type/link_phrase:1096 DB:link_type/name:1096 msgid "fusion of" @@ -4721,15 +4869,15 @@ msgstr "" #: DB:link_type/name:1088 msgid "genre origin" -msgstr "" +msgstr "žanro kilmė" #: DB:link_type/link_phrase:1088 msgid "genres" -msgstr "" +msgstr "žanrai" #: DB:link_type/name:934 DB:link_type/name:713 msgid "geonames" -msgstr "" +msgstr "geonames" #: DB:link_type/link_phrase:957 DB:link_type/link_phrase:257 #: DB:link_type/link_phrase:73 DB:link_type/link_phrase:1091 @@ -4741,12 +4889,12 @@ msgstr "" #: DB:link_type/long_link_phrase:257 DB:link_type/long_link_phrase:73 #: DB:link_type/long_link_phrase:1091 DB:link_type/long_link_phrase:187 msgid "get the music" -msgstr "" +msgstr "gauti muziką" #: DB:link_type/link_phrase:911 DB:link_type/name:911 #: DB:link_type/reverse_link_phrase:911 DB:link_type/long_link_phrase:911 msgid "get the score" -msgstr "" +msgstr "gauti partitūrą" #: DB:link_type/link_phrase:955 DB:link_type/name:955 #: DB:link_type/long_link_phrase:955 @@ -4759,19 +4907,19 @@ msgstr "" #: DB:link_type/reverse_link_phrase:955 msgid "glass mastered by" -msgstr "" +msgstr "stiklo meistravimas padarė" #: DB:link_type/link_phrase:954 msgid "glass mastering location for" -msgstr "" +msgstr "stiklo meistravimo vieta" #: DB:link_type/name:1172 DB:link_type/name:125 DB:link_type/name:27 msgid "graphic design" -msgstr "" +msgstr "grafinis dizainas" #: DB:link_attribute_type/name:194 msgid "guest" -msgstr "" +msgstr "svečias" #: DB:link_type/name:800 msgid "guest performer" @@ -4823,16 +4971,16 @@ msgstr "" #: DB:link_type/long_link_phrase:77 msgid "has Amazon ASIN" -msgstr "" +msgstr "turi Amazon ASIN" #: DB:link_type/long_link_phrase:1131 DB:link_type/long_link_phrase:1130 msgid "has Apple Music page at" -msgstr "" +msgstr "turi Apple Music puslapį" #: DB:link_type/long_link_phrase:1092 DB:link_type/long_link_phrase:718 #: DB:link_type/long_link_phrase:719 msgid "has Bandcamp page at" -msgstr "" +msgstr "turi Bandcamp puslapis" #: DB:link_type/long_link_phrase:919 msgid "has CD Baby page at" @@ -4904,13 +5052,13 @@ msgstr "" #: DB:link_type/long_link_phrase:870 DB:link_type/long_link_phrase:291 #: DB:link_type/long_link_phrase:290 DB:link_type/long_link_phrase:940 msgid "has a SoundCloud page at" -msgstr "" +msgstr "turi SoundCloud puslapį" #: DB:link_type/long_link_phrase:86 DB:link_type/long_link_phrase:191 #: DB:link_type/long_link_phrase:210 DB:link_type/long_link_phrase:788 #: DB:link_type/long_link_phrase:1013 msgid "has a VGMdb page at" -msgstr "" +msgstr "turi VGMdb puslapį" #: DB:link_type/long_link_phrase:1087 DB:link_type/long_link_phrase:353 #: DB:link_type/long_link_phrase:749 DB:link_type/long_link_phrase:594 @@ -4991,7 +5139,7 @@ msgstr "" #: DB:link_type/long_link_phrase:173 DB:link_type/long_link_phrase:396 #: DB:link_type/long_link_phrase:732 msgid "has a picture at" -msgstr "" +msgstr "turi nuotrauką" #: DB:link_type/long_link_phrase:842 DB:link_type/long_link_phrase:94 msgid "has a review page at" @@ -5085,15 +5233,15 @@ msgstr "" #: DB:link_type/long_link_phrase:735 msgid "has child" -msgstr "" +msgstr "turi vaiką" #: DB:link_type/long_link_phrase:78 msgid "has cover art at" -msgstr "" +msgstr "turi viršelį" #: DB:link_type/long_link_phrase:737 msgid "has derived instrument" -msgstr "" +msgstr "išvedė instrumentą" #: DB:link_type/reverse_link_phrase:1096 msgid "has fusion genres" @@ -5105,7 +5253,7 @@ msgstr "" #: DB:link_type/long_link_phrase:725 msgid "has imprint" -msgstr "" +msgstr "turi įspaudą" #: DB:link_type/long_link_phrase:1097 msgid "has influences of" @@ -5166,7 +5314,7 @@ msgstr "" #: DB:link_type/long_link_phrase:1095 msgid "has subgenre" -msgstr "" +msgstr "turi subžanrą" #: DB:link_type/long_link_phrase:823 msgid "has subseries" @@ -5213,14 +5361,14 @@ msgstr "" #: DB:link_type/link_phrase:708 DB:link_type/link_phrase:709 #: DB:link_type/long_link_phrase:708 DB:link_type/long_link_phrase:709 msgid "holds copyright (©) for" -msgstr "" +msgstr "turi autorines teises (©)" #: DB:link_type/link_phrase:867 DB:link_type/link_phrase:711 #: DB:link_type/link_phrase:710 DB:link_type/link_phrase:869 #: DB:link_type/long_link_phrase:867 DB:link_type/long_link_phrase:711 #: DB:link_type/long_link_phrase:710 DB:link_type/long_link_phrase:869 msgid "holds phonographic copyright (℗) for" -msgstr "" +msgstr "turi fonografijos autorių teises (℗)" #: DB:link_type/name:801 msgid "host" @@ -5249,7 +5397,7 @@ msgstr "" #: DB:link_type/name:725 msgid "imprint" -msgstr "" +msgstr "įspaudas" #: DB:link_type/reverse_link_phrase:725 msgid "imprint of" @@ -5257,15 +5405,15 @@ msgstr "" #: DB:link_type/link_phrase:725 msgid "imprints" -msgstr "" +msgstr "įspaudai" #: DB:link_attribute_type/name:1134 msgid "improvisation" -msgstr "" +msgstr "improvizacija" #: DB:link_type/link_phrase:894 DB:link_type/name:894 msgid "included in" -msgstr "" +msgstr "įtraukta į" #: DB:link_type/reverse_link_phrase:894 msgid "includes" @@ -5334,7 +5482,7 @@ msgstr "" #: DB:link_type/link_phrase:896 DB:link_type/name:896 DB:link_type/name:918 #: DB:link_type/reverse_link_phrase:918 DB:link_type/long_link_phrase:896 msgid "invented" -msgstr "" +msgstr "išrado" #: DB:link_type/link_phrase:918 DB:link_type/reverse_link_phrase:896 msgid "invented by" @@ -5392,11 +5540,11 @@ msgstr "" #: DB:link_type/long_link_phrase:11 msgid "is a single/EP which was taken from" -msgstr "" +msgstr "yra singlas/mini albumas, kuris buvo paimtas iš" #: DB:link_type/long_link_phrase:728 msgid "is a tribute to" -msgstr "" +msgstr "yra padėka" #: DB:link_type/long_link_phrase:278 msgid "" @@ -5451,7 +5599,7 @@ msgstr "" #: DB:link_type/long_link_phrase:238 msgid "is the earliest release of" -msgstr "" +msgstr "yra anksčiausias leidinys" #: DB:link_type/long_link_phrase:241 msgid "is the earliest version of {translated} {parody}" @@ -5513,39 +5661,39 @@ msgstr "" #: DB:link_attribute_type/name:1132 msgid "jazz" -msgstr "" +msgstr "džiazas" #: DB:link_attribute_type/name:1261 DB:link_type/name:226 msgid "karaoke" -msgstr "" +msgstr "karaokė" #: DB:link_type/reverse_link_phrase:226 msgid "karaoke version of" -msgstr "" +msgstr "karaokės versija" #: DB:link_type/link_phrase:226 msgid "karaoke versions" -msgstr "" +msgstr "karaokė versijos" #: DB:link_type/name:203 msgid "label distribution" -msgstr "" +msgstr "leidyklos platinimas" #: DB:link_type/name:116 msgid "label founder" -msgstr "" +msgstr "leidyklos įkūrėjas" #: DB:link_type/name:200 msgid "label ownership" -msgstr "" +msgstr "leidyklos nuosavybė" #: DB:link_type/name:201 msgid "label reissue" -msgstr "" +msgstr "leidyklos pakartotinis leidimas" #: DB:link_type/name:202 msgid "label rename" -msgstr "" +msgstr "leidyklos pervadinimas" #: DB:link_type/link_phrase:969 DB:link_type/name:969 #: DB:link_type/reverse_link_phrase:969 @@ -5567,15 +5715,15 @@ msgstr "" #: DB:link_type/name:840 DB:link_type/name:837 DB:link_type/name:839 #: DB:link_type/name:838 msgid "last.fm" -msgstr "" +msgstr "last.fm" #: DB:link_type/link_phrase:238 msgid "later releases" -msgstr "" +msgstr "vėlesni leidiniai" #: DB:link_type/link_phrase:241 msgid "later {translated} {parody} versions" -msgstr "" +msgstr "vėlesnės {translated} {parody} versijos" #: DB:link_type/name:796 DB:link_type/name:797 msgid "launch event" @@ -5636,15 +5784,15 @@ msgstr "" #: DB:link_type/link_phrase:712 DB:link_type/link_phrase:1010 #: DB:link_type/long_link_phrase:712 DB:link_type/long_link_phrase:1010 msgid "licensed" -msgstr "" +msgstr "licencijuota" #: DB:link_type/reverse_link_phrase:712 DB:link_type/reverse_link_phrase:1010 msgid "licensed from" -msgstr "" +msgstr "licencijuota iš" #: DB:link_type/reverse_link_phrase:833 msgid "licensed to" -msgstr "" +msgstr "licencijuota į" #: DB:link_type/name:833 msgid "licensee" @@ -5656,19 +5804,19 @@ msgstr "" #: DB:link_type/name:712 DB:link_type/name:1010 msgid "licensor" -msgstr "" +msgstr "licencijos davėjas" #: DB:link_type/name:24 msgid "liner notes" -msgstr "" +msgstr "linijinės užrašai" #: DB:link_attribute_type/name:578 msgid "live" -msgstr "" +msgstr "gyvai" #: DB:link_type/name:17 msgid "live performance" -msgstr "" +msgstr "gyvas pasirodymas" #: DB:link_type/link_phrase:17 msgid "live performance of" @@ -5676,15 +5824,15 @@ msgstr "" #: DB:link_type/reverse_link_phrase:17 msgid "live performances" -msgstr "" +msgstr "gyvi pasirodymai" #: DB:link_type/link_phrase:995 DB:link_type/link_phrase:1085 msgid "location for" -msgstr "" +msgstr "vieta" #: DB:link_type/name:213 msgid "logo" -msgstr "" +msgstr "logotipas" #: DB:link_type/reverse_link_phrase:213 msgid "logo of" @@ -5700,17 +5848,17 @@ msgstr "" #: DB:link_type/name:56 DB:link_type/name:165 msgid "lyricist" -msgstr "" +msgstr "dainų tekstų autorius (-ė)" #: DB:link_type/name:93 DB:link_type/name:271 DB:link_type/name:197 #: DB:link_type/name:982 msgid "lyrics" -msgstr "" +msgstr "dainų tekstai" #: DB:link_type/link_phrase:93 DB:link_type/link_phrase:197 #: DB:link_type/link_phrase:982 DB:link_type/reverse_link_phrase:271 msgid "lyrics page" -msgstr "" +msgstr "dainų tekstų puslapis" #: DB:link_type/link_phrase:271 DB:link_type/reverse_link_phrase:93 #: DB:link_type/reverse_link_phrase:197 DB:link_type/reverse_link_phrase:982 @@ -5753,27 +5901,27 @@ msgstr "" #: DB:link_type/link_phrase:360 DB:link_type/name:360 #: DB:link_type/long_link_phrase:360 msgid "manufactured" -msgstr "" +msgstr "pagamintas" #: DB:link_type/name:953 DB:link_type/reverse_link_phrase:953 msgid "manufactured at" -msgstr "" +msgstr "pagaminta" #: DB:link_type/reverse_link_phrase:360 msgid "manufactured by" -msgstr "" +msgstr "pagamino" #: DB:link_type/name:952 DB:link_type/reverse_link_phrase:952 msgid "manufactured for" -msgstr "" +msgstr "pagaminta" #: DB:link_type/name:835 DB:link_type/reverse_link_phrase:835 msgid "manufactured in" -msgstr "" +msgstr "pagamintas" #: DB:link_type/link_phrase:835 DB:link_type/link_phrase:953 msgid "manufacturing location for" -msgstr "" +msgstr "gamybos vieta" #: DB:link_type/link_phrase:848 DB:link_type/name:848 #: DB:link_type/long_link_phrase:848 @@ -5815,11 +5963,11 @@ msgstr "" #: DB:link_type/name:136 DB:link_type/name:42 msgid "mastering" -msgstr "" +msgstr "masteringas" #: DB:link_type/name:704 msgid "mastering engineer position" -msgstr "" +msgstr "masteringo inžinieriaus (-ės) pozicija" #: DB:link_type/link_phrase:704 msgid "mastering engineer position at" @@ -5843,39 +5991,39 @@ msgstr "" #: DB:link_attribute_type/name:570 msgid "medium 1" -msgstr "" +msgstr "laikmena 1" #: DB:link_attribute_type/name:569 msgid "medium 2" -msgstr "" +msgstr "laikmena 2" #: DB:link_attribute_type/name:571 msgid "medium 3" -msgstr "" +msgstr "laikmena 3" #: DB:link_attribute_type/name:577 msgid "medium 4" -msgstr "" +msgstr "laikmena 4" #: DB:link_attribute_type/name:576 msgid "medium 5" -msgstr "" +msgstr "laikmena 5" #: DB:link_attribute_type/name:575 msgid "medium 6" -msgstr "" +msgstr "laikmena 6" #: DB:link_attribute_type/name:574 msgid "medium 7" -msgstr "" +msgstr "laikmena 7" #: DB:link_attribute_type/name:573 msgid "medium 8" -msgstr "" +msgstr "laikmena 8" #: DB:link_attribute_type/name:572 msgid "medium 9" -msgstr "" +msgstr "laikmena 9" #: DB:link_attribute_type/name:750 DB:link_type/name:239 msgid "medley" @@ -5906,62 +6054,62 @@ msgstr "" #: DB:link_type/link_phrase:25 DB:link_type/link_phrase:998 #: DB:link_type/link_phrase:999 msgid "miscellaneous roles" -msgstr "" +msgstr "įvairūs vaidmenys" #: DB:link_type/reverse_link_phrase:162 DB:link_type/reverse_link_phrase:129 #: DB:link_type/reverse_link_phrase:25 DB:link_type/reverse_link_phrase:998 #: DB:link_type/reverse_link_phrase:999 msgid "miscellaneous support" -msgstr "" +msgstr "įvairi pagalba" #: DB:link_type/name:26 DB:link_type/name:143 msgid "mix" -msgstr "" +msgstr "miksas" #: DB:link_type/name:43 DB:link_type/name:155 msgid "mix-DJ" -msgstr "" +msgstr "miksas DJ" #: DB:link_type/name:694 DB:link_type/name:696 msgid "mixed at" -msgstr "" +msgstr "sumiksuotas" #: DB:link_type/name:946 DB:link_type/name:947 #: DB:link_type/reverse_link_phrase:946 DB:link_type/reverse_link_phrase:947 msgid "mixed for" -msgstr "" +msgstr "sumiksuota" #: DB:link_type/name:757 DB:link_type/name:758 msgid "mixed in" -msgstr "" +msgstr "sumiksuoti" #: DB:link_type/name:703 msgid "mixing engineer position" -msgstr "" +msgstr "miksavimo inžinieriaus (-ės) pozicija" #: DB:link_type/link_phrase:703 msgid "mixing engineer position at" -msgstr "" +msgstr "miksavimo inžinieriaus (-ės) pozicija" #: DB:link_type/reverse_link_phrase:703 msgid "mixing engineers" -msgstr "" +msgstr "miksavimo inžinieriai" #: DB:link_attribute_type/name:1031 msgid "movement" -msgstr "" +msgstr "judėjimas" #: DB:link_type/long_link_phrase:958 DB:link_type/long_link_phrase:177 msgid "music can be downloaded for free at" -msgstr "" +msgstr "muziką galima nemokamai atsisiųsti iš" #: DB:link_type/long_link_phrase:959 DB:link_type/long_link_phrase:176 msgid "music can be purchased for download at" -msgstr "" +msgstr "muziką galima nusipirkti atsisiuntimui iš" #: DB:link_type/long_link_phrase:960 DB:link_type/long_link_phrase:175 msgid "music can be purchased for mail-order at" -msgstr "" +msgstr "muziką galima nusipirkti užsakant paštu iš" #: DB:link_type/long_link_phrase:997 DB:link_type/long_link_phrase:194 msgid "music can be streamed for free at" @@ -5985,97 +6133,97 @@ msgstr "" #: DB:link_attribute_type/name:1222 msgid "music theory" -msgstr "" +msgstr "muzikos teorija" #: DB:link_attribute_type/name:1203 msgid "music therapy" -msgstr "" +msgstr "muzikos terapija" #: DB:link_type/name:857 msgid "music video" -msgstr "" +msgstr "muzikinis vaizdo įrašas" #: DB:link_type/reverse_link_phrase:857 msgid "music video for" -msgstr "" +msgstr "muzikinis vaizdo įrašas, skirtas" #: DB:link_type/link_phrase:857 msgid "music videos" -msgstr "" +msgstr "muzikiniai vaizdo įrašai" #: DB:link_type/name:1046 msgid "musical quotation" -msgstr "" +msgstr "muzikinė citata" #: DB:link_type/link_phrase:106 DB:link_type/reverse_link_phrase:106 #: DB:link_type/long_link_phrase:106 msgid "musical relationship" -msgstr "" +msgstr "muzikinis santykis" #: DB:link_type/name:106 msgid "musical relationships" -msgstr "" +msgstr "muzikiniai santykiai" #: DB:link_attribute_type/name:1221 msgid "musical theatre" -msgstr "" +msgstr "muzikinis teatras" #: DB:link_attribute_type/name:1141 msgid "musicology" -msgstr "" +msgstr "muzikologija" #: DB:link_type/name:215 DB:link_type/name:462 DB:link_type/name:189 msgid "myspace" -msgstr "" +msgstr "myspace" #: DB:link_type/link_phrase:973 DB:link_type/link_phrase:972 #: DB:link_type/link_phrase:974 DB:link_type/name:973 DB:link_type/name:972 #: DB:link_type/name:975 DB:link_type/name:974 DB:link_type/name:1000 #: DB:link_type/reverse_link_phrase:975 DB:link_type/reverse_link_phrase:1000 msgid "named after" -msgstr "" +msgstr "pavadintas pagal" #: DB:link_type/link_phrase:935 DB:link_type/name:935 #: DB:link_type/reverse_link_phrase:935 DB:link_type/long_link_phrase:935 msgid "non-performing relationships" -msgstr "" +msgstr "neatliekančios santykiai" #: DB:link_attribute_type/name:788 DB:link_attribute_type/name:1032 msgid "number" -msgstr "" +msgstr "numeris" #: DB:link_type/name:745 DB:link_type/name:782 DB:link_type/name:183 #: DB:link_type/name:363 DB:link_type/name:287 msgid "official homepage" -msgstr "" +msgstr "oficialus pagrindinis puslapis" #: DB:link_type/reverse_link_phrase:745 DB:link_type/reverse_link_phrase:782 #: DB:link_type/reverse_link_phrase:183 DB:link_type/reverse_link_phrase:219 #: DB:link_type/reverse_link_phrase:363 msgid "official homepage for" -msgstr "" +msgstr "oficialus pagrindinis puslapis, skirtas" #: DB:link_type/link_phrase:745 DB:link_type/link_phrase:782 #: DB:link_type/link_phrase:183 DB:link_type/link_phrase:219 #: DB:link_type/link_phrase:363 msgid "official homepages" -msgstr "" +msgstr "oficialūs pagrindiniai puslapiai" #: DB:link_type/name:219 msgid "official site" -msgstr "" +msgstr "oficiali svetainė" #: DB:link_type/link_phrase:185 msgid "online communities" -msgstr "" +msgstr "interneto bendruomenės" #: DB:link_type/name:185 msgid "online community" -msgstr "" +msgstr "internetinė bendruomenė" #: DB:link_type/reverse_link_phrase:185 msgid "online community page for" -msgstr "" +msgstr "internetinis bendruomenės puslapis, skirtas" #: DB:link_type/link_phrase:841 DB:link_type/link_phrase:221 #: DB:link_type/link_phrase:660 DB:link_type/name:841 DB:link_type/name:221 @@ -6084,19 +6232,19 @@ msgstr "" #: DB:link_type/long_link_phrase:841 DB:link_type/long_link_phrase:221 #: DB:link_type/long_link_phrase:660 msgid "online data" -msgstr "" +msgstr "internetiniai duomenys" #: DB:link_attribute_type/name:1220 msgid "opera" -msgstr "" +msgstr "opera" #: DB:link_attribute_type/name:1053 msgid "optional" -msgstr "" +msgstr "pasirinktinai" #: DB:link_type/name:807 msgid "orchestra" -msgstr "" +msgstr "orkestras" #: DB:link_type/link_phrase:807 msgid "orchestra at" @@ -6104,15 +6252,15 @@ msgstr "" #: DB:link_type/long_link_phrase:150 DB:link_type/long_link_phrase:45 msgid "orchestra {additional:additionally} performed" -msgstr "" +msgstr "orkestras {additional:papildomai} atliko" #: DB:link_type/reverse_link_phrase:807 msgid "orchestras" -msgstr "" +msgstr "orkestrai" #: DB:link_type/name:316 msgid "orchestration" -msgstr "" +msgstr "orkestravimas" #: DB:link_type/reverse_link_phrase:316 msgid "orchestration of" @@ -6140,7 +6288,7 @@ msgstr "" #: DB:link_attribute_type/name:1225 DB:link_attribute_type/name:1128 msgid "other" -msgstr "" +msgstr "kiti" #: DB:link_type/link_phrase:1086 DB:link_type/link_phrase:753 #: DB:link_type/link_phrase:730 DB:link_type/link_phrase:82 @@ -6159,37 +6307,37 @@ msgstr "" #: DB:link_type/reverse_link_phrase:561 DB:link_type/reverse_link_phrase:746 #: DB:link_type/reverse_link_phrase:96 DB:link_type/reverse_link_phrase:803 msgid "other databases" -msgstr "" +msgstr "kitos duomenų bazės" #: DB:link_type/name:241 msgid "other version" -msgstr "" +msgstr "kita versija" #: DB:link_type/link_phrase:233 DB:link_type/name:233 #: DB:link_type/reverse_link_phrase:233 DB:link_type/long_link_phrase:233 msgid "other versions" -msgstr "" +msgstr "kitos versijos" #: DB:link_attribute_type/name:461 msgid "other vocals" -msgstr "" +msgstr "kiti vokalai" #: DB:link_type/name:988 DB:link_type/name:989 DB:link_type/name:991 #: DB:link_type/reverse_link_phrase:988 DB:link_type/reverse_link_phrase:989 #: DB:link_type/reverse_link_phrase:991 msgid "owner" -msgstr "" +msgstr "savininkas (-ė)" #: DB:link_type/link_phrase:990 DB:link_type/name:990 #: DB:link_type/reverse_link_phrase:990 DB:link_type/long_link_phrase:990 msgid "ownership" -msgstr "" +msgstr "nuosavybė" #: DB:link_type/link_phrase:988 DB:link_type/link_phrase:989 #: DB:link_type/link_phrase:991 DB:link_type/long_link_phrase:988 #: DB:link_type/long_link_phrase:989 DB:link_type/long_link_phrase:991 msgid "owns" -msgstr "" +msgstr "priklauso" #: DB:link_type/name:109 msgid "parent" @@ -6236,42 +6384,42 @@ msgstr "" #: DB:link_type/name:901 DB:link_type/name:900 DB:link_type/name:898 #: DB:link_type/name:899 DB:link_type/name:897 msgid "patronage" -msgstr "" +msgstr "mecenatystė" #: DB:link_type/link_phrase:901 DB:link_type/link_phrase:900 #: DB:link_type/link_phrase:898 DB:link_type/link_phrase:899 #: DB:link_type/link_phrase:897 msgid "patronage page" -msgstr "" +msgstr "mecenavimo puslapis" #: DB:link_type/reverse_link_phrase:901 DB:link_type/reverse_link_phrase:900 #: DB:link_type/reverse_link_phrase:898 DB:link_type/reverse_link_phrase:899 #: DB:link_type/reverse_link_phrase:897 msgid "patronage page for" -msgstr "" +msgstr "mecenavimo puslapis, skirtas" #: DB:link_type/link_phrase:34 DB:link_type/link_phrase:122 #: DB:link_type/name:34 DB:link_type/name:122 DB:link_type/name:278 #: DB:link_type/reverse_link_phrase:34 DB:link_type/reverse_link_phrase:122 #: DB:link_type/long_link_phrase:34 DB:link_type/long_link_phrase:122 msgid "performance" -msgstr "" +msgstr "atlikimas" #: DB:link_type/reverse_link_phrase:108 msgid "performance name of" -msgstr "" +msgstr "atlikimo pavadinimas" #: DB:link_type/link_phrase:887 DB:link_type/name:887 msgid "performance of" -msgstr "" +msgstr "atlikimas" #: DB:link_type/reverse_link_phrase:887 msgid "performed at" -msgstr "" +msgstr "atlikta" #: DB:link_type/long_link_phrase:292 msgid "performed the voice of" -msgstr "" +msgstr "atliko balsą" #: DB:link_type/long_link_phrase:152 DB:link_type/long_link_phrase:53 msgid "performed {additional} {assistant} chorus master on" @@ -6321,50 +6469,50 @@ msgstr "" #: DB:link_type/name:867 DB:link_type/name:711 DB:link_type/name:710 #: DB:link_type/name:869 msgid "phonographic copyright" -msgstr "" +msgstr "fonografijos autorių teisės" #: DB:link_type/reverse_link_phrase:867 DB:link_type/reverse_link_phrase:711 #: DB:link_type/reverse_link_phrase:710 DB:link_type/reverse_link_phrase:869 msgid "phonographic copyright (℗) by" -msgstr "" +msgstr "fonografines autorių teises (℗)" #: DB:link_type/name:123 DB:link_type/name:1175 DB:link_type/name:20 msgid "photography" -msgstr "" +msgstr "fotografija" #: DB:link_type/link_phrase:173 DB:link_type/link_phrase:396 #: DB:link_type/link_phrase:732 msgid "picture" -msgstr "" +msgstr "nuotrauka" #: DB:link_type/reverse_link_phrase:173 DB:link_type/reverse_link_phrase:396 #: DB:link_type/reverse_link_phrase:732 msgid "picture of" -msgstr "" +msgstr "nuotrauka" #: DB:link_type/link_phrase:915 DB:link_type/name:915 msgid "podcast feed" -msgstr "" +msgstr "tinklalaidės kanalas" #: DB:link_type/reverse_link_phrase:915 msgid "podcast feed for" -msgstr "" +msgstr "tinklalaidės kanalas, skirtas" #: DB:link_attribute_type/name:1200 msgid "popular / rock music" -msgstr "" +msgstr "populiarioji / roko muzika" #: DB:link_type/link_phrase:808 DB:link_type/name:808 msgid "poster" -msgstr "" +msgstr "plakatas" #: DB:link_type/reverse_link_phrase:808 msgid "poster for" -msgstr "" +msgstr "plakatas, skirtas" #: DB:link_attribute_type/name:1219 msgid "postgraduate" -msgstr "" +msgstr "antrosios pakopos studijos" #: DB:link_attribute_type/name:1353 msgid "pre" @@ -6373,35 +6521,35 @@ msgstr "" #: DB:link_type/name:845 DB:link_type/name:716 DB:link_type/name:715 #: DB:link_type/name:956 msgid "premiere" -msgstr "" +msgstr "premjera" #: DB:link_type/reverse_link_phrase:845 DB:link_type/reverse_link_phrase:716 msgid "premiered at" -msgstr "" +msgstr "premjeruota" #: DB:link_type/reverse_link_phrase:956 msgid "premiered by" -msgstr "" +msgstr "premjera atliko" #: DB:link_type/reverse_link_phrase:715 msgid "premiered in" -msgstr "" +msgstr "premjeruotas" #: DB:link_type/link_phrase:845 msgid "premieres" -msgstr "" +msgstr "premjeros" #: DB:link_type/link_phrase:716 DB:link_type/link_phrase:715 msgid "premieres hosted" -msgstr "" +msgstr "premjeros surengtos" #: DB:link_type/name:1168 DB:link_type/reverse_link_phrase:1168 msgid "presented" -msgstr "" +msgstr "pristatyta" #: DB:link_type/link_phrase:1168 msgid "presented by" -msgstr "" +msgstr "pristatė" #: DB:link_type/link_phrase:942 DB:link_type/name:942 #: DB:link_type/long_link_phrase:942 @@ -6528,7 +6676,7 @@ msgstr "" #: DB:link_type/long_link_phrase:137 DB:link_type/long_link_phrase:1174 #: DB:link_type/long_link_phrase:18 msgid "provided {additional} art direction on" -msgstr "" +msgstr "pateikė {additional:papildomą} meno vadovavimą" #: DB:link_type/long_link_phrase:993 DB:link_type/long_link_phrase:1170 msgid "provided {additional} artwork on" @@ -7792,7 +7940,7 @@ msgstr "" #: DB:link_type/link_phrase:18 DB:link_type/reverse_link_phrase:137 #: DB:link_type/reverse_link_phrase:1174 DB:link_type/reverse_link_phrase:18 msgid "{additional} art direction" -msgstr "" +msgstr "{additional:papildomas} meno vadovavimas" #: DB:link_type/link_phrase:993 DB:link_type/link_phrase:1170 #: DB:link_type/reverse_link_phrase:993 DB:link_type/reverse_link_phrase:1170 diff --git a/po/scripts.lt.po b/po/scripts.lt.po index cdc7bbc544c..4d8572615ca 100644 --- a/po/scripts.lt.po +++ b/po/scripts.lt.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2023-10-01 20:27+0000\n" +"PO-Revision-Date: 2023-10-09 17:27+0000\n" "Last-Translator: \"Vac31.\" \n" "Language-Team: Lithuanian \n" @@ -21,7 +21,7 @@ msgstr "" #. frequency:1 iso_code:Afak #: DB:script/name:133 msgid "Afaka" -msgstr "Afakų" +msgstr "Afaka" #. frequency:4 iso_code:Arab #: DB:script/name:18 @@ -76,12 +76,12 @@ msgstr "Knyga Pahlavų" #. frequency:3 iso_code:Bopo #: DB:script/name:42 msgid "Bopomofo" -msgstr "Bopomofotų" +msgstr "Bopomofo" #. frequency:1 iso_code:Brah #: DB:script/name:47 msgid "Brahmi" -msgstr "Brahmų" +msgstr "Brahmi" #. frequency:2 iso_code:Brai #: DB:script/name:96 @@ -216,27 +216,27 @@ msgstr "Etiopų" #. frequency:3 iso_code:Geor #: DB:script/name:36 msgid "Georgian" -msgstr "Gruziniškas" +msgstr "Gruzinų" #. frequency:2 iso_code:Glag #: DB:script/name:33 msgid "Glagolitic" -msgstr "Glagolinis" +msgstr "Glagolų" #. frequency:2 iso_code:Goth #: DB:script/name:24 msgid "Gothic" -msgstr "Gotikinis" +msgstr "Gotų" #. frequency:1 iso_code:Gran #: DB:script/name:152 msgid "Grantha" -msgstr "Granthos" +msgstr "Grantha" #. frequency:4 iso_code:Grek #: DB:script/name:22 msgid "Greek" -msgstr "Graikiškas" +msgstr "Graikų" #. frequency:3 iso_code:Gujr #: DB:script/name:52 @@ -246,7 +246,7 @@ msgstr "Gudžaratų" #. frequency:3 iso_code:Guru #: DB:script/name:49 msgid "Gurmukhi" -msgstr "Gurmuchų" +msgstr "Gurmuchi" #. frequency:4 iso_code:Hani #: DB:script/name:92 @@ -266,7 +266,7 @@ msgstr "Hanų (tradicinis variantas)" #. frequency:3 iso_code:Hang #: DB:script/name:101 msgid "Hangul" -msgstr "Hangulo" +msgstr "Hangul" #. frequency:2 iso_code:Hano #: DB:script/name:77 @@ -371,7 +371,7 @@ msgstr "Chutsurų" #. frequency:4 iso_code:Kore #: DB:script/name:43 msgid "Korean" -msgstr "Korėjietiškas" +msgstr "Korėjiečių" #. frequency:1 iso_code:Kpel #: DB:script/name:146 @@ -381,7 +381,7 @@ msgstr "Kpelių" #. frequency:3 iso_code:Laoo #: DB:script/name:69 msgid "Lao" -msgstr "Laoso" +msgstr "Laosų" #. frequency:4 iso_code:Latn #: DB:script/name:28 @@ -471,32 +471,32 @@ msgstr "Meitei Majekų" #. frequency:1 iso_code:Mend #: DB:script/name:148 msgid "Mende" -msgstr "" +msgstr "Mendų" #. frequency:1 iso_code:Merc #: DB:script/name:153 msgid "Meroitic Cursive" -msgstr "" +msgstr "Meroitų kursyvas" #. frequency:1 iso_code:Mero #: DB:script/name:8 msgid "Meroitic Hieroglyphs" -msgstr "" +msgstr "Meroitų hieroglifai" #. frequency:1 iso_code:Plrd #: DB:script/name:41 msgid "Miao" -msgstr "" +msgstr "Miao" #. frequency:3 iso_code:Mong #: DB:script/name:17 msgid "Mongolian" -msgstr "" +msgstr "Mongolų" #. frequency:1 iso_code:Moon #: DB:script/name:119 msgid "Moon" -msgstr "" +msgstr "Mėnulis" #. frequency:1 iso_code:Mroo #: DB:script/name:135 @@ -686,7 +686,7 @@ msgstr "Simbolių" #. frequency:2 iso_code:Syrc #: DB:script/name:12 msgid "Syriac" -msgstr "Siriškas" +msgstr "Sirų" #. frequency:1 iso_code:Syrn #: DB:script/name:13 diff --git a/po/statistics.lt.po b/po/statistics.lt.po index 5a293c89532..c0dc7fe45ae 100644 --- a/po/statistics.lt.po +++ b/po/statistics.lt.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-09-24 15:27+0000\n" +"PO-Revision-Date: 2023-10-03 22:27+0000\n" "Last-Translator: \"Vac31.\" \n" "Language-Team: Lithuanian \n" @@ -572,7 +572,7 @@ msgstr "" #: DB:statistics.statistic_event/title:2007-11-07 msgid "Last.fm" -msgstr "" +msgstr "Last.fm" #: DB:statistics.statistic_event/description:2007-11-07 msgid "Last.fm signs up with MetaBrainz and starts using MusicBrainz data." From 9a446e9dc5dfa0ed3f992371aac55f0f3ea00c33 Mon Sep 17 00:00:00 2001 From: "salo.rock" Date: Tue, 31 Oct 2023 22:27:55 +0000 Subject: [PATCH 064/194] Translated using Weblate (Italian) Currently translated at 100.0% (3323 of 3323 strings) Translated using Weblate (Italian) Currently translated at 100.0% (1762 of 1762 strings) Translated using Weblate (Italian) Currently translated at 100.0% (1625 of 1625 strings) Translated using Weblate (Italian) Currently translated at 100.0% (3323 of 3323 strings) Co-authored-by: salo.rock Translate-URL: https://translations.metabrainz.org/projects/musicbrainz/attributes/it/ Translate-URL: https://translations.metabrainz.org/projects/musicbrainz/relationship-types/it/ Translate-URL: https://translations.metabrainz.org/projects/musicbrainz/server/it/ Translation: MusicBrainz/Attributes Translation: MusicBrainz/Relationship Types Translation: MusicBrainz/Server --- po/attributes.it.po | 10 +++++++--- po/mb_server.it.po | 39 ++++++++++++++++++++------------------- po/relationships.it.po | 15 +++++++++------ 3 files changed, 36 insertions(+), 28 deletions(-) diff --git a/po/attributes.it.po b/po/attributes.it.po index bfe7afd9159..7ce5c508cc1 100644 --- a/po/attributes.it.po +++ b/po/attributes.it.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2023-09-23 15:27+0000\n" +"PO-Revision-Date: 2023-10-04 03:27+0000\n" "Last-Translator: \"salo.rock\" \n" "Language-Team: Italian \n" "Language-Team: Italian " msgstr "" "Attenzione! \"1990-10-25\" è la data fasulla che Amazon assegna a tutte le " -"pubblicazioni di cui non conosce la data reale. Utilizza questa data " -"solo se sei sicuro che sia corretta!" +"pubblicazioni di cui non conosce la data reale. Usa questa data solo " +"se sei sicuro che sia corretta!" #: ../root/release/edit/tracklist.tt:345 ../root/release/edit/tracklist.tt:408 msgid "Warning:" @@ -3637,7 +3637,7 @@ msgstr "Non hai effettuato nessuna modifica!" #: ../root/edit/search_macros.tt:414 msgid "You must be logged in to use this option." -msgstr "Devi effettuare l'accesso per utilizzare questa opzione." +msgstr "Devi effettuare l'accesso per utilizzare quest'opzione." #: ../root/components/common-macros.tt:576 msgid "You must enter a disambiguation comment for this entity." @@ -9909,6 +9909,8 @@ msgstr "Nuovo artista" #: ../root/edit/details/EditRecording.js:63 msgid "This edit makes subsecond changes to the recording length" msgstr "" +"Questa modifica apporta cambiamenti inferiori al secondo alla durata della " +"registrazione" #: ../root/edit/details/EditRelationshipType.js:146 #: ../root/edit/details/historic/EditRelationship.js:44 @@ -15216,10 +15218,9 @@ msgid "" "new name. Only use this if you are sure the existing credits are incorrect " "(e.g. for typos)." msgstr "" -"Questa opzione inserirà modifiche aggiuntive per cambiare ogni " -"accreditamento secondo il nuovo nome. Utilizza questa opzione solo se sei " -"sicuro che gli accreditamenti esistenti sono errati (per es. a causa di " -"refusi)." +"Quest'opzione inserirà modifiche aggiuntive per cambiare ogni accreditamento " +"secondo il nuovo nome. Usa quest'opzione solo se sei sicuro che gli " +"accreditamenti esistenti sono errati (per es. a causa di refusi)." #: ../root/static/scripts/artist/components/ArtistCreditRenamer.js:231 msgid "" @@ -16839,9 +16840,9 @@ msgid "" "Some tracks/mediums haven’t been loaded yet. If you want to use this option, " "please close this dialog and load all tracks/mediums beforehand." msgstr "" -"Alcune tracce/alcuni supporti non sono ancora stati caricati. Se vuoi usare " -"questa opzione, chiudi questa finestra di dialogo e carica prima tutte le " -"tracce/i supporti." +"Alcune tracce/alcuni supporti non sono ancora stati caricati. Se vuoi " +"utilizzare quest'opzione, chiudi questa finestra di dialogo e carica prima " +"tutte le tracce/i supporti." #: ../root/static/scripts/relationship-editor/components/DialogEntityCredit.js:149 msgid "All of these relationships." @@ -17194,8 +17195,8 @@ msgid "" "Only use this option after you’ve tried searching for the work(s) you want " "to create, and are certain they do not already exist on MusicBrainz." msgstr "" -"Usa questa opzione solo dopo aver cercato l'opera/e che intendi creare e se " -"sei certo che essa non esiste già su MusicBrainz." +"Usa quest'opzione solo dopo aver cercato l'opera/e che intendi creare ed " +"esserti assicurato che non esista(no) già su MusicBrainz." #: ../root/static/scripts/release/components/BatchCreateWorksDialog.js:323 #: ../root/static/scripts/release/components/RelationshipEditorBatchTools.js:94 diff --git a/po/relationships.it.po b/po/relationships.it.po index 0aaae148c99..00713c6aebe 100644 --- a/po/relationships.it.po +++ b/po/relationships.it.po @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2023-09-23 15:27+0000\n" +"PO-Revision-Date: 2023-10-04 03:27+0000\n" "Last-Translator: \"salo.rock\" \n" "Language-Team: Italian Date: Tue, 31 Oct 2023 22:27:55 +0000 Subject: [PATCH 065/194] Translated using Weblate (German) Currently translated at 78.6% (2615 of 3323 strings) Translated using Weblate (German) Currently translated at 78.6% (2614 of 3323 strings) Co-authored-by: Philipp Wolfer Translate-URL: https://translations.metabrainz.org/projects/musicbrainz/server/de/ Translation: MusicBrainz/Server --- po/mb_server.de.po | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/po/mb_server.de.po b/po/mb_server.de.po index cf9181fbb3f..386f41dffb9 100644 --- a/po/mb_server.de.po +++ b/po/mb_server.de.po @@ -72,7 +72,7 @@ msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-09-27 17:01+0000\n" -"PO-Revision-Date: 2023-08-31 20:27+0000\n" +"PO-Revision-Date: 2023-10-12 13:27+0000\n" "Last-Translator: Philipp Wolfer \n" "Language-Team: German \n" @@ -81,7 +81,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.18.2\n" +"X-Generator: Weblate 5.0.2\n" #: ../root/components/common-macros.tt:12 msgid " ({text})" @@ -6108,7 +6108,7 @@ msgstr "" #: ../lib/MusicBrainz/Server/Form/User/Report.pm:40 #: ../root/user/ReportUser.js:69 msgid "Editor has violated some other part of our Code of Conduct" -msgstr "Bearbeiter verletzte einen anderen Teil unserer Verhaltensregeln" +msgstr "Bearbeiter verletzte einen anderen Teil unseres Verhaltenskodex" #: ../lib/MusicBrainz/Server/Form/Utils.pm:46 #: ../root/static/scripts/common/i18n/localizeLanguageName.js:19 @@ -9174,8 +9174,8 @@ msgid "" "writing edit notes!" msgstr "" "Bearbeitungsbemerkungen unterstützen {doc_formatting|eine begrenzte Anzahl " -"von Wiki-Formatierungsoptionen}. Bitte beachte immer die {doc_coc|" -"Verhaltensregeln}, wenn du Bemerkungen schreibst!" +"von Wiki-Formatierungsoptionen}. Bitte beachte immer den " +"{doc_coc|Verhaltenskodex}, wenn du Bemerkungen schreibst!" #: ../root/edit/components/EditNotes.js:55 msgid "No edit notes have been added." @@ -10854,7 +10854,7 @@ msgstr "Gesellschaftsvertrag" #: ../root/layout/components/BottomMenu.js:141 msgid "Code of Conduct" -msgstr "Verhaltensregeln" +msgstr "Verhaltenskodex" #: ../root/layout/components/BottomMenu.js:144 msgid "Privacy Policy" @@ -11406,7 +11406,7 @@ msgstr "Koordinaten:" #: ../root/layout/components/sidebar/PlayOnListenBrainzButton.js:59 msgid "ListenBrainz" -msgstr "" +msgstr "ListenBrainz" #: ../root/layout/components/sidebar/PlayOnListenBrainzButton.js:64 msgid "Play on ListenBrainz" @@ -17149,8 +17149,7 @@ msgstr "" #: ../root/user/ReportUser.js:101 msgid "Please review our {uri|Code of Conduct} before sending a report." -msgstr "" -"Bitte lies unseren {uri|Code of Conduct}, bevor du eine Meldung machst." +msgstr "Bitte lies unseren {uri|Verhaltenskodex}, bevor du eine Meldung machst." #: ../root/user/ReportUser.js:109 msgid "" From 9b71cb830d704302ba90cafdf7ca096734c69988 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=BE=D0=B4=D0=BA=D0=B0665?= Date: Tue, 31 Oct 2023 22:27:55 +0000 Subject: [PATCH 066/194] Translated using Weblate (Portuguese) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 0.9% (16 of 1625 strings) Co-authored-by: Водка665 Translate-URL: https://translations.metabrainz.org/projects/musicbrainz/attributes/pt/ Translation: MusicBrainz/Attributes --- po/attributes.pt.po | 46 ++++++++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/po/attributes.pt.po b/po/attributes.pt.po index b64c71747cb..f345e068335 100644 --- a/po/attributes.pt.po +++ b/po/attributes.pt.po @@ -1,18 +1,20 @@ # # Translators: +# Водка665 , 2023. msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2012-05-24 18:52+0000\n" -"Last-Translator: FULL NAME