From 06bdd9f538881c64e86eb8651034bdcc27469687 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Anne?= Date: Mon, 25 Sep 2023 09:15:57 +0200 Subject: [PATCH 01/29] Ignore "email" requester when computing available ticket entities fixes #15625 fixes #15305 --- src/CommonITILObject.php | 5 +- tests/functional/Ticket.php | 194 ++++++++++++++++++++++++++++-------- 2 files changed, 158 insertions(+), 41 deletions(-) diff --git a/src/CommonITILObject.php b/src/CommonITILObject.php index 579b388b759..f2827cb5208 100644 --- a/src/CommonITILObject.php +++ b/src/CommonITILObject.php @@ -840,7 +840,10 @@ public function getEntitiesForRequesters(array $params = []) } if (isset($params['_actors']['requester'])) { foreach ($params['_actors']['requester'] as $actor) { - if ($actor['itemtype'] == "User") { + if ( + $actor['itemtype'] == "User" + && (int)$actor['items_id'] > 0 // ignore actor that is added by only its email + ) { $requesters[] = $actor['items_id']; } } diff --git a/tests/functional/Ticket.php b/tests/functional/Ticket.php index 7e8b5a43e04..682f6e8ddf5 100644 --- a/tests/functional/Ticket.php +++ b/tests/functional/Ticket.php @@ -46,6 +46,7 @@ use Group; use Group_Ticket; use ITILCategory; +use Profile_User; use Supplier; use Supplier_Ticket; use Symfony\Component\DomCrawler\Crawler; @@ -5647,59 +5648,172 @@ public function testAssignFromCategoryOrItem( } } - - public function testGetEntitiesForRequesters() + protected function requestersEntitiesProvider(): iterable { $this->login(); - // Create entities - $entity = new Entity(); - $entity1_id = $entity->add([ - 'name' => __METHOD__ . '1', - 'entities_id' => getItemByTypeName('Entity', '_test_root_entity', true), - ]); - $this->integer($entity1_id)->isGreaterThan(0); + $entity_1 = $this->createItem( + Entity::class, + [ + 'name' => __FUNCTION__ . '1', + 'entities_id' => getItemByTypeName('Entity', '_test_root_entity', true), + ] + ); - $entity2_id = $entity->add([ - 'name' => __METHOD__ . '2', - 'entities_id' => getItemByTypeName('Entity', '_test_root_entity', true), - ]); - $this->integer($entity2_id)->isGreaterThan(0); - $this->integer($entity2_id)->isGreaterThan($entity1_id); + $entity_2 = $this->createItem( + Entity::class, + [ + 'name' => __FUNCTION__ . '2', + 'entities_id' => getItemByTypeName('Entity', '_test_root_entity', true), + ] + ); $profile_id = getItemByTypeName('Profile', 'Self-Service', true); - // Create user with 1 profile and 1 entity as default entity - $rand = mt_rand(); - $user = new User(); - $user_id = $user->add([ - 'name' => "testGetEntitiesForRequesters$rand", - 'password' => "testGetEntitiesForRequesters", - 'password2' => "testGetEntitiesForRequesters", - '_profiles_id' => $profile_id, - '_entities_id' => $entity2_id, - 'entities_id' => $entity2_id, - ]); - $this->integer($user_id)->isGreaterThan(0); - - $ticket = new \Ticket(); - $entities = $ticket->getEntitiesForRequesters(["_users_id_requester" => $user_id]); - $this->array($entities)->isIdenticalTo([$entity2_id]); + // User 1 is attached only to Entity 1 + $user_1 = $this->createItem( + User::class, + [ + 'name' => __FUNCTION__ . '1', + '_profiles_id' => $profile_id, + '_entities_id' => $entity_1->getID(), + 'entities_id' => $entity_1->getID(), + ] + ); - // Add user to another entity - $profile_user = new \Profile_User(); - $profile_user_id = (int)$profile_user->add( + // User 2 is attached to Entity 1 and Entity 2 + $user_2 = $this->createItem( + User::class, [ - 'entities_id' => $entity1_id, + 'name' => __FUNCTION__ . '2', + '_profiles_id' => $profile_id, + '_entities_id' => $entity_1->getID(), + 'entities_id' => $entity_1->getID(), + ] + ); + $this->createItem( + Profile_User::class, + [ + 'entities_id' => $entity_2->getID(), 'profiles_id' => $profile_id, - 'users_id' => $user_id, + 'users_id' => $user_2->getID(), ] ); - $this->integer($profile_user_id)->isGreaterThan(0); - // Chek that default entity is first in the list - $entities = $ticket->getEntitiesForRequesters(["_users_id_requester" => $user_id]); - $this->array($entities)->isIdenticalTo([$entity2_id, $entity1_id]); + // Check for User 1 + yield [ + 'params' => [ + '_users_id_requester' => $user_1->getID(), + ], + 'expected' => [ + $entity_1->getID(), + ], + ]; + yield [ + 'params' => [ + '_actors' => [ + 'requester' => [ + [ + 'itemtype' => User::class, + 'items_id' => $user_1->getID(), + 'use_notification' => 1, + 'alternative_email' => '', + ], + ], + ] + ], + 'expected' => [ + $entity_1->getID(), + ], + ]; + + // Check for User 2 + yield [ + 'params' => [ + '_users_id_requester' => $user_2->getID(), + ], + 'expected' => [ + $entity_1->getID(), + $entity_2->getID(), + ], + ]; + yield [ + 'params' => [ + '_actors' => [ + 'requester' => [ + [ + 'itemtype' => User::class, + 'items_id' => $user_2->getID(), + 'use_notification' => 1, + 'alternative_email' => '', + ], + ], + ] + ], + 'expected' => [ + $entity_1->getID(), + $entity_2->getID(), + ], + ]; + + // Check for User 1 + User 2 + yield [ + 'params' => [ + '_users_id_requester' => [$user_1->getID(), $user_2->getID()], + ], + 'expected' => [ + $entity_1->getID(), + ], + ]; + yield [ + 'params' => [ + '_actors' => [ + 'requester' => [ + [ + 'itemtype' => User::class, + 'items_id' => $user_1->getID(), + 'use_notification' => 1, + 'alternative_email' => '', + ], + [ + 'itemtype' => User::class, + 'items_id' => $user_2->getID(), + 'use_notification' => 1, + 'alternative_email' => '', + ], + ], + ] + ], + 'expected' => [ + $entity_1->getID(), + ], + ]; + + // Check for "email" actor + yield [ + 'params' => [ + '_actors' => [ + 'requester' => [ + [ + 'itemtype' => User::class, + 'items_id' => 0, + 'use_notification' => 1, + 'alternative_email' => 'notaglpiuser@domain.tld', + ], + ], + ] + ], + 'expected' => array_values($_SESSION['glpiactiveentities']), + ]; + } + + /** + * @dataProvider requestersEntitiesProvider + */ + public function testGetEntitiesForRequesters(array $params, array $expected) + { + $this->newTestedInstance(); + $this->array($this->testedInstance->getEntitiesForRequesters($params))->isIdenticalTo($expected); } public function testShowCentralCountCriteria() From e7a1819d0074d7923bc9fa5883f850994d0e3682 Mon Sep 17 00:00:00 2001 From: Rom1-B Date: Tue, 26 Sep 2023 11:41:11 +0200 Subject: [PATCH 02/29] fix(faq): visibility --- src/KnowbaseItem.php | 2 +- tests/functional/KnowbaseItem.php | 215 +++++++++++++++++++++++++++++- 2 files changed, 214 insertions(+), 3 deletions(-) diff --git a/src/KnowbaseItem.php b/src/KnowbaseItem.php index 05ec71e2e56..97c1e647d06 100644 --- a/src/KnowbaseItem.php +++ b/src/KnowbaseItem.php @@ -681,7 +681,7 @@ private static function getVisibilityCriteriaFAQ(): array $where[Entity_KnowbaseItem::getTableField('is_recursive')] = 1; } } else { - $where = self::getVisibilityCriteriaKB_Entity(); + $where = self::getVisibilityCriteriaKB(); $where['is_faq'] = 1; } diff --git a/tests/functional/KnowbaseItem.php b/tests/functional/KnowbaseItem.php index 755eb3a84a4..15ccf9bab3c 100644 --- a/tests/functional/KnowbaseItem.php +++ b/tests/functional/KnowbaseItem.php @@ -845,11 +845,12 @@ public function testCreateWithCategories() protected function testGetVisibilityCriteriaProvider(): iterable { - yield from $this->testGetVisibilityCriteriaProvider_FAQ(); + yield from $this->testGetVisibilityCriteriaProvider_FAQ_public(); yield from $this->testGetVisibilityCriteriaProvider_KB(); + yield from $this->testGetVisibilityCriteriaProvider_FAQ_logged(); } - protected function testGetVisibilityCriteriaProvider_FAQ(): iterable + protected function testGetVisibilityCriteriaProvider_FAQ_public(): iterable { global $DB, $CFG_GLPI; @@ -906,6 +907,216 @@ protected function testGetVisibilityCriteriaProvider_FAQ(): iterable $CFG_GLPI['use_public_faq'] = false; } + protected function testGetVisibilityCriteriaProvider_FAQ_logged(): iterable + { + global $DB; + + $this->login('glpi', 'glpi'); + + // Removing existing data + $DB->delete(\KnowbaseItem::getTable(), [1]); + $this->integer(countElementsInTable(\KnowbaseItem::getTable()))->isEqualTo(0); + + // Create set of test subjects + $glpi_user = getItemByTypeName("User", "glpi", true); + $this->createItems("KnowbaseItem", [ + [ + 'name' => 'FAQ 1', + 'answer' => 'FAQ 1', + 'is_faq' => true, + 'users_id' => $glpi_user, + ], + [ + 'name' => 'FAQ 2', + 'answer' => 'FAQ 2', + 'is_faq' => true, + 'users_id' => $glpi_user, + ], + [ + 'name' => 'FAQ 3', + 'answer' => 'FAQ 3', + 'is_faq' => true, + 'users_id' => $glpi_user, + ], + [ + 'name' => 'FAQ 4', + 'answer' => 'FAQ 4', + 'is_faq' => true, + 'users_id' => $glpi_user, + ], + [ + 'name' => 'FAQ 5', + 'answer' => 'FAQ 5', + 'is_faq' => true, + 'users_id' => $glpi_user, + ], + [ + 'name' => 'FAQ 6', + 'answer' => 'FAQ 6', + 'is_faq' => true, + 'users_id' => $glpi_user, + ], + [ + 'name' => 'FAQ 7', + 'answer' => 'FAQ 7', + 'is_faq' => true, + 'users_id' => $glpi_user, + ], + [ + 'name' => 'FAQ 8', + 'answer' => 'FAQ 8', + 'is_faq' => true, + 'users_id' => $glpi_user, + ], + [ + 'name' => 'FAQ 9', + 'answer' => 'FAQ 9', + 'is_faq' => true, + 'users_id' => $glpi_user, + ], + [ + 'name' => 'FAQ 10', + 'answer' => 'FAQ 10', + 'is_faq' => true, + 'users_id' => $glpi_user, + ], + [ + 'name' => 'FAQ 11', + 'answer' => 'FAQ 11', + 'is_faq' => true, + 'users_id' => $glpi_user, + ], + ]); + + // Target user + $this->createItems("KnowbaseItem_User", [ + [ + 'knowbaseitems_id' => getItemByTypeName("KnowbaseItem", "FAQ 1", true), + 'users_id' => getItemByTypeName("User", "post-only", true), + ], + [ + 'knowbaseitems_id' => getItemByTypeName("KnowbaseItem", "FAQ 2", true), + 'users_id' => getItemByTypeName("User", "tech", true), + ], + ]); + + // Target profile + $this->createItems("KnowbaseItem_Profile", [ + [ + 'knowbaseitems_id' => getItemByTypeName("KnowbaseItem", "FAQ 3", true), + 'profiles_id' => getItemByTypeName("Profile", "Self-Service", true), + ], + [ + 'knowbaseitems_id' => getItemByTypeName("KnowbaseItem", "FAQ 4", true), + 'profiles_id' => getItemByTypeName("Profile", "Technician", true), + ], + ]); + + // Target group + $group = new \Group(); + $postonly_group = (int)$group->add([ + 'name' => 'Post-only group', + 'entities_id' => getItemByTypeName("Entity", "_test_root_entity", true), + 'is_recursive' => 1, + ]); + $this->integer($postonly_group)->isGreaterThan(0); + $group_user = new \Group_User(); + $this->integer( + (int)$group_user->add([ + 'groups_id' => $postonly_group, + 'users_id' => getItemByTypeName("User", "post-only", true), + ]) + ); + $tech_group = (int)$group->add([ + 'name' => 'Tech group', + 'entities_id' => getItemByTypeName("Entity", "_test_root_entity", true), + 'is_recursive' => 1, + ]); + $this->integer($tech_group)->isGreaterThan(0); + $this->integer( + (int)$group_user->add([ + 'groups_id' => $tech_group, + 'users_id' => getItemByTypeName("User", "tech", true), + ]) + ); + + $this->createItems("Group_KnowbaseItem", [ + [ + 'knowbaseitems_id' => getItemByTypeName("KnowbaseItem", "FAQ 5", true), + 'groups_id' => $postonly_group, + 'entities_id' => getItemByTypeName("Entity", "_test_root_entity", true), + 'is_recursive' => 1, + ], + [ + 'knowbaseitems_id' => getItemByTypeName("KnowbaseItem", "FAQ 6", true), + 'groups_id' => $tech_group, + 'entities_id' => getItemByTypeName("Entity", "_test_root_entity", true), + 'is_recursive' => 1, + ], + ]); + + // Target entity + $entity = new \Entity(); + $faq_entity1 = (int)$entity->add([ + 'name' => 'FAQ 1 entity', + 'entities_id' => getItemByTypeName("Entity", "_test_root_entity", true), + ]); + $this->integer($faq_entity1)->isGreaterThan(0); + $faq_entity2 = (int)$entity->add([ + 'name' => 'FAQ 2 entity', + 'entities_id' => getItemByTypeName("Entity", "_test_root_entity", true), + ]); + $this->integer($faq_entity2)->isGreaterThan(0); + $faq_entity11 = (int)$entity->add([ + 'name' => 'FAQ 1.1 entity', + 'entities_id' => $faq_entity1, + ]); + $this->integer($faq_entity11)->isGreaterThan(0); + + $this->createItems("Entity_KnowbaseItem", [ + [ + 'knowbaseitems_id' => getItemByTypeName("KnowbaseItem", "FAQ 7", true), + 'entities_id' => getItemByTypeName("Entity", "_test_root_entity", true), + 'is_recursive' => 1, + ], + [ + 'knowbaseitems_id' => getItemByTypeName("KnowbaseItem", "FAQ 8", true), + 'entities_id' => $faq_entity1, + ], + [ + 'knowbaseitems_id' => getItemByTypeName("KnowbaseItem", "FAQ 9", true), + 'entities_id' => $faq_entity2, + ], + [ + 'knowbaseitems_id' => getItemByTypeName("KnowbaseItem", "FAQ 10", true), + 'entities_id' => $faq_entity11, + ], + ]); + + // admin should see all articles + yield ['articles' => ['FAQ 1', 'FAQ 2', 'FAQ 3', 'FAQ 4', 'FAQ 5', 'FAQ 6', 'FAQ 7', 'FAQ 8', 'FAQ 9', 'FAQ 10', 'FAQ 11']]; + + // Check articles visible for "post-only" user + $this->login('post-only', 'postonly'); + yield ['articles' => ['FAQ 1', 'FAQ 3', 'FAQ 5', 'FAQ 7', 'FAQ 8', 'FAQ 9', 'FAQ 10']]; + $this->setEntity("FAQ 1 entity", true); + yield ['articles' => ['FAQ 1', 'FAQ 5', 'FAQ 7', 'FAQ 8', 'FAQ 10']]; + $this->setEntity("FAQ 2 entity", true); + yield ['articles' => ['FAQ 1', 'FAQ 5', 'FAQ 7', 'FAQ 9']]; + $this->setEntity("FAQ 1.1 entity", true); + yield ['articles' => ['FAQ 1', 'FAQ 5', 'FAQ 7', 'FAQ 10']]; + + // Check articles visible for "tech" user + $this->login('tech', 'tech'); + yield ['articles' => ['FAQ 2', 'FAQ 4', 'FAQ 6', 'FAQ 7', 'FAQ 8', 'FAQ 9', 'FAQ 10']]; + $this->setEntity("FAQ 1 entity", true); + yield ['articles' => ['FAQ 2', 'FAQ 6', 'FAQ 7', 'FAQ 8', 'FAQ 10']]; + $this->setEntity("FAQ 2 entity", true); + yield ['articles' => ['FAQ 2', 'FAQ 6', 'FAQ 7', 'FAQ 9']]; + $this->setEntity("FAQ 1.1 entity", true); + yield ['articles' => ['FAQ 2', 'FAQ 6', 'FAQ 7', 'FAQ 10']]; + } + protected function testGetVisibilityCriteriaProvider_KB(): iterable { // Create set of test subjects From 69100ea59c1a8a6f6b08b80088b12b46b1eff3fd Mon Sep 17 00:00:00 2001 From: Rom1-B Date: Tue, 26 Sep 2023 16:40:16 +0200 Subject: [PATCH 03/29] fix: horizontalField set class --- .../components/form/fields_macros.html.twig | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/templates/components/form/fields_macros.html.twig b/templates/components/form/fields_macros.html.twig index 100c944deb7..8b015a8c294 100644 --- a/templates/components/form/fields_macros.html.twig +++ b/templates/components/form/fields_macros.html.twig @@ -845,13 +845,18 @@ 'align_label_right': true, 'mb': 'mb-2', 'field_class': 'col-12 col-sm-6', - 'label_class': 'col-xxl-5', - 'input_class': 'col-xxl-7', 'add_field_class': '', 'add_field_attribs': {}, 'center': false, }|merge(options) %} + {% if options.icon_label %} + {% set options = { + label_class: 'col-2', + input_class: 'col-10', + }|merge(options) %} + {% endif %} + {% if options.full_width %} {% set options = options|merge({ field_class: 'col-12', @@ -865,12 +870,10 @@ {% endif %} {% endif %} - {% if options.icon_label %} - {% set options = { - label_class: 'col-2', - input_class: 'col-10', - }|merge(options) %} - {% endif %} + {% set options = { + label_class: 'col-xxl-5', + input_class: 'col-xxl-7', + }|merge(options) %} {% if options.align_label_right %} {% set options = options|merge({ From cbdc8ef222c548a2a6af003398b4d932f3e38372 Mon Sep 17 00:00:00 2001 From: stonebuzz Date: Thu, 28 Sep 2023 15:33:16 +0200 Subject: [PATCH 04/29] fix(Datetime): fix number of week --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 57afac35a2b..72487c69238 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4675,9 +4675,9 @@ } }, "node_modules/flatpickr": { - "version": "4.6.11", - "resolved": "https://registry.npmjs.org/flatpickr/-/flatpickr-4.6.11.tgz", - "integrity": "sha512-/rnbE/hu5I5zndLEyYfYvqE4vPDvI5At0lFcQA5eOPfjquZLcQ0HMKTL7rv5/+DvbPM3/vJcXpXjB/DjBh+1jw==" + "version": "4.6.13", + "resolved": "https://registry.npmjs.org/flatpickr/-/flatpickr-4.6.13.tgz", + "integrity": "sha512-97PMG/aywoYpB4IvbvUJi0RQi8vearvU0oov1WW3k0WZPBMrTQVqekSX5CjSG/M4Q3i6A/0FKXC7RyAoAUUSPw==" }, "node_modules/flatted": { "version": "3.2.4", From 2a36c3332516141a9a75c05a472d61fb5faa3adb Mon Sep 17 00:00:00 2001 From: Stanislas Date: Fri, 29 Sep 2023 10:11:48 +0200 Subject: [PATCH 05/29] fix(Email): unsanitize email before check validation --- src/UserEmail.php | 4 +++- tests/units/GLPIMailer.php | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/UserEmail.php b/src/UserEmail.php index c232645b674..75541113a95 100644 --- a/src/UserEmail.php +++ b/src/UserEmail.php @@ -33,6 +33,8 @@ * --------------------------------------------------------------------- */ +use Glpi\Toolbox\Sanitizer; + /** * UserEmail class **/ @@ -274,7 +276,7 @@ public function prepareInputForUpdate($input) */ private function checkInputEmailValidity(array $input): bool { - return isset($input['email']) && !empty($input['email']) && GLPIMailer::validateAddress($input['email']); + return isset($input['email']) && !empty($input['email']) && GLPIMailer::validateAddress(Sanitizer::unsanitize($input['email'])); } diff --git a/tests/units/GLPIMailer.php b/tests/units/GLPIMailer.php index e343cd3e713..67578809cf2 100644 --- a/tests/units/GLPIMailer.php +++ b/tests/units/GLPIMailer.php @@ -67,6 +67,7 @@ protected function valideAddressProvider() ["test@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.dot", true], ["test@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.dot", false], ["test@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", true], + ["abcd'efgh@example.com", true], ]; } From 3c1d568a69e13d7ab5c6d37cfbc997ddd63bffc1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Oct 2023 11:10:29 +0000 Subject: [PATCH 06/29] Bump phpstan/phpstan from 1.10.32 to 1.10.36 Bumps [phpstan/phpstan](https://github.com/phpstan/phpstan) from 1.10.32 to 1.10.36. - [Release notes](https://github.com/phpstan/phpstan/releases) - [Changelog](https://github.com/phpstan/phpstan/blob/1.11.x/CHANGELOG.md) - [Commits](https://github.com/phpstan/phpstan/compare/1.10.32...1.10.36) --- updated-dependencies: - dependency-name: phpstan/phpstan dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- composer.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/composer.lock b/composer.lock index 3fa275d1823..4458199ef84 100644 --- a/composer.lock +++ b/composer.lock @@ -5632,16 +5632,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.10.32", + "version": "1.10.36", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "c47e47d3ab03137c0e121e77c4d2cb58672f6d44" + "reference": "ffa3089511121a672e62969404e4fddc753f9b15" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/c47e47d3ab03137c0e121e77c4d2cb58672f6d44", - "reference": "c47e47d3ab03137c0e121e77c4d2cb58672f6d44", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/ffa3089511121a672e62969404e4fddc753f9b15", + "reference": "ffa3089511121a672e62969404e4fddc753f9b15", "shasum": "" }, "require": { @@ -5690,7 +5690,7 @@ "type": "tidelift" } ], - "time": "2023-08-24T21:54:50+00:00" + "time": "2023-09-29T14:07:45+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", @@ -6328,5 +6328,5 @@ "platform-overrides": { "php": "7.4.0" }, - "plugin-api-version": "2.6.0" + "plugin-api-version": "2.3.0" } From e6b017969a8292378c69f10e139cb333ce9af60c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Oct 2023 11:09:25 +0000 Subject: [PATCH 07/29] Bump stylelint-config-standard-scss from 10.0.0 to 11.0.0 Bumps [stylelint-config-standard-scss](https://github.com/stylelint-scss/stylelint-config-standard-scss) from 10.0.0 to 11.0.0. - [Release notes](https://github.com/stylelint-scss/stylelint-config-standard-scss/releases) - [Changelog](https://github.com/stylelint-scss/stylelint-config-standard-scss/blob/main/CHANGELOG.md) - [Commits](https://github.com/stylelint-scss/stylelint-config-standard-scss/compare/v10.0.0...v11.0.0) --- updated-dependencies: - dependency-name: stylelint-config-standard-scss dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package-lock.json | 79 +++++++++++++++++++++++++++-------------------- package.json | 2 +- 2 files changed, 46 insertions(+), 35 deletions(-) diff --git a/package-lock.json b/package-lock.json index 72487c69238..3480a24679f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -80,7 +80,7 @@ "script-loader": "^0.7.2", "strip-sourcemap-loader": "^0.0.1", "stylelint": "^15.10.3", - "stylelint-config-standard-scss": "^10.0.0", + "stylelint-config-standard-scss": "^11.0.0", "terser": "^5.19.3", "webpack": "^5.88.2", "webpack-cli": "^5.1.4" @@ -8716,9 +8716,9 @@ } }, "node_modules/postcss": { - "version": "8.4.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.27.tgz", - "integrity": "sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==", + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "dev": true, "funding": [ { @@ -8746,7 +8746,7 @@ "node_modules/postcss-media-query-parser": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", "dev": true }, "node_modules/postcss-modules-extract-imports": { @@ -8831,9 +8831,9 @@ } }, "node_modules/postcss-scss": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.6.tgz", - "integrity": "sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", + "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", "dev": true, "funding": [ { @@ -8843,13 +8843,17 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "engines": { "node": ">=12.0" }, "peerDependencies": { - "postcss": "^8.4.19" + "postcss": "^8.4.29" } }, "node_modules/postcss-selector-parser": { @@ -9772,27 +9776,30 @@ } }, "node_modules/stylelint-config-recommended": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-12.0.0.tgz", - "integrity": "sha512-x6x8QNARrGO2sG6iURkzqL+Dp+4bJorPMMRNPScdvaUK8PsynriOcMW7AFDKqkWAS5wbue/u8fUT/4ynzcmqdQ==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-13.0.0.tgz", + "integrity": "sha512-EH+yRj6h3GAe/fRiyaoO2F9l9Tgg50AOFhaszyfov9v6ayXJ1IkSHwTxd7lB48FmOeSGDPLjatjO11fJpmarkQ==", "dev": true, + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, "peerDependencies": { - "stylelint": "^15.5.0" + "stylelint": "^15.10.0" } }, "node_modules/stylelint-config-recommended-scss": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-12.0.0.tgz", - "integrity": "sha512-5Bb2mlGy6WLa30oNeKpZvavv2lowJUsUJO25+OA68GFTemlwd1zbFsL7q0bReKipOSU3sG47hKneZ6Nd+ctrFA==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-13.0.0.tgz", + "integrity": "sha512-7AmMIsHTsuwUQm7I+DD5BGeIgCvqYZ4BpeYJJpb1cUXQwrJAKjA+GBotFZgUEGP8lAM+wmd91ovzOi8xfAyWEw==", "dev": true, "dependencies": { - "postcss-scss": "^4.0.6", - "stylelint-config-recommended": "^12.0.0", - "stylelint-scss": "^5.0.0" + "postcss-scss": "^4.0.7", + "stylelint-config-recommended": "^13.0.0", + "stylelint-scss": "^5.1.0" }, "peerDependencies": { "postcss": "^8.3.3", - "stylelint": "^15.5.0" + "stylelint": "^15.10.0" }, "peerDependenciesMeta": { "postcss": { @@ -9801,29 +9808,32 @@ } }, "node_modules/stylelint-config-standard": { - "version": "33.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-33.0.0.tgz", - "integrity": "sha512-eyxnLWoXImUn77+ODIuW9qXBDNM+ALN68L3wT1lN2oNspZ7D9NVGlNHb2QCUn4xDug6VZLsh0tF8NyoYzkgTzg==", + "version": "34.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-34.0.0.tgz", + "integrity": "sha512-u0VSZnVyW9VSryBG2LSO+OQTjN7zF9XJaAJRX/4EwkmU0R2jYwmBSN10acqZisDitS0CLiEiGjX7+Hrq8TAhfQ==", "dev": true, "dependencies": { - "stylelint-config-recommended": "^12.0.0" + "stylelint-config-recommended": "^13.0.0" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" }, "peerDependencies": { - "stylelint": "^15.5.0" + "stylelint": "^15.10.0" } }, "node_modules/stylelint-config-standard-scss": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-10.0.0.tgz", - "integrity": "sha512-bChBEo1p3xUVWh/wenJI+josoMk21f2yuLDGzGjmKYcALfl2u3DFltY+n4UHswYiXghqXaA8mRh+bFy/q1hQlg==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-11.0.0.tgz", + "integrity": "sha512-fGE79NBOLg09a9afqGH/guJulRULCaQWWv4cv1v2bMX92B+fGb0y56WqIguwvFcliPmmUXiAhKrrnXilIeXoHA==", "dev": true, "dependencies": { - "stylelint-config-recommended-scss": "^12.0.0", - "stylelint-config-standard": "^33.0.0" + "stylelint-config-recommended-scss": "^13.0.0", + "stylelint-config-standard": "^34.0.0" }, "peerDependencies": { "postcss": "^8.3.3", - "stylelint": "^15.5.0" + "stylelint": "^15.10.0" }, "peerDependenciesMeta": { "postcss": { @@ -9832,11 +9842,12 @@ } }, "node_modules/stylelint-scss": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-5.0.1.tgz", - "integrity": "sha512-n87iCRZrr2J7//I/QFsDXxFLnHKw633U4qvWZ+mOW6KDAp/HLj06H+6+f9zOuTYy+MdGdTuCSDROCpQIhw5fvQ==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-5.2.1.tgz", + "integrity": "sha512-ZoTJUM85/qqpQHfEppjW/St//8s6p9Qsg8deWlYlr56F9iUgC9vXeIDQvH4odkRRJLTLFQzYMALSOFCQ3MDkgw==", "dev": true, "dependencies": { + "known-css-properties": "^0.28.0", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", "postcss-selector-parser": "^6.0.13", diff --git a/package.json b/package.json index d691bd7f778..e9fbbac60a8 100644 --- a/package.json +++ b/package.json @@ -87,7 +87,7 @@ "script-loader": "^0.7.2", "strip-sourcemap-loader": "^0.0.1", "stylelint": "^15.10.3", - "stylelint-config-standard-scss": "^10.0.0", + "stylelint-config-standard-scss": "^11.0.0", "terser": "^5.19.3", "webpack": "^5.88.2", "webpack-cli": "^5.1.4" From fbc38442007cd54eb0d8e548f5f225c204010617 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Oct 2023 11:09:55 +0000 Subject: [PATCH 08/29] Bump eslint from 8.48.0 to 8.50.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.48.0 to 8.50.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.48.0...v8.50.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 24 ++++++++++++------------ package.json | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3480a24679f..52a7dd0787a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -70,7 +70,7 @@ "copy-webpack-plugin": "^11.0.0", "css-loader": "^6.8.1", "csso-cli": "^4.0.2", - "eslint": "^8.48.0", + "eslint": "^8.50.0", "exports-loader": "^4.0.0", "glob": "^10.3.4", "jest": "^29.6.4", @@ -819,9 +819,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.48.0.tgz", - "integrity": "sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz", + "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -899,9 +899,9 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", - "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", + "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -3922,16 +3922,16 @@ } }, "node_modules/eslint": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.48.0.tgz", - "integrity": "sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz", + "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.48.0", - "@humanwhocodes/config-array": "^0.11.10", + "@eslint/js": "8.50.0", + "@humanwhocodes/config-array": "^0.11.11", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.12.4", diff --git a/package.json b/package.json index e9fbbac60a8..aeaade07182 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "copy-webpack-plugin": "^11.0.0", "css-loader": "^6.8.1", "csso-cli": "^4.0.2", - "eslint": "^8.48.0", + "eslint": "^8.50.0", "exports-loader": "^4.0.0", "glob": "^10.3.4", "jest": "^29.6.4", From 64bf92cb556f7a5b122176cffb55568321851f9e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Oct 2023 11:10:25 +0000 Subject: [PATCH 09/29] Bump glob from 10.3.4 to 10.3.10 Bumps [glob](https://github.com/isaacs/node-glob) from 10.3.4 to 10.3.10. - [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md) - [Commits](https://github.com/isaacs/node-glob/compare/v10.3.4...v10.3.10) --- updated-dependencies: - dependency-name: glob dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 201 +++++++++++++++++++++++++++++++++++++++++++--- package.json | 2 +- 2 files changed, 192 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 52a7dd0787a..b8d833fac3f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -72,7 +72,7 @@ "csso-cli": "^4.0.2", "eslint": "^8.50.0", "exports-loader": "^4.0.0", - "glob": "^10.3.4", + "glob": "^10.3.10", "jest": "^29.6.4", "jest-environment-jsdom": "^29.6.4", "jest-extended": "^4.0.1", @@ -931,6 +931,102 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -3798,6 +3894,12 @@ "node": ">=12" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, "node_modules/electron-to-chromium": { "version": "1.4.479", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.479.tgz", @@ -4851,19 +4953,19 @@ } }, "node_modules/glob": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.4.tgz", - "integrity": "sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ==", + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", + "jackspeak": "^2.3.5", "minimatch": "^9.0.1", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", "path-scurry": "^1.10.1" }, "bin": { - "glob": "dist/cjs/src/bin.js" + "glob": "dist/esm/bin.mjs" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -5563,12 +5665,12 @@ } }, "node_modules/jackspeak": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.1.1.tgz", - "integrity": "sha512-juf9stUEwUaILepraGOWIJTLwg48bUnBmRqd2ln2Os1sW987zeoj/hzhbvRB95oMuS2ZTpjULmdwHNX4rzZIZw==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", "dev": true, "dependencies": { - "cliui": "^8.0.1" + "@isaacs/cliui": "^8.0.2" }, "engines": { "node": ">=14" @@ -9651,6 +9753,21 @@ "node": ">=8" } }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -9663,6 +9780,19 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", @@ -10649,6 +10779,57 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", diff --git a/package.json b/package.json index aeaade07182..e48d5aa7911 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ "csso-cli": "^4.0.2", "eslint": "^8.50.0", "exports-loader": "^4.0.0", - "glob": "^10.3.4", + "glob": "^10.3.10", "jest": "^29.6.4", "jest-environment-jsdom": "^29.6.4", "jest-extended": "^4.0.1", From 976e85ee1163b5b99e0fe136810ece11859a5d88 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Oct 2023 11:10:59 +0000 Subject: [PATCH 10/29] Bump jest-environment-jsdom from 29.6.4 to 29.7.0 Bumps [jest-environment-jsdom](https://github.com/jestjs/jest/tree/HEAD/packages/jest-environment-jsdom) from 29.6.4 to 29.7.0. - [Release notes](https://github.com/jestjs/jest/releases) - [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/jestjs/jest/commits/v29.7.0/packages/jest-environment-jsdom) --- updated-dependencies: - dependency-name: jest-environment-jsdom dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 412 +++++++--------------------------------------- package.json | 2 +- 2 files changed, 63 insertions(+), 351 deletions(-) diff --git a/package-lock.json b/package-lock.json index b8d833fac3f..5d26b29f0df 100644 --- a/package-lock.json +++ b/package-lock.json @@ -74,7 +74,7 @@ "exports-loader": "^4.0.0", "glob": "^10.3.10", "jest": "^29.6.4", - "jest-environment-jsdom": "^29.6.4", + "jest-environment-jsdom": "^29.7.0", "jest-extended": "^4.0.1", "mini-css-extract-plugin": "^2.7.6", "script-loader": "^0.7.2", @@ -1244,38 +1244,6 @@ "node": ">=8" } }, - "node_modules/@jest/core/node_modules/pretty-format": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.3.tgz", - "integrity": "sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/core/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, "node_modules/@jest/core/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -1289,15 +1257,15 @@ } }, "node_modules/@jest/environment": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.6.4.tgz", - "integrity": "sha512-sQ0SULEjA1XUTHmkBRl7A1dyITM9yb1yb3ZNKPX3KlTd6IG7mWUe3e2yfExtC2Zz1Q+mMckOLHmL/qLiuQJrBQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, "dependencies": { - "@jest/fake-timers": "^29.6.4", + "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.6.3" + "jest-mock": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -1338,17 +1306,17 @@ } }, "node_modules/@jest/fake-timers": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.6.4.tgz", - "integrity": "sha512-6UkCwzoBK60edXIIWb0/KWkuj7R7Qq91vVInOe3De6DSpaEiqjKcJw4F7XUet24Wupahj9J6PlR09JqJ5ySDHw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", - "jest-message-util": "^29.6.3", - "jest-mock": "^29.6.3", - "jest-util": "^29.6.3" + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -4542,38 +4510,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/expect/node_modules/pretty-format": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.3.tgz", - "integrity": "sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/expect/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/expect/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, "node_modules/expect/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -5889,38 +5825,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-circus/node_modules/pretty-format": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.3.tgz", - "integrity": "sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-circus/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, "node_modules/jest-circus/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -6169,38 +6073,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-config/node_modules/pretty-format": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.3.tgz", - "integrity": "sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-config/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, "node_modules/jest-config/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -6308,38 +6180,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-each/node_modules/pretty-format": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.3.tgz", - "integrity": "sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, "node_modules/jest-each/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -6353,18 +6193,18 @@ } }, "node_modules/jest-environment-jsdom": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.6.4.tgz", - "integrity": "sha512-K6wfgUJ16DoMs02JYFid9lOsqfpoVtyJxpRlnTxUHzvZWBnnh2VNGRB9EC1Cro96TQdq5TtSjb3qUjNaJP9IyA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", + "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", "dev": true, "dependencies": { - "@jest/environment": "^29.6.4", - "@jest/fake-timers": "^29.6.4", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", "@types/jsdom": "^20.0.0", "@types/node": "*", - "jest-mock": "^29.6.3", - "jest-util": "^29.6.3", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0", "jsdom": "^20.0.0" }, "engines": { @@ -6508,38 +6348,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-extended/node_modules/pretty-format": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.2.1.tgz", - "integrity": "sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-extended/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-extended/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, "node_modules/jest-extended/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -6629,18 +6437,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-leak-detector/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/jest-leak-detector/node_modules/jest-get-type": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", @@ -6650,30 +6446,10 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-leak-detector/node_modules/pretty-format": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.3.tgz", - "integrity": "sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-leak-detector/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, "node_modules/jest-message-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.6.3.tgz", - "integrity": "sha512-FtzaEEHzjDpQp51HX4UMkPZjy46ati4T5pEMyM6Ik48ztu4T9LQplZ6OsimHx7EuM9dfEh5HJa6D3trEftu3dA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", @@ -6682,7 +6458,7 @@ "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^29.6.3", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -6748,38 +6524,6 @@ "node": ">=8" } }, - "node_modules/jest-message-util/node_modules/pretty-format": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.3.tgz", - "integrity": "sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, "node_modules/jest-message-util/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -6793,14 +6537,14 @@ } }, "node_modules/jest-mock": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.6.3.tgz", - "integrity": "sha512-Z7Gs/mOyTSR4yPsaZ72a/MtuK6RnC3JYqWONe48oLaoEcYwEDxqvbXz85G4SJrm2Z5Ar9zp6MiHF4AlFlRM4Pg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", - "jest-util": "^29.6.3" + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -7352,38 +7096,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-snapshot/node_modules/pretty-format": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.3.tgz", - "integrity": "sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, "node_modules/jest-snapshot/node_modules/semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", @@ -7412,9 +7124,9 @@ } }, "node_modules/jest-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.6.3.tgz", - "integrity": "sha512-QUjna/xSy4B32fzcKTSz1w7YYzgiHrjjJjevdRf61HYk998R5vVMMNmrHESYZVDS5DSWs+1srPLPKxXPkeSDOA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", @@ -7594,38 +7306,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-validate/node_modules/pretty-format": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.3.tgz", - "integrity": "sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, "node_modules/jest-validate/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -8986,6 +8666,32 @@ "node": ">= 0.8.0" } }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/prismjs": { "version": "1.27.0", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz", @@ -9108,6 +8814,12 @@ "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", "dev": true }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, "node_modules/read-pkg": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", diff --git a/package.json b/package.json index e48d5aa7911..56984e7582e 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "exports-loader": "^4.0.0", "glob": "^10.3.10", "jest": "^29.6.4", - "jest-environment-jsdom": "^29.6.4", + "jest-environment-jsdom": "^29.7.0", "jest-extended": "^4.0.1", "mini-css-extract-plugin": "^2.7.6", "script-loader": "^0.7.2", From 73dfaf95abcfa106d6d52829654760d3a4ce450e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Oct 2023 11:12:08 +0000 Subject: [PATCH 11/29] Bump @testing-library/jest-dom from 6.1.2 to 6.1.3 Bumps [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) from 6.1.2 to 6.1.3. - [Release notes](https://github.com/testing-library/jest-dom/releases) - [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md) - [Commits](https://github.com/testing-library/jest-dom/compare/v6.1.2...v6.1.3) --- updated-dependencies: - dependency-name: "@testing-library/jest-dom" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5d26b29f0df..11716e25114 100644 --- a/package-lock.json +++ b/package-lock.json @@ -65,7 +65,7 @@ "tinymce-i18n": "^23.6.19" }, "devDependencies": { - "@testing-library/jest-dom": "^6.1.2", + "@testing-library/jest-dom": "^6.1.3", "clean-webpack-plugin": "^4.0.0", "copy-webpack-plugin": "^11.0.0", "css-loader": "^6.8.1", @@ -1979,9 +1979,9 @@ } }, "node_modules/@testing-library/jest-dom": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.1.2.tgz", - "integrity": "sha512-NP9jl1Q2qDDtx+cqogowtQtmgD2OVs37iMSIsTv5eN5ETRkf26Kj6ugVwA93/gZzzFWQAsgkKkcftDe91BJCkQ==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.1.3.tgz", + "integrity": "sha512-YzpjRHoCBWPzpPNtg6gnhasqtE/5O4qz8WCwDEaxtfnPO6gkaLrnuXusrGSPyhIGPezr1HM7ZH0CFaUTY9PJEQ==", "dev": true, "dependencies": { "@adobe/css-tools": "^4.3.0", diff --git a/package.json b/package.json index 56984e7582e..2dcf59708bf 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ "test": "NODE_OPTIONS=\"--experimental-vm-modules\" jest --colors --forceExit --config tests/js/jest.config.js ./tests/js/**" }, "devDependencies": { - "@testing-library/jest-dom": "^6.1.2", + "@testing-library/jest-dom": "^6.1.3", "clean-webpack-plugin": "^4.0.0", "copy-webpack-plugin": "^11.0.0", "css-loader": "^6.8.1", From 3a70db2b1d97b6da3472e597cc643068028e016a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Oct 2023 11:10:37 +0000 Subject: [PATCH 12/29] Bump symfony/http-client from 5.4.26 to 5.4.29 Bumps [symfony/http-client](https://github.com/symfony/http-client) from 5.4.26 to 5.4.29. - [Release notes](https://github.com/symfony/http-client/releases) - [Changelog](https://github.com/symfony/http-client/blob/6.3/CHANGELOG.md) - [Commits](https://github.com/symfony/http-client/compare/v5.4.26...v5.4.29) --- updated-dependencies: - dependency-name: symfony/http-client dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- composer.lock | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/composer.lock b/composer.lock index 4458199ef84..615e439a035 100644 --- a/composer.lock +++ b/composer.lock @@ -4105,16 +4105,16 @@ }, { "name": "symfony/polyfill-php80", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5", + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5", "shasum": "" }, "require": { @@ -4123,7 +4123,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4168,7 +4168,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0" }, "funding": [ { @@ -4184,7 +4184,7 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-php81", @@ -5998,16 +5998,16 @@ }, { "name": "symfony/http-client", - "version": "v5.4.26", + "version": "v5.4.29", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "19d48ef7f38e5057ed1789a503cd3eccef039bce" + "reference": "04784c66cbee613a827363ee1e65db65392893c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/19d48ef7f38e5057ed1789a503cd3eccef039bce", - "reference": "19d48ef7f38e5057ed1789a503cd3eccef039bce", + "url": "https://api.github.com/repos/symfony/http-client/zipball/04784c66cbee613a827363ee1e65db65392893c1", + "reference": "04784c66cbee613a827363ee1e65db65392893c1", "shasum": "" }, "require": { @@ -6069,7 +6069,7 @@ "http" ], "support": { - "source": "https://github.com/symfony/http-client/tree/v5.4.26" + "source": "https://github.com/symfony/http-client/tree/v5.4.29" }, "funding": [ { @@ -6085,7 +6085,7 @@ "type": "tidelift" } ], - "time": "2023-07-03T12:14:50+00:00" + "time": "2023-09-14T20:49:15+00:00" }, { "name": "symfony/http-client-contracts", From b8102f4f2e10ca913861b345fb4a14a266047588 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Oct 2023 05:49:10 +0000 Subject: [PATCH 13/29] Bump jest from 29.6.4 to 29.7.0 Bumps [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) from 29.6.4 to 29.7.0. - [Release notes](https://github.com/jestjs/jest/releases) - [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/jestjs/jest/commits/v29.7.0/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 1096 +++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 507 insertions(+), 591 deletions(-) diff --git a/package-lock.json b/package-lock.json index 11716e25114..167ba964e54 100644 --- a/package-lock.json +++ b/package-lock.json @@ -73,7 +73,7 @@ "eslint": "^8.50.0", "exports-loader": "^4.0.0", "glob": "^10.3.10", - "jest": "^29.6.4", + "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "jest-extended": "^4.0.1", "mini-css-extract-plugin": "^2.7.6", @@ -1053,16 +1053,16 @@ } }, "node_modules/@jest/console": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.6.4.tgz", - "integrity": "sha512-wNK6gC0Ha9QeEPSkeJedQuTQqxZYnDPuDcDhVuVatRvMkL4D0VTvFVZj+Yuh6caG2aOfzkUZ36KtCmLNtR02hw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^29.6.3", - "jest-util": "^29.6.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0" }, "engines": { @@ -1140,15 +1140,15 @@ } }, "node_modules/@jest/core": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.6.4.tgz", - "integrity": "sha512-U/vq5ccNTSVgYH7mHnodHmCffGWHJnz/E1BEWlLuK5pM4FZmGfBn/nrJGLjUsSmyx3otCeqc1T31F4y08AMDLg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, "dependencies": { - "@jest/console": "^29.6.4", - "@jest/reporters": "^29.6.4", - "@jest/test-result": "^29.6.4", - "@jest/transform": "^29.6.4", + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", @@ -1156,21 +1156,21 @@ "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.6.3", - "jest-config": "^29.6.4", - "jest-haste-map": "^29.6.4", - "jest-message-util": "^29.6.3", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.6.4", - "jest-resolve-dependencies": "^29.6.4", - "jest-runner": "^29.6.4", - "jest-runtime": "^29.6.4", - "jest-snapshot": "^29.6.4", - "jest-util": "^29.6.3", - "jest-validate": "^29.6.3", - "jest-watcher": "^29.6.4", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", "micromatch": "^4.0.4", - "pretty-format": "^29.6.3", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, @@ -1272,22 +1272,22 @@ } }, "node_modules/@jest/expect": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.6.4.tgz", - "integrity": "sha512-Warhsa7d23+3X5bLbrbYvaehcgX5TLYhI03JKoedTiI8uJU4IhqYBWF7OSSgUyz4IgLpUYPkK0AehA5/fRclAA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, "dependencies": { - "expect": "^29.6.4", - "jest-snapshot": "^29.6.4" + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect-utils": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.6.4.tgz", - "integrity": "sha512-FEhkJhqtvBwgSpiTrocquJCdXPsyvNKcl/n7A3u7X4pVoF4bswm11c9d4AV+kfq2Gpv/mM8x7E7DsRvH+djkrg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, "dependencies": { "jest-get-type": "^29.6.3" @@ -1296,15 +1296,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/expect-utils/node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/@jest/fake-timers": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", @@ -1323,30 +1314,30 @@ } }, "node_modules/@jest/globals": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.6.4.tgz", - "integrity": "sha512-wVIn5bdtjlChhXAzVXavcY/3PEjf4VqM174BM3eGL5kMxLiZD5CLnbmkEyA1Dwh9q8XjP6E8RwjBsY/iCWrWsA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, "dependencies": { - "@jest/environment": "^29.6.4", - "@jest/expect": "^29.6.4", + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", "@jest/types": "^29.6.3", - "jest-mock": "^29.6.3" + "jest-mock": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/reporters": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.6.4.tgz", - "integrity": "sha512-sxUjWxm7QdchdrD3NfWKrL8FBsortZeibSJv4XLjESOOjSUOkjQcb0ZHJwfhEGIvBvTluTzfG2yZWZhkrXJu8g==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.6.4", - "@jest/test-result": "^29.6.4", - "@jest/transform": "^29.6.4", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@jridgewell/trace-mapping": "^0.3.18", "@types/node": "*", @@ -1360,9 +1351,9 @@ "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.6.3", - "jest-util": "^29.6.3", - "jest-worker": "^29.6.4", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", @@ -1459,13 +1450,13 @@ } }, "node_modules/@jest/reporters/node_modules/jest-worker": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.4.tgz", - "integrity": "sha512-6dpvFV4WjcWbDVGgHTWo/aupl8/LbBx2NSKfiwqf79xC/yeJjKHT1+StcKy/2KTmW16hE68ccKVOtXf+WZGz7Q==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "dependencies": { "@types/node": "*", - "jest-util": "^29.6.3", + "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -1527,12 +1518,12 @@ } }, "node_modules/@jest/test-result": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.6.4.tgz", - "integrity": "sha512-uQ1C0AUEN90/dsyEirgMLlouROgSY+Wc/JanVVk0OiUKa5UFh7sJpMEM3aoUBAz2BRNvUJ8j3d294WFuRxSyOQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, "dependencies": { - "@jest/console": "^29.6.4", + "@jest/console": "^29.7.0", "@jest/types": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" @@ -1542,14 +1533,14 @@ } }, "node_modules/@jest/test-sequencer": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.6.4.tgz", - "integrity": "sha512-E84M6LbpcRq3fT4ckfKs9ryVanwkaIB0Ws9bw3/yP4seRLg/VaCZ/LgW0MCq5wwk4/iP/qnilD41aj2fsw2RMg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, "dependencies": { - "@jest/test-result": "^29.6.4", + "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.4", + "jest-haste-map": "^29.7.0", "slash": "^3.0.0" }, "engines": { @@ -1557,9 +1548,9 @@ } }, "node_modules/@jest/transform": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.6.4.tgz", - "integrity": "sha512-8thgRSiXUqtr/pPGY/OsyHuMjGyhVnWrFAwoxmIemlBuiMyU1WFs0tXoNxzcr4A4uErs/ABre76SGmrr5ab/AA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", @@ -1570,9 +1561,9 @@ "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.4", + "jest-haste-map": "^29.7.0", "jest-regex-util": "^29.6.3", - "jest-util": "^29.6.3", + "jest-util": "^29.7.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", @@ -2096,9 +2087,9 @@ } }, "node_modules/@types/babel__core": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", - "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.2.tgz", + "integrity": "sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA==", "dev": true, "dependencies": { "@babel/parser": "^7.20.7", @@ -2109,18 +2100,18 @@ } }, "node_modules/@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.5.tgz", + "integrity": "sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w==", "dev": true, "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.2.tgz", + "integrity": "sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ==", "dev": true, "dependencies": { "@babel/parser": "^7.1.0", @@ -2128,9 +2119,9 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz", - "integrity": "sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.2.tgz", + "integrity": "sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw==", "dev": true, "dependencies": { "@babel/types": "^7.20.7" @@ -2173,9 +2164,9 @@ } }, "node_modules/@types/graceful-fs": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", - "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.7.tgz", + "integrity": "sha512-MhzcwU8aUygZroVwL2jeYk6JisJrPl/oov/gsgGCue9mkgl9wjGbzReYQClxiUgFDnib9FuHqTndccKeZKxTRw==", "dev": true, "dependencies": { "@types/node": "*" @@ -2721,12 +2712,12 @@ "dev": true }, "node_modules/babel-jest": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.6.4.tgz", - "integrity": "sha512-meLj23UlSLddj6PC+YTOFRgDAtjnZom8w/ACsrx0gtPtv5cJZk0A5Unk5bV4wixD7XaPCN1fQvpww8czkZURmw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, "dependencies": { - "@jest/transform": "^29.6.4", + "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", "babel-preset-jest": "^29.6.3", @@ -3395,6 +3386,97 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/create-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/create-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/create-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/create-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/create-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -3820,6 +3902,15 @@ "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz", "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==" }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -4389,139 +4480,21 @@ } }, "node_modules/expect": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.6.4.tgz", - "integrity": "sha512-F2W2UyQ8XYyftHT57dtfg8Ue3X5qLgm2sSug0ivvLRH/VKNRL/pDxg/TH7zVzbQB0tu80clNFy6LU7OS/VSEKA==", - "dev": true, - "dependencies": { - "@jest/expect-utils": "^29.6.4", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.6.4", - "jest-message-util": "^29.6.3", - "jest-util": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/expect/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/expect/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/expect/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/expect/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/expect/node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/expect/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/expect/node_modules/jest-diff": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.6.4.tgz", - "integrity": "sha512-9F48UxR9e4XOEZvoUXEHSWY4qC4zERJaOfrbBg9JpbJOO43R1vN76REt/aMGZoY6GD5g84nnJiBIVlscegefpw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/expect/node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/expect/node_modules/jest-matcher-utils": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.6.4.tgz", - "integrity": "sha512-KSzwyzGvK4HcfnserYqJHYi7sZVqdREJ9DMPAKVbS98JsIAvumihaNUbjrWw0St7p9IY7A9UskCW5MYlGmBQFQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.6.4", + "@jest/expect-utils": "^29.7.0", "jest-get-type": "^29.6.3", - "pretty-format": "^29.6.3" + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/expect/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/exports-loader": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/exports-loader/-/exports-loader-4.0.0.tgz", @@ -5619,15 +5592,15 @@ } }, "node_modules/jest": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.6.4.tgz", - "integrity": "sha512-tEFhVQFF/bzoYV1YuGyzLPZ6vlPrdfvDmmAxudA1dLEuiztqg2Rkx20vkKY32xiDROcD2KXlgZ7Cu8RPeEHRKw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, "dependencies": { - "@jest/core": "^29.6.4", + "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", "import-local": "^3.0.2", - "jest-cli": "^29.6.4" + "jest-cli": "^29.7.0" }, "bin": { "jest": "bin/jest.js" @@ -5645,13 +5618,13 @@ } }, "node_modules/jest-changed-files": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.6.3.tgz", - "integrity": "sha512-G5wDnElqLa4/c66ma5PG9eRjE342lIbF6SUnTJi26C3J28Fv2TVY2rOyKB9YGbSA5ogwevgmxc4j4aVjrEK6Yg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, "dependencies": { "execa": "^5.0.0", - "jest-util": "^29.6.3", + "jest-util": "^29.7.0", "p-limit": "^3.1.0" }, "engines": { @@ -5674,28 +5647,28 @@ } }, "node_modules/jest-circus": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.6.4.tgz", - "integrity": "sha512-YXNrRyntVUgDfZbjXWBMPslX1mQ8MrSG0oM/Y06j9EYubODIyHWP8hMUbjbZ19M3M+zamqEur7O80HODwACoJw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, "dependencies": { - "@jest/environment": "^29.6.4", - "@jest/expect": "^29.6.4", - "@jest/test-result": "^29.6.4", + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", "dedent": "^1.0.0", "is-generator-fn": "^2.0.0", - "jest-each": "^29.6.3", - "jest-matcher-utils": "^29.6.4", - "jest-message-util": "^29.6.3", - "jest-runtime": "^29.6.4", - "jest-snapshot": "^29.6.4", - "jest-util": "^29.6.3", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0", - "pretty-format": "^29.6.3", + "pretty-format": "^29.7.0", "pure-rand": "^6.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" @@ -5753,15 +5726,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-circus/node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/jest-circus/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -5771,64 +5735,25 @@ "node": ">=8" } }, - "node_modules/jest-circus/node_modules/jest-diff": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.6.4.tgz", - "integrity": "sha512-9F48UxR9e4XOEZvoUXEHSWY4qC4zERJaOfrbBg9JpbJOO43R1vN76REt/aMGZoY6GD5g84nnJiBIVlscegefpw==", + "node_modules/jest-circus/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.6.3" + "yocto-queue": "^0.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-circus/node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-circus/node_modules/jest-matcher-utils": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.6.4.tgz", - "integrity": "sha512-KSzwyzGvK4HcfnserYqJHYi7sZVqdREJ9DMPAKVbS98JsIAvumihaNUbjrWw0St7p9IY7A9UskCW5MYlGmBQFQ==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.6.4", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-circus/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-circus/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { "has-flag": "^4.0.0" @@ -5838,22 +5763,21 @@ } }, "node_modules/jest-cli": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.6.4.tgz", - "integrity": "sha512-+uMCQ7oizMmh8ZwRfZzKIEszFY9ksjjEQnTEMTaL7fYiL3Kw4XhqT9bYh+A4DQKUb67hZn2KbtEnDuHvcgK4pQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, "dependencies": { - "@jest/core": "^29.6.4", - "@jest/test-result": "^29.6.4", + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", "chalk": "^4.0.0", + "create-jest": "^29.7.0", "exit": "^0.1.2", - "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^29.6.4", - "jest-util": "^29.6.3", - "jest-validate": "^29.6.3", - "prompts": "^2.0.1", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "yargs": "^17.3.1" }, "bin": { @@ -5942,31 +5866,31 @@ } }, "node_modules/jest-config": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.6.4.tgz", - "integrity": "sha512-JWohr3i9m2cVpBumQFv2akMEnFEPVOh+9L2xIBJhJ0zOaci2ZXuKJj0tgMKQCBZAKA09H049IR4HVS/43Qb19A==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.6.4", + "@jest/test-sequencer": "^29.7.0", "@jest/types": "^29.6.3", - "babel-jest": "^29.6.4", + "babel-jest": "^29.7.0", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^29.6.4", - "jest-environment-node": "^29.6.4", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", "jest-get-type": "^29.6.3", "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.6.4", - "jest-runner": "^29.6.4", - "jest-util": "^29.6.3", - "jest-validate": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^29.6.3", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -6064,15 +5988,6 @@ "node": ">=8" } }, - "node_modules/jest-config/node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/jest-config/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -6085,35 +6000,22 @@ "node": ">=8" } }, - "node_modules/jest-docblock": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.6.3.tgz", - "integrity": "sha512-2+H+GOTQBEm2+qFSQ7Ma+BvyV+waiIFxmZF5LdpBsAEjWX8QYjSCa4FrkIYtbfXUJJJnFCYrOtt6TZ+IAiTjBQ==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.6.3.tgz", - "integrity": "sha512-KoXfJ42k8cqbkfshW7sSHcdfnv5agDdHCPA87ZBdmHP+zJstTJc0ttQaJ/x7zK6noAL76hOuTIJ6ZkQRS5dcyg==", + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, "dependencies": { - "@jest/types": "^29.6.3", "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", "jest-get-type": "^29.6.3", - "jest-util": "^29.6.3", - "pretty-format": "^29.6.3" + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-each/node_modules/ansi-styles": { + "node_modules/jest-diff/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -6128,7 +6030,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-each/node_modules/chalk": { + "node_modules/jest-diff/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -6144,7 +6046,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-each/node_modules/color-convert": { + "node_modules/jest-diff/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -6156,13 +6058,13 @@ "node": ">=7.0.0" } }, - "node_modules/jest-each/node_modules/color-name": { + "node_modules/jest-diff/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-each/node_modules/has-flag": { + "node_modules/jest-diff/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -6171,16 +6073,7 @@ "node": ">=8" } }, - "node_modules/jest-each/node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each/node_modules/supports-color": { + "node_modules/jest-diff/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -6192,72 +6085,35 @@ "node": ">=8" } }, - "node_modules/jest-environment-jsdom": { + "node_modules/jest-docblock": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", - "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/jsdom": "^20.0.0", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0", - "jsdom": "^20.0.0" + "detect-newline": "^3.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } } }, - "node_modules/jest-environment-node": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.6.4.tgz", - "integrity": "sha512-i7SbpH2dEIFGNmxGCpSc2w9cA4qVD+wfvg2ZnfQ7XVrKL0NA5uDVBIiGH8SR4F0dKEv/0qI5r+aDomDf04DpEQ==", + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, "dependencies": { - "@jest/environment": "^29.6.4", - "@jest/fake-timers": "^29.6.4", "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.6.3", - "jest-util": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-extended": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jest-extended/-/jest-extended-4.0.1.tgz", - "integrity": "sha512-KM6dwuBUAgy6QONuR19CGubZB9Hkjqvl/d5Yc/FXsdB8+gsGxB2VQ+NEdOrr95J4GMPeLnDoPOKyi6+mKCCnZQ==", - "dev": true, - "dependencies": { - "jest-diff": "^29.0.0", - "jest-get-type": "^29.0.0" + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "jest": ">=27.2.5" - }, - "peerDependenciesMeta": { - "jest": { - "optional": true - } } }, - "node_modules/jest-extended/node_modules/ansi-styles": { + "node_modules/jest-each/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -6272,7 +6128,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-extended/node_modules/chalk": { + "node_modules/jest-each/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -6288,7 +6144,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-extended/node_modules/color-convert": { + "node_modules/jest-each/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -6300,70 +6156,111 @@ "node": ">=7.0.0" } }, - "node_modules/jest-extended/node_modules/color-name": { + "node_modules/jest-each/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-extended/node_modules/diff-sequences": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.2.0.tgz", - "integrity": "sha512-413SY5JpYeSBZxmenGEmCVQ8mCgtFJF0w9PROdaS6z987XC2Pd2GOKqOITLtMftmyFZqgtCOb/QA7/Z3ZXfzIw==", + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-extended/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/jest-extended/node_modules/jest-diff": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.2.1.tgz", - "integrity": "sha512-gfh/SMNlQmP3MOUgdzxPOd4XETDJifADpT937fN1iUGz+9DgOu2eUPHH25JDkLVcLwwqxv3GzVyK4VBUr9fjfA==", + "node_modules/jest-environment-jsdom": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", + "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", "dev": true, "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.2.0", - "jest-get-type": "^29.2.0", - "pretty-format": "^29.2.1" + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/jsdom": "^20.0.0", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0", + "jsdom": "^20.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } } }, - "node_modules/jest-extended/node_modules/jest-get-type": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz", - "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==", + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-extended/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/jest-extended": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jest-extended/-/jest-extended-4.0.1.tgz", + "integrity": "sha512-KM6dwuBUAgy6QONuR19CGubZB9Hkjqvl/d5Yc/FXsdB8+gsGxB2VQ+NEdOrr95J4GMPeLnDoPOKyi6+mKCCnZQ==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "jest-diff": "^29.0.0", + "jest-get-type": "^29.0.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "jest": ">=27.2.5" + }, + "peerDependenciesMeta": { + "jest": { + "optional": true + } + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-haste-map": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.6.4.tgz", - "integrity": "sha512-12Ad+VNTDHxKf7k+M65sviyynRoZYuL1/GTuhEVb8RYsNSNln71nANRb/faSyWvx0j+gHcivChXHIoMJrGYjog==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", @@ -6373,8 +6270,8 @@ "fb-watchman": "^2.0.0", "graceful-fs": "^4.2.9", "jest-regex-util": "^29.6.3", - "jest-util": "^29.6.3", - "jest-worker": "^29.6.4", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "micromatch": "^4.0.4", "walker": "^1.0.8" }, @@ -6395,13 +6292,13 @@ } }, "node_modules/jest-haste-map/node_modules/jest-worker": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.4.tgz", - "integrity": "sha512-6dpvFV4WjcWbDVGgHTWo/aupl8/LbBx2NSKfiwqf79xC/yeJjKHT1+StcKy/2KTmW16hE68ccKVOtXf+WZGz7Q==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "dependencies": { "@types/node": "*", - "jest-util": "^29.6.3", + "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -6425,27 +6322,103 @@ } }, "node_modules/jest-leak-detector": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.6.3.tgz", - "integrity": "sha512-0kfbESIHXYdhAdpLsW7xdwmYhLf1BRu4AA118/OxFm0Ho1b2RcTmO4oF6aAMaxpxdxnJ3zve2rgwzNBD4Zbm7Q==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, "dependencies": { "jest-get-type": "^29.6.3", - "pretty-format": "^29.6.3" + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-leak-detector/node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-message-util": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", @@ -6577,17 +6550,17 @@ } }, "node_modules/jest-resolve": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.6.4.tgz", - "integrity": "sha512-fPRq+0vcxsuGlG0O3gyoqGTAxasagOxEuyoxHeyxaZbc9QNek0AmJWSkhjlMG+mTsj+8knc/mWb3fXlRNVih7Q==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.4", + "jest-haste-map": "^29.7.0", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.6.3", - "jest-validate": "^29.6.3", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "resolve": "^1.20.0", "resolve.exports": "^2.0.0", "slash": "^3.0.0" @@ -6597,13 +6570,13 @@ } }, "node_modules/jest-resolve-dependencies": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.4.tgz", - "integrity": "sha512-7+6eAmr1ZBF3vOAJVsfLj1QdqeXG+WYhidfLHBRZqGN24MFRIiKG20ItpLw2qRAsW/D2ZUUmCNf6irUr/v6KHA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, "dependencies": { "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.6.4" + "jest-snapshot": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -6680,30 +6653,30 @@ } }, "node_modules/jest-runner": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.6.4.tgz", - "integrity": "sha512-SDaLrMmtVlQYDuG0iSPYLycG8P9jLI+fRm8AF/xPKhYDB2g6xDWjXBrR5M8gEWsK6KVFlebpZ4QsrxdyIX1Jaw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, "dependencies": { - "@jest/console": "^29.6.4", - "@jest/environment": "^29.6.4", - "@jest/test-result": "^29.6.4", - "@jest/transform": "^29.6.4", + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.13.1", "graceful-fs": "^4.2.9", - "jest-docblock": "^29.6.3", - "jest-environment-node": "^29.6.4", - "jest-haste-map": "^29.6.4", - "jest-leak-detector": "^29.6.3", - "jest-message-util": "^29.6.3", - "jest-resolve": "^29.6.4", - "jest-runtime": "^29.6.4", - "jest-util": "^29.6.3", - "jest-watcher": "^29.6.4", - "jest-worker": "^29.6.4", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" }, @@ -6770,13 +6743,13 @@ } }, "node_modules/jest-runner/node_modules/jest-worker": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.4.tgz", - "integrity": "sha512-6dpvFV4WjcWbDVGgHTWo/aupl8/LbBx2NSKfiwqf79xC/yeJjKHT1+StcKy/2KTmW16hE68ccKVOtXf+WZGz7Q==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "dependencies": { "@types/node": "*", - "jest-util": "^29.6.3", + "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -6837,17 +6810,17 @@ } }, "node_modules/jest-runtime": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.6.4.tgz", - "integrity": "sha512-s/QxMBLvmwLdchKEjcLfwzP7h+jsHvNEtxGP5P+Fl1FMaJX2jMiIqe4rJw4tFprzCwuSvVUo9bn0uj4gNRXsbA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, "dependencies": { - "@jest/environment": "^29.6.4", - "@jest/fake-timers": "^29.6.4", - "@jest/globals": "^29.6.4", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.6.4", - "@jest/transform": "^29.6.4", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", @@ -6855,13 +6828,13 @@ "collect-v8-coverage": "^1.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.4", - "jest-message-util": "^29.6.3", - "jest-mock": "^29.6.3", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.6.4", - "jest-snapshot": "^29.6.4", - "jest-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, @@ -6960,9 +6933,9 @@ } }, "node_modules/jest-snapshot": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.6.4.tgz", - "integrity": "sha512-VC1N8ED7+4uboUKGIDsbvNAZb6LakgIPgAF4RSpF13dN6YaMokfRqO+BaqK4zIh6X3JffgwbzuGqDEjHm/MrvA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", @@ -6970,20 +6943,20 @@ "@babel/plugin-syntax-jsx": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.6.4", - "@jest/transform": "^29.6.4", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^29.6.4", + "expect": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-diff": "^29.6.4", + "jest-diff": "^29.7.0", "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.6.4", - "jest-message-util": "^29.6.3", - "jest-util": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "natural-compare": "^1.4.0", - "pretty-format": "^29.6.3", + "pretty-format": "^29.7.0", "semver": "^7.5.3" }, "engines": { @@ -7039,15 +7012,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-snapshot/node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/jest-snapshot/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -7057,45 +7021,6 @@ "node": ">=8" } }, - "node_modules/jest-snapshot/node_modules/jest-diff": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.6.4.tgz", - "integrity": "sha512-9F48UxR9e4XOEZvoUXEHSWY4qC4zERJaOfrbBg9JpbJOO43R1vN76REt/aMGZoY6GD5g84nnJiBIVlscegefpw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/jest-matcher-utils": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.6.4.tgz", - "integrity": "sha512-KSzwyzGvK4HcfnserYqJHYi7sZVqdREJ9DMPAKVbS98JsIAvumihaNUbjrWw0St7p9IY7A9UskCW5MYlGmBQFQ==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.6.4", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/jest-snapshot/node_modules/semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", @@ -7211,9 +7136,9 @@ } }, "node_modules/jest-validate": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.6.3.tgz", - "integrity": "sha512-e7KWZcAIX+2W1o3cHfnqpGajdCs1jSM3DkXjGeLSNmCazv1EeI1ggTeK5wdZhF+7N+g44JI2Od3veojoaumlfg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", @@ -7221,7 +7146,7 @@ "chalk": "^4.0.0", "jest-get-type": "^29.6.3", "leven": "^3.1.0", - "pretty-format": "^29.6.3" + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -7297,15 +7222,6 @@ "node": ">=8" } }, - "node_modules/jest-validate/node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/jest-validate/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -7319,18 +7235,18 @@ } }, "node_modules/jest-watcher": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.6.4.tgz", - "integrity": "sha512-oqUWvx6+On04ShsT00Ir9T4/FvBeEh2M9PTubgITPxDa739p4hoQweWPRGyYeaojgT0xTpZKF0Y/rSY1UgMxvQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, "dependencies": { - "@jest/test-result": "^29.6.4", + "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.13.1", - "jest-util": "^29.6.3", + "jest-util": "^29.7.0", "string-length": "^4.0.1" }, "engines": { @@ -8737,9 +8653,9 @@ } }, "node_modules/pure-rand": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.2.tgz", - "integrity": "sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", + "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", "dev": true, "funding": [ { diff --git a/package.json b/package.json index 2dcf59708bf..4a12f0093f7 100644 --- a/package.json +++ b/package.json @@ -80,7 +80,7 @@ "eslint": "^8.50.0", "exports-loader": "^4.0.0", "glob": "^10.3.10", - "jest": "^29.6.4", + "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "jest-extended": "^4.0.1", "mini-css-extract-plugin": "^2.7.6", From caa066572fdedc2e61b26db23d25fd366a31792f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Oct 2023 05:50:25 +0000 Subject: [PATCH 14/29] Bump terser from 5.19.3 to 5.20.0 Bumps [terser](https://github.com/terser/terser) from 5.19.3 to 5.20.0. - [Changelog](https://github.com/terser/terser/blob/master/CHANGELOG.md) - [Commits](https://github.com/terser/terser/compare/v5.19.3...v5.20.0) --- updated-dependencies: - dependency-name: terser dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 167ba964e54..dabc33d166f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -81,7 +81,7 @@ "strip-sourcemap-loader": "^0.0.1", "stylelint": "^15.10.3", "stylelint-config-standard-scss": "^11.0.0", - "terser": "^5.19.3", + "terser": "^5.20.0", "webpack": "^5.88.2", "webpack-cli": "^5.1.4" }, @@ -9812,9 +9812,9 @@ } }, "node_modules/terser": { - "version": "5.19.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.3.tgz", - "integrity": "sha512-pQzJ9UJzM0IgmT4FAtYI6+VqFf0lj/to58AV0Xfgg0Up37RyPG7Al+1cepC6/BVuAxR9oNb41/DL4DEoHJvTdg==", + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.20.0.tgz", + "integrity": "sha512-e56ETryaQDyebBwJIWYB2TT6f2EZ0fL0sW/JRXNMN26zZdKi2u/E/5my5lG6jNxym6qsrVXfFRmOdV42zlAgLQ==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", diff --git a/package.json b/package.json index 4a12f0093f7..c43459d2bec 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ "strip-sourcemap-loader": "^0.0.1", "stylelint": "^15.10.3", "stylelint-config-standard-scss": "^11.0.0", - "terser": "^5.19.3", + "terser": "^5.20.0", "webpack": "^5.88.2", "webpack-cli": "^5.1.4" } From 66828b5dd25ca6c8083f8a33ab793e5586e0af7f Mon Sep 17 00:00:00 2001 From: Berthe01 <133095811+Berthe01@users.noreply.github.com> Date: Mon, 2 Oct 2023 14:47:14 +0200 Subject: [PATCH 15/29] Add `sub_type` search option to rules (#15654) --- src/Rule.php | 8 ++++++++ tests/functional/Rule.php | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Rule.php b/src/Rule.php index 8e578239672..3fb6b6011a6 100644 --- a/src/Rule.php +++ b/src/Rule.php @@ -790,6 +790,14 @@ public function rawSearchOptions() 'datatype' => 'text' ]; + $tab[] = [ + 'id' => '122', + 'table' => $this->getTable(), + 'field' => 'sub_type', + 'name' => __('Subtype'), + 'datatype' => 'text' + ]; + $tab[] = [ 'id' => '80', 'table' => 'glpi_entities', diff --git a/tests/functional/Rule.php b/tests/functional/Rule.php index 4594fe300ad..45bf9557b79 100644 --- a/tests/functional/Rule.php +++ b/tests/functional/Rule.php @@ -195,7 +195,7 @@ public function testGetSpecificMassiveActions() public function testGetSearchOptionsNew() { $rule = new \Rule(); - $this->array($rule->rawSearchOptions())->hasSize(11); + $this->array($rule->rawSearchOptions())->hasSize(12); } public function testGetRuleWithCriteriasAndActions() From 38eae5988cc6edac6e87b7eaa4094b619ed4e35f Mon Sep 17 00:00:00 2001 From: Stanislas Date: Mon, 2 Oct 2023 15:31:40 +0200 Subject: [PATCH 16/29] fix(ui): fix long content overflow --- css/includes/components/_richtext.scss | 3 +++ 1 file changed, 3 insertions(+) diff --git a/css/includes/components/_richtext.scss b/css/includes/components/_richtext.scss index ee1c0436ae9..2529b5e5a2b 100644 --- a/css/includes/components/_richtext.scss +++ b/css/includes/components/_richtext.scss @@ -55,6 +55,7 @@ body.mce-content-body { .rich_text_container { white-space: initial; + width: 100%; thead, tbody, @@ -70,6 +71,8 @@ body.mce-content-body { } table { + overflow: auto; + max-width: 100%; word-break: normal; } From 25a0099422b088f94c0f45618cdab8c66beaed74 Mon Sep 17 00:00:00 2001 From: Stanislas Date: Tue, 3 Oct 2023 09:14:26 +0200 Subject: [PATCH 17/29] feat(Transfer): add new option for location field --- .../update_10.0.10_to_10.0.11/transfer.php | 42 +++++++++ install/mysql/glpi-empty.sql | 1 + src/Transfer.php | 21 ++++- tests/functional/Transfer.php | 93 +++++++++++++++++++ 4 files changed, 155 insertions(+), 2 deletions(-) create mode 100644 install/migrations/update_10.0.10_to_10.0.11/transfer.php diff --git a/install/migrations/update_10.0.10_to_10.0.11/transfer.php b/install/migrations/update_10.0.10_to_10.0.11/transfer.php new file mode 100644 index 00000000000..f482ba30fcc --- /dev/null +++ b/install/migrations/update_10.0.10_to_10.0.11/transfer.php @@ -0,0 +1,42 @@ +. + * + * --------------------------------------------------------------------- + */ + +/** + * @var DB $DB + * @var Migration $migration + */ + + +$migration->addField('glpi_transfers', 'keep_location', "int", ['value' => '1']); diff --git a/install/mysql/glpi-empty.sql b/install/mysql/glpi-empty.sql index 8795413e092..5ad2a61fc0f 100644 --- a/install/mysql/glpi-empty.sql +++ b/install/mysql/glpi-empty.sql @@ -7514,6 +7514,7 @@ CREATE TABLE `glpi_transfers` ( `keep_certificate` int NOT NULL DEFAULT '0', `clean_certificate` int NOT NULL DEFAULT '0', `lock_updated_fields` int NOT NULL DEFAULT '0', + `keep_location` int NOT NULL DEFAULT '1', PRIMARY KEY (`id`), KEY `name` (`name`), KEY `date_mod` (`date_mod`), diff --git a/src/Transfer.php b/src/Transfer.php index 29869354145..e83b327c789 100644 --- a/src/Transfer.php +++ b/src/Transfer.php @@ -214,7 +214,8 @@ public function moveItems($items, $to, $options) 'keep_certificate' => 0, 'clean_certificate' => 0, - 'lock_updated_fields' => 0 + 'lock_updated_fields' => 0, + 'keep_location' => 1 ]; if ($to >= 0) { @@ -1307,8 +1308,10 @@ public function transferItem($itemtype, $ID, $newID) ]; // Manage Location dropdown - if (isset($item->fields['locations_id'])) { + if (isset($item->fields['locations_id']) && $this->options['keep_location']) { $input['locations_id'] = $this->transferDropdownLocation($item->fields['locations_id']); + } else { + $input['locations_id'] = 0; } if (in_array($itemtype, ['Ticket', 'Problem', 'Change'])) { @@ -3911,6 +3914,20 @@ class='btn btn-primary'>"; } echo ""; + echo ""; + echo "" . _n('Location', 'Locations', 1) . ""; + $location_option = [ + 0 => __("Empty the location"), + 1 => __('Preserve') + ]; + $params['value'] = $this->fields['keep_location']; + Dropdown::showFromArray('keep_location', $location_option, $params); + echo ""; + if (!$edit_form) { + echo " "; + } + echo ""; + echo ""; echo "" . _n('Asset', 'Assets', Session::getPluralNumber()) . ""; diff --git a/tests/functional/Transfer.php b/tests/functional/Transfer.php index b0e1dec4067..7b79a76d27f 100644 --- a/tests/functional/Transfer.php +++ b/tests/functional/Transfer.php @@ -539,4 +539,97 @@ public function testKeepCertificateOption( } } } + + + public function testKeepLocationTransfer() + { + $this->login(); + + //Original entity + $fentity = (int)getItemByTypeName('Entity', '_test_root_entity', true); + //Destination entity + $dentity = (int)getItemByTypeName('Entity', '_test_child_2', true); + + $location = new \Location(); + $location_id = (int)$location->add([ + 'name' => 'location', + 'entities_id' => $fentity, + 'is_recursive' => 1 + ]); + $this->integer($location_id)->isGreaterThan(0); + $this->boolean($location->getFromDB($location_id))->isTrue(); + + + $ticket = new \Ticket(); + $ticket_id = (int)$ticket->add([ + 'name' => 'ticket', + 'content' => 'content ticket', + 'locations_id' => $location_id, + 'entities_id' => $fentity + ]); + $this->integer($ticket_id)->isGreaterThan(0); + $this->boolean($ticket->getFromDB($ticket_id))->isTrue(); + + + //transer to another entity + $transfer = new \Transfer(); + $this->boolean($transfer->getFromDB(1))->isTrue(); + + //update transfer model to keep location + $transfer->fields["keep_location"] = 1; + $this->boolean($transfer->update($transfer->fields))->isTrue(); + + $item_to_transfer = ["ticket" => [$ticket_id => $ticket_id]]; + $transfer->moveItems($item_to_transfer, $dentity, $transfer->fields); + + //reload ticket + $this->boolean($ticket->getFromDB($ticket_id))->isTrue(); + $this->integer($ticket->fields['locations_id'])->isEqualTo($location_id); + } + + public function testEmptyLocationTransfer() + { + $this->login(); + + //Original entity + $fentity = (int)getItemByTypeName('Entity', '_test_root_entity', true); + //Destination entity + $dentity = (int)getItemByTypeName('Entity', '_test_child_2', true); + + $location = new \Location(); + $location_id = (int)$location->add([ + 'name' => 'location', + 'entities_id' => $fentity, + 'is_recursive' => 1 + ]); + $this->integer($location_id)->isGreaterThan(0); + $this->boolean($location->getFromDB($location_id))->isTrue(); + + + $ticket = new \Ticket(); + $ticket_id = (int)$ticket->add([ + 'name' => 'ticket', + 'content' => 'content ticket', + 'locations_id' => $location_id, + 'entities_id' => $fentity + ]); + $this->integer($ticket_id)->isGreaterThan(0); + $this->boolean($ticket->getFromDB($ticket_id))->isTrue(); + + + //transer to another entity + $transfer = new \Transfer(); + $this->boolean($transfer->getFromDB(1))->isTrue(); + + //update transfer model to empty location + $transfer->fields["keep_location"] = 0; + $this->boolean($transfer->update($transfer->fields))->isTrue(); + + $item_to_transfer = ["ticket" => [$ticket_id => $ticket_id]]; + $transfer->moveItems($item_to_transfer, $dentity, $transfer->fields); + + //reload ticket + $this->boolean($ticket->getFromDB($ticket_id))->isTrue(); + $this->integer($ticket->fields['locations_id'])->isEqualTo(0); + } } From a748aac7995c66d3e2e259d8530be495d38c407d Mon Sep 17 00:00:00 2001 From: stonebuzz Date: Mon, 2 Oct 2023 11:51:38 +0200 Subject: [PATCH 18/29] feat(SLA / OLA): increase maximum time --- src/LevelAgreement.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/LevelAgreement.php b/src/LevelAgreement.php index 6755c205c03..75185106b6b 100644 --- a/src/LevelAgreement.php +++ b/src/LevelAgreement.php @@ -203,7 +203,8 @@ public function showForm($ID, array $options = []) echo "" . __('Maximum time') . ""; echo ""; Dropdown::showNumber("number_time", ['value' => $this->fields["number_time"], - 'min' => 0 + 'min' => 0, + 'max' => 1000 ]); $possible_values = self::getDefinitionTimeValues(); $rand = Dropdown::showFromArray( From 5127dd10c8bbbd418eefe5b786d781f77f134a4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Legastelois?= Date: Tue, 3 Oct 2023 11:36:40 +0200 Subject: [PATCH 19/29] fix(fuzzy): main entries before subentries and dashboards --- src/Html.php | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/src/Html.php b/src/Html.php index f7b9a6815c2..af6faf83358 100644 --- a/src/Html.php +++ b/src/Html.php @@ -6612,6 +6612,24 @@ public static function fuzzySearch($action = '') // retrieve menu foreach ($_SESSION['glpimenu'] as $firstlvl) { + if (isset($firstlvl['default'])) { + if (strlen($firstlvl['title']) > 0) { + $fuzzy_entries[] = [ + 'url' => $firstlvl['default'], + 'title' => $firstlvl['title'] + ]; + } + } + + if (isset($firstlvl['default_dashboard'])) { + if (strlen($firstlvl['title']) > 0) { + $fuzzy_entries[] = [ + 'url' => $firstlvl['default_dashboard'], + 'title' => $firstlvl['title'] . " > " . __('Dashboard') + ]; + } + } + if (isset($firstlvl['content'])) { foreach ($firstlvl['content'] as $menu) { if (isset($menu['title']) && strlen($menu['title']) > 0) { @@ -6635,15 +6653,6 @@ public static function fuzzySearch($action = '') } } } - - if (isset($firstlvl['default'])) { - if (strlen($firstlvl['title']) > 0) { - $fuzzy_entries[] = [ - 'url' => $firstlvl['default'], - 'title' => $firstlvl['title'] - ]; - } - } } // return the entries to ajax call From 6594396d43c7cb20fc234ea350657575df040733 Mon Sep 17 00:00:00 2001 From: Rom1-B Date: Tue, 3 Oct 2023 13:55:20 +0200 Subject: [PATCH 20/29] fix(rule criteria): regex match with carriage return --- src/RuleCriteria.php | 4 ++-- tests/functional/RuleCriteria.php | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/RuleCriteria.php b/src/RuleCriteria.php index 4e52e73f2a1..48eff7f983a 100644 --- a/src/RuleCriteria.php +++ b/src/RuleCriteria.php @@ -495,7 +495,7 @@ public static function match(RuleCriteria &$criterion, $field, &$criterias_resul case Rule::REGEX_MATCH: $results = []; - $match_result = @preg_match_all($pattern . "i", $field, $results); + $match_result = @preg_match_all($pattern . "si", $field, $results); if ($match_result === false) { trigger_error( sprintf('Invalid regular expression `%s`.', $pattern), @@ -518,7 +518,7 @@ public static function match(RuleCriteria &$criterion, $field, &$criterias_resul return false; case Rule::REGEX_NOT_MATCH: - $match_result = @preg_match($pattern . "i", $field); + $match_result = @preg_match($pattern . "si", $field); if ($match_result === false) { trigger_error( sprintf('Invalid regular expression `%s`.', $pattern), diff --git a/tests/functional/RuleCriteria.php b/tests/functional/RuleCriteria.php index ce81f6234f2..fa2ab56ccf8 100644 --- a/tests/functional/RuleCriteria.php +++ b/tests/functional/RuleCriteria.php @@ -1045,6 +1045,18 @@ protected function ruleCriteriaMatchProvider(): iterable 'value' => $value_sanitized ? Sanitizer::sanitize("\o/") : "\o/", 'matches' => true ]; + yield [ + 'condition' => \Rule::REGEX_MATCH, + 'pattern' => $pattern_sanitized ? Sanitizer::sanitize("/line1.*line2/") : "/line1.*line2/", + 'value' => $value_sanitized ? Sanitizer::sanitize("line1\nline2") : "line1\nline2", + 'matches' => true + ]; + yield [ + 'condition' => \Rule::REGEX_MATCH, + 'pattern' => $pattern_sanitized ? Sanitizer::sanitize("/line1.*line3/") : "/line1.*line3/", + 'value' => $value_sanitized ? Sanitizer::sanitize("line1\n

line2

\nline3") : "line1\n

line2

\nline3", + 'matches' => true + ]; } } } From 3b6c54fe16adcf72fd09ea9c64d1c22f28c279d2 Mon Sep 17 00:00:00 2001 From: Adrien Clairembault <42734840+AdrienClairembault@users.noreply.github.com> Date: Tue, 3 Oct 2023 15:57:37 +0200 Subject: [PATCH 21/29] Display pending reason in tickets details (#15696) * Display pending reason in tickets details * Fix lint --- .../itilobject/fields/status.html.twig | 4 ++++ .../timeline/pending_reasons_messages.html.twig | 17 +++++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/templates/components/itilobject/fields/status.html.twig b/templates/components/itilobject/fields/status.html.twig index 602b807a952..ab31d93c8d7 100644 --- a/templates/components/itilobject/fields/status.html.twig +++ b/templates/components/itilobject/fields/status.html.twig @@ -47,6 +47,10 @@ {% if validation_class is not null %} {{ validation_class.alertValidation(item, 'status') }} {% endif %} + + {{ include('components/itilobject/timeline/pending_reasons_messages.html.twig', { + 'display_for_parent': true, + }) }} {% endset %} {% else %} {% set field_options = field_options|merge({'center': true}) %} diff --git a/templates/components/itilobject/timeline/pending_reasons_messages.html.twig b/templates/components/itilobject/timeline/pending_reasons_messages.html.twig index c97c6a08a7b..0c63d3a5167 100644 --- a/templates/components/itilobject/timeline/pending_reasons_messages.html.twig +++ b/templates/components/itilobject/timeline/pending_reasons_messages.html.twig @@ -32,16 +32,21 @@ #} {% set pending_reason_item_parent = call("PendingReason_Item::getForItem", [item]) %} -{% set pending_item = call(entry['type'] ~ "::getById", [entry_i['id']]) %} -{% set pending_reason_item = pending_item ? call("PendingReason_Item::getForItem", [pending_item]) : false %} -{% set pending_reason = pending_reason_item ? call("PendingReason::getById", [pending_reason_item.fields['pendingreasons_id']]) : false %} -{% if pending_reason %} - +{% if display_for_parent %} + {% set pending_reason = pending_reason_item_parent ? call("PendingReason::getById", [pending_reason_item_parent.fields['pendingreasons_id']]) : false %} +{% else %} + {% set pending_item = pending_item ?? call(entry['type'] ~ "::getById", [entry_i['id']]) %} + {% set pending_reason_item = pending_item ? call("PendingReason_Item::getForItem", [pending_item]) : false %} + {% set pending_reason = pending_reason_item ? call("PendingReason::getById", [pending_reason_item.fields['pendingreasons_id']]) : false %} +{% endif %} + +{% if pending_reason %} + {{ __("Pending: %s")|format(pending_reason.getLink())|raw }} - {% if call("PendingReason_Item::isLastPendingForItem", [ + {% if display_for_parent or call("PendingReason_Item::isLastPendingForItem", [ item, pending_item ]) %} From c89019fed43d5eec83db603a1358ea29cb9b2719 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Anne?= Date: Tue, 3 Oct 2023 15:18:01 +0200 Subject: [PATCH 22/29] Prevent tickets creation SQL to use `id=0` fixes #15458 --- templates/components/itilobject/mainform_open.html.twig | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/templates/components/itilobject/mainform_open.html.twig b/templates/components/itilobject/mainform_open.html.twig index 0e193b0dc53..86d593561e1 100644 --- a/templates/components/itilobject/mainform_open.html.twig +++ b/templates/components/itilobject/mainform_open.html.twig @@ -50,7 +50,9 @@
- + {% if not item.isNewItem() %} + + {% endif %} From bb599074e78a21f983db0d6a2f8a73bbcd5f3d93 Mon Sep 17 00:00:00 2001 From: Stanislas Date: Tue, 3 Oct 2023 15:58:40 +0200 Subject: [PATCH 23/29] fix(LockedField): do not save value for global lockedfield (#15697) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(LockedField): do not save value for global lockedfield * fix function Co-authored-by: Cédric Anne --------- Co-authored-by: Cédric Anne --- .../update_10.0.10_to_10.0.11/lockedfield.php | 47 +++++++++++++++++++ src/CommonDBTM.php | 17 ++++--- src/Lockedfield.php | 33 +++++++++++++ tests/functional/Lockedfield.php | 9 ++-- 4 files changed, 96 insertions(+), 10 deletions(-) create mode 100644 install/migrations/update_10.0.10_to_10.0.11/lockedfield.php diff --git a/install/migrations/update_10.0.10_to_10.0.11/lockedfield.php b/install/migrations/update_10.0.10_to_10.0.11/lockedfield.php new file mode 100644 index 00000000000..0916f5e519f --- /dev/null +++ b/install/migrations/update_10.0.10_to_10.0.11/lockedfield.php @@ -0,0 +1,47 @@ +. + * + * --------------------------------------------------------------------- + */ + +//lockedfield previous value must be null for global lock +$migration->addPostQuery( + $DB->buildUpdate( + 'glpi_lockedfields', + [ + 'value' => null + ], + [ + 'is_global' => 1 + ] + ) +); diff --git a/src/CommonDBTM.php b/src/CommonDBTM.php index 65178aad724..01e6b4f1f7f 100644 --- a/src/CommonDBTM.php +++ b/src/CommonDBTM.php @@ -1752,7 +1752,6 @@ protected function cleanLockedsOnAdd() } if (array_key_exists($lock, $this->input)) { - $lockedfield->setLastValue($this->getType(), 0, $lock, $this->input[$lock]); unset($this->input[$lock]); } } @@ -1781,15 +1780,19 @@ protected function cleanLockeds() && $this->input['is_dynamic'] == true) ) { $lockedfield = new Lockedfield(); - $locks = $lockedfield->getLockedNames($this->getType(), $this->fields['id']); + $locks = $lockedfield->getFullLockedFields($this->getType(), $this->fields['id']); foreach ($locks as $lock) { - $idx = array_search($lock, $this->updates); + $lock_field = $lock['field']; + $idx = array_search($lock_field, $this->updates); if ($idx !== false) { - $lockedfield->setLastValue($this->getType(), $this->fields['id'], $lock, $this->input[$lock]); + //do not update global lock value + if (!$lock['is_global']) { + $lockedfield->setLastValue($this->getType(), $this->fields['id'], $lock_field, $this->input[$lock_field]); + } unset($this->updates[$idx]); - unset($this->input[$lock]); - $this->fields[$lock] = $this->oldvalues[$lock]; - unset($this->oldvalues[$lock]); + unset($this->input[$lock_field]); + $this->fields[$lock_field] = $this->oldvalues[$lock_field]; + unset($this->oldvalues[$lock_field]); } } $this->updates = array_values($this->updates); diff --git a/src/Lockedfield.php b/src/Lockedfield.php index 8fd086d5a13..9bb01e387b5 100644 --- a/src/Lockedfield.php +++ b/src/Lockedfield.php @@ -163,6 +163,39 @@ public function getLockedValues($itemtype, $items_id) return $this->getLocks($itemtype, $items_id, false); } + + /** + * Get locked fields + * + * @param string $itemtype Item type + * @param integer $items_id Item ID + * + * return array + */ + final public function getFullLockedFields($itemtype, $items_id): array + { + global $DB; + + $iterator = $DB->request([ + 'FROM' => $this->getTable(), + 'WHERE' => [ + 'itemtype' => $itemtype, + [ + 'OR' => [ + 'items_id' => $items_id, + 'is_global' => 1 + ] + ] + ] + ]); + + $locks = []; + foreach ($iterator as $row) { + $locks[$row['id']] = $row; + } + return $locks; + } + /** * Get locked fields * diff --git a/tests/functional/Lockedfield.php b/tests/functional/Lockedfield.php index 0622509434c..4f1cd5ca340 100644 --- a/tests/functional/Lockedfield.php +++ b/tests/functional/Lockedfield.php @@ -187,7 +187,8 @@ public function testGlobalLockAdd() $this->variable($computer->fields['otherserial'])->isEqualTo(''); $this->boolean($lockedfield->isHandled($computer))->isTrue(); - $this->array($lockedfield->getLockedValues($computer->getType(), $cid))->isIdenticalTo(['otherserial' => '789012']); + //lockedfield value must be null because it's a global lock + $this->array($lockedfield->getLockedValues($computer->getType(), $cid))->isIdenticalTo(['otherserial' => null]); //ensure new dynamic update does not override otherserial again $this->boolean( @@ -200,7 +201,8 @@ public function testGlobalLockAdd() $this->boolean($computer->getFromDB($cid))->isTrue(); $this->variable($computer->fields['otherserial'])->isEqualTo(''); - $this->array($lockedfield->getLockedValues($computer->getType(), $cid))->isIdenticalTo(['otherserial' => '789012']); + //lockedfield must be null because it's a global lock + $this->array($lockedfield->getLockedValues($computer->getType(), $cid))->isIdenticalTo(['otherserial' => null]); //ensure new dynamic update do not set new lock on regular update $this->boolean( @@ -213,7 +215,8 @@ public function testGlobalLockAdd() $this->boolean($computer->getFromDB($cid))->isTrue(); $this->variable($computer->fields['name'])->isEqualTo('Computer name changed'); - $this->array($lockedfield->getLockedValues($computer->getType(), $cid))->isIdenticalTo(['otherserial' => '789012']); + //lockedfield must be null because it's a global lock + $this->array($lockedfield->getLockedValues($computer->getType(), $cid))->isIdenticalTo(['otherserial' => null]); //ensure regular update do work on locked field $this->boolean( From 587a5bae634ca3709cd38f230a00beb8c514bf63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Anne?= Date: Tue, 26 Sep 2023 12:02:55 +0200 Subject: [PATCH 24/29] Fix LDAP delete/restore conditions --- src/AuthLDAP.php | 4 ++-- src/User.php | 24 ++++++++++++++++-------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/AuthLDAP.php b/src/AuthLDAP.php index 9bcb6f5b0c6..3aebcdf9ede 100644 --- a/src/AuthLDAP.php +++ b/src/AuthLDAP.php @@ -2179,11 +2179,11 @@ public static function getAllUsers(array $options, &$results, &$limitexceeded) // Only manage deleted user if ALL (because of entity visibility in delegated mode) if ($user['auths_id'] == $options['authldaps_id']) { - if (!$user['is_deleted']) { + if (!$userfound && $user['is_deleted_ldap'] == 0) { //If user is marked as coming from LDAP, but is not present in it anymore User::manageDeletedUserInLdap($user['id']); $results[self::USER_DELETED_LDAP]++; - } else { + } elseif ($userfound && $user['is_deleted_ldap'] == 1) { // User is marked as coming from LDAP, but was previously deleted User::manageRestoredUserInLdap($user['id']); $results[self::USER_RESTORED_LDAP]++; diff --git a/src/User.php b/src/User.php index d86c9fa045b..331a1b04b52 100644 --- a/src/User.php +++ b/src/User.php @@ -5182,12 +5182,19 @@ public static function manageDeletedUserInLdap($users_id) return; } + $myuser = new self(); + if ( + !$myuser->getFromDB($users_id) // invalid user + || $myuser->fields['is_deleted_ldap'] == 1 // user already considered as deleted from LDAP + ) { + return; + } + //User is present in DB but not in the directory : it's been deleted in LDAP $tmp = [ 'id' => $users_id, 'is_deleted_ldap' => 1, ]; - $myuser = new self(); switch ($CFG_GLPI['user_deleted_ldap']) { //DO nothing @@ -5256,18 +5263,19 @@ public static function manageRestoredUserInLdap($users_id): void return; } + $myuser = new self(); + if ( + !$myuser->getFromDB($users_id) // invalid user + || $myuser->fields['is_deleted_ldap'] == 0 // user already considered as restored from LDAP + ) { + return; + } + //User is present in DB and in the directory but 'is_ldap_deleted' was true : it's been restored in LDAP $tmp = [ 'id' => $users_id, 'is_deleted_ldap' => 0, ]; - $myuser = new self(); - $myuser->getFromDB($users_id); - - // User is already considered as restored from ldap - if ($myuser->fields['is_deleted_ldap'] == 0) { - return; - } // Calling the update function for the user will reapply dynamic rights {@see User::post_updateItem()} switch ($CFG_GLPI['user_restored_ldap']) { From 6cdbdc405733db3a880aae278d6156521f2c5b93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Anne?= Date: Tue, 3 Oct 2023 15:37:58 +0200 Subject: [PATCH 25/29] Fix display of icons in system information tab fixes #15637 --- src/Config.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Config.php b/src/Config.php index 84d148d2d62..63254241cfc 100644 --- a/src/Config.php +++ b/src/Config.php @@ -2088,7 +2088,7 @@ public function showSystemInformations() $cleaner_script = << Date: Tue, 3 Oct 2023 20:16:00 -0400 Subject: [PATCH 26/29] fix group formats in API listSearchOptions --- src/Api/API.php | 3 +++ src/Search.php | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Api/API.php b/src/Api/API.php index a62621155ba..73f87f89927 100644 --- a/src/Api/API.php +++ b/src/Api/API.php @@ -1433,6 +1433,9 @@ protected function listSearchOptions( $option ); } else { + if (is_string($option)) { + $option = ['name' => $option]; + } $cleaned_soptions[$sID] = $option; } } diff --git a/src/Search.php b/src/Search.php index e7af3dd8c33..1f5e0d53e73 100644 --- a/src/Search.php +++ b/src/Search.php @@ -8197,7 +8197,7 @@ public static function &getOptions($itemtype, $withplugins = true) Session::getLoginUserID() && in_array($itemtype, $CFG_GLPI["ticket_types"]) ) { - self::$search[$itemtype]['tracking'] = __('Assistance'); + self::$search[$itemtype]['tracking'] = ['name' => __('Assistance')]; self::$search[$itemtype][60]['table'] = 'glpi_tickets'; self::$search[$itemtype][60]['field'] = 'id'; @@ -8287,9 +8287,9 @@ public static function &getOptions($itemtype, $withplugins = true) } if (in_array($itemtype, $CFG_GLPI["link_types"])) { - self::$search[$itemtype]['link'] = Link::getTypeName(Session::getPluralNumber()); + self::$search[$itemtype]['link'] = ['name' => Link::getTypeName(Session::getPluralNumber())]; self::$search[$itemtype] += Link::getSearchOptionsToAdd($itemtype); - self::$search[$itemtype]['manuallink'] = ManualLink::getTypeName(Session::getPluralNumber()); + self::$search[$itemtype]['manuallink'] = ['name' => ManualLink::getTypeName(Session::getPluralNumber())]; self::$search[$itemtype] += ManualLink::getSearchOptionsToAdd($itemtype); } From 64222e3311041ac489e106b9798d50b8dc7513b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Anne?= Date: Wed, 4 Oct 2023 09:12:52 +0200 Subject: [PATCH 27/29] Fix handling of unquoted images src in mail collector fixes #15578 --- src/Ticket.php | 18 ++-- .../41-image-src-with-no-quote.eml | 41 +++++++++ tests/functional/Ticket.php | 83 ++++++++++++------- tests/imap/MailCollector.php | 2 + 4 files changed, 106 insertions(+), 38 deletions(-) create mode 100644 tests/emails-tests/41-image-src-with-no-quote.eml diff --git a/src/Ticket.php b/src/Ticket.php index e632ed6067b..f6a42856145 100644 --- a/src/Ticket.php +++ b/src/Ticket.php @@ -6189,16 +6189,18 @@ public function getRights($interface = 'central') **/ public static function convertContentForTicket($html, $files, $tags) { - - preg_match_all("/src\s*=\s*['|\"](.+?)['|\"]/", $html, $matches, PREG_PATTERN_ORDER); - if (isset($matches[1]) && count($matches[1])) { - // Get all image src - - foreach ($matches[1] as $src) { + $src_patterns = [ + 'src\s*=\s*"[^"]+"', // src="image.png" + "src\s*=\s*'[^']+'", // src='image.png' + 'src\s*=[^\s>]+', // src=image.png + ]; + $matches = []; + if (preg_match_all('/(' . implode('|', $src_patterns) . ')/', $html, $matches, PREG_PATTERN_ORDER) > 0) { + foreach ($matches[0] as $src_attr) { // Set tag if image matches foreach ($files as $data => $filename) { - if (preg_match("/" . $data . "/i", $src)) { - $html = preg_replace("/]*src=['|\"]" . preg_quote($src, '/') . "['|\"][^>]*\>/s", "

" . Document::getImageTag($tags[$filename]) . "

", $html); + if (preg_match("/" . $data . "/i", $src_attr)) { + $html = preg_replace("/]*" . preg_quote($src_attr, '/') . "[^>]*>/s", "

" . Document::getImageTag($tags[$filename]) . "

", $html); } } } diff --git a/tests/emails-tests/41-image-src-with-no-quote.eml b/tests/emails-tests/41-image-src-with-no-quote.eml new file mode 100644 index 00000000000..0ad46464f5a --- /dev/null +++ b/tests/emails-tests/41-image-src-with-no-quote.eml @@ -0,0 +1,41 @@ +Date: Thu, 1 Dec 2022 11:23:48 +0200 (CEST) +From: Normal User +To: GLPI debug +Subject: 41 - Image src without quotes +MIME-Version: 1.0 +Content-Type: multipart/alternative; + boundary="----=_Part_1757883_1359581901.1528365951028" + +------=_Part_1757883_1359581901.1528365951028 +Content-Type: text/plain; charset=utf-8 +Content-Transfer-Encoding: 7bit + +Image: + +------=_Part_1757883_1359581901.1528365951028 +Content-Type: multipart/related; + boundary="----=_Part_1757884_1267006027.1528365951028" + +------=_Part_1757884_1267006027.1528365951028 +Content-Type: text/html; charset=utf-8 +Content-Transfer-Encoding: 7bit + + + +Image: + + +------=_Part_1757884_1267006027.1528365951028 +Content-Type: image/png; name=41-blue-dot.png +Content-Disposition: attachment; filename=41-blue-dot.png +Content-Transfer-Encoding: base64 +Content-ID: + +iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAAXNSR0IB2cksfwAAAAlwSFlzAAAL +EwAACxMBAJqcGAAAAANQTFRFAAD/injSVwAAAApJREFUeJxjYAAAAAIAAUivpHEAAAAASUVORK5C +YII= +------=_Part_1757884_1267006027.1528365951028-- + +------=_Part_1757883_1359581901.1528365951028-- + + diff --git a/tests/functional/Ticket.php b/tests/functional/Ticket.php index 682f6e8ddf5..daee1f0f955 100644 --- a/tests/functional/Ticket.php +++ b/tests/functional/Ticket.php @@ -4230,51 +4230,74 @@ protected function convertContentForTicketProvider(): iterable 'expected' => '', ]; - // Content with embedded image. - yield [ - 'content' => << << + blabla HTML - , - 'files' => [ - 'screenshot.png' => 'screenshot.png', - ], - 'tags' => [ - 'screenshot.png' => '9faff0a6-f37490bd-60e2af9721f420.96500246', - ], - 'expected' => << [ + 'screenshot.png' => 'screenshot.png', + ], + 'tags' => [ + 'screenshot.png' => '9faff0a6-f37490bd-60e2af9721f420.96500246', + ], + 'expected' => <<#9faff0a6-f37490bd-60e2af9721f420.96500246#

blabla HTML - , - ]; + , + ]; + // `img` of embedded image that has multiple attributes. + yield [ + 'content' => << +blabla +HTML + , + 'files' => [ + 'screenshot.png' => 'screenshot.png', + ], + 'tags' => [ + 'screenshot.png' => '9faff0a6-f37490bd-60e2af9721f420.96500246', + ], + 'expected' => <<#9faff0a6-f37490bd-60e2af9721f420.96500246#

+blabla +HTML + , + ]; - // Content with leading external image that will not be replaced by a tag. - yield [ - 'content' => << + // Content with leading external image that will not be replaced by a tag. + yield [ + 'content' => << Here is the screenshot: - + blabla HTML - , - 'files' => [ - 'img.jpg' => 'img.jpg', - ], - 'tags' => [ - 'img.jpg' => '3eaff0a6-f37490bd-60e2a59721f420.96500246', - ], - 'expected' => << + , + 'files' => [ + 'img.jpg' => 'img.jpg', + ], + 'tags' => [ + 'img.jpg' => '3eaff0a6-f37490bd-60e2a59721f420.96500246', + ], + 'expected' => << Here is the screenshot:

#3eaff0a6-f37490bd-60e2a59721f420.96500246#

blabla HTML - , - ]; + , + ]; + } } /** diff --git a/tests/imap/MailCollector.php b/tests/imap/MailCollector.php index 2792c7ec989..8bfc17decd7 100644 --- a/tests/imap/MailCollector.php +++ b/tests/imap/MailCollector.php @@ -791,6 +791,7 @@ function () use (&$msg) { '40.1 - Empty content (multipart)', '40.2 - Empty content (html)', '40.3 - Empty content (plain text)', + '41 - Image src without quotes', ] ], // Mails having "normal" user as observer (add_cc_to_observer = true) @@ -943,6 +944,7 @@ function () use (&$msg) { '1234567890_2' => 'text/plain', '1234567890_3' => 'text/plain', '37-red-dot.png' => 'image/png', + '41-blue-dot.png' => 'image/png', ]; $iterator = $DB->request( From d57f8cb9be015ecb57b76e59227abb27b7cfe46b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Legastelois?= Date: Thu, 28 Sep 2023 17:24:54 +0200 Subject: [PATCH 28/29] fix(readme): list features according to ITIL category --- README.md | 45 +++++++++++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 902d6d6103a..ea3fe5b1ace 100644 --- a/README.md +++ b/README.md @@ -9,18 +9,39 @@ GLPI stands for **Gestionnaire Libre de Parc Informatique** is a Free Asset and IT Management Software package, that provides ITIL Service Desk features, licenses tracking and software auditing. -GLPI features: -* Inventory of computers, peripherals, network printers and any associated components through an interface, with inventory tools such as: [FusionInventory](http://fusioninventory.org/) or [OCS Inventory](https://www.ocsinventory-ng.org/) -* Data Center Infrastructure Management (DCIM) -* Item lifecycle management -* Licenses management (ITIL compliant) -* Management of warranty and financial information (purchase order, warranty and extension, damping) -* Management of contracts, contacts, documents related to inventory items -* Incidents, requests, problems and changes management -* Knowledge base and Frequently-Asked Questions (FAQ) -* Asset reservation - -Moreover, GLPI supports many [plugins](http://plugins.glpi-project.org) that provide additional features. +Major GLPI Features: + +* **Service Asset and Configuration Management (SACM)**: Manages your IT assets and configurations, tracks computers, peripherals, network printers, and their associated components. With native dynamic inventory management from version 10 onwards, you can maintain an up-to-date configuration database, ensuring accurate and timely information about your assets. + +* **Request Fulfillment**: Streamlines request fulfillment processes, making it easy to manage service requests, incidents, and problems efficiently. This ensures that user requests are handled promptly and professionally, enhancing overall service quality. + +* **Incident and Problem Management**: Supports efficient handling of ITIL's Incident Management and Problem Management processes. Ensures that issues are addressed promptly, root causes are identified, and preventive measures are taken. + +* **Change Management**: Supports change management processes, enabling you to plan, review, and implement changes in a controlled and standardized manner. This helps minimize disruptions and risks associated with changes to your IT environment. + +* **Knowledge Management**: Includes a knowledge base and Frequently Asked Questions (FAQ) support, facilitating knowledge management. Allows you to capture, store, and share valuable information and solutions, empowering your team to resolve issues more effectively. + +* **Contract Management**: Offers comprehensive contract management capabilities, including managing contracts, contacts, and associated documents related to inventory items. Aligns with ITIL's Supplier Management process, ensuring you have control and visibility over your contracts and vendor relationships. + +* **Financial Management for IT Services**: Assists in managing financial information, such as purchase orders, warranty details, and depreciation. Aligns with ITIL's Financial Management for IT Services process, helping you optimize IT spending and investments. + +* **Asset Reservation**: Offers asset reservation functionality, allowing you to reserve IT assets for specific purposes or periods. Aligns with ITIL's Demand Management process, ensuring resources are allocated effectively based on demand. + +* **Data Center Infrastructure Management (DCIM)**: Provides features for managing data center infrastructure, enhancing control over critical assets. + +* **Software and License Management**: Includes functionality for managing software and licenses, ensuring compliance and cost control. + +* **Impact Analysis**: Supports impact analysis, helping assess the potential consequences of changes or incidents on IT services. + +* **Service Catalog (with SLM)**: Includes service catalog features, often linked with Service Level Management (SLM), to define and manage available services. + +* **Entity Separation**: Offers entity separation features, allowing distinct management of different organizational units or entities. + +* **Project Management**: Supports project management, helping organize and track projects and associated tasks. + +* **Intervention Planning**: Offers intervention planning capabilities for scheduling and managing on-site interventions. + +Moreover, supports many [plugins](http://plugins.glpi-project.org) that provide additional features. ## Demonstration From f21b0ed61664c3b5ff2799eb7291c19fee6f27a9 Mon Sep 17 00:00:00 2001 From: AdrienClairembault Date: Wed, 4 Oct 2023 13:11:09 +0200 Subject: [PATCH 29/29] Display pending reason in tickets details 2 --- .../itilobject/timeline/pending_reasons_messages.html.twig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/components/itilobject/timeline/pending_reasons_messages.html.twig b/templates/components/itilobject/timeline/pending_reasons_messages.html.twig index 0c63d3a5167..019e794737a 100644 --- a/templates/components/itilobject/timeline/pending_reasons_messages.html.twig +++ b/templates/components/itilobject/timeline/pending_reasons_messages.html.twig @@ -42,7 +42,7 @@ {% endif %} {% if pending_reason %} - + {{ __("Pending: %s")|format(pending_reason.getLink())|raw }}