From 96be9d2aa61a2a75f36374c6afab9f122f34218b Mon Sep 17 00:00:00 2001 From: Thorsten Rinne Date: Thu, 12 Dec 2024 16:06:35 +0100 Subject: [PATCH 1/5] fix: corrected handling for quotes, closes #3285 --- phpmyfaq/assets/templates/default/startpage.twig | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/phpmyfaq/assets/templates/default/startpage.twig b/phpmyfaq/assets/templates/default/startpage.twig index 4f01933fe1..cebe6bebec 100644 --- a/phpmyfaq/assets/templates/default/startpage.twig +++ b/phpmyfaq/assets/templates/default/startpage.twig @@ -68,7 +68,7 @@

- {{ topten.title }} + {{ topten.title | raw }}

@@ -105,7 +105,7 @@

- {{ latest.title }} + {{ latest.title | raw }}

@@ -137,7 +137,7 @@

- {{ trending.title }} + {{ trending.title | raw }}

From 77c5f00d30fe3bc35eaf29477988576f61c17855 Mon Sep 17 00:00:00 2001 From: Thorsten Rinne Date: Fri, 13 Dec 2024 13:15:30 +0100 Subject: [PATCH 2/5] chore: v4.0.1 release --- CHANGELOG.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e410249ed..e59847ec27 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,10 +6,12 @@ This is a log of major user-visible changes in each phpMyFAQ release. -### phpMyFAQ v4.0.1 - unreleased +### phpMyFAQ v4.0.1 - 2024-12-13 +- fixed security vulnerability (Thorsten) - improved update handling of .htaccess file (Thorsten) - updated 3rd party dependencies (Thorsten) +- fixed minor bugs (Thorsten) ### phpMyFAQ v4.0.0 - 2024-12-06 From 23cfd0cce00616110f928f341eef501dcffa3fcc Mon Sep 17 00:00:00 2001 From: Thorsten Rinne Date: Fri, 13 Dec 2024 19:58:31 +0100 Subject: [PATCH 3/5] fix: corrected broken category image file upload, closes #3281 --- phpmyfaq/admin/category.edit.php | 2 +- phpmyfaq/admin/category.main.php | 7 ++- phpmyfaq/admin/footer.php | 1 - phpmyfaq/admin/index.php | 1 - phpmyfaq/src/phpMyFAQ/Category/Image.php | 29 ++++++------ tests/phpMyFAQ/Category/ImageTest.php | 59 ------------------------ 6 files changed, 19 insertions(+), 80 deletions(-) delete mode 100644 tests/phpMyFAQ/Category/ImageTest.php diff --git a/phpmyfaq/admin/category.edit.php b/phpmyfaq/admin/category.edit.php index c45cf3145f..4c6e74f1de 100644 --- a/phpmyfaq/admin/category.edit.php +++ b/phpmyfaq/admin/category.edit.php @@ -79,7 +79,7 @@ $restrictedGroups = true; } - $header = Translation::get('ad_categ_edit_1') . ' "' . Strings::htmlentities($categoryData->getName()) . '" ' . + $header = Translation::get('ad_categ_edit_1') . ' "' . $categoryData->getName() . '" ' . Translation::get('ad_categ_edit_2'); $allGroupsOptions = ''; diff --git a/phpmyfaq/admin/category.main.php b/phpmyfaq/admin/category.main.php index 1a02d50fe6..f6e207d212 100644 --- a/phpmyfaq/admin/category.main.php +++ b/phpmyfaq/admin/category.main.php @@ -31,6 +31,7 @@ use phpMyFAQ\Template\TwigWrapper; use phpMyFAQ\Translation; use phpMyFAQ\User\CurrentUser; +use Symfony\Component\HttpFoundation\File\UploadedFile; use Symfony\Component\HttpFoundation\Request; if (!defined('IS_VALID_PHPMYFAQ')) { @@ -49,7 +50,9 @@ $request = Request::createFromGlobals(); $uploadedFile = $request->files->get('image') ?? []; $categoryImage = new Image($faqConfig); -$categoryImage->setUploadedFile($uploadedFile); +if ($uploadedFile instanceof UploadedFile) { + $categoryImage->setUploadedFile($uploadedFile); +} $categoryPermission = new Permission($faqConfig); $seo = new Seo($faqConfig); @@ -77,7 +80,7 @@ ->setUserId(Filter::filterInput(INPUT_POST, 'user_id', FILTER_VALIDATE_INT)) ->setGroupId(Filter::filterInput(INPUT_POST, 'group_id', FILTER_VALIDATE_INT) ?? -1) ->setActive(Filter::filterInput(INPUT_POST, 'active', FILTER_VALIDATE_INT) ?? false) - ->setImage($categoryImage->getFileName($categoryId, $categoryLang) ?? '') + ->setImage($categoryImage->getFileName($categoryId, $categoryLang)) ->setParentId($parentId) ->setShowHome(Filter::filterInput(INPUT_POST, 'show_home', FILTER_VALIDATE_INT)); diff --git a/phpmyfaq/admin/footer.php b/phpmyfaq/admin/footer.php index e20ee2e854..90375c4469 100644 --- a/phpmyfaq/admin/footer.php +++ b/phpmyfaq/admin/footer.php @@ -28,7 +28,6 @@ } $faqConfig = Configuration::getConfigurationInstance(); -$user = CurrentUser::getCurrentUser($faqConfig); $twig = new TwigWrapper(PMF_ROOT_DIR . '/assets/templates'); $template = $twig->loadTemplate('./admin/footer.twig'); diff --git a/phpmyfaq/admin/index.php b/phpmyfaq/admin/index.php index 930435de0a..5cf5a354b4 100755 --- a/phpmyfaq/admin/index.php +++ b/phpmyfaq/admin/index.php @@ -21,7 +21,6 @@ use phpMyFAQ\Administration\AdminLog; use phpMyFAQ\Attachment\AttachmentFactory; -use phpMyFAQ\Configuration; use phpMyFAQ\Faq; use phpMyFAQ\Filter; use phpMyFAQ\Language; diff --git a/phpmyfaq/src/phpMyFAQ/Category/Image.php b/phpmyfaq/src/phpMyFAQ/Category/Image.php index 25191f1b12..a08a98f312 100644 --- a/phpmyfaq/src/phpMyFAQ/Category/Image.php +++ b/phpmyfaq/src/phpMyFAQ/Category/Image.php @@ -19,6 +19,7 @@ use phpMyFAQ\Configuration; use phpMyFAQ\Core\Exception; +use Symfony\Component\HttpFoundation\File\UploadedFile; /** * Class CategoryImage @@ -32,7 +33,7 @@ class Image private bool $isUpload = false; - private array $uploadedFile = []; + private UploadedFile $uploadedFile; private string $fileName = ''; @@ -46,11 +47,11 @@ public function __construct(private readonly Configuration $configuration) } /** - * Sets the uploaded file array from $_FILES. + * Sets the uploaded file */ - public function setUploadedFile(array $uploadedFile): Image + public function setUploadedFile(UploadedFile $uploadedFile): Image { - if (isset($uploadedFile['error']) && UPLOAD_ERR_OK === $uploadedFile['error']) { + if ($uploadedFile->isValid()) { $this->isUpload = true; } @@ -70,7 +71,7 @@ public function getFileName(int $categoryId, string $categoryName): string 'category-%d-%s.%s', $categoryId, $categoryName, - $this->getFileExtension($this->uploadedFile['type']) + $this->getFileExtension($this->uploadedFile->getMimeType()) ) ); } @@ -106,12 +107,10 @@ private function getFileExtension(string $mimeType): string /** * Checks for valid image MIME types, returns true if valid */ - private function isValidMimeType(string $file): bool + private function isValidMimeType(string $contentType): bool { $types = ['image/jpeg','image/gif','image/png', 'image/webp']; - $type = mime_content_type($file); - - return in_array($type, $types); + return in_array($contentType, $types); } /** @@ -122,20 +121,18 @@ private function isValidMimeType(string $file): bool public function upload(): bool { if ( - $this->isUpload && is_uploaded_file($this->uploadedFile['tmp_name']) - && $this->uploadedFile['size'] < $this->configuration->get('records.maxAttachmentSize') + $this->isUpload && $this->uploadedFile->isValid() + && $this->uploadedFile->getSize() < $this->configuration->get('records.maxAttachmentSize') ) { - if (false === getimagesize($this->uploadedFile['tmp_name'])) { + if (false === $this->uploadedFile->getSize()) { throw new Exception('Cannot detect image size'); } - if (!$this->isValidMimeType($this->uploadedFile['tmp_name'])) { + if (!$this->isValidMimeType($this->uploadedFile->getClientMimeType())) { throw new Exception('Image MIME type validation failed.'); } - if (!move_uploaded_file($this->uploadedFile['tmp_name'], self::UPLOAD_DIR . $this->fileName)) { - throw new Exception('Cannot move uploaded image'); - } + $this->uploadedFile->move(self::UPLOAD_DIR, $this->fileName); return true; } diff --git a/tests/phpMyFAQ/Category/ImageTest.php b/tests/phpMyFAQ/Category/ImageTest.php deleted file mode 100644 index b40a294059..0000000000 --- a/tests/phpMyFAQ/Category/ImageTest.php +++ /dev/null @@ -1,59 +0,0 @@ -connect(PMF_TEST_DIR . '/test.db', '', ''); - $pmfConfig = new Configuration($dbHandle); - $pmfConfig->set('records.maxAttachmentSize', 1234567890); - $this->instance = new Image($pmfConfig); - } - - public function testNoUploadGetFileName(): void - { - $categoryId = 1; - $categoryName = 'de'; - $uploadedFile = [ - 'name' => '', - 'type' => '', - 'tmp_name' => '', - 'error' => 4, - 'size' => 0 - ]; - - $this->instance->setUploadedFile($uploadedFile); - - $this->assertEquals('', $this->instance->getFileName($categoryId, $categoryName)); - } - - public function testUploadedGetFileName(): void - { - $categoryId = 1; - $categoryName = 'de'; - $uploadedFile = [ - 'name' => 'Foobar.png', - 'type' => 'image/png', - 'tmp_name' => '/private/var/tmp/phpSgODqb', - 'error' => 0, - 'size' => 1336915 - ]; - - $this->instance->setUploadedFile($uploadedFile); - - $this->assertEquals('category-1-de.png', $this->instance->getFileName($categoryId, $categoryName)); - } -} From e499968818f758c4afbc85b4e2fed23f3214bbef Mon Sep 17 00:00:00 2001 From: Thorsten Rinne Date: Sat, 14 Dec 2024 12:07:48 +0100 Subject: [PATCH 4/5] fix: more hadening of rewrite base path check, closes #3281 --- phpmyfaq/assets/templates/setup/update.twig | 6 +++ .../Controller/Frontend/SetupController.php | 20 ++++++++-- phpmyfaq/src/phpMyFAQ/Setup/Installer.php | 34 +++++++++++++++++ phpmyfaq/src/phpMyFAQ/Setup/Update.php | 38 +++++++++++++++++++ 4 files changed, 95 insertions(+), 3 deletions(-) diff --git a/phpmyfaq/assets/templates/setup/update.twig b/phpmyfaq/assets/templates/setup/update.twig index ea08e63ec2..2f4aaf337b 100644 --- a/phpmyfaq/assets/templates/setup/update.twig +++ b/phpmyfaq/assets/templates/setup/update.twig @@ -56,6 +56,12 @@ {{ include('./setup/update/step' ~ currentStep ~ '.twig') }} + {% if checkBasicError %} + + {% endif %} +
diff --git a/phpmyfaq/src/phpMyFAQ/Controller/Frontend/SetupController.php b/phpmyfaq/src/phpMyFAQ/Controller/Frontend/SetupController.php index 896b7847c1..86aab283ae 100644 --- a/phpmyfaq/src/phpMyFAQ/Controller/Frontend/SetupController.php +++ b/phpmyfaq/src/phpMyFAQ/Controller/Frontend/SetupController.php @@ -38,19 +38,24 @@ class SetupController * @throws \Exception */ #[Route('/setup', name: 'public.setup.update')] - public function index(): Response + public function index(Request $request): Response { $system = new System(); $installer = new Installer($system); $checkBasicError = ''; - try { $installer->checkBasicStuff(); } catch (Exception $e) { $checkBasicError = $e->getMessage(); } + try { + $installer->checkInitialRewriteBasePath($request); + } catch (Exception $e) { + $checkBasicError = $e->getMessage(); + } + return $this->render( 'setup/index.twig', [ @@ -104,8 +109,9 @@ public function install(): Response /** * @throws TemplateException * @throws Exception + * @throws \Exception */ - #[Route('/setup/update', name: 'public.setup.update')] + #[Route('/update', name: 'public.setup.update')] public function update(Request $request): Response { $currentStep = Filter::filterVar($request->get('step'), FILTER_VALIDATE_INT); @@ -114,12 +120,20 @@ public function update(Request $request): Response $update = new Update(new System(), $configuration); + $checkBasicError = ''; + try { + $update->checkInitialRewriteBasePath($request); + } catch (Exception $e) { + $checkBasicError = $e->getMessage(); + } + return $this->render( 'setup/update.twig', [ 'currentStep' => $currentStep ?? 1, 'installedVersion' => $configuration->getVersion(), 'newVersion' => System::getVersion(), + 'checkBasicError' => $checkBasicError, 'currentYear' => date('Y'), 'documentationUrl' => System::getDocumentationUrl(), 'configTableNotAvailable' => $update->isConfigTableNotAvailable($configuration->getDb()), diff --git a/phpmyfaq/src/phpMyFAQ/Setup/Installer.php b/phpmyfaq/src/phpMyFAQ/Setup/Installer.php index 5f111d8269..b02594be41 100644 --- a/phpmyfaq/src/phpMyFAQ/Setup/Installer.php +++ b/phpmyfaq/src/phpMyFAQ/Setup/Installer.php @@ -41,6 +41,12 @@ use phpMyFAQ\Link; use phpMyFAQ\System; use phpMyFAQ\User; +use SplFileObject; +use Symfony\Component\HttpFoundation\Request; +use Tivie\HtaccessParser\Exception\SyntaxException; +use Tivie\HtaccessParser\Parser; + +use const Tivie\HtaccessParser\Token\TOKEN_DIRECTIVE; /** * Class Installer @@ -733,6 +739,34 @@ public function checkNoncriticalSettings(): array return $hints; } + /** + * @throws Exception + */ + public function checkInitialRewriteBasePath(Request $request): bool + { + $basePath = $request->getBasePath(); + $basePath = rtrim($basePath, 'setup'); + + $htaccessPath = PMF_ROOT_DIR . '/.htaccess'; + + $file = new SplFileObject($htaccessPath); + $parser = new Parser(); + try { + $htaccess = $parser->parse($file); + } catch (SyntaxException $e) { + throw new Exception('Syntax error in .htaccess file: ' . $e->getMessage()); + } catch (\Tivie\HtaccessParser\Exception\Exception $e) { + throw new Exception('Error parsing .htaccess file: ' . $e->getMessage()); + } + $rewriteBase = $htaccess->search('RewriteBase', TOKEN_DIRECTIVE); + + $rewriteBase->removeArgument($rewriteBase->getArguments()[0]); + $rewriteBase->setArguments((array)$basePath); + + $output = (string) $htaccess; + return file_put_contents($htaccessPath, $output); + } + /** * Starts the installation. * diff --git a/phpmyfaq/src/phpMyFAQ/Setup/Update.php b/phpmyfaq/src/phpMyFAQ/Setup/Update.php index 294b66ecfa..68357d4963 100644 --- a/phpmyfaq/src/phpMyFAQ/Setup/Update.php +++ b/phpmyfaq/src/phpMyFAQ/Setup/Update.php @@ -29,8 +29,14 @@ use phpMyFAQ\User; use RecursiveDirectoryIterator; use RecursiveIteratorIterator; +use SplFileObject; +use Symfony\Component\HttpFoundation\Request; +use Tivie\HtaccessParser\Exception\SyntaxException; +use Tivie\HtaccessParser\Parser; use ZipArchive; +use const Tivie\HtaccessParser\Token\TOKEN_DIRECTIVE; + class Update extends Setup { private string $version; @@ -103,6 +109,38 @@ public function createConfigBackup(string $configDir): string return $this->configuration->getDefaultUrl() . 'content/core/config/' . $this->getBackupFilename(); } + + /** + * @throws Exception + */ + public function checkInitialRewriteBasePath(Request $request): bool + { + $basePath = $request->getBasePath(); + $basePath = rtrim($basePath, 'update'); + + $htaccessPath = PMF_ROOT_DIR . '/.htaccess'; + + $file = new SplFileObject($htaccessPath); + $parser = new Parser(); + + try { + $htaccess = $parser->parse($file); + } catch (SyntaxException $e) { + throw new Exception('Syntax error in .htaccess file: ' . $e->getMessage()); + } catch (\Tivie\HtaccessParser\Exception\Exception $e) { + throw new Exception('Error parsing .htaccess file: ' . $e->getMessage()); + } + + $rewriteBase = $htaccess->search('RewriteBase', TOKEN_DIRECTIVE); + + $rewriteBase->removeArgument($rewriteBase->getArguments()[0]); + $rewriteBase->setArguments((array)$basePath); + + $output = (string) $htaccess; + return file_put_contents($htaccessPath, $output); + } + + /** * @throws Exception * @throws \Exception From 2ff2f5b0f6d37701d8a039dff9ba4ca33fb545c9 Mon Sep 17 00:00:00 2001 From: Thorsten Rinne Date: Sat, 14 Dec 2024 12:11:44 +0100 Subject: [PATCH 5/5] chore: updated 3rd party dependencies --- CHANGELOG.md | 6 ++ composer.lock | 188 ++++++++++++++++++++-------------------- package.json | 4 +- pnpm-lock.yaml | 228 +++++++++++++++++++++++++------------------------ 4 files changed, 219 insertions(+), 207 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e59847ec27..acf51f3c54 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ This is a log of major user-visible changes in each phpMyFAQ release. +### phpMyFAQ v4.0.2 - unreleased + +- improved update handling of .htaccess file (Thorsten) +- updated 3rd party dependencies (Thorsten) +- fixed minor bugs (Thorsten) + ### phpMyFAQ v4.0.1 - 2024-12-13 - fixed security vulnerability (Thorsten) diff --git a/composer.lock b/composer.lock index ba729b4d16..548a3d72c4 100644 --- a/composer.lock +++ b/composer.lock @@ -1630,16 +1630,16 @@ }, { "name": "open-telemetry/api", - "version": "1.1.1", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/opentelemetry-php/api.git", - "reference": "542064815d38a6df55af7957cd6f1d7d967c99c6" + "reference": "04c85a1e41a3d59fa9bdc801a5de1df6624b95ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opentelemetry-php/api/zipball/542064815d38a6df55af7957cd6f1d7d967c99c6", - "reference": "542064815d38a6df55af7957cd6f1d7d967c99c6", + "url": "https://api.github.com/repos/opentelemetry-php/api/zipball/04c85a1e41a3d59fa9bdc801a5de1df6624b95ed", + "reference": "04c85a1e41a3d59fa9bdc801a5de1df6624b95ed", "shasum": "" }, "require": { @@ -1653,13 +1653,13 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.1.x-dev" - }, "spi": { "OpenTelemetry\\API\\Instrumentation\\AutoInstrumentation\\HookManagerInterface": [ "OpenTelemetry\\API\\Instrumentation\\AutoInstrumentation\\ExtensionHookManager" ] + }, + "branch-alias": { + "dev-main": "1.1.x-dev" } }, "autoload": { @@ -1696,7 +1696,7 @@ "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", "source": "https://github.com/open-telemetry/opentelemetry-php" }, - "time": "2024-10-15T22:42:37+00:00" + "time": "2024-11-16T04:32:30+00:00" }, { "name": "open-telemetry/context", @@ -2834,16 +2834,16 @@ }, { "name": "symfony/error-handler", - "version": "v7.2.0", + "version": "v7.2.1", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "672b3dd1ef8b87119b446d67c58c106c43f965fe" + "reference": "6150b89186573046167796fa5f3f76601d5145f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/672b3dd1ef8b87119b446d67c58c106c43f965fe", - "reference": "672b3dd1ef8b87119b446d67c58c106c43f965fe", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/6150b89186573046167796fa5f3f76601d5145f8", + "reference": "6150b89186573046167796fa5f3f76601d5145f8", "shasum": "" }, "require": { @@ -2889,7 +2889,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v7.2.0" + "source": "https://github.com/symfony/error-handler/tree/v7.2.1" }, "funding": [ { @@ -2905,7 +2905,7 @@ "type": "tidelift" } ], - "time": "2024-11-05T15:35:02+00:00" + "time": "2024-12-07T08:50:44+00:00" }, { "name": "symfony/event-dispatcher", @@ -3200,23 +3200,23 @@ }, { "name": "symfony/http-client", - "version": "v7.2.0", + "version": "v7.2.1", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "955e43336aff03df1e8a8e17daefabb0127a313b" + "reference": "ff4df2b68d1c67abb9fef146e6540ea16b58d99e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/955e43336aff03df1e8a8e17daefabb0127a313b", - "reference": "955e43336aff03df1e8a8e17daefabb0127a313b", + "url": "https://api.github.com/repos/symfony/http-client/zipball/ff4df2b68d1c67abb9fef146e6540ea16b58d99e", + "reference": "ff4df2b68d1c67abb9fef146e6540ea16b58d99e", "shasum": "" }, "require": { "php": ">=8.2", "psr/log": "^1|^2|^3", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/http-client-contracts": "~3.4.3|^3.5.1", + "symfony/http-client-contracts": "~3.4.4|^3.5.2", "symfony/service-contracts": "^2.5|^3" }, "conflict": { @@ -3275,7 +3275,7 @@ "http" ], "support": { - "source": "https://github.com/symfony/http-client/tree/v7.2.0" + "source": "https://github.com/symfony/http-client/tree/v7.2.1" }, "funding": [ { @@ -3291,20 +3291,20 @@ "type": "tidelift" } ], - "time": "2024-11-29T08:22:02+00:00" + "time": "2024-12-07T08:50:44+00:00" }, { "name": "symfony/http-client-contracts", - "version": "v3.5.1", + "version": "v3.5.2", "source": { "type": "git", "url": "https://github.com/symfony/http-client-contracts.git", - "reference": "c2f3ad828596624ca39ea40f83617ef51ca8bbf9" + "reference": "ee8d807ab20fcb51267fdace50fbe3494c31e645" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/c2f3ad828596624ca39ea40f83617ef51ca8bbf9", - "reference": "c2f3ad828596624ca39ea40f83617ef51ca8bbf9", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/ee8d807ab20fcb51267fdace50fbe3494c31e645", + "reference": "ee8d807ab20fcb51267fdace50fbe3494c31e645", "shasum": "" }, "require": { @@ -3353,7 +3353,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/http-client-contracts/tree/v3.5.1" + "source": "https://github.com/symfony/http-client-contracts/tree/v3.5.2" }, "funding": [ { @@ -3369,7 +3369,7 @@ "type": "tidelift" } ], - "time": "2024-11-25T12:02:18+00:00" + "time": "2024-12-07T08:49:48+00:00" }, { "name": "symfony/http-foundation", @@ -3451,16 +3451,16 @@ }, { "name": "symfony/http-kernel", - "version": "v7.2.0", + "version": "v7.2.1", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "6b4722a25e0aed1ccb4914b9bcbd493cc4676b4d" + "reference": "d8ae58eecae44c8e66833e76cc50a4ad3c002d97" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6b4722a25e0aed1ccb4914b9bcbd493cc4676b4d", - "reference": "6b4722a25e0aed1ccb4914b9bcbd493cc4676b4d", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/d8ae58eecae44c8e66833e76cc50a4ad3c002d97", + "reference": "d8ae58eecae44c8e66833e76cc50a4ad3c002d97", "shasum": "" }, "require": { @@ -3545,7 +3545,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v7.2.0" + "source": "https://github.com/symfony/http-kernel/tree/v7.2.1" }, "funding": [ { @@ -3561,7 +3561,7 @@ "type": "tidelift" } ], - "time": "2024-11-29T08:42:40+00:00" + "time": "2024-12-11T12:09:10+00:00" }, { "name": "symfony/intl", @@ -3731,16 +3731,16 @@ }, { "name": "symfony/mime", - "version": "v7.2.0", + "version": "v7.2.1", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "cc84a4b81f62158c3846ac7ff10f696aae2b524d" + "reference": "7f9617fcf15cb61be30f8b252695ed5e2bfac283" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/cc84a4b81f62158c3846ac7ff10f696aae2b524d", - "reference": "cc84a4b81f62158c3846ac7ff10f696aae2b524d", + "url": "https://api.github.com/repos/symfony/mime/zipball/7f9617fcf15cb61be30f8b252695ed5e2bfac283", + "reference": "7f9617fcf15cb61be30f8b252695ed5e2bfac283", "shasum": "" }, "require": { @@ -3795,7 +3795,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.2.0" + "source": "https://github.com/symfony/mime/tree/v7.2.1" }, "funding": [ { @@ -3811,7 +3811,7 @@ "type": "tidelift" } ], - "time": "2024-11-23T09:19:39+00:00" + "time": "2024-12-07T08:50:44+00:00" }, { "name": "symfony/polyfill-ctype", @@ -3839,8 +3839,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -3916,8 +3916,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -3998,8 +3998,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -4082,8 +4082,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -4156,8 +4156,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -4236,8 +4236,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -4312,8 +4312,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -4388,8 +4388,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -4769,16 +4769,16 @@ }, { "name": "tecnickcom/tcpdf", - "version": "6.7.7", + "version": "6.7.8", "source": { "type": "git", "url": "https://github.com/tecnickcom/TCPDF.git", - "reference": "cfbc0028cc23f057f2baf9e73bdc238153c22086" + "reference": "7956f5e37863c6a569d5ccfae826f353a12a2493" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/cfbc0028cc23f057f2baf9e73bdc238153c22086", - "reference": "cfbc0028cc23f057f2baf9e73bdc238153c22086", + "url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/7956f5e37863c6a569d5ccfae826f353a12a2493", + "reference": "7956f5e37863c6a569d5ccfae826f353a12a2493", "shasum": "" }, "require": { @@ -4829,7 +4829,7 @@ ], "support": { "issues": "https://github.com/tecnickcom/TCPDF/issues", - "source": "https://github.com/tecnickcom/TCPDF/tree/6.7.7" + "source": "https://github.com/tecnickcom/TCPDF/tree/6.7.8" }, "funding": [ { @@ -4837,7 +4837,7 @@ "type": "custom" } ], - "time": "2024-10-26T12:15:02+00:00" + "time": "2024-12-13T19:31:40+00:00" }, { "name": "tivie/htaccess-parser", @@ -4889,7 +4889,7 @@ }, { "name": "twig/intl-extra", - "version": "v3.16.0", + "version": "v3.17.0", "source": { "type": "git", "url": "https://github.com/twigphp/intl-extra.git", @@ -4937,7 +4937,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/intl-extra/tree/v3.16.0" + "source": "https://github.com/twigphp/intl-extra/tree/v3.17.0" }, "funding": [ { @@ -4953,16 +4953,16 @@ }, { "name": "twig/twig", - "version": "v3.16.0", + "version": "v3.17.1", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "475ad2dc97d65d8631393e721e7e44fb544f0561" + "reference": "677ef8da6497a03048192aeeb5aa3018e379ac71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/475ad2dc97d65d8631393e721e7e44fb544f0561", - "reference": "475ad2dc97d65d8631393e721e7e44fb544f0561", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/677ef8da6497a03048192aeeb5aa3018e379ac71", + "reference": "677ef8da6497a03048192aeeb5aa3018e379ac71", "shasum": "" }, "require": { @@ -5017,7 +5017,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.16.0" + "source": "https://github.com/twigphp/Twig/tree/v3.17.1" }, "funding": [ { @@ -5029,7 +5029,7 @@ "type": "tidelift" } ], - "time": "2024-11-29T08:27:05+00:00" + "time": "2024-12-12T09:58:10+00:00" } ], "packages-dev": [ @@ -5949,16 +5949,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "11.0.7", + "version": "11.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "f7f08030e8811582cc459871d28d6f5a1a4d35ca" + "reference": "418c59fd080954f8c4aa5631d9502ecda2387118" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f7f08030e8811582cc459871d28d6f5a1a4d35ca", - "reference": "f7f08030e8811582cc459871d28d6f5a1a4d35ca", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/418c59fd080954f8c4aa5631d9502ecda2387118", + "reference": "418c59fd080954f8c4aa5631d9502ecda2387118", "shasum": "" }, "require": { @@ -5977,7 +5977,7 @@ "theseer/tokenizer": "^1.2.3" }, "require-dev": { - "phpunit/phpunit": "^11.4.1" + "phpunit/phpunit": "^11.5.0" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -6015,7 +6015,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.7" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.8" }, "funding": [ { @@ -6023,7 +6023,7 @@ "type": "github" } ], - "time": "2024-10-09T06:21:38+00:00" + "time": "2024-12-11T12:34:27+00:00" }, { "name": "phpunit/php-file-iterator", @@ -6272,16 +6272,16 @@ }, { "name": "phpunit/phpunit", - "version": "11.5.0", + "version": "11.5.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "0569902506a6c0878930b87ea79ec3b50ea563f7" + "reference": "2b94d4f2450b9869fa64a46fd8a6a41997aef56a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0569902506a6c0878930b87ea79ec3b50ea563f7", - "reference": "0569902506a6c0878930b87ea79ec3b50ea563f7", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/2b94d4f2450b9869fa64a46fd8a6a41997aef56a", + "reference": "2b94d4f2450b9869fa64a46fd8a6a41997aef56a", "shasum": "" }, "require": { @@ -6353,7 +6353,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.0" + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.1" }, "funding": [ { @@ -6369,7 +6369,7 @@ "type": "tidelift" } ], - "time": "2024-12-06T05:57:38+00:00" + "time": "2024-12-11T10:52:48+00:00" }, { "name": "rector/rector", @@ -6489,23 +6489,23 @@ }, { "name": "sebastian/code-unit", - "version": "3.0.1", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "6bb7d09d6623567178cf54126afa9c2310114268" + "reference": "ee88b0cdbe74cf8dd3b54940ff17643c0d6543ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/6bb7d09d6623567178cf54126afa9c2310114268", - "reference": "6bb7d09d6623567178cf54126afa9c2310114268", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/ee88b0cdbe74cf8dd3b54940ff17643c0d6543ca", + "reference": "ee88b0cdbe74cf8dd3b54940ff17643c0d6543ca", "shasum": "" }, "require": { "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^11.5" }, "type": "library", "extra": { @@ -6534,7 +6534,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/code-unit/issues", "security": "https://github.com/sebastianbergmann/code-unit/security/policy", - "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.1" + "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.2" }, "funding": [ { @@ -6542,7 +6542,7 @@ "type": "github" } ], - "time": "2024-07-03T04:44:28+00:00" + "time": "2024-12-12T09:59:06+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -7355,16 +7355,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.11.1", + "version": "3.11.2", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "19473c30efe4f7b3cd42522d0b2e6e7f243c6f87" + "reference": "1368f4a58c3c52114b86b1abe8f4098869cb0079" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/19473c30efe4f7b3cd42522d0b2e6e7f243c6f87", - "reference": "19473c30efe4f7b3cd42522d0b2e6e7f243c6f87", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/1368f4a58c3c52114b86b1abe8f4098869cb0079", + "reference": "1368f4a58c3c52114b86b1abe8f4098869cb0079", "shasum": "" }, "require": { @@ -7431,7 +7431,7 @@ "type": "open_collective" } ], - "time": "2024-11-16T12:02:36+00:00" + "time": "2024-12-11T16:04:26+00:00" }, { "name": "staabm/side-effects-detector", diff --git a/package.json b/package.json index f031322558..76ade63863 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "build:watch": "webpack --watch --progress --config webpack.dev.js", "lint": "prettier --check .", "lint:fix": "prettier --write .", - "prepare": "husky install", + "prepare": "husky", "pretty-quick": "pretty-quick", "test": "jest" }, @@ -48,7 +48,7 @@ "@commitlint/config-conventional": "^19.6.0", "@mcler/webpack-concat-plugin": "^4.1.6", "@testing-library/jest-dom": "^6.6.3", - "@types/node": "^20.17.9", + "@types/node": "^20.17.10", "autoprefixer": "^10.4.20", "babel-jest": "^29.7.0", "babel-loader": "^9.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4511d2d21b..ec4622e560 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -51,7 +51,7 @@ devDependencies: version: 7.26.0(@babel/core@7.26.0) '@commitlint/cli': specifier: ^19.6.0 - version: 19.6.0(@types/node@20.17.9)(typescript@5.7.2) + version: 19.6.0(@types/node@20.17.10)(typescript@5.7.2) '@commitlint/config-conventional': specifier: ^19.6.0 version: 19.6.0 @@ -62,8 +62,8 @@ devDependencies: specifier: ^6.6.3 version: 6.6.3 '@types/node': - specifier: ^20.17.9 - version: 20.17.9 + specifier: ^20.17.10 + version: 20.17.10 autoprefixer: specifier: ^10.4.20 version: 10.4.20(postcss@8.4.49) @@ -99,7 +99,7 @@ devDependencies: version: 9.1.7 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@20.17.9) + version: 29.7.0(@types/node@20.17.10) jest-environment-jsdom: specifier: ^29.7.0 version: 29.7.0 @@ -156,7 +156,7 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 dev: true @@ -189,7 +189,7 @@ packages: '@babel/traverse': 7.26.4 '@babel/types': 7.26.3 convert-source-map: 2.0.0 - debug: 4.3.7 + debug: 4.4.0 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -203,9 +203,9 @@ packages: dependencies: '@babel/parser': 7.26.3 '@babel/types': 7.26.3 - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.0.2 + jsesc: 3.1.0 dev: true /@babel/helper-annotate-as-pure@7.25.9: @@ -221,7 +221,7 @@ packages: dependencies: '@babel/compat-data': 7.26.3 '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.2 + browserslist: 4.24.3 lru-cache: 5.1.1 semver: 6.3.1 dev: true @@ -264,9 +264,9 @@ packages: '@babel/core': 7.26.0 '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 - debug: 4.3.7 + debug: 4.4.0 lodash.debounce: 4.0.8 - resolve: 1.22.8 + resolve: 1.22.9 transitivePeerDependencies: - supports-color dev: true @@ -1331,7 +1331,7 @@ packages: '@babel/parser': 7.26.3 '@babel/template': 7.25.9 '@babel/types': 7.26.3 - debug: 4.3.7 + debug: 4.4.0 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -1349,14 +1349,14 @@ packages: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true - /@commitlint/cli@19.6.0(@types/node@20.17.9)(typescript@5.7.2): + /@commitlint/cli@19.6.0(@types/node@20.17.10)(typescript@5.7.2): resolution: {integrity: sha512-v17BgGD9w5KnthaKxXnEg6KLq6DYiAxyiN44TpiRtqyW8NSq+Kx99mkEG8Qo6uu6cI5eMzMojW2muJxjmPnF8w==} engines: {node: '>=v18'} hasBin: true dependencies: '@commitlint/format': 19.5.0 '@commitlint/lint': 19.6.0 - '@commitlint/load': 19.5.0(@types/node@20.17.9)(typescript@5.7.2) + '@commitlint/load': 19.5.0(@types/node@20.17.10)(typescript@5.7.2) '@commitlint/read': 19.5.0 '@commitlint/types': 19.5.0 tinyexec: 0.3.1 @@ -1425,7 +1425,7 @@ packages: '@commitlint/types': 19.5.0 dev: true - /@commitlint/load@19.5.0(@types/node@20.17.9)(typescript@5.7.2): + /@commitlint/load@19.5.0(@types/node@20.17.10)(typescript@5.7.2): resolution: {integrity: sha512-INOUhkL/qaKqwcTUvCE8iIUf5XHsEPCLY9looJ/ipzi7jtGhgmtH7OOFiNvwYgH7mA8osUWOUDV8t4E2HAi4xA==} engines: {node: '>=v18'} dependencies: @@ -1435,7 +1435,7 @@ packages: '@commitlint/types': 19.5.0 chalk: 5.3.0 cosmiconfig: 9.0.0(typescript@5.7.2) - cosmiconfig-typescript-loader: 5.1.0(@types/node@20.17.9)(cosmiconfig@9.0.0)(typescript@5.7.2) + cosmiconfig-typescript-loader: 5.1.0(@types/node@20.17.10)(cosmiconfig@9.0.0)(typescript@5.7.2) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -1537,7 +1537,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.17.9 + '@types/node': 20.17.10 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -1558,14 +1558,14 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.9 + '@types/node': 20.17.10 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.17.9) + jest-config: 29.7.0(@types/node@20.17.10) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -1593,7 +1593,7 @@ packages: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.9 + '@types/node': 20.17.10 jest-mock: 29.7.0 dev: true @@ -1620,7 +1620,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.17.9 + '@types/node': 20.17.10 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -1653,7 +1653,7 @@ packages: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 20.17.9 + '@types/node': 20.17.10 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -1741,13 +1741,13 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.17.9 + '@types/node': 20.17.10 '@types/yargs': 17.0.33 chalk: 4.1.2 dev: true - /@jridgewell/gen-mapping@0.3.5: - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + /@jridgewell/gen-mapping@0.3.8: + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} dependencies: '@jridgewell/set-array': 1.2.1 @@ -1768,7 +1768,7 @@ packages: /@jridgewell/source-map@0.3.6: resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 dev: true @@ -1797,7 +1797,7 @@ packages: dependencies: globby: 8.0.2 html-webpack-plugin: 5.6.3(webpack@5.97.1) - schema-utils: 4.2.0 + schema-utils: 4.3.0 upath: 2.0.1 webpack: 5.97.1(webpack-cli@5.1.4) webpack-sources: 3.2.3 @@ -1893,7 +1893,7 @@ packages: /@types/conventional-commits-parser@5.0.1: resolution: {integrity: sha512-7uz5EHdzz2TqoMfV7ee61Egf5y6NkcO4FB/1iCCQnbeiI1F3xzv3vK5dBCXUCLQgGYS+mUeigK1iKQzvED+QnQ==} dependencies: - '@types/node': 20.17.9 + '@types/node': 20.17.10 dev: true /@types/eslint-scope@3.7.7: @@ -1918,13 +1918,13 @@ packages: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.17.9 + '@types/node': 20.17.10 dev: true /@types/graceful-fs@4.1.9: resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: - '@types/node': 20.17.9 + '@types/node': 20.17.10 dev: true /@types/html-minifier-terser@6.1.0: @@ -1950,7 +1950,7 @@ packages: /@types/jsdom@20.0.1: resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} dependencies: - '@types/node': 20.17.9 + '@types/node': 20.17.10 '@types/tough-cookie': 4.0.5 parse5: 7.2.1 dev: true @@ -1963,8 +1963,8 @@ packages: resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} dev: true - /@types/node@20.17.9: - resolution: {integrity: sha512-0JOXkRyLanfGPE2QRCwgxhzlBAvaRdCNMcvbd7jFfpmD4eEXll7LRwy5ymJmyeZqk7Nh7eD2LeUyQ68BbndmXw==} + /@types/node@20.17.10: + resolution: {integrity: sha512-/jrvh5h6NXhEauFFexRin69nA0uHJ5gwk4iDivp/DeoEua3uwCUto6PC86IpRITBOs4+6i2I56K5x5b6WYGXHA==} dependencies: undici-types: 6.19.8 dev: true @@ -2175,7 +2175,7 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.7 + debug: 4.4.0 transitivePeerDependencies: - supports-color dev: true @@ -2350,8 +2350,8 @@ packages: peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.24.2 - caniuse-lite: 1.0.30001687 + browserslist: 4.24.3 + caniuse-lite: 1.0.30001688 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -2502,7 +2502,7 @@ packages: dependencies: '@babel/core': 7.26.0 find-cache-dir: 4.0.0 - schema-utils: 4.2.0 + schema-utils: 4.3.0 webpack: 5.97.1(webpack-cli@5.1.4) dev: true @@ -3014,19 +3014,19 @@ packages: resolution: {integrity: sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==} hasBin: true dependencies: - caniuse-lite: 1.0.30001687 - electron-to-chromium: 1.5.71 + caniuse-lite: 1.0.30001688 + electron-to-chromium: 1.5.73 dev: true - /browserslist@4.24.2: - resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} + /browserslist@4.24.3: + resolution: {integrity: sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001687 - electron-to-chromium: 1.5.71 - node-releases: 2.0.18 - update-browserslist-db: 1.1.1(browserslist@4.24.2) + caniuse-lite: 1.0.30001688 + electron-to-chromium: 1.5.73 + node-releases: 2.0.19 + update-browserslist-db: 1.1.1(browserslist@4.24.3) dev: true /bser@2.1.1: @@ -3083,14 +3083,14 @@ packages: /caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: - browserslist: 4.24.2 - caniuse-lite: 1.0.30001687 + browserslist: 4.24.3 + caniuse-lite: 1.0.30001688 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 dev: true - /caniuse-lite@1.0.30001687: - resolution: {integrity: sha512-0S/FDhf4ZiqrTUiQ39dKeUjYRjkv7lOZU1Dgif2rIqrTzX/1wV2hfKu9TOm1IHkdSijfLswxTFzl/cvir+SLSQ==} + /caniuse-lite@1.0.30001688: + resolution: {integrity: sha512-Nmqpru91cuABu/DTCXbM2NSRHzM2uVHfPnhJ/1zEAJx/ILBRVmz3pzH4N7DZqbdG0gWClsCC05Oj0mJ/1AWMbA==} dev: true /chalk@1.1.3: @@ -3329,7 +3329,7 @@ packages: /core-js-compat@3.39.0: resolution: {integrity: sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==} dependencies: - browserslist: 4.24.2 + browserslist: 4.24.3 dev: true /core-js@2.6.12: @@ -3338,7 +3338,7 @@ packages: requiresBuild: true dev: true - /cosmiconfig-typescript-loader@5.1.0(@types/node@20.17.9)(cosmiconfig@9.0.0)(typescript@5.7.2): + /cosmiconfig-typescript-loader@5.1.0(@types/node@20.17.10)(cosmiconfig@9.0.0)(typescript@5.7.2): resolution: {integrity: sha512-7PtBB+6FdsOvZyJtlF3hEPpACq7RQX6BVGsgC7/lfVXnKMvNCu/XY3ykreqG5w/rBNdu2z8LCIKoF3kpHHdHlA==} engines: {node: '>=v16'} peerDependencies: @@ -3346,7 +3346,7 @@ packages: cosmiconfig: '>=8.2' typescript: '>=4' dependencies: - '@types/node': 20.17.9 + '@types/node': 20.17.10 cosmiconfig: 9.0.0(typescript@5.7.2) jiti: 1.21.6 typescript: 5.7.2 @@ -3368,7 +3368,7 @@ packages: typescript: 5.7.2 dev: true - /create-jest@29.7.0(@types/node@20.17.9): + /create-jest@29.7.0(@types/node@20.17.10): resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -3377,7 +3377,7 @@ packages: chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.17.9) + jest-config: 29.7.0(@types/node@20.17.10) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -3428,7 +3428,7 @@ packages: icss-utils: 5.1.0(postcss@8.4.49) postcss: 8.4.49 postcss-modules-extract-imports: 3.1.0(postcss@8.4.49) - postcss-modules-local-by-default: 4.1.0(postcss@8.4.49) + postcss-modules-local-by-default: 4.2.0(postcss@8.4.49) postcss-modules-scope: 3.2.1(postcss@8.4.49) postcss-modules-values: 4.0.0(postcss@8.4.49) postcss-value-parser: 4.2.0 @@ -3465,7 +3465,7 @@ packages: cssnano: 7.0.6(postcss@8.4.49) jest-worker: 29.7.0 postcss: 8.4.49 - schema-utils: 4.2.0 + schema-utils: 4.3.0 serialize-javascript: 6.0.2 webpack: 5.97.1(webpack-cli@5.1.4) dev: true @@ -3527,7 +3527,7 @@ packages: peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.24.2 + browserslist: 4.24.3 css-declaration-sorter: 7.2.0(postcss@8.4.49) cssnano-utils: 5.0.0(postcss@8.4.49) postcss: 8.4.49 @@ -3627,8 +3627,8 @@ packages: ms: 2.0.0 dev: true - /debug@4.3.7: - resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + /debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -3806,8 +3806,8 @@ packages: is-obj: 2.0.0 dev: true - /electron-to-chromium@1.5.71: - resolution: {integrity: sha512-dB68l59BI75W1BUGVTAEJy45CEVuEGy9qPVVQ8pnHyHMn36PLPPoE1mjLH+lo9rKulO3HC2OhbACI/8tCqJBcA==} + /electron-to-chromium@1.5.73: + resolution: {integrity: sha512-8wGNxG9tAG5KhGd3eeA0o6ixhiNdgr0DcHWm85XPCphwZgD1lIEoi6t3VERayWao7SF7AAZTw6oARGJeVjH8Kg==} dev: true /emittery@0.13.1: @@ -4422,7 +4422,7 @@ packages: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.3.7 + debug: 4.4.0 transitivePeerDependencies: - supports-color dev: true @@ -4432,7 +4432,7 @@ packages: engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 - debug: 4.3.7 + debug: 4.4.0 transitivePeerDependencies: - supports-color dev: true @@ -4558,8 +4558,8 @@ packages: resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} dev: true - /is-core-module@2.15.1: - resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + /is-core-module@2.16.0: + resolution: {integrity: sha512-urTSINYfAYgcbLb0yDQ6egFm6h3Mo1DcF9EkyXSRjjzdHbsulg01qhwWuXdOoUBuTkbQ80KDboXa0vFJ+BDH+g==} engines: {node: '>= 0.4'} dependencies: hasown: 2.0.2 @@ -4757,7 +4757,7 @@ packages: resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} engines: {node: '>=10'} dependencies: - debug: 4.3.7 + debug: 4.4.0 istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -4789,7 +4789,7 @@ packages: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.9 + '@types/node': 20.17.10 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.3 @@ -4810,7 +4810,7 @@ packages: - supports-color dev: true - /jest-cli@29.7.0(@types/node@20.17.9): + /jest-cli@29.7.0(@types/node@20.17.10): resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -4824,10 +4824,10 @@ packages: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.17.9) + create-jest: 29.7.0(@types/node@20.17.10) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@20.17.9) + jest-config: 29.7.0(@types/node@20.17.10) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -4838,7 +4838,7 @@ packages: - ts-node dev: true - /jest-config@29.7.0(@types/node@20.17.9): + /jest-config@29.7.0(@types/node@20.17.10): resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -4853,7 +4853,7 @@ packages: '@babel/core': 7.26.0 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.9 + '@types/node': 20.17.10 babel-jest: 29.7.0(@babel/core@7.26.0) chalk: 4.1.2 ci-info: 3.9.0 @@ -4919,7 +4919,7 @@ packages: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.1 - '@types/node': 20.17.9 + '@types/node': 20.17.10 jest-mock: 29.7.0 jest-util: 29.7.0 jsdom: 20.0.3 @@ -4936,7 +4936,7 @@ packages: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.9 + '@types/node': 20.17.10 jest-mock: 29.7.0 jest-util: 29.7.0 dev: true @@ -4961,7 +4961,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 20.17.9 + '@types/node': 20.17.10 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -5012,7 +5012,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.17.9 + '@types/node': 20.17.10 jest-util: 29.7.0 dev: true @@ -5053,7 +5053,7 @@ packages: jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) jest-util: 29.7.0 jest-validate: 29.7.0 - resolve: 1.22.8 + resolve: 1.22.9 resolve.exports: 2.0.3 slash: 3.0.0 dev: true @@ -5067,7 +5067,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.9 + '@types/node': 20.17.10 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -5098,7 +5098,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.9 + '@types/node': 20.17.10 chalk: 4.1.2 cjs-module-lexer: 1.4.1 collect-v8-coverage: 1.0.2 @@ -5150,7 +5150,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.17.9 + '@types/node': 20.17.10 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -5175,7 +5175,7 @@ packages: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.9 + '@types/node': 20.17.10 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -5187,7 +5187,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 20.17.9 + '@types/node': 20.17.10 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -5196,13 +5196,13 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.17.9 + '@types/node': 20.17.10 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jest@29.7.0(@types/node@20.17.9): + /jest@29.7.0(@types/node@20.17.10): resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -5215,7 +5215,7 @@ packages: '@jest/core': 29.7.0 '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@20.17.9) + jest-cli: 29.7.0(@types/node@20.17.10) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -5307,6 +5307,12 @@ packages: hasBin: true dev: true + /jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + dev: true + /json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: true @@ -5581,7 +5587,7 @@ packages: peerDependencies: webpack: ^5.0.0 dependencies: - schema-utils: 4.2.0 + schema-utils: 4.3.0 tapable: 2.2.1 webpack: 5.97.1(webpack-cli@5.1.4) dev: true @@ -5671,8 +5677,8 @@ packages: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} dev: true - /node-releases@2.0.18: - resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + /node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} dev: true /normalize-path@3.0.0: @@ -5966,7 +5972,7 @@ packages: peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.24.2 + browserslist: 4.24.3 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.4.49 @@ -5979,7 +5985,7 @@ packages: peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.24.2 + browserslist: 4.24.3 postcss: 8.4.49 postcss-value-parser: 4.2.0 dev: true @@ -6038,7 +6044,7 @@ packages: peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.24.2 + browserslist: 4.24.3 caniuse-api: 3.0.0 cssnano-utils: 5.0.0(postcss@8.4.49) postcss: 8.4.49 @@ -6073,7 +6079,7 @@ packages: peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.24.2 + browserslist: 4.24.3 cssnano-utils: 5.0.0(postcss@8.4.49) postcss: 8.4.49 postcss-value-parser: 4.2.0 @@ -6099,8 +6105,8 @@ packages: postcss: 8.4.49 dev: true - /postcss-modules-local-by-default@4.1.0(postcss@8.4.49): - resolution: {integrity: sha512-rm0bdSv4jC3BDma3s9H19ZddW0aHX6EoqwDYU2IfZhRN+53QrufTRo2IdkAbRqLx4R2IYbZnbjKKxg4VN5oU9Q==} + /postcss-modules-local-by-default@4.2.0(postcss@8.4.49): + resolution: {integrity: sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 @@ -6196,7 +6202,7 @@ packages: peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.24.2 + browserslist: 4.24.3 postcss: 8.4.49 postcss-value-parser: 4.2.0 dev: true @@ -6238,7 +6244,7 @@ packages: peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.24.2 + browserslist: 4.24.3 caniuse-api: 3.0.0 postcss: 8.4.49 dev: true @@ -6410,7 +6416,7 @@ packages: resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} engines: {node: '>= 10.13.0'} dependencies: - resolve: 1.22.8 + resolve: 1.22.9 dev: true /redent@3.0.0: @@ -6570,11 +6576,11 @@ packages: engines: {node: '>=10'} dev: true - /resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + /resolve@1.22.9: + resolution: {integrity: sha512-QxrmX1DzraFIi9PxdG5VkRfRwIgjwyud+z/iBwfRRrVmHc+P9Q7u2lSSpQ6bjr2gy5lrqIiU9vb6iAeGf2400A==} hasBin: true dependencies: - is-core-module: 2.15.1 + is-core-module: 2.16.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -6658,9 +6664,9 @@ packages: ajv-keywords: 3.5.2(ajv@6.12.6) dev: true - /schema-utils@4.2.0: - resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} - engines: {node: '>= 12.13.0'} + /schema-utils@4.3.0: + resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==} + engines: {node: '>= 10.13.0'} dependencies: '@types/json-schema': 7.0.15 ajv: 8.17.1 @@ -6920,7 +6926,7 @@ packages: peerDependencies: postcss: ^8.4.31 dependencies: - browserslist: 4.24.2 + browserslist: 4.24.3 postcss: 8.4.49 postcss-selector-parser: 6.1.2 dev: true @@ -6972,8 +6978,8 @@ packages: engines: {node: '>=6'} dev: true - /terser-webpack-plugin@5.3.10(webpack@5.97.1): - resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + /terser-webpack-plugin@5.3.11(webpack@5.97.1): + resolution: {integrity: sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==} engines: {node: '>= 10.13.0'} peerDependencies: '@swc/core': '*' @@ -6990,7 +6996,7 @@ packages: dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 - schema-utils: 3.3.0 + schema-utils: 4.3.0 serialize-javascript: 6.0.2 terser: 5.37.0 webpack: 5.97.1(webpack-cli@5.1.4) @@ -7183,13 +7189,13 @@ packages: engines: {node: '>=4'} dev: true - /update-browserslist-db@1.1.1(browserslist@4.24.2): + /update-browserslist-db@1.1.1(browserslist@4.24.3): resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.24.2 + browserslist: 4.24.3 escalade: 3.2.0 picocolors: 1.1.1 dev: true @@ -7340,7 +7346,7 @@ packages: '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.14.0 - browserslist: 4.24.2 + browserslist: 4.24.3 chrome-trace-event: 1.0.4 enhanced-resolve: 5.17.1 es-module-lexer: 1.5.4 @@ -7354,7 +7360,7 @@ packages: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(webpack@5.97.1) + terser-webpack-plugin: 5.3.11(webpack@5.97.1) watchpack: 2.4.2 webpack-cli: 5.1.4(webpack@5.97.1) webpack-sources: 3.2.3