From b4c242fd14d6bdcc8f1b1e0cf6b28b8b30f79c2c Mon Sep 17 00:00:00 2001 From: Johan Kromhout Date: Wed, 7 Jan 2026 16:06:05 +0100 Subject: [PATCH 01/18] DX: frontend-install sets correct var permissions Prior to this change, clearing the cache required the manual correction of the var/log and var/cache dirs to be owned by 33/www-data. This change corrects this on frontend-install automatically. --- composer.json | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 643399ff..4c34b9a8 100644 --- a/composer.json +++ b/composer.json @@ -76,8 +76,14 @@ "@auto-scripts" ], "frontend-install": [ - "yarn install", - "yarn encore production" + "yarn install --frozen-lockfile", + "yarn encore production", + "./bin/console cache:clear", + "@fix-dev-permissions" + ], + "fix-dev-permissions": [ + "chown -R www-data:www-data /var/www/html/var/log", + "chown -R www-data:www-data /var/www/html/var/cache" ], "check": [ "@phplint", From 85daf8cf147633abbb296e09009da4d230d31eac Mon Sep 17 00:00:00 2001 From: Johan Kromhout Date: Wed, 7 Jan 2026 16:18:31 +0100 Subject: [PATCH 02/18] Basic package update - fix phplint cache dir - make phpunit fail in dev on any deprecation warning - update phpstan baseline after update --- ci/qa/phplint.yaml | 4 +- ci/qa/phpstan-baseline.php | 195 +++- ci/qa/phpunit.xml | 2 +- composer.json | 1 - composer.lock | 2149 ++++++++++++++++++++---------------- symfony.lock | 3 - 6 files changed, 1397 insertions(+), 957 deletions(-) diff --git a/ci/qa/phplint.yaml b/ci/qa/phplint.yaml index d6dfb6c3..df2d01fc 100644 --- a/ci/qa/phplint.yaml +++ b/ci/qa/phplint.yaml @@ -1,7 +1,7 @@ path: [./src, ./tests] jobs: 10 -cache: /var/qa/phplint.cache +cache-dir: var/cache/qa/phplint.cache extensions: - php exclude: - - vendor + - vendor \ No newline at end of file diff --git a/ci/qa/phpstan-baseline.php b/ci/qa/phpstan-baseline.php index 47de8c0a..9c9280c3 100644 --- a/ci/qa/phpstan-baseline.php +++ b/ci/qa/phpstan-baseline.php @@ -2,966 +2,1159 @@ $ignoreErrors = []; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Assert\\:\\:keysAre\\(\\) has parameter \\$array with no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Assert.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Assert\\:\\:keysAre\\(\\) has parameter \\$expectedKeys with no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Assert.php', ]; $ignoreErrors[] = [ + // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Assert\\:\\:keysAre\\(\\) has parameter \\$propertyPath with no type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Assert.php', ]; $ignoreErrors[] = [ + // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\AccreditCandidateCommand has an uninitialized property \\$contactInformation\\. Give it default value or assign it in the constructor\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/AccreditCandidateCommand.php', ]; $ignoreErrors[] = [ + // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\AccreditCandidateCommand has an uninitialized property \\$identityId\\. Give it default value or assign it in the constructor\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/AccreditCandidateCommand.php', ]; $ignoreErrors[] = [ + // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\AccreditCandidateCommand has an uninitialized property \\$institution\\. Give it default value or assign it in the constructor\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/AccreditCandidateCommand.php', ]; $ignoreErrors[] = [ + // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\AccreditCandidateCommand has an uninitialized property \\$location\\. Give it default value or assign it in the constructor\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/AccreditCandidateCommand.php', ]; $ignoreErrors[] = [ + // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\AccreditCandidateCommand has an uninitialized property \\$roleAtInstitution\\. Give it default value or assign it in the constructor\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/AccreditCandidateCommand.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\AccreditCandidateCommand\\:\\:\\$availableInstitutions type has no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/AccreditCandidateCommand.php', ]; $ignoreErrors[] = [ + // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\AmendRegistrationAuthorityInformationCommand has an uninitialized property \\$contactInformation\\. Give it default value or assign it in the constructor\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/AmendRegistrationAuthorityInformationCommand.php', ]; $ignoreErrors[] = [ + // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\AmendRegistrationAuthorityInformationCommand has an uninitialized property \\$identityId\\. Give it default value or assign it in the constructor\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/AmendRegistrationAuthorityInformationCommand.php', ]; $ignoreErrors[] = [ + // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\AmendRegistrationAuthorityInformationCommand has an uninitialized property \\$institution\\. Give it default value or assign it in the constructor\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/AmendRegistrationAuthorityInformationCommand.php', ]; $ignoreErrors[] = [ + // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\AmendRegistrationAuthorityInformationCommand has an uninitialized property \\$location\\. Give it default value or assign it in the constructor\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/AmendRegistrationAuthorityInformationCommand.php', ]; $ignoreErrors[] = [ + // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\ChangeRaLocationCommand has an uninitialized property \\$contactInformation\\. Give it default value or assign it in the constructor\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/ChangeRaLocationCommand.php', ]; $ignoreErrors[] = [ + // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\ChangeRaLocationCommand has an uninitialized property \\$currentUserId\\. Give it default value or assign it in the constructor\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/ChangeRaLocationCommand.php', ]; $ignoreErrors[] = [ + // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\ChangeRaLocationCommand has an uninitialized property \\$id\\. Give it default value or assign it in the constructor\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/ChangeRaLocationCommand.php', ]; $ignoreErrors[] = [ + // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\ChangeRaLocationCommand has an uninitialized property \\$institution\\. Give it default value or assign it in the constructor\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/ChangeRaLocationCommand.php', ]; $ignoreErrors[] = [ + // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\ChangeRaLocationCommand has an uninitialized property \\$location\\. Give it default value or assign it in the constructor\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/ChangeRaLocationCommand.php', ]; $ignoreErrors[] = [ + // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\ChangeRaLocationCommand has an uninitialized property \\$name\\. Give it default value or assign it in the constructor\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/ChangeRaLocationCommand.php', ]; $ignoreErrors[] = [ + // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaCandidatesCommand has an uninitialized property \\$actorId\\. Give it default value or assign it in the constructor\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/SearchRaCandidatesCommand.php', ]; $ignoreErrors[] = [ + // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaCandidatesCommand has an uninitialized property \\$institutionFilterOptions\\. Give it default value or assign it in the constructor\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/SearchRaCandidatesCommand.php', ]; $ignoreErrors[] = [ + // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaCandidatesCommand has an uninitialized property \\$pageNumber\\. Give it default value or assign it in the constructor\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/SearchRaCandidatesCommand.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaCandidatesCommand\\:\\:\\$institutionFilterOptions type has no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/SearchRaCandidatesCommand.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaListingCommand\\:\\:\\$institutionFilterOptions type has no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/SearchRaListingCommand.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaListingCommand\\:\\:\\$raInstitutionFilterOptions type has no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/SearchRaListingCommand.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaSecondFactorsCommand\\:\\:\\$institutionFilterOptions type has no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/SearchRaSecondFactorsCommand.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRecoveryTokensCommand\\:\\:\\$institutionFilterOptions type has no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/SearchRecoveryTokensCommand.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SelectInstitutionCommand\\:\\:\\$availableInstitutions type has no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/SelectInstitutionCommand.php', ]; $ignoreErrors[] = [ + // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\StartVettingProcedureCommand has an uninitialized property \\$authorityId\\. Give it default value or assign it in the constructor\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/StartVettingProcedureCommand.php', ]; $ignoreErrors[] = [ + // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\StartVettingProcedureCommand has an uninitialized property \\$authorityLoa\\. Give it default value or assign it in the constructor\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/StartVettingProcedureCommand.php', ]; $ignoreErrors[] = [ + // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\StartVettingProcedureCommand has an uninitialized property \\$registrationCode\\. Give it default value or assign it in the constructor\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/StartVettingProcedureCommand.php', ]; $ignoreErrors[] = [ + // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\StartVettingProcedureCommand has an uninitialized property \\$secondFactor\\. Give it default value or assign it in the constructor\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/StartVettingProcedureCommand.php', ]; $ignoreErrors[] = [ + // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\VerifyIdentityCommand has an uninitialized property \\$documentNumber\\. Give it default value or assign it in the constructor\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/VerifyIdentityCommand.php', ]; $ignoreErrors[] = [ + // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\VerifyIdentityCommand has an uninitialized property \\$identityVerified\\. Give it default value or assign it in the constructor\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/VerifyIdentityCommand.php', ]; $ignoreErrors[] = [ + // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\VettingTypeHintCommand\\:\\:__get\\(\\) has parameter \\$name with no type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/VettingTypeHintCommand.php', ]; $ignoreErrors[] = [ + // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\VettingTypeHintCommand\\:\\:__isset\\(\\) has parameter \\$name with no type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/VettingTypeHintCommand.php', ]; $ignoreErrors[] = [ + // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\VettingTypeHintCommand\\:\\:__set\\(\\) has parameter \\$value with no type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/VettingTypeHintCommand.php', ]; $ignoreErrors[] = [ + // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\VettingTypeHintCommand\\:\\:assertValidLanguageInName\\(\\) has parameter \\$name with no type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/VettingTypeHintCommand.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\VettingTypeHintCommand\\:\\:setHints\\(\\) has parameter \\$hints with no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/VettingTypeHintCommand.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Controller\\\\ExceptionController\\:\\:getPageTitleAndDescription\\(\\) return type has no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/ExceptionController.php', ]; $ignoreErrors[] = [ + // identifier: method.nonObject 'message' => '#^Cannot call method getIdentity\\(\\) on Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null\\.$#', 'count' => 2, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/LocaleController.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#1 \\$url of method Symfony\\\\Bundle\\\\FrameworkBundle\\\\Controller\\\\AbstractController\\:\\:redirect\\(\\) expects string, string\\|null given\\.$#', 'count' => 3, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/LocaleController.php', ]; $ignoreErrors[] = [ + // identifier: method.nonObject 'message' => '#^Cannot call method getIdentity\\(\\) on Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/ProfileController.php', ]; $ignoreErrors[] = [ + // identifier: method.nonObject 'message' => '#^Cannot call method getIdentity\\(\\) on Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null\\.$#', 'count' => 4, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php', ]; $ignoreErrors[] = [ + // identifier: method.nonObject 'message' => '#^Cannot call method getRaaInstitutions\\(\\) on Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Dto\\\\Profile\\|null\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#1 \\$id of method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\RaLocationService\\:\\:find\\(\\) expects string, mixed given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#2 \\.\\.\\.\\$values of function sprintf expects bool\\|float\\|int\\|string\\|null, mixed given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php', ]; $ignoreErrors[] = [ + // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\CreateRaLocationCommand\\:\\:\\$institution \\(string\\) does not accept mixed\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php', ]; $ignoreErrors[] = [ + // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaLocationsCommand\\:\\:\\$orderBy \\(string\\|null\\) does not accept mixed\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php', ]; $ignoreErrors[] = [ + // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaLocationsCommand\\:\\:\\$orderDirection \\(string\\|null\\) does not accept mixed\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php', ]; $ignoreErrors[] = [ + // identifier: property.notFound 'message' => '#^Access to an undefined property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaCandidatesCommand\\:\\:\\$actorInstitution\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ + // identifier: method.notFound 'message' => '#^Call to an undefined method Symfony\\\\Component\\\\Form\\\\FormInterface\\:\\:isClicked\\(\\)\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ + // identifier: method.nonObject 'message' => '#^Cannot call method getIdentity\\(\\) on Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null\\.$#', 'count' => 7, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ + // identifier: method.nonObject 'message' => '#^Cannot call method getInstitution\\(\\) on Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ + // identifier: cast.int 'message' => '#^Cannot cast mixed to int\\.$#', 'count' => 2, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ + // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Controller\\\\RaManagementController\\:\\:amendRaInformation\\(\\) has parameter \\$identityId with no type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ + // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Controller\\\\RaManagementController\\:\\:amendRaInformation\\(\\) has parameter \\$raInstitution with no type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ + // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Controller\\\\RaManagementController\\:\\:retractRegistrationAuthority\\(\\) has parameter \\$identityId with no type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ + // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Controller\\\\RaManagementController\\:\\:retractRegistrationAuthority\\(\\) has parameter \\$raInstitution with no type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#1 \\$identityId of method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\RaCandidateService\\:\\:getRaCandidate\\(\\) expects string, mixed given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#2 \\.\\.\\.\\$values of function sprintf expects bool\\|float\\|int\\|string\\|null, mixed given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ + // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\AccreditCandidateCommand\\:\\:\\$identityId \\(string\\) does not accept mixed\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ + // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaCandidatesCommand\\:\\:\\$orderBy \\(string\\|null\\) does not accept mixed\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ + // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaCandidatesCommand\\:\\:\\$orderDirection \\(string\\|null\\) does not accept mixed\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ + // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaListingCommand\\:\\:\\$orderBy \\(string\\|null\\) does not accept mixed\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ + // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaListingCommand\\:\\:\\$orderDirection \\(string\\|null\\) does not accept mixed\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ + // identifier: method.nonObject 'message' => '#^Cannot call method getIdentity\\(\\) on Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaaController.php', ]; $ignoreErrors[] = [ + // identifier: method.nonObject 'message' => '#^Cannot call method getRaaInstitutions\\(\\) on Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Dto\\\\Profile\\|null\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaaController.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#1 \\$identityId of method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\ProfileService\\:\\:findByIdentityId\\(\\) expects string, string\\|null given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaaController.php', ]; $ignoreErrors[] = [ + // identifier: method.nonObject 'message' => '#^Cannot call method getIdentity\\(\\) on Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null\\.$#', 'count' => 2, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RecoveryTokenController.php', ]; $ignoreErrors[] = [ + // identifier: cast.int 'message' => '#^Cannot cast mixed to int\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RecoveryTokenController.php', ]; $ignoreErrors[] = [ + // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRecoveryTokensCommand\\:\\:\\$orderBy \\(string\\|null\\) does not accept mixed\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RecoveryTokenController.php', ]; $ignoreErrors[] = [ + // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRecoveryTokensCommand\\:\\:\\$orderDirection \\(string\\|null\\) does not accept mixed\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RecoveryTokenController.php', ]; $ignoreErrors[] = [ - 'message' => '#^Call to an undefined method Symfony\\\\Component\\\\Form\\\\FormInterface\\:\\:getClickedButton\\(\\)\\.$#', + // identifier: method.notFound + 'message' => '#^Call to an undefined method Symfony\\\\Component\\\\Form\\\\FormInterface\\\\:\\:getClickedButton\\(\\)\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', ]; $ignoreErrors[] = [ + // identifier: method.notFound 'message' => '#^Call to an undefined method Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserProviderInterface\\:\\:findById\\(\\)\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', ]; $ignoreErrors[] = [ + // identifier: method.nonObject 'message' => '#^Cannot call method getIdentity\\(\\) on Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null\\.$#', 'count' => 3, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', ]; $ignoreErrors[] = [ + // identifier: cast.int 'message' => '#^Cannot cast mixed to int\\.$#', 'count' => 2, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', ]; $ignoreErrors[] = [ + // identifier: missingType.generics 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Controller\\\\SecondFactorController\\:\\:__construct\\(\\) has parameter \\$identityService with generic interface Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserProviderInterface but does not specify its types\\: TUser$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#2 \\.\\.\\.\\$values of function sprintf expects bool\\|float\\|int\\|string\\|null, mixed given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#3 \\.\\.\\.\\$values of function sprintf expects bool\\|float\\|int\\|string\\|null, mixed given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', ]; $ignoreErrors[] = [ + // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaSecondFactorsCommand\\:\\:\\$orderBy \\(string\\|null\\) does not accept mixed\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', ]; $ignoreErrors[] = [ + // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaSecondFactorsCommand\\:\\:\\$orderDirection \\(string\\|null\\) does not accept mixed\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', ]; $ignoreErrors[] = [ + // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchSecondFactorAuditLogCommand\\:\\:\\$orderBy \\(string\\|null\\) does not accept mixed\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', ]; $ignoreErrors[] = [ + // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchSecondFactorAuditLogCommand\\:\\:\\$orderDirection \\(string\\|null\\) does not accept mixed\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Controller\\\\Vetting\\\\Gssf\\\\GssfInitiateFormService\\:\\:renderInitiateForm\\(\\) has parameter \\$parameters with no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/Vetting/Gssf/GssfInitiateFormService.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#1 \\$gssfId of method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\VettingService\\:\\:verifyGssfId\\(\\) expects string, string\\|null given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/Vetting/Gssf/GssfVerifyController.php', ]; $ignoreErrors[] = [ + // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Controller\\\\VettingController\\:\\:cancelProcedure\\(\\) has parameter \\$procedureId with no type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/VettingController.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#2 \\$actorId of method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\SecondFactorService\\:\\:findVerifiedSecondFactorByRegistrationCode\\(\\) expects string, string\\|null given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/VettingController.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#2 \\$haystack of function in_array expects array, array\\|bool\\|float\\|int\\|string\\|null given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/VettingController.php', ]; $ignoreErrors[] = [ + // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\StartVettingProcedureCommand\\:\\:\\$authorityId \\(string\\) does not accept string\\|null\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/VettingController.php', ]; $ignoreErrors[] = [ + // identifier: method.nonObject 'message' => '#^Cannot call method getRaaInstitutions\\(\\) on Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Dto\\\\Profile\\|null\\.$#', 'count' => 2, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/VettingTypeHintController.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Controller\\\\VettingTypeHintController\\:\\:__construct\\(\\) has parameter \\$locales with no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/VettingTypeHintController.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#1 \\$identityId of method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\ProfileService\\:\\:findByIdentityId\\(\\) expects string, string\\|null given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/VettingTypeHintController.php', ]; $ignoreErrors[] = [ + // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\VettingTypeHintCommand\\:\\:\\$identityId \\(string\\) does not accept string\\|null\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/VettingTypeHintController.php', ]; $ignoreErrors[] = [ + // identifier: method.notFound 'message' => '#^Call to an undefined method Symfony\\\\Contracts\\\\Translation\\\\TranslatorInterface\\:\\:setLocale\\(\\)\\.$#', 'count' => 2, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/EventListener/LocaleListener.php', ]; $ignoreErrors[] = [ + // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Exception\\\\AssertionFailedException\\:\\:__construct\\(\\) has parameter \\$code with no type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Exception/AssertionFailedException.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Exception\\\\AssertionFailedException\\:\\:__construct\\(\\) has parameter \\$constraints with no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Exception/AssertionFailedException.php', ]; $ignoreErrors[] = [ + // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Exception\\\\AssertionFailedException\\:\\:__construct\\(\\) has parameter \\$message with no type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Exception/AssertionFailedException.php', ]; $ignoreErrors[] = [ + // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Exception\\\\AssertionFailedException\\:\\:__construct\\(\\) has parameter \\$propertyPath with no type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Exception/AssertionFailedException.php', ]; $ignoreErrors[] = [ + // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Exception\\\\AssertionFailedException\\:\\:__construct\\(\\) has parameter \\$value with no type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Exception/AssertionFailedException.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Exception\\\\AssertionFailedException\\:\\:getConstraints\\(\\) return type has no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Exception/AssertionFailedException.php', ]; $ignoreErrors[] = [ + // identifier: missingType.return 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Exception\\\\AssertionFailedException\\:\\:getPropertyPath\\(\\) has no return type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Exception/AssertionFailedException.php', ]; $ignoreErrors[] = [ + // identifier: missingType.return 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Exception\\\\AssertionFailedException\\:\\:getValue\\(\\) has no return type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Exception/AssertionFailedException.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Form\\\\Extension\\\\RaRoleChoiceList\\:\\:buildChoices\\(\\) return type has no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Form/Extension/RaRoleChoiceList.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Form\\\\Extension\\\\RaRoleChoiceList\\:\\:create\\(\\) return type has no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Form/Extension/RaRoleChoiceList.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Form\\\\Extension\\\\RaRoleChoiceList\\:\\:getChoices\\(\\) return type has no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Form/Extension/RaRoleChoiceList.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Form\\\\Extension\\\\SecondFactorTypeChoiceList\\:\\:create\\(\\) return type has no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Form/Extension/SecondFactorTypeChoiceList.php', ]; $ignoreErrors[] = [ + // identifier: property.nonObject 'message' => '#^Cannot access property \\$availableInstitutions on mixed\\.$#', 'count' => 2, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Form/Type/CreateRaType.php', ]; $ignoreErrors[] = [ + // identifier: property.nonObject 'message' => '#^Cannot access property \\$availableInstitutions on mixed\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Form/Type/SelectInstitutionType.php', ]; $ignoreErrors[] = [ + // identifier: property.nonObject 'message' => '#^Cannot access property \\$locales on mixed\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Form/Type/VettingTypeHintType.php', ]; $ignoreErrors[] = [ + // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Logger\\\\ProcedureAwareLogger has an uninitialized property \\$procedure\\. Give it default value or assign it in the constructor\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Logger/ProcedureAwareLogger.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Logger\\\\ProcedureAwareLogger\\:\\:enrichContext\\(\\) has parameter \\$context with no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Logger/ProcedureAwareLogger.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Logger\\\\ProcedureAwareLogger\\:\\:enrichContext\\(\\) return type has no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Logger/ProcedureAwareLogger.php', ]; $ignoreErrors[] = [ + // identifier: return.type 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Repository\\\\SessionVettingProcedureRepository\\:\\:retrieve\\(\\) should return Surfnet\\\\StepupRa\\\\RaBundle\\\\VettingProcedure\\|null but returns mixed\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Repository/SessionVettingProcedureRepository.php', ]; $ignoreErrors[] = [ + // identifier: missingType.return 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Repository\\\\VettingProcedureRepository\\:\\:store\\(\\) has no return type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Repository/VettingProcedureRepository.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\AuthenticatedIdentity\\:\\:__construct\\(\\) has parameter \\$roles with no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/AuthenticatedIdentity.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\AuthenticatedIdentity\\:\\:eraseCredentials\\(\\) return type has no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/AuthenticatedIdentity.php', ]; $ignoreErrors[] = [ + // identifier: missingType.return 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\Authentication\\\\AuthenticatedSessionStateHandler\\:\\:setCurrentRequestUri\\(\\) has no return type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/AuthenticatedSessionStateHandler.php', ]; $ignoreErrors[] = [ + // identifier: property.nonObject 'message' => '#^Cannot access property \\$authorizations on Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Dto\\\\Profile\\|null\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/Provider/SamlProvider.php', ]; $ignoreErrors[] = [ + // identifier: property.nonObject 'message' => '#^Cannot access property \\$isSraa on Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Dto\\\\Profile\\|null\\.$#', 'count' => 2, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/Provider/SamlProvider.php', ]; $ignoreErrors[] = [ + // identifier: missingType.generics 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\Authentication\\\\Provider\\\\SamlProvider implements generic interface Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserProviderInterface but does not specify its types\\: TUser$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/Provider/SamlProvider.php', ]; $ignoreErrors[] = [ + // identifier: return.type 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\Authentication\\\\Provider\\\\SamlProvider\\:\\:getNameId\\(\\) should return string but returns string\\|null\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/Provider/SamlProvider.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#1 \\$array of function reset expects array\\|object, mixed given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/Provider/SamlProvider.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#1 \\$identityId of method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\ProfileService\\:\\:findByIdentityId\\(\\) expects string, string\\|null given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/Provider/SamlProvider.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#1 \\$loaIdentifier of method Surfnet\\\\StepupBundle\\\\Service\\\\LoaResolutionService\\:\\:getLoa\\(\\) expects string, string\\|null given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/Provider/SamlProvider.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#1 \\$nameId of method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\IdentityService\\:\\:findByNameIdAndInstitution\\(\\) expects string, string\\|null given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/Provider/SamlProvider.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#1 \\$value of function count expects array\\|Countable, mixed given\\.$#', 'count' => 2, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/Provider/SamlProvider.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#2 \\$loa of class Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\AuthenticatedIdentity constructor expects Surfnet\\\\StepupBundle\\\\Value\\\\Loa, Surfnet\\\\StepupBundle\\\\Value\\\\Loa\\|null given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/Provider/SamlProvider.php', ]; $ignoreErrors[] = [ + // identifier: missingType.return 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\Authentication\\\\SamlAuthenticationStateHandler\\:\\:setRequestId\\(\\) has no return type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/SamlAuthenticationStateHandler.php', ]; $ignoreErrors[] = [ + // identifier: return.type 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\Authentication\\\\Session\\\\SessionStorage\\:\\:getCurrentRequestUri\\(\\) should return string but returns mixed\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/Session/SessionStorage.php', ]; $ignoreErrors[] = [ + // identifier: return.type 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\Authentication\\\\Session\\\\SessionStorage\\:\\:getRequestId\\(\\) should return string\\|null but returns mixed\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/Session/SessionStorage.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#1 \\$string of static method Surfnet\\\\StepupRa\\\\RaBundle\\\\Value\\\\DateTime\\:\\:fromString\\(\\) expects string, mixed given\\.$#', 'count' => 2, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/Session/SessionStorage.php', ]; $ignoreErrors[] = [ + // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\Factory\\\\SamlFactory\\:\\:create\\(\\) has parameter \\$config with no type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Factory/SamlFactory.php', ]; $ignoreErrors[] = [ + // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\Factory\\\\SamlFactory\\:\\:create\\(\\) has parameter \\$defaultEntryPoint with no type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Factory/SamlFactory.php', ]; $ignoreErrors[] = [ + // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\Factory\\\\SamlFactory\\:\\:create\\(\\) has parameter \\$userProvider with no type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Factory/SamlFactory.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\Factory\\\\SamlFactory\\:\\:create\\(\\) return type has no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Factory/SamlFactory.php', ]; $ignoreErrors[] = [ + // identifier: return.type 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\Factory\\\\SamlFactory\\:\\:createAuthenticator\\(\\) should return array\\\\|string but returns array\\\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Factory/SamlFactory.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#1 \\$orderBy of method Surfnet\\\\StepupMiddlewareClient\\\\Identity\\\\Dto\\\\SecondFactorAuditLogSearchQuery\\:\\:setOrderBy\\(\\) expects string, string\\|null given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/AuditLogService.php', ]; $ignoreErrors[] = [ + // identifier: method.nonObject 'message' => '#^Cannot call method getUser\\(\\) on Symfony\\\\Component\\\\Security\\\\Core\\\\Authentication\\\\Token\\\\TokenInterface\\|null\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/CommandService.php', ]; $ignoreErrors[] = [ + // identifier: offsetAccess.nonOffsetAccessible 'message' => '#^Cannot access offset \'gssfId\' on mixed\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/GssfService.php', ]; $ignoreErrors[] = [ + // identifier: offsetAccess.nonOffsetAccessible 'message' => '#^Cannot access offset \'procedureId\' on mixed\\.$#', 'count' => 2, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/GssfService.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#1 \\$procedureId of static method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\Gssf\\\\VerificationResult\\:\\:verificationFailed\\(\\) expects string, mixed given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/GssfService.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#1 \\$procedureId of static method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\Gssf\\\\VerificationResult\\:\\:verificationSucceeded\\(\\) expects string, mixed given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/GssfService.php', ]; $ignoreErrors[] = [ + // identifier: missingType.generics 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\IdentityService implements generic interface Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserProviderInterface but does not specify its types\\: TUser$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/IdentityService.php', ]; $ignoreErrors[] = [ + // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\IdentityService\\:\\:supportsClass\\(\\) has parameter \\$class with no type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/IdentityService.php', ]; $ignoreErrors[] = [ + // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\InstitutionConfigurationOptionsServiceInterface\\:\\:getInstitutionConfigurationOptionsFor\\(\\) has parameter \\$institution with no type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/InstitutionConfigurationOptionsServiceInterface.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\InstitutionListingService\\:\\:getAll\\(\\) return type has no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/InstitutionListingService.php', ]; $ignoreErrors[] = [ + // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Command\\\\AccreditIdentityCommand\\:\\:\\$raInstitution \\(string\\) does not accept string\\|null\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaCandidateService.php', ]; $ignoreErrors[] = [ + // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Command\\\\AccreditIdentityCommand\\:\\:\\$role \\(string\\) does not accept string\\|null\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaCandidateService.php', ]; $ignoreErrors[] = [ + // identifier: booleanAnd.leftAlwaysTrue 'message' => '#^Left side of && is always true\\.$#', 'count' => 2, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaListingService.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#1 \\$raInstitution of method Surfnet\\\\StepupMiddlewareClient\\\\Identity\\\\Dto\\\\RaListingSearchQuery\\:\\:setRaInstitution\\(\\) expects string, string\\|null given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaListingService.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#1 \\$role of method Surfnet\\\\StepupMiddlewareClient\\\\Identity\\\\Dto\\\\RaListingSearchQuery\\:\\:setRole\\(\\) expects string, string\\|null given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaListingService.php', ]; $ignoreErrors[] = [ + // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\RaSecondFactorExport\\:\\:export\\(\\) has parameter \\$fileName with no type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaSecondFactorExport.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#1 \\$stream of function fclose expects resource, resource\\|false given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaSecondFactorExport.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#1 \\$stream of function fflush expects resource, resource\\|false given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaSecondFactorExport.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#1 \\$stream of function fputcsv expects resource, resource\\|false given\\.$#', 'count' => 2, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaSecondFactorExport.php', ]; $ignoreErrors[] = [ + // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\RaSecondFactorService\\:\\:buildQuery\\(\\) has parameter \\$command with no type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaSecondFactorService.php', ]; $ignoreErrors[] = [ + // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\RaSecondFactorService\\:\\:buildQuery\\(\\) has parameter \\$query with no type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaSecondFactorService.php', ]; $ignoreErrors[] = [ + // identifier: return.type 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\RaSecondFactorService\\:\\:search\\(\\) should return Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Dto\\\\RaSecondFactorCollection but returns Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Dto\\\\RaSecondFactorCollection\\|null\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaSecondFactorService.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#1 \\$collection of method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\RaSecondFactorExport\\:\\:export\\(\\) expects Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Dto\\\\RaSecondFactorExportCollection, Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Dto\\\\RaSecondFactorExportCollection\\|null given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaSecondFactorService.php', ]; $ignoreErrors[] = [ + // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Command\\\\AppointRoleCommand\\:\\:\\$role \\(string\\) does not accept string\\|null\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaService.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#2 \\$haystack of function in_array expects array, array\\|bool\\|float\\|int\\|string\\|null given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/SecondFactorAssertionService.php', ]; $ignoreErrors[] = [ + // identifier: method.nonObject 'message' => '#^Cannot call method getElements\\(\\) on Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Dto\\\\VerifiedSecondFactorCollection\\|null\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/SecondFactorService.php', ]; $ignoreErrors[] = [ + // identifier: return.type 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\SecondFactorService\\:\\:findVerifiedSecondFactorByRegistrationCode\\(\\) should return Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Dto\\\\VerifiedSecondFactor\\|null but returns Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Dto\\\\VerifiedSecondFactor\\|false\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/SecondFactorService.php', ]; $ignoreErrors[] = [ + // identifier: method.nonObject 'message' => '#^Cannot call method getYubikeyPublicId\\(\\) on Surfnet\\\\StepupBundle\\\\Value\\\\YubikeyPublicId\\|null\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/VettingService.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#1 \\$procedureId of method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\VettingService\\:\\:getProcedure\\(\\) expects string, string\\|null given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/VettingService.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#1 \\$secondFactorIdentifier of method Surfnet\\\\StepupRa\\\\RaBundle\\\\VettingProcedure\\:\\:verifySecondFactorIdentifier\\(\\) expects string, string\\|null given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/VettingService.php', ]; $ignoreErrors[] = [ + // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Command\\\\VetSecondFactorCommand\\:\\:\\$documentNumber \\(string\\) does not accept string\\|null\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/VettingService.php', ]; $ignoreErrors[] = [ + // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Command\\\\VetSecondFactorCommand\\:\\:\\$identityVerified \\(bool\\) does not accept bool\\|null\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/VettingService.php', ]; $ignoreErrors[] = [ + // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Command\\\\VetSecondFactorCommand\\:\\:\\$provePossessionSkipped \\(bool\\) does not accept bool\\|null\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/VettingService.php', ]; $ignoreErrors[] = [ + // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Command\\\\VetSecondFactorCommand\\:\\:\\$registrationCode \\(string\\) does not accept string\\|null\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/VettingService.php', ]; $ignoreErrors[] = [ + // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Twig\\\\Extensions\\\\Extension\\\\SecondFactorType\\:\\:translateSecondFactorType\\(\\) has parameter \\$secondFactorType with no type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Twig/Extensions/Extension/SecondFactorType.php', ]; $ignoreErrors[] = [ + // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\VettingProcedure has an uninitialized property \\$authorityId\\. Give it default value or assign it in the constructor\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/VettingProcedure.php', ]; $ignoreErrors[] = [ + // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\VettingProcedure has an uninitialized property \\$id\\. Give it default value or assign it in the constructor\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/VettingProcedure.php', ]; $ignoreErrors[] = [ + // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\VettingProcedure has an uninitialized property \\$secondFactor\\. Give it default value or assign it in the constructor\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/VettingProcedure.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\DependencyInjection\\\\SurfnetStepupRaSamlStepupProviderExtension\\:\\:buildHostedEntityDefinition\\(\\) has parameter \\$configuration with no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\DependencyInjection\\\\SurfnetStepupRaSamlStepupProviderExtension\\:\\:buildHostedEntityDefinition\\(\\) has parameter \\$routes with no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\DependencyInjection\\\\SurfnetStepupRaSamlStepupProviderExtension\\:\\:createHostedDefinitions\\(\\) has parameter \\$configuration with no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\DependencyInjection\\\\SurfnetStepupRaSamlStepupProviderExtension\\:\\:createHostedDefinitions\\(\\) has parameter \\$routes with no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\DependencyInjection\\\\SurfnetStepupRaSamlStepupProviderExtension\\:\\:createMetadataDefinition\\(\\) has parameter \\$configuration with no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\DependencyInjection\\\\SurfnetStepupRaSamlStepupProviderExtension\\:\\:createMetadataDefinition\\(\\) has parameter \\$routes with no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\DependencyInjection\\\\SurfnetStepupRaSamlStepupProviderExtension\\:\\:createRemoteDefinition\\(\\) has parameter \\$configuration with no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php', ]; $ignoreErrors[] = [ + // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\DependencyInjection\\\\SurfnetStepupRaSamlStepupProviderExtension\\:\\:createRouteConfig\\(\\) has parameter \\$provider with no type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php', ]; $ignoreErrors[] = [ + // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\DependencyInjection\\\\SurfnetStepupRaSamlStepupProviderExtension\\:\\:createRouteConfig\\(\\) has parameter \\$routeName with no type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\DependencyInjection\\\\SurfnetStepupRaSamlStepupProviderExtension\\:\\:createRouteConfig\\(\\) return type has no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\DependencyInjection\\\\SurfnetStepupRaSamlStepupProviderExtension\\:\\:loadProviderConfiguration\\(\\) has parameter \\$configuration with no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php', ]; $ignoreErrors[] = [ + // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\DependencyInjection\\\\SurfnetStepupRaSamlStepupProviderExtension\\:\\:loadProviderConfiguration\\(\\) has parameter \\$provider with no type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\DependencyInjection\\\\SurfnetStepupRaSamlStepupProviderExtension\\:\\:loadProviderConfiguration\\(\\) has parameter \\$routes with no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#2 \\.\\.\\.\\$values of function sprintf expects bool\\|float\\|int\\|string\\|null, mixed given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/Exception/InvalidArgumentException.php', ]; $ignoreErrors[] = [ + // identifier: argument.type 'message' => '#^Parameter \\#3 \\.\\.\\.\\$values of function sprintf expects bool\\|float\\|int\\|string\\|null, mixed given\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/Exception/InvalidArgumentException.php', ]; $ignoreErrors[] = [ + // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\Exception\\\\UnknownProviderException\\:\\:create\\(\\) has parameter \\$knownProviders with no value type specified in iterable type array\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/Exception/UnknownProviderException.php', ]; $ignoreErrors[] = [ + // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\Exception\\\\UnknownProviderException\\:\\:create\\(\\) has parameter \\$unknownProvider with no type specified\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/Exception/UnknownProviderException.php', ]; $ignoreErrors[] = [ + // identifier: return.type 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\Saml\\\\StateHandler\\:\\:getRequestId\\(\\) should return string\\|null but returns mixed\\.$#', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/Saml/StateHandler.php', diff --git a/ci/qa/phpunit.xml b/ci/qa/phpunit.xml index 8cf38e52..abe77414 100644 --- a/ci/qa/phpunit.xml +++ b/ci/qa/phpunit.xml @@ -11,7 +11,7 @@ - + diff --git a/composer.json b/composer.json index 4c34b9a8..36ecd0d8 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,6 @@ { "name": "surfnet/stepup-ra", "license": "Apache-2.0", - "version": "0", "description": "The SURFnet Step-up Registration Authority application allows Registration Authorities to vet identities by combining a real-world identity, federated identity and a token.", "autoload": { "psr-4": { diff --git a/composer.lock b/composer.lock index f2e377b4..f89e5180 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "9bc2a1333015bc23d673f1d56f333a95", + "content-hash": "6719d4aa9215e90286b263299750ccb0", "packages": [ { "name": "beberlei/assert", @@ -122,16 +122,16 @@ }, { "name": "composer/ca-bundle", - "version": "1.5.0", + "version": "1.5.10", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "0c5ccfcfea312b5c5a190a21ac5cef93f74baf99" + "reference": "961a5e4056dd2e4a2eedcac7576075947c28bf63" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/0c5ccfcfea312b5c5a190a21ac5cef93f74baf99", - "reference": "0c5ccfcfea312b5c5a190a21ac5cef93f74baf99", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/961a5e4056dd2e4a2eedcac7576075947c28bf63", + "reference": "961a5e4056dd2e4a2eedcac7576075947c28bf63", "shasum": "" }, "require": { @@ -141,8 +141,8 @@ }, "require-dev": { "phpstan/phpstan": "^1.10", - "psr/log": "^1.0", - "symfony/phpunit-bridge": "^4.2 || ^5", + "phpunit/phpunit": "^8 || ^9", + "psr/log": "^1.0 || ^2.0 || ^3.0", "symfony/process": "^4.0 || ^5.0 || ^6.0 || ^7.0" }, "type": "library", @@ -178,7 +178,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.5.0" + "source": "https://github.com/composer/ca-bundle/tree/1.5.10" }, "funding": [ { @@ -188,26 +188,22 @@ { "url": "https://github.com/composer", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" } ], - "time": "2024-03-15T14:00:32+00:00" + "time": "2025-12-08T15:06:51+00:00" }, { "name": "doctrine/annotations", - "version": "2.0.1", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f" + "reference": "901c2ee5d26eb64ff43c47976e114bf00843acf7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f", - "reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/901c2ee5d26eb64ff43c47976e114bf00843acf7", + "reference": "901c2ee5d26eb64ff43c47976e114bf00843acf7", "shasum": "" }, "require": { @@ -219,10 +215,10 @@ "require-dev": { "doctrine/cache": "^2.0", "doctrine/coding-standard": "^10", - "phpstan/phpstan": "^1.8.0", + "phpstan/phpstan": "^1.10.28", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "symfony/cache": "^5.4 || ^6", - "vimeo/psalm": "^4.10" + "symfony/cache": "^5.4 || ^6.4 || ^7", + "vimeo/psalm": "^4.30 || ^5.14" }, "suggest": { "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations" @@ -268,44 +264,43 @@ ], "support": { "issues": "https://github.com/doctrine/annotations/issues", - "source": "https://github.com/doctrine/annotations/tree/2.0.1" + "source": "https://github.com/doctrine/annotations/tree/2.0.2" }, - "time": "2023-02-02T22:02:53+00:00" + "abandoned": true, + "time": "2024-09-05T10:17:24+00:00" }, { "name": "doctrine/dbal", - "version": "4.0.4", + "version": "4.4.1", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "50fda19f80724b55ff770bb4ff352407008e63c5" + "reference": "3d544473fb93f5c25b483ea4f4ce99f8c4d9d44c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/50fda19f80724b55ff770bb4ff352407008e63c5", - "reference": "50fda19f80724b55ff770bb4ff352407008e63c5", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/3d544473fb93f5c25b483ea4f4ce99f8c4d9d44c", + "reference": "3d544473fb93f5c25b483ea4f4ce99f8c4d9d44c", "shasum": "" }, "require": { - "doctrine/deprecations": "^0.5.3|^1", - "php": "^8.1", + "doctrine/deprecations": "^1.1.5", + "php": "^8.2", "psr/cache": "^1|^2|^3", "psr/log": "^1|^2|^3" }, "require-dev": { - "doctrine/coding-standard": "12.0.0", + "doctrine/coding-standard": "14.0.0", "fig/log-test": "^1", "jetbrains/phpstorm-stubs": "2023.2", - "phpstan/phpstan": "1.11.5", - "phpstan/phpstan-phpunit": "1.4.0", - "phpstan/phpstan-strict-rules": "^1.6", - "phpunit/phpunit": "10.5.22", - "psalm/plugin-phpunit": "0.19.0", - "slevomat/coding-standard": "8.13.1", - "squizlabs/php_codesniffer": "3.10.1", - "symfony/cache": "^6.3.8|^7.0", - "symfony/console": "^5.4|^6.3|^7.0", - "vimeo/psalm": "5.24.0" + "phpstan/phpstan": "2.1.30", + "phpstan/phpstan-phpunit": "2.0.7", + "phpstan/phpstan-strict-rules": "^2", + "phpunit/phpunit": "11.5.23", + "slevomat/coding-standard": "8.24.0", + "squizlabs/php_codesniffer": "4.0.0", + "symfony/cache": "^6.3.8|^7.0|^8.0", + "symfony/console": "^5.4|^6.3|^7.0|^8.0" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." @@ -362,7 +357,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/4.0.4" + "source": "https://github.com/doctrine/dbal/tree/4.4.1" }, "funding": [ { @@ -378,33 +373,34 @@ "type": "tidelift" } ], - "time": "2024-06-19T11:57:23+00:00" + "time": "2025-12-04T10:11:03+00:00" }, { "name": "doctrine/deprecations", - "version": "1.1.3", + "version": "1.1.5", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab" + "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", - "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38", + "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, + "conflict": { + "phpunit/phpunit": "<=7.5 || >=13" + }, "require-dev": { - "doctrine/coding-standard": "^9", - "phpstan/phpstan": "1.4.10 || 1.10.15", - "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "psalm/plugin-phpunit": "0.18.4", - "psr/log": "^1 || ^2 || ^3", - "vimeo/psalm": "4.30.0 || 5.12.0" + "doctrine/coding-standard": "^9 || ^12 || ^13", + "phpstan/phpstan": "1.4.10 || 2.1.11", + "phpstan/phpstan-phpunit": "^1.0 || ^2", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12", + "psr/log": "^1 || ^2 || ^3" }, "suggest": { "psr/log": "Allows logging deprecations via PSR-3 logger implementation" @@ -412,7 +408,7 @@ "type": "library", "autoload": { "psr-4": { - "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + "Doctrine\\Deprecations\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -423,9 +419,9 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.3" + "source": "https://github.com/doctrine/deprecations/tree/1.1.5" }, - "time": "2024-01-30T19:34:25+00:00" + "time": "2025-04-07T20:06:18+00:00" }, { "name": "doctrine/lexer", @@ -506,21 +502,21 @@ }, { "name": "endroid/installer", - "version": "1.4.5", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/endroid/installer.git", - "reference": "308051404c8370b9641cd61d86a464f2c6938265" + "reference": "39109e825057b2e7436123d5ad5dc8c2467a4cf6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/endroid/installer/zipball/308051404c8370b9641cd61d86a464f2c6938265", - "reference": "308051404c8370b9641cd61d86a464f2c6938265", + "url": "https://api.github.com/repos/endroid/installer/zipball/39109e825057b2e7436123d5ad5dc8c2467a4cf6", + "reference": "39109e825057b2e7436123d5ad5dc8c2467a4cf6", "shasum": "" }, "require": { "composer-plugin-api": "^2.0", - "php": "^8.1" + "php": "^8.2" }, "require-dev": { "composer/composer": "^2.0", @@ -531,10 +527,10 @@ }, "type": "composer-plugin", "extra": { + "class": "Endroid\\Installer\\Installer", "branch-alias": { - "dev-master": "1.x-dev" - }, - "class": "Endroid\\Installer\\Installer" + "dev-main": "1.x-dev" + } }, "autoload": { "psr-4": { @@ -554,7 +550,7 @@ "description": "Composer plugin for installing configuration files", "support": { "issues": "https://github.com/endroid/installer/issues", - "source": "https://github.com/endroid/installer/tree/1.4.5" + "source": "https://github.com/endroid/installer/tree/1.5.0" }, "funding": [ { @@ -562,26 +558,26 @@ "type": "github" } ], - "time": "2023-11-07T12:11:36+00:00" + "time": "2024-10-20T18:31:36+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "7.8.1", + "version": "7.10.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "41042bc7ab002487b876a0683fc8dce04ddce104" + "reference": "b51ac707cfa420b7bfd4e4d5e510ba8008e822b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104", - "reference": "41042bc7ab002487b876a0683fc8dce04ddce104", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b51ac707cfa420b7bfd4e4d5e510ba8008e822b4", + "reference": "b51ac707cfa420b7bfd4e4d5e510ba8008e822b4", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.5.3 || ^2.0.1", - "guzzlehttp/psr7": "^1.9.1 || ^2.5.1", + "guzzlehttp/promises": "^2.3", + "guzzlehttp/psr7": "^2.8", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", "symfony/deprecation-contracts": "^2.2 || ^3.0" @@ -592,9 +588,9 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", "ext-curl": "*", - "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", + "guzzle/client-integration-tests": "3.0.2", "php-http/message-factory": "^1.1", - "phpunit/phpunit": "^8.5.36 || ^9.6.15", + "phpunit/phpunit": "^8.5.39 || ^9.6.20", "psr/log": "^1.1 || ^2.0 || ^3.0" }, "suggest": { @@ -672,7 +668,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.8.1" + "source": "https://github.com/guzzle/guzzle/tree/7.10.0" }, "funding": [ { @@ -688,20 +684,20 @@ "type": "tidelift" } ], - "time": "2023-12-03T20:35:24+00:00" + "time": "2025-08-23T22:36:01+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.0.2", + "version": "2.3.0", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223" + "reference": "481557b130ef3790cf82b713667b43030dc9c957" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/bbff78d96034045e58e13dedd6ad91b5d1253223", - "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223", + "url": "https://api.github.com/repos/guzzle/promises/zipball/481557b130ef3790cf82b713667b43030dc9c957", + "reference": "481557b130ef3790cf82b713667b43030dc9c957", "shasum": "" }, "require": { @@ -709,7 +705,7 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.36 || ^9.6.15" + "phpunit/phpunit": "^8.5.44 || ^9.6.25" }, "type": "library", "extra": { @@ -755,7 +751,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.2" + "source": "https://github.com/guzzle/promises/tree/2.3.0" }, "funding": [ { @@ -771,20 +767,20 @@ "type": "tidelift" } ], - "time": "2023-12-03T20:19:20+00:00" + "time": "2025-08-22T14:34:08+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.6.2", + "version": "2.8.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221" + "reference": "21dc724a0583619cd1652f673303492272778051" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221", - "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/21dc724a0583619cd1652f673303492272778051", + "reference": "21dc724a0583619cd1652f673303492272778051", "shasum": "" }, "require": { @@ -799,8 +795,8 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "http-interop/http-factory-tests": "^0.9", - "phpunit/phpunit": "^8.5.36 || ^9.6.15" + "http-interop/http-factory-tests": "0.9.0", + "phpunit/phpunit": "^8.5.44 || ^9.6.25" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" @@ -871,7 +867,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.6.2" + "source": "https://github.com/guzzle/psr7/tree/2.8.0" }, "funding": [ { @@ -887,32 +883,32 @@ "type": "tidelift" } ], - "time": "2023-12-03T20:05:35+00:00" + "time": "2025-08-23T21:21:41+00:00" }, { "name": "incenteev/composer-parameter-handler", - "version": "v2.2.0", + "version": "v2.3.0", "source": { "type": "git", "url": "https://github.com/Incenteev/ParameterHandler.git", - "reference": "90bffce926e96b365579a2ef024aab457f4b80c5" + "reference": "4d9a7c72322daaa11343fb885c15dc3fa096e3ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/90bffce926e96b365579a2ef024aab457f4b80c5", - "reference": "90bffce926e96b365579a2ef024aab457f4b80c5", + "url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/4d9a7c72322daaa11343fb885c15dc3fa096e3ac", + "reference": "4d9a7c72322daaa11343fb885c15dc3fa096e3ac", "shasum": "" }, "require": { "php": ">=7.4", - "symfony/yaml": "^5.4 || ^6.0 || ^7.0" + "symfony/yaml": "^5.4 || ^6.0 || ^7.0 || ^8.0" }, "require-dev": { "composer/composer": "^2.0@dev", "phpspec/prophecy-phpunit": "^2.1", "phpunit/phpunit": "^9.6", - "symfony/filesystem": "^5.4 || ^6.0 || ^7.0", - "symfony/phpunit-bridge": "^6.4.1 || ^7.0.1" + "symfony/filesystem": "^5.4 || ^6.0 || ^7.0 || ^8.0", + "symfony/phpunit-bridge": "^6.4.1 || ^7.0.1 || ^8.0" }, "type": "library", "extra": { @@ -942,63 +938,60 @@ ], "support": { "issues": "https://github.com/Incenteev/ParameterHandler/issues", - "source": "https://github.com/Incenteev/ParameterHandler/tree/v2.2.0" + "source": "https://github.com/Incenteev/ParameterHandler/tree/v2.3.0" }, - "time": "2023-12-09T10:31:14+00:00" + "time": "2025-11-26T14:10:46+00:00" }, { "name": "jms/translation-bundle", - "version": "2.3.0", + "version": "2.6.0", "source": { "type": "git", "url": "https://github.com/schmittjoh/JMSTranslationBundle.git", - "reference": "90d26b3bf435f48576abe49e31a7e7e7d7059310" + "reference": "2a51f8a4c17422ad36bc408e0b286aa2d5e5c003" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/JMSTranslationBundle/zipball/90d26b3bf435f48576abe49e31a7e7e7d7059310", - "reference": "90d26b3bf435f48576abe49e31a7e7e7d7059310", + "url": "https://api.github.com/repos/schmittjoh/JMSTranslationBundle/zipball/2a51f8a4c17422ad36bc408e0b286aa2d5e5c003", + "reference": "2a51f8a4c17422ad36bc408e0b286aa2d5e5c003", "shasum": "" }, "require": { - "nikic/php-parser": "^4.9 || ^5", - "php": "^7.4 || ^8.0", - "psr/log": "^1.0 || ^2.0", - "symfony/config": "^4.3 || ^5.4 || ^6.2", - "symfony/console": "^4.3 || ^5.4 || ^6.0", - "symfony/expression-language": "^4.3 || ^5.4 || ^6.0", - "symfony/framework-bundle": "^4.3 || ^5.4 || ^6.0", - "symfony/translation": "^4.3 || ^5.4 || ^6.0", - "symfony/translation-contracts": "^1.1 || ^2.0 || ^3.0", - "symfony/validator": "^4.3 || ^5.4 || ^6.0", - "twig/twig": "^2.13.1 || ^3.0" + "nikic/php-parser": "^5", + "php": "^8.1", + "psr/log": "^1.0 || ^2.0 || ^3.0", + "symfony/config": "^5.4 || ^6.4 || ^7.1", + "symfony/console": "^5.4 || ^6.4 || ^7.1", + "symfony/framework-bundle": "^5.4 || ^6.4 || ^7.1", + "symfony/translation": "^5.4 || ^6.4 || ^7.1", + "symfony/translation-contracts": "^2.0 || ^3.0", + "symfony/validator": "^5.4 || ^6.4 || ^7.1", + "twig/twig": "^3.15" }, "require-dev": { "doctrine/annotations": "^1.11", - "doctrine/coding-standard": "^8.2.1", - "matthiasnoback/symfony-dependency-injection-test": "^4.1", + "doctrine/coding-standard": "^9.0", + "matthiasnoback/symfony-dependency-injection-test": "^6.0", "nyholm/nsa": "^1.0.1", "sensio/framework-extra-bundle": "^6.2.4", - "symfony/asset": "^4.4 || ^5.4 || ^6.4", - "symfony/browser-kit": "^4.4 || ^5.4 || ^6.4", - "symfony/css-selector": "^4.4 || ^5.4 || ^6.4", - "symfony/filesystem": "^4.4 || ^5.4 || ^6.4", - "symfony/flex": "^1.19 || ^2.0", - "symfony/form": "^4.4 || ^5.4 || ^6.4", - "symfony/phpunit-bridge": "^4.4 || ^5.4 || ^6.4", - "symfony/property-access": "^4.4 || ^5.4 || ^6.4", - "symfony/routing": "^4.4.15 || ^5.4 || ^6.4", - "symfony/security-csrf": "^4.4 || ^5.4 || ^6.4", - "symfony/templating": "^4.4 || ^5.4 || ^6.4", - "symfony/twig-bundle": "^4.4 || ^5.4 || ^6.4" + "symfony/asset": "^5.4 || ^6.4 || ^7.1", + "symfony/browser-kit": "^5.4 || ^6.4 || ^7.1", + "symfony/css-selector": "^5.4 || ^6.4 || ^7.1", + "symfony/filesystem": "^5.4 || ^6.4 || ^7.1", + "symfony/form": "^5.4 || ^6.4 || ^7.1", + "symfony/phpunit-bridge": "^7.2", + "symfony/property-access": "^5.4 || ^6.4 || ^7.1", + "symfony/routing": "^5.4 || ^6.4 || ^7.1", + "symfony/security-csrf": "^5.4 || ^6.4 || ^7.1", + "symfony/twig-bundle": "^5.4 || ^6.4 || ^7.1" }, "type": "symfony-bundle", "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - }, "symfony": { "allow-contrib": true + }, + "branch-alias": { + "dev-master": "2.x-dev" } }, "autoload": { @@ -1030,26 +1023,26 @@ ], "support": { "issues": "https://github.com/schmittjoh/JMSTranslationBundle/issues", - "source": "https://github.com/schmittjoh/JMSTranslationBundle/tree/2.3.0" + "source": "https://github.com/schmittjoh/JMSTranslationBundle/tree/2.6.0" }, - "time": "2024-06-08T08:59:56+00:00" + "time": "2025-02-09T16:27:51+00:00" }, { "name": "knplabs/knp-components", - "version": "v4.4.0", + "version": "v5.2.0", "source": { "type": "git", "url": "https://github.com/KnpLabs/knp-components.git", - "reference": "59ef316e34e814449d8718d7151946bdbb5e553f" + "reference": "eabf39263fff305c0024820c3736e5b03e7edf50" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/KnpLabs/knp-components/zipball/59ef316e34e814449d8718d7151946bdbb5e553f", - "reference": "59ef316e34e814449d8718d7151946bdbb5e553f", + "url": "https://api.github.com/repos/KnpLabs/knp-components/zipball/eabf39263fff305c0024820c3736e5b03e7edf50", + "reference": "eabf39263fff305c0024820c3736e5b03e7edf50", "shasum": "" }, "require": { - "php": "^8.0", + "php": "^8.1", "symfony/event-dispatcher-contracts": "^3.0" }, "conflict": { @@ -1062,7 +1055,7 @@ "doctrine/phpcr-odm": "^1.8 || ^2.0", "ext-pdo_sqlite": "*", "jackalope/jackalope-doctrine-dbal": "^1.12 || ^2.0", - "phpunit/phpunit": "^9.6", + "phpunit/phpunit": "^10.5 || ^11.3", "propel/propel1": "^1.7", "ruflin/elastica": "^7.0", "solarium/solarium": "^6.0", @@ -1084,7 +1077,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.x-dev" + "dev-master": "5.x-dev" } }, "autoload": { @@ -1117,46 +1110,49 @@ ], "support": { "issues": "https://github.com/KnpLabs/knp-components/issues", - "source": "https://github.com/KnpLabs/knp-components/tree/v4.4.0" + "source": "https://github.com/KnpLabs/knp-components/tree/v5.2.0" }, - "time": "2024-04-23T07:05:01+00:00" + "time": "2025-03-20T07:35:37+00:00" }, { "name": "knplabs/knp-paginator-bundle", - "version": "v6.4.0", + "version": "v6.10.0", "source": { "type": "git", "url": "https://github.com/KnpLabs/KnpPaginatorBundle.git", - "reference": "a9cbcb3c6be5868a2e16a599c7438149c40b4bda" + "reference": "8d41f8ed47d880f8fa569389ffa4fecfbc5b8d41" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/KnpLabs/KnpPaginatorBundle/zipball/a9cbcb3c6be5868a2e16a599c7438149c40b4bda", - "reference": "a9cbcb3c6be5868a2e16a599c7438149c40b4bda", + "url": "https://api.github.com/repos/KnpLabs/KnpPaginatorBundle/zipball/8d41f8ed47d880f8fa569389ffa4fecfbc5b8d41", + "reference": "8d41f8ed47d880f8fa569389ffa4fecfbc5b8d41", "shasum": "" }, "require": { - "knplabs/knp-components": "^4.1", + "knplabs/knp-components": "^4.4 || ^5.0", "php": "^8.1", - "symfony/config": "^6.4 || ^7.0", - "symfony/dependency-injection": "^6.4 || ^7.0", - "symfony/event-dispatcher": "^6.4 || ^7.0", - "symfony/http-foundation": "^6.4 || ^7.0", - "symfony/http-kernel": "^6.4 || ^7.0", - "symfony/routing": "^6.4 || ^7.0", - "symfony/translation": "^6.4 || ^7.0", - "twig/twig": "^3.0" + "symfony/config": "^6.4 || ^7.0 || ^8.0", + "symfony/dependency-injection": "^6.4 || ^7.0 || ^8.0", + "symfony/event-dispatcher": "^6.4 || ^7.0 || ^8.0", + "symfony/http-foundation": "^6.4 || ^7.0 || ^8.0", + "symfony/http-kernel": "^6.4 || ^7.0 || ^8.0", + "symfony/routing": "^6.4 || ^7.0 || ^8.0" }, "require-dev": { - "phpstan/phpstan": "^1.11", - "phpunit/phpunit": "^9.6", - "symfony/expression-language": "^6.4 || ^7.0", - "symfony/templating": "^6.4 || ^7.0" + "phpstan/phpstan": "^1.12", + "phpunit/phpunit": "^10.5 || ^11.5 || ^12.2", + "symfony/templating": "^6.4 || ^7.0 || ^8.0", + "symfony/translation": "^6.4 || ^7.0 || ^8.0", + "twig/twig": "^3.0" + }, + "suggest": { + "symfony/translation": "To use the templates", + "twig/twig": "To use the templates" }, "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "5.x-dev" + "dev-master": "6.x-dev" } }, "autoload": { @@ -1191,22 +1187,22 @@ ], "support": { "issues": "https://github.com/KnpLabs/KnpPaginatorBundle/issues", - "source": "https://github.com/KnpLabs/KnpPaginatorBundle/tree/v6.4.0" + "source": "https://github.com/KnpLabs/KnpPaginatorBundle/tree/v6.10.0" }, - "time": "2024-05-21T16:15:16+00:00" + "time": "2025-11-29T09:14:09+00:00" }, { "name": "monolog/monolog", - "version": "3.6.0", + "version": "3.10.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "4b18b21a5527a3d5ffdac2fd35d3ab25a9597654" + "reference": "b321dd6749f0bf7189444158a3ce785cc16d69b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/4b18b21a5527a3d5ffdac2fd35d3ab25a9597654", - "reference": "4b18b21a5527a3d5ffdac2fd35d3ab25a9597654", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/b321dd6749f0bf7189444158a3ce785cc16d69b0", + "reference": "b321dd6749f0bf7189444158a3ce785cc16d69b0", "shasum": "" }, "require": { @@ -1224,14 +1220,16 @@ "graylog2/gelf-php": "^1.4.2 || ^2.0", "guzzlehttp/guzzle": "^7.4.5", "guzzlehttp/psr7": "^2.2", - "mongodb/mongodb": "^1.8", + "mongodb/mongodb": "^1.8 || ^2.0", "php-amqplib/php-amqplib": "~2.4 || ^3", - "phpstan/phpstan": "^1.9", - "phpstan/phpstan-deprecation-rules": "^1.0", - "phpstan/phpstan-strict-rules": "^1.4", - "phpunit/phpunit": "^10.5.17", + "php-console/php-console": "^3.1.8", + "phpstan/phpstan": "^2", + "phpstan/phpstan-deprecation-rules": "^2", + "phpstan/phpstan-strict-rules": "^2", + "phpunit/phpunit": "^10.5.17 || ^11.0.7", "predis/predis": "^1.1 || ^2", - "ruflin/elastica": "^7", + "rollbar/rollbar": "^4.0", + "ruflin/elastica": "^7 || ^8", "symfony/mailer": "^5.4 || ^6", "symfony/mime": "^5.4 || ^6" }, @@ -1282,7 +1280,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.6.0" + "source": "https://github.com/Seldaek/monolog/tree/3.10.0" }, "funding": [ { @@ -1294,44 +1292,45 @@ "type": "tidelift" } ], - "time": "2024-04-12T21:02:21+00:00" + "time": "2026-01-02T08:56:05+00:00" }, { "name": "nelmio/security-bundle", - "version": "v3.3.0", + "version": "v3.7.0", "source": { "type": "git", "url": "https://github.com/nelmio/NelmioSecurityBundle.git", - "reference": "6a6c75ef6342385ef732f0b5afa705660177250f" + "reference": "9389ec28cd219d621d3d91c840a3df6f04c9f651" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nelmio/NelmioSecurityBundle/zipball/6a6c75ef6342385ef732f0b5afa705660177250f", - "reference": "6a6c75ef6342385ef732f0b5afa705660177250f", + "url": "https://api.github.com/repos/nelmio/NelmioSecurityBundle/zipball/9389ec28cd219d621d3d91c840a3df6f04c9f651", + "reference": "9389ec28cd219d621d3d91c840a3df6f04c9f651", "shasum": "" }, "require": { "php": "^7.4 || ^8.0", - "symfony/framework-bundle": "^5.4 || ^6.3 || ^7.0", - "symfony/http-kernel": "^5.4 || ^6.3 || ^7.0", - "symfony/security-core": "^5.4 || ^6.3 || ^7.0", - "symfony/security-csrf": "^5.4 || ^6.3 || ^7.0", - "symfony/security-http": "^5.4 || ^6.3 || ^7.0", - "symfony/yaml": "^5.4 || ^6.3 || ^7.0", + "symfony/deprecation-contracts": "^2.5 || ^3", + "symfony/framework-bundle": "^5.4 || ^6.3 || ^7.0 || ^8.0", + "symfony/http-kernel": "^5.4 || ^6.3 || ^7.0 || ^8.0", + "symfony/security-core": "^5.4 || ^6.3 || ^7.0 || ^8.0", + "symfony/security-csrf": "^5.4 || ^6.3 || ^7.0 || ^8.0", + "symfony/security-http": "^5.4 || ^6.3 || ^7.0 || ^8.0", + "symfony/yaml": "^5.4 || ^6.3 || ^7.0 || ^8.0", "ua-parser/uap-php": "^3.4.4" }, "require-dev": { - "phpstan/phpstan": "^1.4", - "phpstan/phpstan-deprecation-rules": "^1.0", - "phpstan/phpstan-phpunit": "^1.0", - "phpstan/phpstan-strict-rules": "^1.1", - "phpstan/phpstan-symfony": "^1.1", - "phpunit/phpunit": "^9.5", + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-deprecation-rules": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpstan/phpstan-strict-rules": "^2.0", + "phpstan/phpstan-symfony": "^2.0", + "phpunit/phpunit": "^9.5 || ^10.1 || ^11.0", "psr/cache": "^1.0 || ^2.0 || ^3.0", - "symfony/browser-kit": "^5.4 || ^6.3 || ^7.0", - "symfony/cache": "^5.4 || ^6.3 || ^7.0", - "symfony/phpunit-bridge": "^6.3 || ^7.0", - "symfony/twig-bundle": "^5.4 || ^6.3 || ^7.0", + "symfony/browser-kit": "^5.4 || ^6.3 || ^7.0 || ^8.0", + "symfony/cache": "^5.4 || ^6.3 || ^7.0 || ^8.0", + "symfony/phpunit-bridge": "^6.3 || ^7.0 || ^8.0", + "symfony/twig-bundle": "^5.4 || ^6.3 || ^7.0 || ^8.0", "twig/twig": "^2.10 || ^3.0" }, "type": "symfony-bundle", @@ -1365,22 +1364,22 @@ ], "support": { "issues": "https://github.com/nelmio/NelmioSecurityBundle/issues", - "source": "https://github.com/nelmio/NelmioSecurityBundle/tree/v3.3.0" + "source": "https://github.com/nelmio/NelmioSecurityBundle/tree/v3.7.0" }, - "time": "2024-04-10T08:11:27+00:00" + "time": "2025-12-30T14:05:13+00:00" }, { "name": "nikic/php-parser", - "version": "v5.0.2", + "version": "v5.7.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13" + "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/139676794dc1e9231bf7bcd123cfc0c99182cb13", - "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82", + "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82", "shasum": "" }, "require": { @@ -1391,7 +1390,7 @@ }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^9.0" }, "bin": [ "bin/php-parse" @@ -1399,7 +1398,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-master": "5.x-dev" } }, "autoload": { @@ -1423,9 +1422,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.2" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.7.0" }, - "time": "2024-03-05T20:51:40+00:00" + "time": "2025-12-06T11:56:16+00:00" }, { "name": "openconext/monitor-bundle", @@ -1938,16 +1937,16 @@ }, { "name": "ramsey/collection", - "version": "2.0.0", + "version": "2.1.1", "source": { "type": "git", "url": "https://github.com/ramsey/collection.git", - "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5" + "reference": "344572933ad0181accbf4ba763e85a0306a8c5e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/collection/zipball/a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", - "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", + "url": "https://api.github.com/repos/ramsey/collection/zipball/344572933ad0181accbf4ba763e85a0306a8c5e2", + "reference": "344572933ad0181accbf4ba763e85a0306a8c5e2", "shasum": "" }, "require": { @@ -1955,25 +1954,22 @@ }, "require-dev": { "captainhook/plugin-composer": "^5.3", - "ergebnis/composer-normalize": "^2.28.3", - "fakerphp/faker": "^1.21", + "ergebnis/composer-normalize": "^2.45", + "fakerphp/faker": "^1.24", "hamcrest/hamcrest-php": "^2.0", - "jangregor/phpstan-prophecy": "^1.0", - "mockery/mockery": "^1.5", + "jangregor/phpstan-prophecy": "^2.1", + "mockery/mockery": "^1.6", "php-parallel-lint/php-console-highlighter": "^1.0", - "php-parallel-lint/php-parallel-lint": "^1.3", - "phpcsstandards/phpcsutils": "^1.0.0-rc1", - "phpspec/prophecy-phpunit": "^2.0", - "phpstan/extension-installer": "^1.2", - "phpstan/phpstan": "^1.9", - "phpstan/phpstan-mockery": "^1.1", - "phpstan/phpstan-phpunit": "^1.3", - "phpunit/phpunit": "^9.5", - "psalm/plugin-mockery": "^1.1", - "psalm/plugin-phpunit": "^0.18.4", - "ramsey/coding-standard": "^2.0.3", - "ramsey/conventional-commits": "^1.3", - "vimeo/psalm": "^5.4" + "php-parallel-lint/php-parallel-lint": "^1.4", + "phpspec/prophecy-phpunit": "^2.3", + "phpstan/extension-installer": "^1.4", + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-mockery": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^10.5", + "ramsey/coding-standard": "^2.3", + "ramsey/conventional-commits": "^1.6", + "roave/security-advisories": "dev-latest" }, "type": "library", "extra": { @@ -2011,37 +2007,26 @@ ], "support": { "issues": "https://github.com/ramsey/collection/issues", - "source": "https://github.com/ramsey/collection/tree/2.0.0" + "source": "https://github.com/ramsey/collection/tree/2.1.1" }, - "funding": [ - { - "url": "https://github.com/ramsey", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/ramsey/collection", - "type": "tidelift" - } - ], - "time": "2022-12-31T21:50:55+00:00" + "time": "2025-03-22T05:38:12+00:00" }, { "name": "ramsey/uuid", - "version": "4.7.6", + "version": "4.9.2", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "91039bc1faa45ba123c4328958e620d382ec7088" + "reference": "8429c78ca35a09f27565311b98101e2826affde0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/91039bc1faa45ba123c4328958e620d382ec7088", - "reference": "91039bc1faa45ba123c4328958e620d382ec7088", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/8429c78ca35a09f27565311b98101e2826affde0", + "reference": "8429c78ca35a09f27565311b98101e2826affde0", "shasum": "" }, "require": { - "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12", - "ext-json": "*", + "brick/math": "^0.8.16 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14", "php": "^8.0", "ramsey/collection": "^1.2 || ^2.0" }, @@ -2049,26 +2034,23 @@ "rhumsaa/uuid": "self.version" }, "require-dev": { - "captainhook/captainhook": "^5.10", + "captainhook/captainhook": "^5.25", "captainhook/plugin-composer": "^5.3", - "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", - "doctrine/annotations": "^1.8", - "ergebnis/composer-normalize": "^2.15", - "mockery/mockery": "^1.3", + "dealerdirect/phpcodesniffer-composer-installer": "^1.0", + "ergebnis/composer-normalize": "^2.47", + "mockery/mockery": "^1.6", "paragonie/random-lib": "^2", - "php-mock/php-mock": "^2.2", - "php-mock/php-mock-mockery": "^1.3", - "php-parallel-lint/php-parallel-lint": "^1.1", - "phpbench/phpbench": "^1.0", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-mockery": "^1.1", - "phpstan/phpstan-phpunit": "^1.1", - "phpunit/phpunit": "^8.5 || ^9", - "ramsey/composer-repl": "^1.4", - "slevomat/coding-standard": "^8.4", - "squizlabs/php_codesniffer": "^3.5", - "vimeo/psalm": "^4.9" + "php-mock/php-mock": "^2.6", + "php-mock/php-mock-mockery": "^1.5", + "php-parallel-lint/php-parallel-lint": "^1.4.0", + "phpbench/phpbench": "^1.2.14", + "phpstan/extension-installer": "^1.4", + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-mockery": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^9.6", + "slevomat/coding-standard": "^8.18", + "squizlabs/php_codesniffer": "^3.13" }, "suggest": { "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", @@ -2103,32 +2085,22 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "source": "https://github.com/ramsey/uuid/tree/4.7.6" + "source": "https://github.com/ramsey/uuid/tree/4.9.2" }, - "funding": [ - { - "url": "https://github.com/ramsey", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid", - "type": "tidelift" - } - ], - "time": "2024-04-27T21:32:50+00:00" + "time": "2025-12-14T04:43:48+00:00" }, { "name": "robrichards/xmlseclibs", - "version": "3.1.3", + "version": "3.1.4", "source": { "type": "git", "url": "https://github.com/robrichards/xmlseclibs.git", - "reference": "2bdfd742624d739dfadbd415f00181b4a77aaf07" + "reference": "bc87389224c6de95802b505e5265b0ec2c5bcdbd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/robrichards/xmlseclibs/zipball/2bdfd742624d739dfadbd415f00181b4a77aaf07", - "reference": "2bdfd742624d739dfadbd415f00181b4a77aaf07", + "url": "https://api.github.com/repos/robrichards/xmlseclibs/zipball/bc87389224c6de95802b505e5265b0ec2c5bcdbd", + "reference": "bc87389224c6de95802b505e5265b0ec2c5bcdbd", "shasum": "" }, "require": { @@ -2155,22 +2127,22 @@ ], "support": { "issues": "https://github.com/robrichards/xmlseclibs/issues", - "source": "https://github.com/robrichards/xmlseclibs/tree/3.1.3" + "source": "https://github.com/robrichards/xmlseclibs/tree/3.1.4" }, - "time": "2024-11-20T21:13:56+00:00" + "time": "2025-12-08T11:57:53+00:00" }, { "name": "simplesamlphp/saml2", - "version": "v4.18.1", + "version": "v4.19.1", "source": { "type": "git", "url": "https://github.com/simplesamlphp/saml2.git", - "reference": "78b1c6735db8e2f78dcea9bcac0317ad2b200d72" + "reference": "e928cffd4ede7f066189e05680aecb07e88aefad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/78b1c6735db8e2f78dcea9bcac0317ad2b200d72", - "reference": "78b1c6735db8e2f78dcea9bcac0317ad2b200d72", + "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/e928cffd4ede7f066189e05680aecb07e88aefad", + "reference": "e928cffd4ede7f066189e05680aecb07e88aefad", "shasum": "" }, "require": { @@ -2179,7 +2151,7 @@ "ext-zlib": "*", "php": ">=7.1 || ^8.0", "psr/log": "~1.1 || ^2.0 || ^3.0", - "robrichards/xmlseclibs": "^3.1.1", + "robrichards/xmlseclibs": "^3.1.4", "webmozart/assert": "^1.9" }, "conflict": { @@ -2216,9 +2188,9 @@ "description": "SAML2 PHP library from SimpleSAMLphp", "support": { "issues": "https://github.com/simplesamlphp/saml2/issues", - "source": "https://github.com/simplesamlphp/saml2/tree/v4.18.1" + "source": "https://github.com/simplesamlphp/saml2/tree/v4.19.1" }, - "time": "2025-03-16T11:37:44+00:00" + "time": "2025-12-08T12:04:12+00:00" }, { "name": "surfnet/stepup-bundle", @@ -2352,16 +2324,16 @@ }, { "name": "surfnet/stepup-saml-bundle", - "version": "6.1.0", + "version": "6.2.0", "source": { "type": "git", "url": "https://github.com/OpenConext/Stepup-saml-bundle.git", - "reference": "61eeee56e5f976c9dbafd6fe46b2cc3631de2645" + "reference": "3ee8ae9e45dd45104945d8766a1d8e5a022701df" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/OpenConext/Stepup-saml-bundle/zipball/61eeee56e5f976c9dbafd6fe46b2cc3631de2645", - "reference": "61eeee56e5f976c9dbafd6fe46b2cc3631de2645", + "url": "https://api.github.com/repos/OpenConext/Stepup-saml-bundle/zipball/3ee8ae9e45dd45104945d8766a1d8e5a022701df", + "reference": "3ee8ae9e45dd45104945d8766a1d8e5a022701df", "shasum": "" }, "require": { @@ -2418,22 +2390,22 @@ ], "support": { "issues": "https://github.com/OpenConext/Stepup-saml-bundle/issues", - "source": "https://github.com/OpenConext/Stepup-saml-bundle/tree/6.1.0" + "source": "https://github.com/OpenConext/Stepup-saml-bundle/tree/6.2.0" }, - "time": "2024-06-24T09:29:13+00:00" + "time": "2025-05-26T09:04:11+00:00" }, { "name": "symfony/asset", - "version": "v6.4.13", + "version": "v6.4.24", "source": { "type": "git", "url": "https://github.com/symfony/asset.git", - "reference": "2466c17d61d14539cddf77e57ebb9cc971185302" + "reference": "cfee7c0d64be113383db74a2fdd65d426b7f3aab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/asset/zipball/2466c17d61d14539cddf77e57ebb9cc971185302", - "reference": "2466c17d61d14539cddf77e57ebb9cc971185302", + "url": "https://api.github.com/repos/symfony/asset/zipball/cfee7c0d64be113383db74a2fdd65d426b7f3aab", + "reference": "cfee7c0d64be113383db74a2fdd65d426b7f3aab", "shasum": "" }, "require": { @@ -2473,7 +2445,7 @@ "description": "Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/asset/tree/v6.4.13" + "source": "https://github.com/symfony/asset/tree/v6.4.24" }, "funding": [ { @@ -2484,25 +2456,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-10-25T15:07:50+00:00" + "time": "2025-07-10T08:14:14+00:00" }, { "name": "symfony/cache", - "version": "v6.4.14", + "version": "v6.4.31", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "36fb8aa88833708e9f29014b6f15fac051a8b613" + "reference": "a1b306757c34b96fe97c0c586f50dceed05c7adb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/36fb8aa88833708e9f29014b6f15fac051a8b613", - "reference": "36fb8aa88833708e9f29014b6f15fac051a8b613", + "url": "https://api.github.com/repos/symfony/cache/zipball/a1b306757c34b96fe97c0c586f50dceed05c7adb", + "reference": "a1b306757c34b96fe97c0c586f50dceed05c7adb", "shasum": "" }, "require": { @@ -2569,7 +2545,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v6.4.14" + "source": "https://github.com/symfony/cache/tree/v6.4.31" }, "funding": [ { @@ -2580,25 +2556,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-11-05T15:34:40+00:00" + "time": "2025-12-27T18:26:25+00:00" }, { "name": "symfony/cache-contracts", - "version": "v3.5.0", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/cache-contracts.git", - "reference": "df6a1a44c890faded49a5fca33c2d5c5fd3c2197" + "reference": "5d68a57d66910405e5c0b63d6f0af941e66fc868" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/df6a1a44c890faded49a5fca33c2d5c5fd3c2197", - "reference": "df6a1a44c890faded49a5fca33c2d5c5fd3c2197", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/5d68a57d66910405e5c0b63d6f0af941e66fc868", + "reference": "5d68a57d66910405e5c0b63d6f0af941e66fc868", "shasum": "" }, "require": { @@ -2607,12 +2587,12 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "3.5-dev" - }, "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" } }, "autoload": { @@ -2645,7 +2625,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/cache-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/cache-contracts/tree/v3.6.0" }, "funding": [ { @@ -2661,20 +2641,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2025-03-13T15:25:07+00:00" }, { "name": "symfony/clock", - "version": "v6.4.13", + "version": "v6.4.30", "source": { "type": "git", "url": "https://github.com/symfony/clock.git", - "reference": "b2bf55c4dd115003309eafa87ee7df9ed3dde81b" + "reference": "fb2df4bc9e3037c4765ba7fd29e00167001a9b68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/clock/zipball/b2bf55c4dd115003309eafa87ee7df9ed3dde81b", - "reference": "b2bf55c4dd115003309eafa87ee7df9ed3dde81b", + "url": "https://api.github.com/repos/symfony/clock/zipball/fb2df4bc9e3037c4765ba7fd29e00167001a9b68", + "reference": "fb2df4bc9e3037c4765ba7fd29e00167001a9b68", "shasum": "" }, "require": { @@ -2719,7 +2699,7 @@ "time" ], "support": { - "source": "https://github.com/symfony/clock/tree/v6.4.13" + "source": "https://github.com/symfony/clock/tree/v6.4.30" }, "funding": [ { @@ -2730,25 +2710,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2025-11-11T21:24:34+00:00" }, { "name": "symfony/config", - "version": "v6.4.14", + "version": "v6.4.28", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "4e55e7e4ffddd343671ea972216d4509f46c22ef" + "reference": "15947c18ef3ddb0b2f4ec936b9e90e2520979f62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/4e55e7e4ffddd343671ea972216d4509f46c22ef", - "reference": "4e55e7e4ffddd343671ea972216d4509f46c22ef", + "url": "https://api.github.com/repos/symfony/config/zipball/15947c18ef3ddb0b2f4ec936b9e90e2520979f62", + "reference": "15947c18ef3ddb0b2f4ec936b9e90e2520979f62", "shasum": "" }, "require": { @@ -2794,7 +2778,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v6.4.14" + "source": "https://github.com/symfony/config/tree/v6.4.28" }, "funding": [ { @@ -2805,25 +2789,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-11-04T11:33:53+00:00" + "time": "2025-11-01T19:52:02+00:00" }, { "name": "symfony/console", - "version": "v6.4.14", + "version": "v6.4.31", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "897c2441ed4eec8a8a2c37b943427d24dba3f26b" + "reference": "f9f8a889f54c264f9abac3fc0f7a371ffca51997" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/897c2441ed4eec8a8a2c37b943427d24dba3f26b", - "reference": "897c2441ed4eec8a8a2c37b943427d24dba3f26b", + "url": "https://api.github.com/repos/symfony/console/zipball/f9f8a889f54c264f9abac3fc0f7a371ffca51997", + "reference": "f9f8a889f54c264f9abac3fc0f7a371ffca51997", "shasum": "" }, "require": { @@ -2888,7 +2876,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.14" + "source": "https://github.com/symfony/console/tree/v6.4.31" }, "funding": [ { @@ -2899,25 +2887,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-11-05T15:34:40+00:00" + "time": "2025-12-22T08:30:34+00:00" }, { "name": "symfony/dependency-injection", - "version": "v6.4.13", + "version": "v6.4.31", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "728ae8f4e190133ce99d6d5f0bc1e8c8bd7c7a96" + "reference": "10058832a74a33648870aa2057e3fdc8796a6566" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/728ae8f4e190133ce99d6d5f0bc1e8c8bd7c7a96", - "reference": "728ae8f4e190133ce99d6d5f0bc1e8c8bd7c7a96", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/10058832a74a33648870aa2057e3fdc8796a6566", + "reference": "10058832a74a33648870aa2057e3fdc8796a6566", "shasum": "" }, "require": { @@ -2925,7 +2917,7 @@ "psr/container": "^1.1|^2.0", "symfony/deprecation-contracts": "^2.5|^3", "symfony/service-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.2.10|^7.0" + "symfony/var-exporter": "^6.4.20|^7.2.5" }, "conflict": { "ext-psr": "<1.1|>=2", @@ -2969,7 +2961,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.4.13" + "source": "https://github.com/symfony/dependency-injection/tree/v6.4.31" }, "funding": [ { @@ -2980,25 +2972,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-10-25T15:07:50+00:00" + "time": "2025-12-23T13:34:50+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.5.0", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", - "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62", + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62", "shasum": "" }, "require": { @@ -3006,12 +3002,12 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "3.5-dev" - }, "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" } }, "autoload": { @@ -3036,7 +3032,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0" }, "funding": [ { @@ -3052,20 +3048,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/error-handler", - "version": "v6.4.14", + "version": "v6.4.26", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "9e024324511eeb00983ee76b9aedc3e6ecd993d9" + "reference": "41bedcaec5b72640b0ec2096547b75fda72ead6c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/9e024324511eeb00983ee76b9aedc3e6ecd993d9", - "reference": "9e024324511eeb00983ee76b9aedc3e6ecd993d9", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/41bedcaec5b72640b0ec2096547b75fda72ead6c", + "reference": "41bedcaec5b72640b0ec2096547b75fda72ead6c", "shasum": "" }, "require": { @@ -3111,7 +3107,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/v6.4.14" + "source": "https://github.com/symfony/error-handler/tree/v6.4.26" }, "funding": [ { @@ -3122,25 +3118,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-11-05T15:34:40+00:00" + "time": "2025-09-11T09:57:09+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v6.4.13", + "version": "v6.4.25", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e" + "reference": "b0cf3162020603587363f0551cd3be43958611ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e", - "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b0cf3162020603587363f0551cd3be43958611ff", + "reference": "b0cf3162020603587363f0551cd3be43958611ff", "shasum": "" }, "require": { @@ -3191,7 +3191,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.13" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.25" }, "funding": [ { @@ -3202,25 +3202,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2025-08-13T09:41:44+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.5.0", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50" + "reference": "59eb412e93815df44f05f342958efa9f46b1e586" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50", - "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/59eb412e93815df44f05f342958efa9f46b1e586", + "reference": "59eb412e93815df44f05f342958efa9f46b1e586", "shasum": "" }, "require": { @@ -3229,12 +3233,12 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "3.5-dev" - }, "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" } }, "autoload": { @@ -3267,7 +3271,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.6.0" }, "funding": [ { @@ -3283,20 +3287,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/expression-language", - "version": "v6.4.13", + "version": "v6.4.30", "source": { "type": "git", "url": "https://github.com/symfony/expression-language.git", - "reference": "3524904fb026356a5230cd197f9a4e6a61e0e7df" + "reference": "01906f3b379833b347de9abc8ddc326593e9122b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/expression-language/zipball/3524904fb026356a5230cd197f9a4e6a61e0e7df", - "reference": "3524904fb026356a5230cd197f9a4e6a61e0e7df", + "url": "https://api.github.com/repos/symfony/expression-language/zipball/01906f3b379833b347de9abc8ddc326593e9122b", + "reference": "01906f3b379833b347de9abc8ddc326593e9122b", "shasum": "" }, "require": { @@ -3331,7 +3335,7 @@ "description": "Provides an engine that can compile and evaluate expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/expression-language/tree/v6.4.13" + "source": "https://github.com/symfony/expression-language/tree/v6.4.30" }, "funding": [ { @@ -3342,25 +3346,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-10-09T08:40:40+00:00" + "time": "2025-11-09T10:02:06+00:00" }, { "name": "symfony/filesystem", - "version": "v6.4.13", + "version": "v6.4.30", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3" + "reference": "441c6b69f7222aadae7cbf5df588496d5ee37789" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/4856c9cf585d5a0313d8d35afd681a526f038dd3", - "reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/441c6b69f7222aadae7cbf5df588496d5ee37789", + "reference": "441c6b69f7222aadae7cbf5df588496d5ee37789", "shasum": "" }, "require": { @@ -3397,7 +3405,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.4.13" + "source": "https://github.com/symfony/filesystem/tree/v6.4.30" }, "funding": [ { @@ -3408,25 +3416,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-10-25T15:07:50+00:00" + "time": "2025-11-26T14:43:45+00:00" }, { "name": "symfony/finder", - "version": "v6.4.13", + "version": "v6.4.31", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "daea9eca0b08d0ed1dc9ab702a46128fd1be4958" + "reference": "5547f2e1f0ca8e2e7abe490156b62da778cfbe2b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/daea9eca0b08d0ed1dc9ab702a46128fd1be4958", - "reference": "daea9eca0b08d0ed1dc9ab702a46128fd1be4958", + "url": "https://api.github.com/repos/symfony/finder/zipball/5547f2e1f0ca8e2e7abe490156b62da778cfbe2b", + "reference": "5547f2e1f0ca8e2e7abe490156b62da778cfbe2b", "shasum": "" }, "require": { @@ -3461,7 +3473,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.4.13" + "source": "https://github.com/symfony/finder/tree/v6.4.31" }, "funding": [ { @@ -3472,40 +3484,45 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-10-01T08:30:56+00:00" + "time": "2025-12-11T14:52:17+00:00" }, { "name": "symfony/flex", - "version": "v2.4.7", + "version": "v2.10.0", "source": { "type": "git", "url": "https://github.com/symfony/flex.git", - "reference": "92f4fba342161ff36072bd3b8e0b3c6c23160402" + "reference": "9cd384775973eabbf6e8b05784dda279fc67c28d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/flex/zipball/92f4fba342161ff36072bd3b8e0b3c6c23160402", - "reference": "92f4fba342161ff36072bd3b8e0b3c6c23160402", + "url": "https://api.github.com/repos/symfony/flex/zipball/9cd384775973eabbf6e8b05784dda279fc67c28d", + "reference": "9cd384775973eabbf6e8b05784dda279fc67c28d", "shasum": "" }, "require": { "composer-plugin-api": "^2.1", - "php": ">=8.0" + "php": ">=8.1" }, "conflict": { - "composer/semver": "<1.7.2" + "composer/semver": "<1.7.2", + "symfony/dotenv": "<5.4" }, "require-dev": { "composer/composer": "^2.1", - "symfony/dotenv": "^5.4|^6.0", - "symfony/filesystem": "^5.4|^6.0", - "symfony/phpunit-bridge": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0" + "symfony/dotenv": "^6.4|^7.4|^8.0", + "symfony/filesystem": "^6.4|^7.4|^8.0", + "symfony/phpunit-bridge": "^6.4|^7.4|^8.0", + "symfony/process": "^6.4|^7.4|^8.0" }, "type": "composer-plugin", "extra": { @@ -3529,7 +3546,7 @@ "description": "Composer plugin for Symfony", "support": { "issues": "https://github.com/symfony/flex/issues", - "source": "https://github.com/symfony/flex/tree/v2.4.7" + "source": "https://github.com/symfony/flex/tree/v2.10.0" }, "funding": [ { @@ -3540,25 +3557,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-10-07T08:51:54+00:00" + "time": "2025-11-16T09:38:19+00:00" }, { "name": "symfony/form", - "version": "v6.4.13", + "version": "v6.4.31", "source": { "type": "git", "url": "https://github.com/symfony/form.git", - "reference": "0fe17f90af23908ddc11dc23507db98e66572046" + "reference": "a518332215c2a54784bf85bdd293a7f700f1d153" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/form/zipball/0fe17f90af23908ddc11dc23507db98e66572046", - "reference": "0fe17f90af23908ddc11dc23507db98e66572046", + "url": "https://api.github.com/repos/symfony/form/zipball/a518332215c2a54784bf85bdd293a7f700f1d153", + "reference": "a518332215c2a54784bf85bdd293a7f700f1d153", "shasum": "" }, "require": { @@ -3626,7 +3647,7 @@ "description": "Allows to easily create, process and reuse HTML forms", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/form/tree/v6.4.13" + "source": "https://github.com/symfony/form/tree/v6.4.31" }, "funding": [ { @@ -3637,25 +3658,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-10-09T08:40:40+00:00" + "time": "2025-12-23T08:34:29+00:00" }, { "name": "symfony/framework-bundle", - "version": "v6.4.13", + "version": "v6.4.31", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "e8b0bd921f9bd35ea4d1508067c3f3f6e2036418" + "reference": "0ab60c05570b9e2bfab92b9944b938b8ffb5ba96" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/e8b0bd921f9bd35ea4d1508067c3f3f6e2036418", - "reference": "e8b0bd921f9bd35ea4d1508067c3f3f6e2036418", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/0ab60c05570b9e2bfab92b9944b938b8ffb5ba96", + "reference": "0ab60c05570b9e2bfab92b9944b938b8ffb5ba96", "shasum": "" }, "require": { @@ -3775,7 +3800,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v6.4.13" + "source": "https://github.com/symfony/framework-bundle/tree/v6.4.31" }, "funding": [ { @@ -3786,25 +3811,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-10-25T15:07:50+00:00" + "time": "2025-12-23T14:16:13+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.4.14", + "version": "v6.4.31", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "ba020a321a95519303a3f09ec2824d34d601c388" + "reference": "a35ee6f47e4775179704d7877a8b0da3cb09241a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ba020a321a95519303a3f09ec2824d34d601c388", - "reference": "ba020a321a95519303a3f09ec2824d34d601c388", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/a35ee6f47e4775179704d7877a8b0da3cb09241a", + "reference": "a35ee6f47e4775179704d7877a8b0da3cb09241a", "shasum": "" }, "require": { @@ -3814,12 +3843,12 @@ "symfony/polyfill-php83": "^1.27" }, "conflict": { - "symfony/cache": "<6.3" + "symfony/cache": "<6.4.12|>=7.0,<7.1.5" }, "require-dev": { "doctrine/dbal": "^2.13.1|^3|^4", "predis/predis": "^1.1|^2.0", - "symfony/cache": "^6.3|^7.0", + "symfony/cache": "^6.4.12|^7.1.5", "symfony/dependency-injection": "^5.4|^6.0|^7.0", "symfony/expression-language": "^5.4|^6.0|^7.0", "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0", @@ -3852,7 +3881,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.14" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.31" }, "funding": [ { @@ -3863,25 +3892,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-11-05T16:39:55+00:00" + "time": "2025-12-17T10:10:57+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.14", + "version": "v6.4.31", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "8278a947d0369754a47b758a9e17b72cab970951" + "reference": "16b0d46d8e11f480345c15b229cfc827a8a0f731" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/8278a947d0369754a47b758a9e17b72cab970951", - "reference": "8278a947d0369754a47b758a9e17b72cab970951", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/16b0d46d8e11f480345c15b229cfc827a8a0f731", + "reference": "16b0d46d8e11f480345c15b229cfc827a8a0f731", "shasum": "" }, "require": { @@ -3966,7 +3999,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/v6.4.14" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.31" }, "funding": [ { @@ -3977,25 +4010,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-11-06T09:45:21+00:00" + "time": "2025-12-31T08:27:27+00:00" }, { "name": "symfony/monolog-bridge", - "version": "v6.4.13", + "version": "v6.4.28", "source": { "type": "git", "url": "https://github.com/symfony/monolog-bridge.git", - "reference": "9d14621e59f22c2b6d030d92d37ffe5ae1e60452" + "reference": "d2f4b68e3247cf44d93f48545c8c072a75c17e5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/9d14621e59f22c2b6d030d92d37ffe5ae1e60452", - "reference": "9d14621e59f22c2b6d030d92d37ffe5ae1e60452", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/d2f4b68e3247cf44d93f48545c8c072a75c17e5b", + "reference": "d2f4b68e3247cf44d93f48545c8c072a75c17e5b", "shasum": "" }, "require": { @@ -4045,7 +4082,7 @@ "description": "Provides integration for Monolog with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/monolog-bridge/tree/v6.4.13" + "source": "https://github.com/symfony/monolog-bridge/tree/v6.4.28" }, "funding": [ { @@ -4056,53 +4093,52 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-10-14T08:49:08+00:00" + "time": "2025-10-30T19:57:08+00:00" }, { "name": "symfony/monolog-bundle", - "version": "v3.10.0", + "version": "v3.11.1", "source": { "type": "git", "url": "https://github.com/symfony/monolog-bundle.git", - "reference": "414f951743f4aa1fd0f5bf6a0e9c16af3fe7f181" + "reference": "0e675a6e08f791ef960dc9c7e392787111a3f0c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/414f951743f4aa1fd0f5bf6a0e9c16af3fe7f181", - "reference": "414f951743f4aa1fd0f5bf6a0e9c16af3fe7f181", + "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/0e675a6e08f791ef960dc9c7e392787111a3f0c1", + "reference": "0e675a6e08f791ef960dc9c7e392787111a3f0c1", "shasum": "" }, "require": { + "composer-runtime-api": "^2.0", "monolog/monolog": "^1.25.1 || ^2.0 || ^3.0", - "php": ">=7.2.5", - "symfony/config": "^5.4 || ^6.0 || ^7.0", - "symfony/dependency-injection": "^5.4 || ^6.0 || ^7.0", - "symfony/http-kernel": "^5.4 || ^6.0 || ^7.0", - "symfony/monolog-bridge": "^5.4 || ^6.0 || ^7.0" + "php": ">=8.1", + "symfony/config": "^6.4 || ^7.0", + "symfony/dependency-injection": "^6.4 || ^7.0", + "symfony/deprecation-contracts": "^2.5 || ^3.0", + "symfony/http-kernel": "^6.4 || ^7.0", + "symfony/monolog-bridge": "^6.4 || ^7.0", + "symfony/polyfill-php84": "^1.30" }, "require-dev": { - "symfony/console": "^5.4 || ^6.0 || ^7.0", - "symfony/phpunit-bridge": "^6.3 || ^7.0", - "symfony/yaml": "^5.4 || ^6.0 || ^7.0" + "symfony/console": "^6.4 || ^7.0", + "symfony/phpunit-bridge": "^7.3.3", + "symfony/yaml": "^6.4 || ^7.0" }, "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, "autoload": { "psr-4": { - "Symfony\\Bundle\\MonologBundle\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Symfony\\Bundle\\MonologBundle\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4126,7 +4162,7 @@ ], "support": { "issues": "https://github.com/symfony/monolog-bundle/issues", - "source": "https://github.com/symfony/monolog-bundle/tree/v3.10.0" + "source": "https://github.com/symfony/monolog-bundle/tree/v3.11.1" }, "funding": [ { @@ -4137,25 +4173,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2023-11-06T17:08:13+00:00" + "time": "2025-12-08T07:58:26+00:00" }, { "name": "symfony/options-resolver", - "version": "v6.4.13", + "version": "v6.4.30", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "0a62a9f2504a8dd27083f89d21894ceb01cc59db" + "reference": "eeaa8cabe54c7b3516938c72a4a161c0cc80a34f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/0a62a9f2504a8dd27083f89d21894ceb01cc59db", - "reference": "0a62a9f2504a8dd27083f89d21894ceb01cc59db", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/eeaa8cabe54c7b3516938c72a4a161c0cc80a34f", + "reference": "eeaa8cabe54c7b3516938c72a4a161c0cc80a34f", "shasum": "" }, "require": { @@ -4193,7 +4233,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v6.4.13" + "source": "https://github.com/symfony/options-resolver/tree/v6.4.30" }, "funding": [ { @@ -4204,25 +4244,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2025-11-12T13:06:53+00:00" }, { "name": "symfony/password-hasher", - "version": "v6.4.13", + "version": "v6.4.24", "source": { "type": "git", "url": "https://github.com/symfony/password-hasher.git", - "reference": "e97a1b31f60b8bdfc1fdedab4398538da9441d47" + "reference": "dcab5ac87450aaed26483ba49c2ce86808da7557" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/password-hasher/zipball/e97a1b31f60b8bdfc1fdedab4398538da9441d47", - "reference": "e97a1b31f60b8bdfc1fdedab4398538da9441d47", + "url": "https://api.github.com/repos/symfony/password-hasher/zipball/dcab5ac87450aaed26483ba49c2ce86808da7557", + "reference": "dcab5ac87450aaed26483ba49c2ce86808da7557", "shasum": "" }, "require": { @@ -4265,7 +4309,7 @@ "password" ], "support": { - "source": "https://github.com/symfony/password-hasher/tree/v6.4.13" + "source": "https://github.com/symfony/password-hasher/tree/v6.4.24" }, "funding": [ { @@ -4276,16 +4320,20 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2025-07-10T08:14:14+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.32.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", @@ -4344,7 +4392,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.32.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0" }, "funding": [ { @@ -4355,6 +4403,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -4364,16 +4416,16 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.31.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe" + "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", - "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/380872130d3a5dd3ace2f4010d95125fde5d5c70", + "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70", "shasum": "" }, "require": { @@ -4385,8 +4437,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -4422,7 +4474,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.33.0" }, "funding": [ { @@ -4433,25 +4485,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2025-06-27T09:58:17+00:00" }, { "name": "symfony/polyfill-intl-icu", - "version": "v1.31.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-icu.git", - "reference": "d80a05e9904d2c2b9b95929f3e4b5d3a8f418d78" + "reference": "bfc8fa13dbaf21d69114b0efcd72ab700fb04d0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/d80a05e9904d2c2b9b95929f3e4b5d3a8f418d78", - "reference": "d80a05e9904d2c2b9b95929f3e4b5d3a8f418d78", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/bfc8fa13dbaf21d69114b0efcd72ab700fb04d0c", + "reference": "bfc8fa13dbaf21d69114b0efcd72ab700fb04d0c", "shasum": "" }, "require": { @@ -4463,8 +4519,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -4506,7 +4562,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.33.0" }, "funding": [ { @@ -4517,16 +4573,20 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2025-06-20T22:24:30+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.31.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -4547,8 +4607,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -4587,7 +4647,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.33.0" }, "funding": [ { @@ -4598,6 +4658,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -4607,19 +4671,20 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.31.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341" + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341", - "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493", + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493", "shasum": "" }, "require": { + "ext-iconv": "*", "php": ">=7.2" }, "provide": { @@ -4631,8 +4696,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -4667,7 +4732,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.33.0" }, "funding": [ { @@ -4678,25 +4743,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2024-12-23T08:48:59+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.31.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8" + "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", - "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608", + "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608", "shasum": "" }, "require": { @@ -4705,8 +4774,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -4747,7 +4816,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.33.0" }, "funding": [ { @@ -4758,25 +4827,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2025-01-02T08:10:11+00:00" }, { - "name": "symfony/polyfill-php81", - "version": "v1.31.0", + "name": "symfony/polyfill-php83", + "version": "v1.33.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c" + "url": "https://github.com/symfony/polyfill-php83.git", + "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", - "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/17f6f9a6b1735c0f163024d959f700cfbc5155e5", + "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5", "shasum": "" }, "require": { @@ -4785,8 +4858,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -4794,7 +4867,7 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Php81\\": "" + "Symfony\\Polyfill\\Php83\\": "" }, "classmap": [ "Resources/stubs" @@ -4814,7 +4887,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -4823,7 +4896,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.33.0" }, "funding": [ { @@ -4834,25 +4907,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2025-07-08T02:45:35+00:00" }, { - "name": "symfony/polyfill-php83", - "version": "v1.31.0", + "name": "symfony/polyfill-php84", + "version": "v1.33.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491" + "url": "https://github.com/symfony/polyfill-php84.git", + "reference": "d8ced4d875142b6a7426000426b8abc631d6b191" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/2fb86d65e2d424369ad2905e83b236a8805ba491", - "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491", + "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/d8ced4d875142b6a7426000426b8abc631d6b191", + "reference": "d8ced4d875142b6a7426000426b8abc631d6b191", "shasum": "" }, "require": { @@ -4861,8 +4938,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -4870,7 +4947,7 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Php83\\": "" + "Symfony\\Polyfill\\Php84\\": "" }, "classmap": [ "Resources/stubs" @@ -4890,7 +4967,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 8.4+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -4899,7 +4976,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php84/tree/v1.33.0" }, "funding": [ { @@ -4910,31 +4987,35 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2025-06-24T13:30:11+00:00" }, { "name": "symfony/property-access", - "version": "v6.4.13", + "version": "v6.4.31", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "8cc779d88d12e440adaa26387bcfc25744064afe" + "reference": "1b1044599d7fb93cdb82f5a1291ba66f1caf6119" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/8cc779d88d12e440adaa26387bcfc25744064afe", - "reference": "8cc779d88d12e440adaa26387bcfc25744064afe", + "url": "https://api.github.com/repos/symfony/property-access/zipball/1b1044599d7fb93cdb82f5a1291ba66f1caf6119", + "reference": "1b1044599d7fb93cdb82f5a1291ba66f1caf6119", "shasum": "" }, "require": { "php": ">=8.1", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/property-info": "^5.4|^6.0|^7.0" + "symfony/property-info": "^6.4.31|~7.3.9|^7.4.2" }, "require-dev": { "symfony/cache": "^5.4|^6.0|^7.0" @@ -4976,7 +5057,7 @@ "reflection" ], "support": { - "source": "https://github.com/symfony/property-access/tree/v6.4.13" + "source": "https://github.com/symfony/property-access/tree/v6.4.31" }, "funding": [ { @@ -4987,25 +5068,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2025-12-18T08:11:26+00:00" }, { "name": "symfony/property-info", - "version": "v6.4.13", + "version": "v6.4.31", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "ea388133aadf407dfa54092873d1b7e52f439515" + "reference": "f155cef234af1c16ed47791d182e146df237b35f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/ea388133aadf407dfa54092873d1b7e52f439515", - "reference": "ea388133aadf407dfa54092873d1b7e52f439515", + "url": "https://api.github.com/repos/symfony/property-info/zipball/f155cef234af1c16ed47791d182e146df237b35f", + "reference": "f155cef234af1c16ed47791d182e146df237b35f", "shasum": "" }, "require": { @@ -5013,17 +5098,20 @@ "symfony/string": "^5.4|^6.0|^7.0" }, "conflict": { + "doctrine/annotations": "<1.12", "phpdocumentor/reflection-docblock": "<5.2", "phpdocumentor/type-resolver": "<1.5.1", - "symfony/dependency-injection": "<5.4", - "symfony/serializer": "<6.4" + "symfony/cache": "<5.4", + "symfony/dependency-injection": "<5.4|>=6.0,<6.4", + "symfony/serializer": "<5.4" }, "require-dev": { + "doctrine/annotations": "^1.12|^2", "phpdocumentor/reflection-docblock": "^5.2", - "phpstan/phpdoc-parser": "^1.0", + "phpstan/phpdoc-parser": "^1.0|^2.0", "symfony/cache": "^5.4|^6.0|^7.0", "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/serializer": "^6.4|^7.0" + "symfony/serializer": "^5.4|^6.4|^7.0" }, "type": "library", "autoload": { @@ -5059,7 +5147,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v6.4.13" + "source": "https://github.com/symfony/property-info/tree/v6.4.31" }, "funding": [ { @@ -5070,25 +5158,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2025-12-16T19:55:30+00:00" }, { "name": "symfony/routing", - "version": "v6.4.13", + "version": "v6.4.30", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "640a74250d13f9c30d5ca045b6aaaabcc8215278" + "reference": "ea50a13c2711eebcbb66b38ef6382e62e3262859" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/640a74250d13f9c30d5ca045b6aaaabcc8215278", - "reference": "640a74250d13f9c30d5ca045b6aaaabcc8215278", + "url": "https://api.github.com/repos/symfony/routing/zipball/ea50a13c2711eebcbb66b38ef6382e62e3262859", + "reference": "ea50a13c2711eebcbb66b38ef6382e62e3262859", "shasum": "" }, "require": { @@ -5142,7 +5234,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.13" + "source": "https://github.com/symfony/routing/tree/v6.4.30" }, "funding": [ { @@ -5153,25 +5245,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-10-01T08:30:56+00:00" + "time": "2025-11-22T09:51:35+00:00" }, { "name": "symfony/runtime", - "version": "v6.4.14", + "version": "v6.4.30", "source": { "type": "git", "url": "https://github.com/symfony/runtime.git", - "reference": "4facd4174f45cd37c65860403412b67c7381136a" + "reference": "fb3149ee85d3b639dd3e49ea9dda05656f0537e3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/runtime/zipball/4facd4174f45cd37c65860403412b67c7381136a", - "reference": "4facd4174f45cd37c65860403412b67c7381136a", + "url": "https://api.github.com/repos/symfony/runtime/zipball/fb3149ee85d3b639dd3e49ea9dda05656f0537e3", + "reference": "fb3149ee85d3b639dd3e49ea9dda05656f0537e3", "shasum": "" }, "require": { @@ -5221,7 +5317,7 @@ "runtime" ], "support": { - "source": "https://github.com/symfony/runtime/tree/v6.4.14" + "source": "https://github.com/symfony/runtime/tree/v6.4.30" }, "funding": [ { @@ -5232,25 +5328,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-11-05T16:39:55+00:00" + "time": "2025-12-05T10:55:13+00:00" }, { "name": "symfony/security-bundle", - "version": "v6.4.13", + "version": "v6.4.30", "source": { "type": "git", "url": "https://github.com/symfony/security-bundle.git", - "reference": "181d1fcf5f88ef8212ed7f6434e5ff51c9d7dff3" + "reference": "508e67e68156cf3cb2b982504191b2ce34daa921" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-bundle/zipball/181d1fcf5f88ef8212ed7f6434e5ff51c9d7dff3", - "reference": "181d1fcf5f88ef8212ed7f6434e5ff51c9d7dff3", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/508e67e68156cf3cb2b982504191b2ce34daa921", + "reference": "508e67e68156cf3cb2b982504191b2ce34daa921", "shasum": "" }, "require": { @@ -5333,7 +5433,7 @@ "description": "Provides a tight integration of the Security component into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-bundle/tree/v6.4.13" + "source": "https://github.com/symfony/security-bundle/tree/v6.4.30" }, "funding": [ { @@ -5344,25 +5444,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2025-12-04T18:05:02+00:00" }, { "name": "symfony/security-core", - "version": "v6.4.13", + "version": "v6.4.31", "source": { "type": "git", "url": "https://github.com/symfony/security-core.git", - "reference": "bbd1a919aec8696a95bf8749d5577fbe74de973c" + "reference": "fa269ad61a021cc54329dc96e57bed78ba720bfe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-core/zipball/bbd1a919aec8696a95bf8749d5577fbe74de973c", - "reference": "bbd1a919aec8696a95bf8749d5577fbe74de973c", + "url": "https://api.github.com/repos/symfony/security-core/zipball/fa269ad61a021cc54329dc96e57bed78ba720bfe", + "reference": "fa269ad61a021cc54329dc96e57bed78ba720bfe", "shasum": "" }, "require": { @@ -5419,7 +5523,7 @@ "description": "Symfony Security Component - Core Library", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-core/tree/v6.4.13" + "source": "https://github.com/symfony/security-core/tree/v6.4.31" }, "funding": [ { @@ -5430,25 +5534,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-10-25T15:07:50+00:00" + "time": "2025-12-17T22:32:13+00:00" }, { "name": "symfony/security-csrf", - "version": "v6.4.13", + "version": "v6.4.31", "source": { "type": "git", "url": "https://github.com/symfony/security-csrf.git", - "reference": "c34421b7d34efbaef5d611ab2e646a0ec464ffe3" + "reference": "52f62836fcb19cd351ef3a2aa9cf61a489e8990f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-csrf/zipball/c34421b7d34efbaef5d611ab2e646a0ec464ffe3", - "reference": "c34421b7d34efbaef5d611ab2e646a0ec464ffe3", + "url": "https://api.github.com/repos/symfony/security-csrf/zipball/52f62836fcb19cd351ef3a2aa9cf61a489e8990f", + "reference": "52f62836fcb19cd351ef3a2aa9cf61a489e8990f", "shasum": "" }, "require": { @@ -5487,7 +5595,7 @@ "description": "Symfony Security Component - CSRF Library", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-csrf/tree/v6.4.13" + "source": "https://github.com/symfony/security-csrf/tree/v6.4.31" }, "funding": [ { @@ -5498,25 +5606,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2025-12-17T22:32:13+00:00" }, { "name": "symfony/security-http", - "version": "v6.4.14", + "version": "v6.4.31", "source": { "type": "git", "url": "https://github.com/symfony/security-http.git", - "reference": "cc13b601fc844036fd6c8e7307845da145d5998b" + "reference": "2f4ddc4a79b0e6f7dcc72e5ebd7109b3436b967a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-http/zipball/cc13b601fc844036fd6c8e7307845da145d5998b", - "reference": "cc13b601fc844036fd6c8e7307845da145d5998b", + "url": "https://api.github.com/repos/symfony/security-http/zipball/2f4ddc4a79b0e6f7dcc72e5ebd7109b3436b967a", + "reference": "2f4ddc4a79b0e6f7dcc72e5ebd7109b3436b967a", "shasum": "" }, "require": { @@ -5575,7 +5687,7 @@ "description": "Symfony Security Component - HTTP Integration", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-http/tree/v6.4.14" + "source": "https://github.com/symfony/security-http/tree/v6.4.31" }, "funding": [ { @@ -5586,25 +5698,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-11-05T15:34:40+00:00" + "time": "2025-12-17T22:32:13+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.5.0", + "version": "v3.6.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f" + "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", - "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/45112560a3ba2d715666a509a0bc9521d10b6c43", + "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43", "shasum": "" }, "require": { @@ -5617,12 +5733,12 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "3.5-dev" - }, "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" } }, "autoload": { @@ -5658,7 +5774,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.6.1" }, "funding": [ { @@ -5669,25 +5785,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2025-07-15T11:30:57+00:00" }, { "name": "symfony/string", - "version": "v6.4.13", + "version": "v6.4.30", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "38371c60c71c72b3d64d8d76f6b1bb81a2cc3627" + "reference": "50590a057841fa6bf69d12eceffce3465b9e32cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/38371c60c71c72b3d64d8d76f6b1bb81a2cc3627", - "reference": "38371c60c71c72b3d64d8d76f6b1bb81a2cc3627", + "url": "https://api.github.com/repos/symfony/string/zipball/50590a057841fa6bf69d12eceffce3465b9e32cb", + "reference": "50590a057841fa6bf69d12eceffce3465b9e32cb", "shasum": "" }, "require": { @@ -5701,7 +5821,6 @@ "symfony/translation-contracts": "<2.5" }, "require-dev": { - "symfony/error-handler": "^5.4|^6.0|^7.0", "symfony/http-client": "^5.4|^6.0|^7.0", "symfony/intl": "^6.2|^7.0", "symfony/translation-contracts": "^2.5|^3.0", @@ -5744,7 +5863,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.13" + "source": "https://github.com/symfony/string/tree/v6.4.30" }, "funding": [ { @@ -5755,25 +5874,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2025-11-21T18:03:05+00:00" }, { "name": "symfony/templating", - "version": "v6.4.13", + "version": "v6.4.24", "source": { "type": "git", "url": "https://github.com/symfony/templating.git", - "reference": "e27b6ea8d737cb0dfd41b2f5f055c9ed677afa33" + "reference": "c55c6f96eafa9388390d3ba099fe844f892dbcd6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/templating/zipball/e27b6ea8d737cb0dfd41b2f5f055c9ed677afa33", - "reference": "e27b6ea8d737cb0dfd41b2f5f055c9ed677afa33", + "url": "https://api.github.com/repos/symfony/templating/zipball/c55c6f96eafa9388390d3ba099fe844f892dbcd6", + "reference": "c55c6f96eafa9388390d3ba099fe844f892dbcd6", "shasum": "" }, "require": { @@ -5810,7 +5933,7 @@ "description": "Provides all the tools needed to build any kind of template system", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/templating/tree/v6.4.13" + "source": "https://github.com/symfony/templating/tree/v6.4.24" }, "funding": [ { @@ -5821,25 +5944,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-10-25T15:07:50+00:00" + "time": "2025-07-10T08:14:14+00:00" }, { "name": "symfony/translation", - "version": "v6.4.13", + "version": "v6.4.31", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "bee9bfabfa8b4045a66bf82520e492cddbaffa66" + "reference": "81579408ecf7dc5aa2d8462a6d5c3a430a80e6f2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/bee9bfabfa8b4045a66bf82520e492cddbaffa66", - "reference": "bee9bfabfa8b4045a66bf82520e492cddbaffa66", + "url": "https://api.github.com/repos/symfony/translation/zipball/81579408ecf7dc5aa2d8462a6d5c3a430a80e6f2", + "reference": "81579408ecf7dc5aa2d8462a6d5c3a430a80e6f2", "shasum": "" }, "require": { @@ -5905,7 +6032,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.4.13" + "source": "https://github.com/symfony/translation/tree/v6.4.31" }, "funding": [ { @@ -5916,25 +6043,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-27T18:14:25+00:00" + "time": "2025-12-18T11:37:55+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.5.0", + "version": "v3.6.1", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a" + "reference": "65a8bc82080447fae78373aa10f8d13b38338977" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", - "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/65a8bc82080447fae78373aa10f8d13b38338977", + "reference": "65a8bc82080447fae78373aa10f8d13b38338977", "shasum": "" }, "require": { @@ -5942,12 +6073,12 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "3.5-dev" - }, "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" } }, "autoload": { @@ -5983,7 +6114,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/translation-contracts/tree/v3.6.1" }, "funding": [ { @@ -5994,25 +6125,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2025-07-15T13:41:35+00:00" }, { "name": "symfony/twig-bridge", - "version": "v6.4.13", + "version": "v6.4.31", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "ec3511eef0576f378b2758da9e1c157086babd59" + "reference": "24a498d80fd2a28087fbac0a96e0721ce2756b65" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/ec3511eef0576f378b2758da9e1c157086babd59", - "reference": "ec3511eef0576f378b2758da9e1c157086babd59", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/24a498d80fd2a28087fbac0a96e0721ce2756b65", + "reference": "24a498d80fd2a28087fbac0a96e0721ce2756b65", "shasum": "" }, "require": { @@ -6025,7 +6160,7 @@ "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", "symfony/console": "<5.4", - "symfony/form": "<6.3", + "symfony/form": "<6.4", "symfony/http-foundation": "<5.4", "symfony/http-kernel": "<6.4", "symfony/mime": "<6.2", @@ -6043,7 +6178,7 @@ "symfony/dependency-injection": "^5.4|^6.0|^7.0", "symfony/expression-language": "^5.4|^6.0|^7.0", "symfony/finder": "^5.4|^6.0|^7.0", - "symfony/form": "^6.4|^7.0", + "symfony/form": "^6.4.30|~7.3.8|^7.4.1", "symfony/html-sanitizer": "^6.1|^7.0", "symfony/http-foundation": "^5.4|^6.0|^7.0", "symfony/http-kernel": "^6.4|^7.0", @@ -6092,7 +6227,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v6.4.13" + "source": "https://github.com/symfony/twig-bridge/tree/v6.4.31" }, "funding": [ { @@ -6103,25 +6238,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-10-25T15:07:50+00:00" + "time": "2025-12-11T18:16:47+00:00" }, { "name": "symfony/twig-bundle", - "version": "v6.4.13", + "version": "v6.4.31", "source": { "type": "git", "url": "https://github.com/symfony/twig-bundle.git", - "reference": "c3beeb5336aba1ea03c37e526968c2fde3ef25c4" + "reference": "df14e1b81483b04534317e8f61617560ab60777d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/c3beeb5336aba1ea03c37e526968c2fde3ef25c4", - "reference": "c3beeb5336aba1ea03c37e526968c2fde3ef25c4", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/df14e1b81483b04534317e8f61617560ab60777d", + "reference": "df14e1b81483b04534317e8f61617560ab60777d", "shasum": "" }, "require": { @@ -6176,7 +6315,7 @@ "description": "Provides a tight integration of Twig into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bundle/tree/v6.4.13" + "source": "https://github.com/symfony/twig-bundle/tree/v6.4.31" }, "funding": [ { @@ -6187,25 +6326,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2025-12-18T03:19:37+00:00" }, { "name": "symfony/validator", - "version": "v6.4.14", + "version": "v6.4.31", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "dc259b85e59a6569e205966d447dec0a7d95facf" + "reference": "0c3f60adce4e6fc86583b0c7e363ce90fe3ca3e7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/dc259b85e59a6569e205966d447dec0a7d95facf", - "reference": "dc259b85e59a6569e205966d447dec0a7d95facf", + "url": "https://api.github.com/repos/symfony/validator/zipball/0c3f60adce4e6fc86583b0c7e363ce90fe3ca3e7", + "reference": "0c3f60adce4e6fc86583b0c7e363ce90fe3ca3e7", "shasum": "" }, "require": { @@ -6273,7 +6416,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v6.4.14" + "source": "https://github.com/symfony/validator/tree/v6.4.31" }, "funding": [ { @@ -6284,25 +6427,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-11-04T11:33:53+00:00" + "time": "2025-12-24T09:35:58+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.14", + "version": "v6.4.26", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "93c09246038178717a9c14b809ea8151ffcf7091" + "reference": "cfae1497a2f1eaad78dbc0590311c599c7178d4a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/93c09246038178717a9c14b809ea8151ffcf7091", - "reference": "93c09246038178717a9c14b809ea8151ffcf7091", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/cfae1497a2f1eaad78dbc0590311c599c7178d4a", + "reference": "cfae1497a2f1eaad78dbc0590311c599c7178d4a", "shasum": "" }, "require": { @@ -6314,7 +6461,6 @@ "symfony/console": "<5.4" }, "require-dev": { - "ext-iconv": "*", "symfony/console": "^5.4|^6.0|^7.0", "symfony/error-handler": "^6.3|^7.0", "symfony/http-kernel": "^5.4|^6.0|^7.0", @@ -6358,7 +6504,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.14" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.26" }, "funding": [ { @@ -6369,25 +6515,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-11-05T15:34:40+00:00" + "time": "2025-09-25T15:37:27+00:00" }, { "name": "symfony/var-exporter", - "version": "v6.4.13", + "version": "v6.4.26", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "0f605f72a363f8743001038a176eeb2a11223b51" + "reference": "466fcac5fa2e871f83d31173f80e9c2684743bfc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/0f605f72a363f8743001038a176eeb2a11223b51", - "reference": "0f605f72a363f8743001038a176eeb2a11223b51", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/466fcac5fa2e871f83d31173f80e9c2684743bfc", + "reference": "466fcac5fa2e871f83d31173f80e9c2684743bfc", "shasum": "" }, "require": { @@ -6435,7 +6585,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.4.13" + "source": "https://github.com/symfony/var-exporter/tree/v6.4.26" }, "funding": [ { @@ -6446,12 +6596,16 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2025-09-11T09:57:09+00:00" }, { "name": "symfony/webpack-encore-bundle", @@ -6486,8 +6640,8 @@ "type": "symfony-bundle", "extra": { "thanks": { - "name": "symfony/webpack-encore", - "url": "https://github.com/symfony/webpack-encore" + "url": "https://github.com/symfony/webpack-encore", + "name": "symfony/webpack-encore" } }, "autoload": { @@ -6528,16 +6682,16 @@ }, { "name": "symfony/yaml", - "version": "v6.4.13", + "version": "v6.4.30", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "e99b4e94d124b29ee4cf3140e1b537d2dad8cec9" + "reference": "8207ae83da19ee3748d6d4f567b4d9a7c656e331" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/e99b4e94d124b29ee4cf3140e1b537d2dad8cec9", - "reference": "e99b4e94d124b29ee4cf3140e1b537d2dad8cec9", + "url": "https://api.github.com/repos/symfony/yaml/zipball/8207ae83da19ee3748d6d4f567b4d9a7c656e331", + "reference": "8207ae83da19ee3748d6d4f567b4d9a7c656e331", "shasum": "" }, "require": { @@ -6580,7 +6734,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.4.13" + "source": "https://github.com/symfony/yaml/tree/v6.4.30" }, "funding": [ { @@ -6591,35 +6745,39 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2025-12-02T11:50:18+00:00" }, { "name": "twig/extra-bundle", - "version": "v3.13.0", + "version": "v3.22.2", "source": { "type": "git", "url": "https://github.com/twigphp/twig-extra-bundle.git", - "reference": "21a9a7aa9f79d4493bb6fed4eb2794339f9551f5" + "reference": "09de9be7f6c0d19ede7b5a1dbfcfb2e9d1e0ea9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/21a9a7aa9f79d4493bb6fed4eb2794339f9551f5", - "reference": "21a9a7aa9f79d4493bb6fed4eb2794339f9551f5", + "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/09de9be7f6c0d19ede7b5a1dbfcfb2e9d1e0ea9e", + "reference": "09de9be7f6c0d19ede7b5a1dbfcfb2e9d1e0ea9e", "shasum": "" }, "require": { - "php": ">=8.0.2", - "symfony/framework-bundle": "^5.4|^6.4|^7.0", - "symfony/twig-bundle": "^5.4|^6.4|^7.0", - "twig/twig": "^3.0|^4.0" + "php": ">=8.1.0", + "symfony/framework-bundle": "^5.4|^6.4|^7.0|^8.0", + "symfony/twig-bundle": "^5.4|^6.4|^7.0|^8.0", + "twig/twig": "^3.2|^4.0" }, "require-dev": { - "league/commonmark": "^1.0|^2.0", + "league/commonmark": "^2.7", "symfony/phpunit-bridge": "^6.4|^7.0", "twig/cache-extra": "^3.0", "twig/cssinliner-extra": "^3.0", @@ -6658,7 +6816,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.13.0" + "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.22.2" }, "funding": [ { @@ -6670,30 +6828,30 @@ "type": "tidelift" } ], - "time": "2024-09-01T20:39:12+00:00" + "time": "2025-12-05T08:51:53+00:00" }, { "name": "twig/twig", - "version": "v3.14.2", + "version": "v3.22.2", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a" + "reference": "946ddeafa3c9f4ce279d1f34051af041db0e16f2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a", - "reference": "0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/946ddeafa3c9f4ce279d1f34051af041db0e16f2", + "reference": "946ddeafa3c9f4ce279d1f34051af041db0e16f2", "shasum": "" }, "require": { - "php": ">=8.0.2", + "php": ">=8.1.0", "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-ctype": "^1.8", - "symfony/polyfill-mbstring": "^1.3", - "symfony/polyfill-php81": "^1.29" + "symfony/polyfill-mbstring": "^1.3" }, "require-dev": { + "phpstan/phpstan": "^2.0", "psr/container": "^1.0|^2.0", "symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0" }, @@ -6737,7 +6895,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.14.2" + "source": "https://github.com/twigphp/Twig/tree/v3.22.2" }, "funding": [ { @@ -6749,20 +6907,20 @@ "type": "tidelift" } ], - "time": "2024-11-07T12:36:22+00:00" + "time": "2025-12-14T11:28:47+00:00" }, { "name": "ua-parser/uap-php", - "version": "v3.9.14", + "version": "v3.10.0", "source": { "type": "git", "url": "https://github.com/ua-parser/uap-php.git", - "reference": "b796c5ea5df588e65aeb4e2c6cce3811dec4fed6" + "reference": "f44bdd1b38198801cf60b0681d2d842980e47af5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ua-parser/uap-php/zipball/b796c5ea5df588e65aeb4e2c6cce3811dec4fed6", - "reference": "b796c5ea5df588e65aeb4e2c6cce3811dec4fed6", + "url": "https://api.github.com/repos/ua-parser/uap-php/zipball/f44bdd1b38198801cf60b0681d2d842980e47af5", + "reference": "f44bdd1b38198801cf60b0681d2d842980e47af5", "shasum": "" }, "require": { @@ -6810,34 +6968,34 @@ "description": "A multi-language port of Browserscope's user agent parser.", "support": { "issues": "https://github.com/ua-parser/uap-php/issues", - "source": "https://github.com/ua-parser/uap-php/tree/v3.9.14" + "source": "https://github.com/ua-parser/uap-php/tree/v3.10.0" }, - "time": "2020-10-02T23:36:20+00:00" + "time": "2025-07-17T15:43:24+00:00" }, { "name": "webmozart/assert", - "version": "1.11.0", + "version": "1.12.1", "source": { "type": "git", "url": "https://github.com/webmozarts/assert.git", - "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + "reference": "9be6926d8b485f55b9229203f962b51ed377ba68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", - "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/9be6926d8b485f55b9229203f962b51ed377ba68", + "reference": "9be6926d8b485f55b9229203f962b51ed377ba68", "shasum": "" }, "require": { "ext-ctype": "*", + "ext-date": "*", + "ext-filter": "*", "php": "^7.2 || ^8.0" }, - "conflict": { - "phpstan/phpstan": "<0.12.20", - "vimeo/psalm": "<4.6.1 || 4.6.2" - }, - "require-dev": { - "phpunit/phpunit": "^8.5.13" + "suggest": { + "ext-intl": "", + "ext-simplexml": "", + "ext-spl": "" }, "type": "library", "extra": { @@ -6868,36 +7026,44 @@ ], "support": { "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/1.11.0" + "source": "https://github.com/webmozarts/assert/tree/1.12.1" }, - "time": "2022-06-03T18:03:27+00:00" + "time": "2025-10-29T15:56:20+00:00" } ], "packages-dev": [ { "name": "composer/pcre", - "version": "3.1.4", + "version": "3.3.2", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "04229f163664973f68f38f6f73d917799168ef24" + "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/04229f163664973f68f38f6f73d917799168ef24", - "reference": "04229f163664973f68f38f6f73d917799168ef24", + "url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e", + "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e", "shasum": "" }, "require": { "php": "^7.4 || ^8.0" }, + "conflict": { + "phpstan/phpstan": "<1.11.10" + }, "require-dev": { - "phpstan/phpstan": "^1.3", - "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^5" + "phpstan/phpstan": "^1.12 || ^2", + "phpstan/phpstan-strict-rules": "^1 || ^2", + "phpunit/phpunit": "^8 || ^9" }, "type": "library", "extra": { + "phpstan": { + "includes": [ + "extension.neon" + ] + }, "branch-alias": { "dev-main": "3.x-dev" } @@ -6927,7 +7093,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.4" + "source": "https://github.com/composer/pcre/tree/3.3.2" }, "funding": [ { @@ -6943,7 +7109,7 @@ "type": "tidelift" } ], - "time": "2024-05-27T13:40:54+00:00" + "time": "2024-11-12T16:29:46+00:00" }, { "name": "composer/xdebug-handler", @@ -7013,29 +7179,29 @@ }, { "name": "dealerdirect/phpcodesniffer-composer-installer", - "version": "v1.0.0", + "version": "v1.2.0", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/composer-installer.git", - "reference": "4be43904336affa5c2f70744a348312336afd0da" + "reference": "845eb62303d2ca9b289ef216356568ccc075ffd1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/4be43904336affa5c2f70744a348312336afd0da", - "reference": "4be43904336affa5c2f70744a348312336afd0da", + "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/845eb62303d2ca9b289ef216356568ccc075ffd1", + "reference": "845eb62303d2ca9b289ef216356568ccc075ffd1", "shasum": "" }, "require": { - "composer-plugin-api": "^1.0 || ^2.0", + "composer-plugin-api": "^2.2", "php": ">=5.4", - "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0" + "squizlabs/php_codesniffer": "^3.1.0 || ^4.0" }, "require-dev": { - "composer/composer": "*", + "composer/composer": "^2.2", "ext-json": "*", "ext-zip": "*", - "php-parallel-lint/php-parallel-lint": "^1.3.1", - "phpcompatibility/php-compatibility": "^9.0", + "php-parallel-lint/php-parallel-lint": "^1.4.0", + "phpcompatibility/php-compatibility": "^9.0 || ^10.0.0@dev", "yoast/phpunit-polyfills": "^1.0" }, "type": "composer-plugin", @@ -7054,9 +7220,9 @@ "authors": [ { "name": "Franck Nijhof", - "email": "franck.nijhof@dealerdirect.com", - "homepage": "http://www.frenck.nl", - "role": "Developer / IT Manager" + "email": "opensource@frenck.dev", + "homepage": "https://frenck.dev", + "role": "Open source developer" }, { "name": "Contributors", @@ -7064,7 +7230,6 @@ } ], "description": "PHP_CodeSniffer Standards Composer Installer Plugin", - "homepage": "http://www.dealerdirect.com", "keywords": [ "PHPCodeSniffer", "PHP_CodeSniffer", @@ -7085,39 +7250,57 @@ ], "support": { "issues": "https://github.com/PHPCSStandards/composer-installer/issues", + "security": "https://github.com/PHPCSStandards/composer-installer/security/policy", "source": "https://github.com/PHPCSStandards/composer-installer" }, - "time": "2023-01-05T11:28:13+00:00" + "funding": [ + { + "url": "https://github.com/PHPCSStandards", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + }, + { + "url": "https://thanks.dev/u/gh/phpcsstandards", + "type": "thanks_dev" + } + ], + "time": "2025-11-11T04:32:07+00:00" }, { "name": "doctrine/inflector", - "version": "2.0.10", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc" + "reference": "6d6c96277ea252fc1304627204c3d5e6e15faa3b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc", - "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/6d6c96277ea252fc1304627204c3d5e6e15faa3b", + "reference": "6d6c96277ea252fc1304627204c3d5e6e15faa3b", "shasum": "" }, "require": { "php": "^7.2 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^11.0", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-phpunit": "^1.1", - "phpstan/phpstan-strict-rules": "^1.3", - "phpunit/phpunit": "^8.5 || ^9.5", - "vimeo/psalm": "^4.25 || ^5.4" + "doctrine/coding-standard": "^12.0 || ^13.0", + "phpstan/phpstan": "^1.12 || ^2.0", + "phpstan/phpstan-phpunit": "^1.4 || ^2.0", + "phpstan/phpstan-strict-rules": "^1.6 || ^2.0", + "phpunit/phpunit": "^8.5 || ^12.2" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" + "Doctrine\\Inflector\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -7162,7 +7345,7 @@ ], "support": { "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/2.0.10" + "source": "https://github.com/doctrine/inflector/tree/2.1.0" }, "funding": [ { @@ -7178,7 +7361,7 @@ "type": "tidelift" } ], - "time": "2024-02-18T20:23:39+00:00" + "time": "2025-08-10T19:31:58+00:00" }, { "name": "doctrine/instantiator", @@ -7252,20 +7435,20 @@ }, { "name": "hamcrest/hamcrest-php", - "version": "v2.0.1", + "version": "v2.1.1", "source": { "type": "git", "url": "https://github.com/hamcrest/hamcrest-php.git", - "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3" + "reference": "f8b1c0173b22fa6ec77a81fe63e5b01eba7e6487" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", - "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", + "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/f8b1c0173b22fa6ec77a81fe63e5b01eba7e6487", + "reference": "f8b1c0173b22fa6ec77a81fe63e5b01eba7e6487", "shasum": "" }, "require": { - "php": "^5.3|^7.0|^8.0" + "php": "^7.4|^8.0" }, "replace": { "cordoval/hamcrest-php": "*", @@ -7273,8 +7456,8 @@ "kodova/hamcrest-php": "*" }, "require-dev": { - "phpunit/php-file-iterator": "^1.4 || ^2.0", - "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0" + "phpunit/php-file-iterator": "^1.4 || ^2.0 || ^3.0", + "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0 || ^8.0 || ^9.0" }, "type": "library", "extra": { @@ -7297,9 +7480,9 @@ ], "support": { "issues": "https://github.com/hamcrest/hamcrest-php/issues", - "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1" + "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.1.1" }, - "time": "2020-07-09T08:09:16+00:00" + "time": "2025-04-30T06:54:44+00:00" }, { "name": "malukenho/docheader", @@ -7503,16 +7686,16 @@ }, { "name": "myclabs/deep-copy", - "version": "1.12.0", + "version": "1.13.4", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c" + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", - "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a", + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a", "shasum": "" }, "require": { @@ -7551,7 +7734,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0" + "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4" }, "funding": [ { @@ -7559,23 +7742,24 @@ "type": "tidelift" } ], - "time": "2024-06-12T14:39:25+00:00" + "time": "2025-08-01T08:46:24+00:00" }, { "name": "overtrue/phplint", - "version": "9.3.1", + "version": "9.6.3", "source": { "type": "git", "url": "https://github.com/overtrue/phplint.git", - "reference": "1e43e92e425c953f7c154460f0644517ea4f9317" + "reference": "b0ec1d07b37a37e7fc872c8bdbddacadcecbe047" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/overtrue/phplint/zipball/1e43e92e425c953f7c154460f0644517ea4f9317", - "reference": "1e43e92e425c953f7c154460f0644517ea4f9317", + "url": "https://api.github.com/repos/overtrue/phplint/zipball/b0ec1d07b37a37e7fc872c8bdbddacadcecbe047", + "reference": "b0ec1d07b37a37e7fc872c8bdbddacadcecbe047", "shasum": "" }, "require": { + "composer-runtime-api": "^2.0", "ext-dom": "*", "ext-json": "*", "ext-mbstring": "*", @@ -7590,9 +7774,8 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.4", - "bartlett/sarif-php-sdk": "^1.2", - "brainmaestro/composer-git-hooks": "^2.8.5 || 3.0.0-alpha.1", - "jetbrains/phpstorm-stubs": "^2021.3 || ^2022.3 || ^2023.3 || ^2024.1", + "brainmaestro/composer-git-hooks": "^3.0.0", + "jetbrains/phpstorm-stubs": "^2024.1", "php-parallel-lint/php-console-highlighter": "^1.0" }, "bin": [ @@ -7600,22 +7783,19 @@ ], "type": "library", "extra": { - "bamarni-bin": { - "bin-links": true, - "target-directory": "vendor-bin", - "forward-command": true - }, "hooks": { "pre-commit": [ "composer style:fix", "composer code:check" - ], - "pre-push": [ - "composer qa:check" ] }, + "bamarni-bin": { + "bin-links": true, + "forward-command": true, + "target-directory": "vendor-bin" + }, "branch-alias": { - "dev-main": "9.3.x-dev" + "dev-main": "9.6.x-dev" } }, "autoload": { @@ -7647,7 +7827,7 @@ ], "support": { "issues": "https://github.com/overtrue/phplint/issues", - "source": "https://github.com/overtrue/phplint/tree/9.3.1" + "source": "https://github.com/overtrue/phplint/tree/9.6.3" }, "funding": [ { @@ -7655,7 +7835,7 @@ "type": "github" } ], - "time": "2024-05-17T03:39:25+00:00" + "time": "2025-11-27T13:49:59+00:00" }, { "name": "pdepend/pdepend", @@ -7923,30 +8103,30 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.29.1", + "version": "2.3.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4" + "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fcaefacf2d5c417e928405b71b400d4ce10daaf4", - "reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/1e0cd5370df5dd2e556a36b9c62f62e555870495", + "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { "doctrine/annotations": "^2.0", - "nikic/php-parser": "^4.15", + "nikic/php-parser": "^5.3.0", "php-parallel-lint/php-parallel-lint": "^1.2", "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^1.5", - "phpstan/phpstan-phpunit": "^1.1", - "phpstan/phpstan-strict-rules": "^1.0", - "phpunit/phpunit": "^9.5", + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpstan/phpstan-strict-rules": "^2.0", + "phpunit/phpunit": "^9.6", "symfony/process": "^5.2" }, "type": "library", @@ -7964,22 +8144,17 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.29.1" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.0" }, - "time": "2024-05-31T08:52:43+00:00" + "time": "2025-08-30T15:50:23+00:00" }, { "name": "phpstan/phpstan", - "version": "1.11.5", - "source": { - "type": "git", - "url": "https://github.com/phpstan/phpstan.git", - "reference": "490f0ae1c92b082f154681d7849aee776a7c1443" - }, + "version": "1.12.32", "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/490f0ae1c92b082f154681d7849aee776a7c1443", - "reference": "490f0ae1c92b082f154681d7849aee776a7c1443", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/2770dcdf5078d0b0d53f94317e06affe88419aa8", + "reference": "2770dcdf5078d0b0d53f94317e06affe88419aa8", "shasum": "" }, "require": { @@ -8024,26 +8199,26 @@ "type": "github" } ], - "time": "2024-06-17T15:10:54+00:00" + "time": "2025-09-30T10:16:31+00:00" }, { "name": "phpstan/phpstan-symfony", - "version": "1.4.5", + "version": "1.4.16", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan-symfony.git", - "reference": "1bd7c339f622dfb5a1a97dcaf1a862734eabfa1d" + "reference": "18df9086a84fc28e9a231ea8e91d5aff1a0a3d6f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-symfony/zipball/1bd7c339f622dfb5a1a97dcaf1a862734eabfa1d", - "reference": "1bd7c339f622dfb5a1a97dcaf1a862734eabfa1d", + "url": "https://api.github.com/repos/phpstan/phpstan-symfony/zipball/18df9086a84fc28e9a231ea8e91d5aff1a0a3d6f", + "reference": "18df9086a84fc28e9a231ea8e91d5aff1a0a3d6f", "shasum": "" }, "require": { "ext-simplexml": "*", "php": "^7.2 || ^8.0", - "phpstan/phpstan": "^1.11" + "phpstan/phpstan": "^1.12" }, "conflict": { "symfony/framework-bundle": "<3.0" @@ -8094,41 +8269,41 @@ "description": "Symfony Framework extensions and rules for PHPStan", "support": { "issues": "https://github.com/phpstan/phpstan-symfony/issues", - "source": "https://github.com/phpstan/phpstan-symfony/tree/1.4.5" + "source": "https://github.com/phpstan/phpstan-symfony/tree/1.4.16" }, - "time": "2024-06-26T12:19:42+00:00" + "time": "2025-09-07T06:55:28+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "9.2.31", + "version": "9.2.32", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "48c34b5d8d983006bd2adc2d0de92963b9155965" + "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/48c34b5d8d983006bd2adc2d0de92963b9155965", - "reference": "48c34b5d8d983006bd2adc2d0de92963b9155965", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/85402a822d1ecf1db1096959413d35e1c37cf1a5", + "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.18 || ^5.0", + "nikic/php-parser": "^4.19.1 || ^5.1.0", "php": ">=7.3", - "phpunit/php-file-iterator": "^3.0.3", - "phpunit/php-text-template": "^2.0.2", - "sebastian/code-unit-reverse-lookup": "^2.0.2", - "sebastian/complexity": "^2.0", - "sebastian/environment": "^5.1.2", - "sebastian/lines-of-code": "^1.0.3", - "sebastian/version": "^3.0.1", - "theseer/tokenizer": "^1.2.0" + "phpunit/php-file-iterator": "^3.0.6", + "phpunit/php-text-template": "^2.0.4", + "sebastian/code-unit-reverse-lookup": "^2.0.3", + "sebastian/complexity": "^2.0.3", + "sebastian/environment": "^5.1.5", + "sebastian/lines-of-code": "^1.0.4", + "sebastian/version": "^3.0.2", + "theseer/tokenizer": "^1.2.3" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^9.6" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -8137,7 +8312,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "9.2-dev" + "dev-main": "9.2.x-dev" } }, "autoload": { @@ -8166,7 +8341,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/9.2.31" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.32" }, "funding": [ { @@ -8174,7 +8349,7 @@ "type": "github" } ], - "time": "2024-03-02T06:37:42+00:00" + "time": "2024-08-22T04:23:01+00:00" }, { "name": "phpunit/php-file-iterator", @@ -8419,45 +8594,45 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.19", + "version": "9.6.31", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "a1a54a473501ef4cdeaae4e06891674114d79db8" + "reference": "945d0b7f346a084ce5549e95289962972c4272e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a1a54a473501ef4cdeaae4e06891674114d79db8", - "reference": "a1a54a473501ef4cdeaae4e06891674114d79db8", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/945d0b7f346a084ce5549e95289962972c4272e5", + "reference": "945d0b7f346a084ce5549e95289962972c4272e5", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.3.1 || ^2", + "doctrine/instantiator": "^1.5.0 || ^2", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.3", - "phar-io/version": "^3.0.2", + "myclabs/deep-copy": "^1.13.4", + "phar-io/manifest": "^2.0.4", + "phar-io/version": "^3.2.1", "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.28", - "phpunit/php-file-iterator": "^3.0.5", + "phpunit/php-code-coverage": "^9.2.32", + "phpunit/php-file-iterator": "^3.0.6", "phpunit/php-invoker": "^3.1.1", - "phpunit/php-text-template": "^2.0.3", - "phpunit/php-timer": "^5.0.2", - "sebastian/cli-parser": "^1.0.1", - "sebastian/code-unit": "^1.0.6", - "sebastian/comparator": "^4.0.8", - "sebastian/diff": "^4.0.3", - "sebastian/environment": "^5.1.3", - "sebastian/exporter": "^4.0.5", - "sebastian/global-state": "^5.0.1", - "sebastian/object-enumerator": "^4.0.3", - "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^3.2", + "phpunit/php-text-template": "^2.0.4", + "phpunit/php-timer": "^5.0.3", + "sebastian/cli-parser": "^1.0.2", + "sebastian/code-unit": "^1.0.8", + "sebastian/comparator": "^4.0.9", + "sebastian/diff": "^4.0.6", + "sebastian/environment": "^5.1.5", + "sebastian/exporter": "^4.0.8", + "sebastian/global-state": "^5.0.8", + "sebastian/object-enumerator": "^4.0.4", + "sebastian/resource-operations": "^3.0.4", + "sebastian/type": "^3.2.1", "sebastian/version": "^3.0.2" }, "suggest": { @@ -8502,7 +8677,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.19" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.31" }, "funding": [ { @@ -8513,30 +8688,38 @@ "url": "https://github.com/sebastianbergmann", "type": "github" }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, { "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", "type": "tidelift" } ], - "time": "2024-04-05T04:35:58+00:00" + "time": "2025-12-06T07:45:52+00:00" }, { "name": "rector/rector", - "version": "1.1.1", + "version": "1.2.10", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "c930cdb21294f10955ddfc31b720971e8333943d" + "reference": "40f9cf38c05296bd32f444121336a521a293fa61" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/c930cdb21294f10955ddfc31b720971e8333943d", - "reference": "c930cdb21294f10955ddfc31b720971e8333943d", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/40f9cf38c05296bd32f444121336a521a293fa61", + "reference": "40f9cf38c05296bd32f444121336a521a293fa61", "shasum": "" }, "require": { "php": "^7.2|^8.0", - "phpstan/phpstan": "^1.11" + "phpstan/phpstan": "^1.12.5" }, "conflict": { "rector/rector-doctrine": "*", @@ -8569,7 +8752,7 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/1.1.1" + "source": "https://github.com/rectorphp/rector/tree/1.2.10" }, "funding": [ { @@ -8577,7 +8760,7 @@ "type": "github" } ], - "time": "2024-06-21T07:51:17+00:00" + "time": "2024-11-08T13:59:10+00:00" }, { "name": "sebastian/cli-parser", @@ -8748,16 +8931,16 @@ }, { "name": "sebastian/comparator", - "version": "4.0.8", + "version": "4.0.9", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a" + "reference": "67a2df3a62639eab2cc5906065e9805d4fd5dfc5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/67a2df3a62639eab2cc5906065e9805d4fd5dfc5", + "reference": "67a2df3a62639eab2cc5906065e9805d4fd5dfc5", "shasum": "" }, "require": { @@ -8810,15 +8993,27 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.9" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/comparator", + "type": "tidelift" } ], - "time": "2022-09-14T12:41:17+00:00" + "time": "2025-08-10T06:51:50+00:00" }, { "name": "sebastian/complexity", @@ -9008,16 +9203,16 @@ }, { "name": "sebastian/exporter", - "version": "4.0.6", + "version": "4.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72" + "reference": "14c6ba52f95a36c3d27c835d65efc7123c446e8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72", - "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/14c6ba52f95a36c3d27c835d65efc7123c446e8c", + "reference": "14c6ba52f95a36c3d27c835d65efc7123c446e8c", "shasum": "" }, "require": { @@ -9073,28 +9268,40 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6" + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.8" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter", + "type": "tidelift" } ], - "time": "2024-03-02T06:33:00+00:00" + "time": "2025-09-24T06:03:27+00:00" }, { "name": "sebastian/global-state", - "version": "5.0.7", + "version": "5.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9" + "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", - "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/b6781316bdcd28260904e7cc18ec983d0d2ef4f6", + "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6", "shasum": "" }, "require": { @@ -9137,15 +9344,27 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.7" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.8" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/global-state", + "type": "tidelift" } ], - "time": "2024-03-02T06:35:11+00:00" + "time": "2025-08-10T07:10:35+00:00" }, { "name": "sebastian/lines-of-code", @@ -9318,16 +9537,16 @@ }, { "name": "sebastian/recursion-context", - "version": "4.0.5", + "version": "4.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" + "reference": "539c6691e0623af6dc6f9c20384c120f963465a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/539c6691e0623af6dc6f9c20384c120f963465a0", + "reference": "539c6691e0623af6dc6f9c20384c120f963465a0", "shasum": "" }, "require": { @@ -9369,15 +9588,27 @@ "homepage": "https://github.com/sebastianbergmann/recursion-context", "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.6" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context", + "type": "tidelift" } ], - "time": "2023-02-03T06:07:39+00:00" + "time": "2025-08-10T06:57:39+00:00" }, { "name": "sebastian/resource-operations", @@ -9544,32 +9775,32 @@ }, { "name": "slevomat/coding-standard", - "version": "8.15.0", + "version": "8.22.1", "source": { "type": "git", "url": "https://github.com/slevomat/coding-standard.git", - "reference": "7d1d957421618a3803b593ec31ace470177d7817" + "reference": "1dd80bf3b93692bedb21a6623c496887fad05fec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/7d1d957421618a3803b593ec31ace470177d7817", - "reference": "7d1d957421618a3803b593ec31ace470177d7817", + "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/1dd80bf3b93692bedb21a6623c496887fad05fec", + "reference": "1dd80bf3b93692bedb21a6623c496887fad05fec", "shasum": "" }, "require": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7 || ^1.0", - "php": "^7.2 || ^8.0", - "phpstan/phpdoc-parser": "^1.23.1", - "squizlabs/php_codesniffer": "^3.9.0" + "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7 || ^1.1.2", + "php": "^7.4 || ^8.0", + "phpstan/phpdoc-parser": "^2.3.0", + "squizlabs/php_codesniffer": "^3.13.4" }, "require-dev": { - "phing/phing": "2.17.4", - "php-parallel-lint/php-parallel-lint": "1.3.2", - "phpstan/phpstan": "1.10.60", - "phpstan/phpstan-deprecation-rules": "1.1.4", - "phpstan/phpstan-phpunit": "1.3.16", - "phpstan/phpstan-strict-rules": "1.5.2", - "phpunit/phpunit": "8.5.21|9.6.8|10.5.11" + "phing/phing": "3.0.1|3.1.0", + "php-parallel-lint/php-parallel-lint": "1.4.0", + "phpstan/phpstan": "2.1.24", + "phpstan/phpstan-deprecation-rules": "2.0.3", + "phpstan/phpstan-phpunit": "2.0.7", + "phpstan/phpstan-strict-rules": "2.0.6", + "phpunit/phpunit": "9.6.8|10.5.48|11.4.4|11.5.36|12.3.10" }, "type": "phpcodesniffer-standard", "extra": { @@ -9593,7 +9824,7 @@ ], "support": { "issues": "https://github.com/slevomat/coding-standard/issues", - "source": "https://github.com/slevomat/coding-standard/tree/8.15.0" + "source": "https://github.com/slevomat/coding-standard/tree/8.22.1" }, "funding": [ { @@ -9605,20 +9836,20 @@ "type": "tidelift" } ], - "time": "2024-03-09T15:20:58+00:00" + "time": "2025-09-13T08:53:30+00:00" }, { "name": "squizlabs/php_codesniffer", - "version": "3.10.1", + "version": "3.13.5", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "8f90f7a53ce271935282967f53d0894f8f1ff877" + "reference": "0ca86845ce43291e8f5692c7356fccf3bcf02bf4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/8f90f7a53ce271935282967f53d0894f8f1ff877", - "reference": "8f90f7a53ce271935282967f53d0894f8f1ff877", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/0ca86845ce43291e8f5692c7356fccf3bcf02bf4", + "reference": "0ca86845ce43291e8f5692c7356fccf3bcf02bf4", "shasum": "" }, "require": { @@ -9635,11 +9866,6 @@ "bin/phpcs" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" @@ -9683,37 +9909,41 @@ { "url": "https://opencollective.com/php_codesniffer", "type": "open_collective" + }, + { + "url": "https://thanks.dev/u/gh/phpcsstandards", + "type": "thanks_dev" } ], - "time": "2024-05-22T21:24:41+00:00" + "time": "2025-11-04T16:30:35+00:00" }, { "name": "symfony/maker-bundle", - "version": "v1.61.0", + "version": "v1.65.1", "source": { "type": "git", "url": "https://github.com/symfony/maker-bundle.git", - "reference": "a3b7f14d349f8f44ed752d4dde2263f77510cc18" + "reference": "eba30452d212769c9a5bcf0716959fd8ba1e54e3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/a3b7f14d349f8f44ed752d4dde2263f77510cc18", - "reference": "a3b7f14d349f8f44ed752d4dde2263f77510cc18", + "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/eba30452d212769c9a5bcf0716959fd8ba1e54e3", + "reference": "eba30452d212769c9a5bcf0716959fd8ba1e54e3", "shasum": "" }, "require": { "doctrine/inflector": "^2.0", - "nikic/php-parser": "^4.18|^5.0", + "nikic/php-parser": "^5.0", "php": ">=8.1", - "symfony/config": "^6.4|^7.0", - "symfony/console": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", "symfony/deprecation-contracts": "^2.2|^3", - "symfony/filesystem": "^6.4|^7.0", - "symfony/finder": "^6.4|^7.0", - "symfony/framework-bundle": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/process": "^6.4|^7.0" + "symfony/filesystem": "^6.4|^7.0|^8.0", + "symfony/finder": "^6.4|^7.0|^8.0", + "symfony/framework-bundle": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/process": "^6.4|^7.0|^8.0" }, "conflict": { "doctrine/doctrine-bundle": "<2.10", @@ -9721,12 +9951,14 @@ }, "require-dev": { "composer/semver": "^3.0", - "doctrine/doctrine-bundle": "^2.5.0", + "doctrine/doctrine-bundle": "^2.5.0|^3.0.0", "doctrine/orm": "^2.15|^3", - "symfony/http-client": "^6.4|^7.0", - "symfony/phpunit-bridge": "^6.4.1|^7.0", - "symfony/security-core": "^6.4|^7.0", - "symfony/yaml": "^6.4|^7.0", + "doctrine/persistence": "^3.1|^4.0", + "symfony/http-client": "^6.4|^7.0|^8.0", + "symfony/phpunit-bridge": "^6.4.1|^7.0|^8.0", + "symfony/security-core": "^6.4|^7.0|^8.0", + "symfony/security-http": "^6.4|^7.0|^8.0", + "symfony/yaml": "^6.4|^7.0|^8.0", "twig/twig": "^3.0|^4.x-dev" }, "type": "symfony-bundle", @@ -9761,7 +9993,7 @@ ], "support": { "issues": "https://github.com/symfony/maker-bundle/issues", - "source": "https://github.com/symfony/maker-bundle/tree/v1.61.0" + "source": "https://github.com/symfony/maker-bundle/tree/v1.65.1" }, "funding": [ { @@ -9772,25 +10004,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-08-29T22:50:23+00:00" + "time": "2025-12-02T07:14:37+00:00" }, { "name": "symfony/phpunit-bridge", - "version": "v6.4.13", + "version": "v6.4.26", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "e6377bea5b114f70de6332fe935e160da5014ce8" + "reference": "406aa80401bf960e7a173a3ccf268ae82b6bc93f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/e6377bea5b114f70de6332fe935e160da5014ce8", - "reference": "e6377bea5b114f70de6332fe935e160da5014ce8", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/406aa80401bf960e7a173a3ccf268ae82b6bc93f", + "reference": "406aa80401bf960e7a173a3ccf268ae82b6bc93f", "shasum": "" }, "require": { @@ -9810,8 +10046,8 @@ "type": "symfony-bridge", "extra": { "thanks": { - "name": "phpunit/phpunit", - "url": "https://github.com/sebastianbergmann/phpunit" + "url": "https://github.com/sebastianbergmann/phpunit", + "name": "phpunit/phpunit" } }, "autoload": { @@ -9842,8 +10078,11 @@ ], "description": "Provides utilities for PHPUnit, especially user deprecation notices management", "homepage": "https://symfony.com", + "keywords": [ + "testing" + ], "support": { - "source": "https://github.com/symfony/phpunit-bridge/tree/v6.4.13" + "source": "https://github.com/symfony/phpunit-bridge/tree/v6.4.26" }, "funding": [ { @@ -9854,25 +10093,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2025-09-12T08:37:02+00:00" }, { "name": "symfony/process", - "version": "v6.4.14", + "version": "v6.4.31", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "25214adbb0996d18112548de20c281be9f27279f" + "reference": "8541b7308fca001320e90bca8a73a28aa5604a6e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/25214adbb0996d18112548de20c281be9f27279f", - "reference": "25214adbb0996d18112548de20c281be9f27279f", + "url": "https://api.github.com/repos/symfony/process/zipball/8541b7308fca001320e90bca8a73a28aa5604a6e", + "reference": "8541b7308fca001320e90bca8a73a28aa5604a6e", "shasum": "" }, "require": { @@ -9904,7 +10147,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.4.14" + "source": "https://github.com/symfony/process/tree/v6.4.31" }, "funding": [ { @@ -9915,12 +10158,16 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-11-06T09:25:01+00:00" + "time": "2025-12-15T19:26:35+00:00" }, { "name": "symfony/stopwatch", @@ -9986,16 +10233,16 @@ }, { "name": "symfony/web-profiler-bundle", - "version": "v6.4.14", + "version": "v6.4.27", "source": { "type": "git", "url": "https://github.com/symfony/web-profiler-bundle.git", - "reference": "bfbade623f1cc7f1e243ce5488af33861a8f5be7" + "reference": "4c2ab411372e8bd854678cd7c81f1a9bfd6914aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/bfbade623f1cc7f1e243ce5488af33861a8f5be7", - "reference": "bfbade623f1cc7f1e243ce5488af33861a8f5be7", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/4c2ab411372e8bd854678cd7c81f1a9bfd6914aa", + "reference": "4c2ab411372e8bd854678cd7c81f1a9bfd6914aa", "shasum": "" }, "require": { @@ -10048,7 +10295,7 @@ "dev" ], "support": { - "source": "https://github.com/symfony/web-profiler-bundle/tree/v6.4.14" + "source": "https://github.com/symfony/web-profiler-bundle/tree/v6.4.27" }, "funding": [ { @@ -10059,25 +10306,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-11-04T11:33:53+00:00" + "time": "2025-10-05T13:55:43+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.3", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", - "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c", + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c", "shasum": "" }, "require": { @@ -10106,7 +10357,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.3" + "source": "https://github.com/theseer/tokenizer/tree/1.3.1" }, "funding": [ { @@ -10114,7 +10365,7 @@ "type": "github" } ], - "time": "2024-03-03T12:36:25+00:00" + "time": "2025-11-17T20:03:58+00:00" } ], "aliases": [], diff --git a/symfony.lock b/symfony.lock index 5eb63e61..0da9eb1b 100644 --- a/symfony.lock +++ b/symfony.lock @@ -433,9 +433,6 @@ "symfony/polyfill-php80": { "version": "v1.17.1" }, - "symfony/polyfill-php81": { - "version": "v1.23.0" - }, "symfony/process": { "version": "v4.4.37" }, From 509d970b78e883937c97a3bbc33d938795c829e8 Mon Sep 17 00:00:00 2001 From: Johan Kromhout Date: Wed, 7 Jan 2026 16:25:30 +0100 Subject: [PATCH 03/18] Update PHPStan and fix basic errors --- composer.json | 6 +-- composer.lock | 54 +++++++++---------- .../Controller/RaLocationController.php | 2 +- .../Controller/RaManagementController.php | 2 +- .../Controller/SecondFactorController.php | 2 +- .../Gssf/GssfAuthenticateController.php | 2 +- .../GssfInitiateVerificationController.php | 2 +- .../Vetting/Gssf/GssfVerifyController.php | 2 +- .../Controller/Vetting/SmsController.php | 2 +- .../RaBundle/Controller/VettingController.php | 14 ++--- .../Controller/VettingTypeHintController.php | 4 +- .../RaBundle/Logger/ProcedureAwareLogger.php | 2 +- .../Authentication/Provider/SamlProvider.php | 6 +-- .../RaBundle/Service/RaCandidateService.php | 2 +- .../RaBundle/Service/RaListingService.php | 4 +- .../RaBundle/Service/RaLocationService.php | 2 +- .../Service/RaSecondFactorService.php | 2 +- .../RaBundle/Service/VettingService.php | 6 +-- .../StepupRa/RaBundle/Value/DateTime.php | 2 +- .../StepupRa/RaBundle/VettingProcedure.php | 2 +- .../DependencyInjection/Configuration.php | 2 +- ...netStepupRaSamlStepupProviderExtension.php | 2 +- .../Provider/ViewConfig.php | 2 +- 23 files changed, 63 insertions(+), 63 deletions(-) diff --git a/composer.json b/composer.json index 36ecd0d8..094e89f6 100644 --- a/composer.json +++ b/composer.json @@ -47,10 +47,10 @@ "mockery/mockery": "^1.0", "overtrue/phplint": "^9.0", "phpmd/phpmd": "^2.6", - "phpstan/phpstan": "^1.10", - "phpstan/phpstan-symfony": "^1.3", + "phpstan/phpstan": "^2", + "phpstan/phpstan-symfony": "^2.0", "phpunit/phpunit": "^9.5", - "rector/rector": "^1.0", + "rector/rector": "^2", "slevomat/coding-standard": "^8.13", "squizlabs/php_codesniffer": "^3.4", "symfony/maker-bundle": "^1.19", diff --git a/composer.lock b/composer.lock index f89e5180..14d52d8c 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "6719d4aa9215e90286b263299750ccb0", + "content-hash": "d87d8dde27169b41f727f2d5577674c3", "packages": [ { "name": "beberlei/assert", @@ -8150,15 +8150,15 @@ }, { "name": "phpstan/phpstan", - "version": "1.12.32", + "version": "2.1.33", "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/2770dcdf5078d0b0d53f94317e06affe88419aa8", - "reference": "2770dcdf5078d0b0d53f94317e06affe88419aa8", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/9e800e6bee7d5bd02784d4c6069b48032d16224f", + "reference": "9e800e6bee7d5bd02784d4c6069b48032d16224f", "shasum": "" }, "require": { - "php": "^7.2|^8.0" + "php": "^7.4|^8.0" }, "conflict": { "phpstan/phpstan-shim": "*" @@ -8199,37 +8199,36 @@ "type": "github" } ], - "time": "2025-09-30T10:16:31+00:00" + "time": "2025-12-05T10:24:31+00:00" }, { "name": "phpstan/phpstan-symfony", - "version": "1.4.16", + "version": "2.0.9", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan-symfony.git", - "reference": "18df9086a84fc28e9a231ea8e91d5aff1a0a3d6f" + "reference": "24d8c157aa483141b0579d705ef0aac9e1b95436" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-symfony/zipball/18df9086a84fc28e9a231ea8e91d5aff1a0a3d6f", - "reference": "18df9086a84fc28e9a231ea8e91d5aff1a0a3d6f", + "url": "https://api.github.com/repos/phpstan/phpstan-symfony/zipball/24d8c157aa483141b0579d705ef0aac9e1b95436", + "reference": "24d8c157aa483141b0579d705ef0aac9e1b95436", "shasum": "" }, "require": { "ext-simplexml": "*", - "php": "^7.2 || ^8.0", - "phpstan/phpstan": "^1.12" + "php": "^7.4 || ^8.0", + "phpstan/phpstan": "^2.1.13" }, "conflict": { "symfony/framework-bundle": "<3.0" }, "require-dev": { - "nikic/php-parser": "^4.13.0", "php-parallel-lint/php-parallel-lint": "^1.2", - "phpstan/phpstan-phpunit": "^1.3.11", - "phpstan/phpstan-strict-rules": "^1.5.1", - "phpunit/phpunit": "^8.5.29 || ^9.5", - "psr/container": "1.0 || 1.1.1", + "phpstan/phpstan-phpunit": "^2.0.8", + "phpstan/phpstan-strict-rules": "^2.0", + "phpunit/phpunit": "^9.6", + "psr/container": "1.1.2", "symfony/config": "^5.4 || ^6.1", "symfony/console": "^5.4 || ^6.1", "symfony/dependency-injection": "^5.4 || ^6.1", @@ -8269,9 +8268,9 @@ "description": "Symfony Framework extensions and rules for PHPStan", "support": { "issues": "https://github.com/phpstan/phpstan-symfony/issues", - "source": "https://github.com/phpstan/phpstan-symfony/tree/1.4.16" + "source": "https://github.com/phpstan/phpstan-symfony/tree/2.0.9" }, - "time": "2025-09-07T06:55:28+00:00" + "time": "2025-11-29T11:17:28+00:00" }, { "name": "phpunit/php-code-coverage", @@ -8705,21 +8704,21 @@ }, { "name": "rector/rector", - "version": "1.2.10", + "version": "2.3.0", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "40f9cf38c05296bd32f444121336a521a293fa61" + "reference": "f7166355dcf47482f27be59169b0825995f51c7d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/40f9cf38c05296bd32f444121336a521a293fa61", - "reference": "40f9cf38c05296bd32f444121336a521a293fa61", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/f7166355dcf47482f27be59169b0825995f51c7d", + "reference": "f7166355dcf47482f27be59169b0825995f51c7d", "shasum": "" }, "require": { - "php": "^7.2|^8.0", - "phpstan/phpstan": "^1.12.5" + "php": "^7.4|^8.0", + "phpstan/phpstan": "^2.1.33" }, "conflict": { "rector/rector-doctrine": "*", @@ -8744,6 +8743,7 @@ "MIT" ], "description": "Instant Upgrade and Automated Refactoring of any PHP code", + "homepage": "https://getrector.com/", "keywords": [ "automation", "dev", @@ -8752,7 +8752,7 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/1.2.10" + "source": "https://github.com/rectorphp/rector/tree/2.3.0" }, "funding": [ { @@ -8760,7 +8760,7 @@ "type": "github" } ], - "time": "2024-11-08T13:59:10+00:00" + "time": "2025-12-25T22:00:18+00:00" }, { "name": "sebastian/cli-parser", diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php b/src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php index 764efc5e..0949a469 100755 --- a/src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php +++ b/src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php @@ -42,7 +42,7 @@ use Symfony\Contracts\Translation\TranslatorInterface; /** - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) By making the Form Type classes explicit, MD now realizes couping + * @SuppressWarnings("PHPMD.CouplingBetweenObjects") By making the Form Type classes explicit, MD now realizes couping * is too high. */ final class RaLocationController extends AbstractController diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php b/src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php index f6b2aa49..0e19d76d 100755 --- a/src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php +++ b/src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php @@ -46,7 +46,7 @@ use Symfony\Contracts\Translation\TranslatorInterface; /** - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + * @SuppressWarnings("PHPMD.CouplingBetweenObjects") */ class RaManagementController extends AbstractController { diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php b/src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php index d8d80d63..451d125e 100755 --- a/src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php +++ b/src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php @@ -40,7 +40,7 @@ use Symfony\Contracts\Translation\TranslatorInterface; /** - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) By making the Form Type classes explicit, MD now realizes couping + * @SuppressWarnings("PHPMD.CouplingBetweenObjects") By making the Form Type classes explicit, MD now realizes couping * is to high. */ final class SecondFactorController extends AbstractController diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/Vetting/Gssf/GssfAuthenticateController.php b/src/Surfnet/StepupRa/RaBundle/Controller/Vetting/Gssf/GssfAuthenticateController.php index cdc5b877..d0c3bda8 100755 --- a/src/Surfnet/StepupRa/RaBundle/Controller/Vetting/Gssf/GssfAuthenticateController.php +++ b/src/Surfnet/StepupRa/RaBundle/Controller/Vetting/Gssf/GssfAuthenticateController.php @@ -32,7 +32,7 @@ /** * Orchestrates verification of GSSFs (Generic SAML Second Factors) through GSSPs (Generic SAML Stepup Providers). - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + * @SuppressWarnings("PHPMD.CouplingBetweenObjects") */ final class GssfAuthenticateController extends AbstractController { diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/Vetting/Gssf/GssfInitiateVerificationController.php b/src/Surfnet/StepupRa/RaBundle/Controller/Vetting/Gssf/GssfInitiateVerificationController.php index d176819e..a0e26bb2 100755 --- a/src/Surfnet/StepupRa/RaBundle/Controller/Vetting/Gssf/GssfInitiateVerificationController.php +++ b/src/Surfnet/StepupRa/RaBundle/Controller/Vetting/Gssf/GssfInitiateVerificationController.php @@ -30,7 +30,7 @@ /** * Orchestrates verification of GSSFs (Generic SAML Second Factors) through GSSPs (Generic SAML Stepup Providers). - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + * @SuppressWarnings("PHPMD.CouplingBetweenObjects") */ final class GssfInitiateVerificationController extends AbstractController { diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/Vetting/Gssf/GssfVerifyController.php b/src/Surfnet/StepupRa/RaBundle/Controller/Vetting/Gssf/GssfVerifyController.php index 1f1f7bab..c8406377 100755 --- a/src/Surfnet/StepupRa/RaBundle/Controller/Vetting/Gssf/GssfVerifyController.php +++ b/src/Surfnet/StepupRa/RaBundle/Controller/Vetting/Gssf/GssfVerifyController.php @@ -35,7 +35,7 @@ /** * Orchestrates verification of GSSFs (Generic SAML Second Factors) through GSSPs (Generic SAML Stepup Providers). - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + * @SuppressWarnings("PHPMD.CouplingBetweenObjects") */ final class GssfVerifyController extends AbstractController { diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/Vetting/SmsController.php b/src/Surfnet/StepupRa/RaBundle/Controller/Vetting/SmsController.php index 4b730a2f..9f751de9 100755 --- a/src/Surfnet/StepupRa/RaBundle/Controller/Vetting/SmsController.php +++ b/src/Surfnet/StepupRa/RaBundle/Controller/Vetting/SmsController.php @@ -39,7 +39,7 @@ use Symfony\Contracts\Translation\TranslatorInterface; /** - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + * @SuppressWarnings("PHPMD.CouplingBetweenObjects") */ class SmsController extends AbstractController { diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/VettingController.php b/src/Surfnet/StepupRa/RaBundle/Controller/VettingController.php index 72a52bae..8636865c 100755 --- a/src/Surfnet/StepupRa/RaBundle/Controller/VettingController.php +++ b/src/Surfnet/StepupRa/RaBundle/Controller/VettingController.php @@ -46,8 +46,8 @@ use Surfnet\StepupMiddlewareClientBundle\Identity\Dto\VerifiedSecondFactor; /** - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) + * @SuppressWarnings("PHPMD.CouplingBetweenObjects") + * @SuppressWarnings("PHPMD.ExcessiveMethodLength") */ class VettingController extends AbstractController { @@ -62,9 +62,9 @@ public function __construct( } /** - * @SuppressWarnings(PHPMD.CyclomaticComplexity) https://www.pivotaltracker.com/story/show/135045063 - * @SuppressWarnings(PHPMD.NPathComplexity) https://www.pivotaltracker.com/story/show/135045063 - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) https://www.pivotaltracker.com/story/show/135045063 + * @SuppressWarnings("PHPMD.CyclomaticComplexity") https://www.pivotaltracker.com/story/show/135045063 + * @SuppressWarnings("PHPMD.NPathComplexity") https://www.pivotaltracker.com/story/show/135045063 + * @SuppressWarnings("PHPMD.CouplingBetweenObjects") https://www.pivotaltracker.com/story/show/135045063 */ #[Route( path: '/', @@ -205,8 +205,8 @@ public function cancelProcedure($procedureId): RedirectResponse } /** - * @SuppressWarnings(PHPMD.CyclomaticComplexity) - * @SuppressWarnings(PHPMD.NPathComplexity) + * @SuppressWarnings("PHPMD.CyclomaticComplexity") + * @SuppressWarnings("PHPMD.NPathComplexity") */ #[Route( path: '/vetting-procedure/{procedureId}/verify-identity', diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/VettingTypeHintController.php b/src/Surfnet/StepupRa/RaBundle/Controller/VettingTypeHintController.php index e76e8800..2c29335e 100755 --- a/src/Surfnet/StepupRa/RaBundle/Controller/VettingTypeHintController.php +++ b/src/Surfnet/StepupRa/RaBundle/Controller/VettingTypeHintController.php @@ -50,8 +50,8 @@ public function __construct( } /** - * @SuppressWarnings(PHPMD.CyclomaticComplexity) Given the two forms being handled in this action, cc is higher. - * @SuppressWarnings(PHPMD.NPathComplexity) + * @SuppressWarnings("PHPMD.CyclomaticComplexity") Given the two forms being handled in this action, cc is higher. + * @SuppressWarnings("PHPMD.NPathComplexity") */ #[Route( path: '/vetting-type-hint', diff --git a/src/Surfnet/StepupRa/RaBundle/Logger/ProcedureAwareLogger.php b/src/Surfnet/StepupRa/RaBundle/Logger/ProcedureAwareLogger.php index 41c6ec96..750bf958 100755 --- a/src/Surfnet/StepupRa/RaBundle/Logger/ProcedureAwareLogger.php +++ b/src/Surfnet/StepupRa/RaBundle/Logger/ProcedureAwareLogger.php @@ -22,7 +22,7 @@ use Surfnet\StepupRa\RaBundle\Exception\RuntimeException; /** - * @SuppressWarnings(PHPMD.TooManyPublicMethods) + * @SuppressWarnings("PHPMD.TooManyPublicMethods") */ final class ProcedureAwareLogger implements LoggerInterface { diff --git a/src/Surfnet/StepupRa/RaBundle/Security/Authentication/Provider/SamlProvider.php b/src/Surfnet/StepupRa/RaBundle/Security/Authentication/Provider/SamlProvider.php index cf4a3c1c..612cfd60 100755 --- a/src/Surfnet/StepupRa/RaBundle/Security/Authentication/Provider/SamlProvider.php +++ b/src/Surfnet/StepupRa/RaBundle/Security/Authentication/Provider/SamlProvider.php @@ -37,7 +37,7 @@ use Symfony\Component\Security\Core\User\UserProviderInterface; /** - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) - The SamlProvider needs to test several authorizations in order + * @SuppressWarnings("PHPMD.CouplingBetweenObjects") - The SamlProvider needs to test several authorizations in order * to determine the user may, or may not log in. This causes the coupling. */ class SamlProvider implements SamlProviderInterface, UserProviderInterface @@ -53,8 +53,8 @@ public function __construct( } /** - * @SuppressWarnings(PHPMD.NPathComplexity) - The authorization tests cause the complexity to raise, could and - * @SuppressWarnings(PHPMD.CyclomaticComplexity) might be changed by introducing additional utility classes. + * @SuppressWarnings("PHPMD.NPathComplexity") - The authorization tests cause the complexity to raise, could and + * @SuppressWarnings("PHPMD.CyclomaticComplexity") might be changed by introducing additional utility classes. */ public function getUser(Assertion $assertion): UserInterface { diff --git a/src/Surfnet/StepupRa/RaBundle/Service/RaCandidateService.php b/src/Surfnet/StepupRa/RaBundle/Service/RaCandidateService.php index b0c913b7..698fd56c 100755 --- a/src/Surfnet/StepupRa/RaBundle/Service/RaCandidateService.php +++ b/src/Surfnet/StepupRa/RaBundle/Service/RaCandidateService.php @@ -32,7 +32,7 @@ use Surfnet\StepupRa\RaBundle\Command\SearchRaCandidatesCommand; /** - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + * @SuppressWarnings("PHPMD.CouplingBetweenObjects") */ class RaCandidateService { diff --git a/src/Surfnet/StepupRa/RaBundle/Service/RaListingService.php b/src/Surfnet/StepupRa/RaBundle/Service/RaListingService.php index 4a853c82..9e8f691c 100755 --- a/src/Surfnet/StepupRa/RaBundle/Service/RaListingService.php +++ b/src/Surfnet/StepupRa/RaBundle/Service/RaListingService.php @@ -32,8 +32,8 @@ public function __construct( } /** - * @SuppressWarnings(PHPMD.CyclomaticComplexity) -- The command to query mapping in search exceed the - * @SuppressWarnings(PHPMD.NPathComplexity) CyclomaticComplexity and NPathComplexity threshold. + * @SuppressWarnings("PHPMD.CyclomaticComplexity") -- The command to query mapping in search exceed the + * @SuppressWarnings("PHPMD.NPathComplexity") CyclomaticComplexity and NPathComplexity threshold. */ public function search(SearchRaListingCommand $command): RaListingCollection { diff --git a/src/Surfnet/StepupRa/RaBundle/Service/RaLocationService.php b/src/Surfnet/StepupRa/RaBundle/Service/RaLocationService.php index 3068d1ac..80668277 100755 --- a/src/Surfnet/StepupRa/RaBundle/Service/RaLocationService.php +++ b/src/Surfnet/StepupRa/RaBundle/Service/RaLocationService.php @@ -33,7 +33,7 @@ use Surfnet\StepupRa\RaBundle\Command\SearchRaLocationsCommand; /** - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + * @SuppressWarnings("PHPMD.CouplingBetweenObjects") */ class RaLocationService { diff --git a/src/Surfnet/StepupRa/RaBundle/Service/RaSecondFactorService.php b/src/Surfnet/StepupRa/RaBundle/Service/RaSecondFactorService.php index 7ca3199c..f25e93c3 100755 --- a/src/Surfnet/StepupRa/RaBundle/Service/RaSecondFactorService.php +++ b/src/Surfnet/StepupRa/RaBundle/Service/RaSecondFactorService.php @@ -30,7 +30,7 @@ use Symfony\Component\HttpFoundation\Response; /** - * @SuppressWarnings(PHPMD.NPathComplexity) -- The command to query mapping in search and export exceed the + * @SuppressWarnings("PHPMD.NPathComplexity") -- The command to query mapping in search and export exceed the * NPathComplexity threshold. */ class RaSecondFactorService diff --git a/src/Surfnet/StepupRa/RaBundle/Service/VettingService.php b/src/Surfnet/StepupRa/RaBundle/Service/VettingService.php index c59917af..84fe18b5 100755 --- a/src/Surfnet/StepupRa/RaBundle/Service/VettingService.php +++ b/src/Surfnet/StepupRa/RaBundle/Service/VettingService.php @@ -46,8 +46,8 @@ use Symfony\Contracts\Translation\TranslatorInterface; /** - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) - * @SuppressWarnings(PHPMD.TooManyPublicMethods) + * @SuppressWarnings("PHPMD.CouplingBetweenObjects") + * @SuppressWarnings("PHPMD.TooManyPublicMethods") */ class VettingService { @@ -55,7 +55,7 @@ class VettingService 'Surfnet\Stepup\Exception\DomainException: Cannot vet second factor, the registration window is closed.'; /** - * @SuppressWarnings(PHPMD.ExcessiveParameterList) + * @SuppressWarnings("PHPMD.ExcessiveParameterList") */ public function __construct( private readonly SmsSecondFactorServiceInterface $smsSecondFactorService, diff --git a/src/Surfnet/StepupRa/RaBundle/Value/DateTime.php b/src/Surfnet/StepupRa/RaBundle/Value/DateTime.php index 88f06ad7..71999042 100755 --- a/src/Surfnet/StepupRa/RaBundle/Value/DateTime.php +++ b/src/Surfnet/StepupRa/RaBundle/Value/DateTime.php @@ -26,7 +26,7 @@ use Surfnet\StepupRa\RaBundle\Exception\InvalidArgumentException; /** - * @SuppressWarnings(PHPMD.TooManyPublicMethods) due to comparison methods + * @SuppressWarnings("PHPMD.TooManyPublicMethods") due to comparison methods */ class DateTime implements Stringable { diff --git a/src/Surfnet/StepupRa/RaBundle/VettingProcedure.php b/src/Surfnet/StepupRa/RaBundle/VettingProcedure.php index fb7f2e34..98397bb3 100755 --- a/src/Surfnet/StepupRa/RaBundle/VettingProcedure.php +++ b/src/Surfnet/StepupRa/RaBundle/VettingProcedure.php @@ -25,7 +25,7 @@ use Surfnet\StepupRa\RaBundle\Exception\InvalidArgumentException; /** - * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings("PHPMD.CyclomaticComplexity") */ class VettingProcedure { diff --git a/src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/Configuration.php b/src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/Configuration.php index e26e650a..51b5c451 100755 --- a/src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/Configuration.php +++ b/src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/Configuration.php @@ -23,7 +23,7 @@ use Symfony\Component\Config\Definition\ConfigurationInterface; /** - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) + * @SuppressWarnings("PHPMD.ExcessiveMethodLength") */ class Configuration implements ConfigurationInterface { diff --git a/src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php b/src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php index 22062abd..390fd329 100755 --- a/src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php +++ b/src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php @@ -38,7 +38,7 @@ use Surfnet\SamlBundle\Metadata\MetadataFactory; /** - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + * @SuppressWarnings("PHPMD.CouplingBetweenObjects") */ class SurfnetStepupRaSamlStepupProviderExtension extends Extension { diff --git a/src/Surfnet/StepupRa/SamlStepupProviderBundle/Provider/ViewConfig.php b/src/Surfnet/StepupRa/SamlStepupProviderBundle/Provider/ViewConfig.php index 55457dce..d6f04fc2 100755 --- a/src/Surfnet/StepupRa/SamlStepupProviderBundle/Provider/ViewConfig.php +++ b/src/Surfnet/StepupRa/SamlStepupProviderBundle/Provider/ViewConfig.php @@ -27,7 +27,7 @@ class ViewConfig implements ViewConfigInterface /** * The arrays are arrays of translated text, indexed on locale. * - * @SuppressWarnings(PHPMD.ExcessiveParameterList) + * @SuppressWarnings("PHPMD.ExcessiveParameterList") */ public function __construct( private readonly RequestStack $requestStack, From 5ebd44d567f5f9ee1ff0638922b993b0c652d454 Mon Sep 17 00:00:00 2001 From: Johan Kromhout Date: Thu, 8 Jan 2026 09:58:37 +0100 Subject: [PATCH 04/18] Fix more phpstan issues after upgrade --- ci/qa/phpcbf | 2 +- ci/qa/phpstan-baseline.php | 404 ++++++++---------- ci/qa/phpstan.neon | 1 + ci/qa/phpunit.xml | 7 +- .../RaBundle/Controller/RaaController.php | 5 - .../StepupRa/RaBundle/DateTime/DateTime.php | 3 +- ...ndRegistrationAuthorityInformationType.php | 3 + .../RaBundle/Form/Type/AnchorType.php | 6 +- .../Form/Type/ChangeRaLocationType.php | 3 + .../RaBundle/Form/Type/ChangeRaRoleType.php | 3 + .../Form/Type/CreateRaLocationType.php | 3 + .../RaBundle/Form/Type/CreateRaType.php | 18 +- .../RaBundle/Form/Type/InitiateGssfType.php | 3 + .../Form/Type/RemoveRaLocationType.php | 3 + .../Type/RetractRegistrationAuthorityType.php | 3 + .../Form/Type/RevokeRecoveryTokenType.php | 3 + .../Form/Type/RevokeSecondFactorType.php | 3 + .../Form/Type/RoleAtInstitutionType.php | 1 + .../Form/Type/SearchRaCandidatesType.php | 3 + .../Form/Type/SearchRaListingType.php | 3 + .../Form/Type/SearchRaSecondFactorsType.php | 3 + .../Form/Type/SearchRecoveryTokensType.php | 3 + .../Form/Type/SelectInstitutionType.php | 12 +- .../Form/Type/SendSmsChallengeType.php | 3 + .../Form/Type/StartVettingProcedureType.php | 3 + .../RaBundle/Form/Type/VerifyIdentityType.php | 3 + .../Form/Type/VerifyPhoneNumberType.php | 3 + .../Form/Type/VerifyYubikeyPublicIdType.php | 3 + .../Form/Type/VettingTypeHintType.php | 11 +- ...InstitutionConfigurationOptionsService.php | 2 +- ...onConfigurationOptionsServiceInterface.php | 2 +- .../Service/LocaleProviderService.php | 1 - .../Extensions/Extension/SecondFactorType.php | 2 +- .../StepupRa/RaBundle/Value/DateTime.php | 4 +- .../StepupRa/RaBundle/Value/TimeFrame.php | 2 +- .../Compiler/ViewConfigCollectionPass.php | 4 +- 36 files changed, 301 insertions(+), 240 deletions(-) diff --git a/ci/qa/phpcbf b/ci/qa/phpcbf index ff3fa206..6cbd9a5f 100755 --- a/ci/qa/phpcbf +++ b/ci/qa/phpcbf @@ -3,4 +3,4 @@ cd $(dirname $0)/../../ # https://github.com/squizlabs/PHP_CodeSniffer/wiki/Fixing-Errors-Automatically -./vendor/bin/phpcbf --standard=ci/qa/phpcs.xml $1 +./vendor/bin/phpcbf --standard=ci/qa/phpcs.xml src $1 diff --git a/ci/qa/phpstan-baseline.php b/ci/qa/phpstan-baseline.php index 9c9280c3..af0299b8 100644 --- a/ci/qa/phpstan-baseline.php +++ b/ci/qa/phpstan-baseline.php @@ -2,1160 +2,1136 @@ $ignoreErrors = []; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Assert\\:\\:keysAre\\(\\) has parameter \\$array with no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Assert.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Assert\\:\\:keysAre\\(\\) has parameter \\$expectedKeys with no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Assert.php', ]; $ignoreErrors[] = [ - // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Assert\\:\\:keysAre\\(\\) has parameter \\$propertyPath with no type specified\\.$#', + 'identifier' => 'missingType.parameter', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Assert.php', ]; $ignoreErrors[] = [ - // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\AccreditCandidateCommand has an uninitialized property \\$contactInformation\\. Give it default value or assign it in the constructor\\.$#', + 'identifier' => 'property.uninitialized', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/AccreditCandidateCommand.php', ]; $ignoreErrors[] = [ - // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\AccreditCandidateCommand has an uninitialized property \\$identityId\\. Give it default value or assign it in the constructor\\.$#', + 'identifier' => 'property.uninitialized', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/AccreditCandidateCommand.php', ]; $ignoreErrors[] = [ - // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\AccreditCandidateCommand has an uninitialized property \\$institution\\. Give it default value or assign it in the constructor\\.$#', + 'identifier' => 'property.uninitialized', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/AccreditCandidateCommand.php', ]; $ignoreErrors[] = [ - // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\AccreditCandidateCommand has an uninitialized property \\$location\\. Give it default value or assign it in the constructor\\.$#', + 'identifier' => 'property.uninitialized', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/AccreditCandidateCommand.php', ]; $ignoreErrors[] = [ - // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\AccreditCandidateCommand has an uninitialized property \\$roleAtInstitution\\. Give it default value or assign it in the constructor\\.$#', + 'identifier' => 'property.uninitialized', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/AccreditCandidateCommand.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\AccreditCandidateCommand\\:\\:\\$availableInstitutions type has no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/AccreditCandidateCommand.php', ]; $ignoreErrors[] = [ - // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\AmendRegistrationAuthorityInformationCommand has an uninitialized property \\$contactInformation\\. Give it default value or assign it in the constructor\\.$#', + 'identifier' => 'property.uninitialized', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/AmendRegistrationAuthorityInformationCommand.php', ]; $ignoreErrors[] = [ - // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\AmendRegistrationAuthorityInformationCommand has an uninitialized property \\$identityId\\. Give it default value or assign it in the constructor\\.$#', + 'identifier' => 'property.uninitialized', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/AmendRegistrationAuthorityInformationCommand.php', ]; $ignoreErrors[] = [ - // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\AmendRegistrationAuthorityInformationCommand has an uninitialized property \\$institution\\. Give it default value or assign it in the constructor\\.$#', + 'identifier' => 'property.uninitialized', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/AmendRegistrationAuthorityInformationCommand.php', ]; $ignoreErrors[] = [ - // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\AmendRegistrationAuthorityInformationCommand has an uninitialized property \\$location\\. Give it default value or assign it in the constructor\\.$#', + 'identifier' => 'property.uninitialized', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/AmendRegistrationAuthorityInformationCommand.php', ]; $ignoreErrors[] = [ - // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\ChangeRaLocationCommand has an uninitialized property \\$contactInformation\\. Give it default value or assign it in the constructor\\.$#', + 'identifier' => 'property.uninitialized', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/ChangeRaLocationCommand.php', ]; $ignoreErrors[] = [ - // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\ChangeRaLocationCommand has an uninitialized property \\$currentUserId\\. Give it default value or assign it in the constructor\\.$#', + 'identifier' => 'property.uninitialized', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/ChangeRaLocationCommand.php', ]; $ignoreErrors[] = [ - // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\ChangeRaLocationCommand has an uninitialized property \\$id\\. Give it default value or assign it in the constructor\\.$#', + 'identifier' => 'property.uninitialized', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/ChangeRaLocationCommand.php', ]; $ignoreErrors[] = [ - // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\ChangeRaLocationCommand has an uninitialized property \\$institution\\. Give it default value or assign it in the constructor\\.$#', + 'identifier' => 'property.uninitialized', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/ChangeRaLocationCommand.php', ]; $ignoreErrors[] = [ - // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\ChangeRaLocationCommand has an uninitialized property \\$location\\. Give it default value or assign it in the constructor\\.$#', + 'identifier' => 'property.uninitialized', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/ChangeRaLocationCommand.php', ]; $ignoreErrors[] = [ - // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\ChangeRaLocationCommand has an uninitialized property \\$name\\. Give it default value or assign it in the constructor\\.$#', + 'identifier' => 'property.uninitialized', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/ChangeRaLocationCommand.php', ]; $ignoreErrors[] = [ - // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaCandidatesCommand has an uninitialized property \\$actorId\\. Give it default value or assign it in the constructor\\.$#', + 'identifier' => 'property.uninitialized', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/SearchRaCandidatesCommand.php', ]; $ignoreErrors[] = [ - // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaCandidatesCommand has an uninitialized property \\$institutionFilterOptions\\. Give it default value or assign it in the constructor\\.$#', + 'identifier' => 'property.uninitialized', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/SearchRaCandidatesCommand.php', ]; $ignoreErrors[] = [ - // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaCandidatesCommand has an uninitialized property \\$pageNumber\\. Give it default value or assign it in the constructor\\.$#', + 'identifier' => 'property.uninitialized', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/SearchRaCandidatesCommand.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaCandidatesCommand\\:\\:\\$institutionFilterOptions type has no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/SearchRaCandidatesCommand.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaListingCommand\\:\\:\\$institutionFilterOptions type has no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/SearchRaListingCommand.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaListingCommand\\:\\:\\$raInstitutionFilterOptions type has no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/SearchRaListingCommand.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaSecondFactorsCommand\\:\\:\\$institutionFilterOptions type has no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/SearchRaSecondFactorsCommand.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRecoveryTokensCommand\\:\\:\\$institutionFilterOptions type has no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/SearchRecoveryTokensCommand.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SelectInstitutionCommand\\:\\:\\$availableInstitutions type has no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/SelectInstitutionCommand.php', ]; $ignoreErrors[] = [ - // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\StartVettingProcedureCommand has an uninitialized property \\$authorityId\\. Give it default value or assign it in the constructor\\.$#', + 'identifier' => 'property.uninitialized', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/StartVettingProcedureCommand.php', ]; $ignoreErrors[] = [ - // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\StartVettingProcedureCommand has an uninitialized property \\$authorityLoa\\. Give it default value or assign it in the constructor\\.$#', + 'identifier' => 'property.uninitialized', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/StartVettingProcedureCommand.php', ]; $ignoreErrors[] = [ - // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\StartVettingProcedureCommand has an uninitialized property \\$registrationCode\\. Give it default value or assign it in the constructor\\.$#', + 'identifier' => 'property.uninitialized', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/StartVettingProcedureCommand.php', ]; $ignoreErrors[] = [ - // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\StartVettingProcedureCommand has an uninitialized property \\$secondFactor\\. Give it default value or assign it in the constructor\\.$#', + 'identifier' => 'property.uninitialized', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/StartVettingProcedureCommand.php', ]; $ignoreErrors[] = [ - // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\VerifyIdentityCommand has an uninitialized property \\$documentNumber\\. Give it default value or assign it in the constructor\\.$#', + 'identifier' => 'property.uninitialized', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/VerifyIdentityCommand.php', ]; $ignoreErrors[] = [ - // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\VerifyIdentityCommand has an uninitialized property \\$identityVerified\\. Give it default value or assign it in the constructor\\.$#', + 'identifier' => 'property.uninitialized', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/VerifyIdentityCommand.php', ]; $ignoreErrors[] = [ - // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\VettingTypeHintCommand\\:\\:__get\\(\\) has parameter \\$name with no type specified\\.$#', + 'identifier' => 'missingType.parameter', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/VettingTypeHintCommand.php', ]; $ignoreErrors[] = [ - // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\VettingTypeHintCommand\\:\\:__isset\\(\\) has parameter \\$name with no type specified\\.$#', + 'identifier' => 'missingType.parameter', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/VettingTypeHintCommand.php', ]; $ignoreErrors[] = [ - // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\VettingTypeHintCommand\\:\\:__set\\(\\) has parameter \\$value with no type specified\\.$#', + 'identifier' => 'missingType.parameter', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/VettingTypeHintCommand.php', ]; $ignoreErrors[] = [ - // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\VettingTypeHintCommand\\:\\:assertValidLanguageInName\\(\\) has parameter \\$name with no type specified\\.$#', + 'identifier' => 'missingType.parameter', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/VettingTypeHintCommand.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\VettingTypeHintCommand\\:\\:setHints\\(\\) has parameter \\$hints with no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Command/VettingTypeHintCommand.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Controller\\\\ExceptionController\\:\\:getPageTitleAndDescription\\(\\) return type has no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/ExceptionController.php', ]; $ignoreErrors[] = [ - // identifier: method.nonObject 'message' => '#^Cannot call method getIdentity\\(\\) on Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null\\.$#', + 'identifier' => 'method.nonObject', 'count' => 2, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/LocaleController.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#1 \\$url of method Symfony\\\\Bundle\\\\FrameworkBundle\\\\Controller\\\\AbstractController\\:\\:redirect\\(\\) expects string, string\\|null given\\.$#', + 'identifier' => 'argument.type', 'count' => 3, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/LocaleController.php', ]; $ignoreErrors[] = [ - // identifier: method.nonObject 'message' => '#^Cannot call method getIdentity\\(\\) on Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null\\.$#', + 'identifier' => 'method.nonObject', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/ProfileController.php', ]; $ignoreErrors[] = [ - // identifier: method.nonObject 'message' => '#^Cannot call method getIdentity\\(\\) on Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null\\.$#', + 'identifier' => 'method.nonObject', 'count' => 4, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php', ]; $ignoreErrors[] = [ - // identifier: method.nonObject 'message' => '#^Cannot call method getRaaInstitutions\\(\\) on Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Dto\\\\Profile\\|null\\.$#', + 'identifier' => 'method.nonObject', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#1 \\$id of method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\RaLocationService\\:\\:find\\(\\) expects string, mixed given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#2 \\.\\.\\.\\$values of function sprintf expects bool\\|float\\|int\\|string\\|null, mixed given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php', ]; $ignoreErrors[] = [ - // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\CreateRaLocationCommand\\:\\:\\$institution \\(string\\) does not accept mixed\\.$#', + 'identifier' => 'assign.propertyType', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php', ]; $ignoreErrors[] = [ - // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaLocationsCommand\\:\\:\\$orderBy \\(string\\|null\\) does not accept mixed\\.$#', + 'identifier' => 'assign.propertyType', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php', ]; $ignoreErrors[] = [ - // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaLocationsCommand\\:\\:\\$orderDirection \\(string\\|null\\) does not accept mixed\\.$#', + 'identifier' => 'assign.propertyType', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php', ]; $ignoreErrors[] = [ - // identifier: property.notFound 'message' => '#^Access to an undefined property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaCandidatesCommand\\:\\:\\$actorInstitution\\.$#', + 'identifier' => 'property.notFound', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ - // identifier: method.notFound 'message' => '#^Call to an undefined method Symfony\\\\Component\\\\Form\\\\FormInterface\\:\\:isClicked\\(\\)\\.$#', + 'identifier' => 'method.notFound', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ - // identifier: method.nonObject 'message' => '#^Cannot call method getIdentity\\(\\) on Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null\\.$#', + 'identifier' => 'method.nonObject', 'count' => 7, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ - // identifier: method.nonObject 'message' => '#^Cannot call method getInstitution\\(\\) on Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null\\.$#', + 'identifier' => 'method.nonObject', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ - // identifier: cast.int 'message' => '#^Cannot cast mixed to int\\.$#', + 'identifier' => 'cast.int', 'count' => 2, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ - // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Controller\\\\RaManagementController\\:\\:amendRaInformation\\(\\) has parameter \\$identityId with no type specified\\.$#', + 'identifier' => 'missingType.parameter', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ - // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Controller\\\\RaManagementController\\:\\:amendRaInformation\\(\\) has parameter \\$raInstitution with no type specified\\.$#', + 'identifier' => 'missingType.parameter', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ - // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Controller\\\\RaManagementController\\:\\:retractRegistrationAuthority\\(\\) has parameter \\$identityId with no type specified\\.$#', + 'identifier' => 'missingType.parameter', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ - // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Controller\\\\RaManagementController\\:\\:retractRegistrationAuthority\\(\\) has parameter \\$raInstitution with no type specified\\.$#', + 'identifier' => 'missingType.parameter', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#1 \\$identityId of method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\RaCandidateService\\:\\:getRaCandidate\\(\\) expects string, mixed given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#2 \\.\\.\\.\\$values of function sprintf expects bool\\|float\\|int\\|string\\|null, mixed given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ - // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\AccreditCandidateCommand\\:\\:\\$identityId \\(string\\) does not accept mixed\\.$#', + 'identifier' => 'assign.propertyType', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ - // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaCandidatesCommand\\:\\:\\$orderBy \\(string\\|null\\) does not accept mixed\\.$#', + 'identifier' => 'assign.propertyType', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ - // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaCandidatesCommand\\:\\:\\$orderDirection \\(string\\|null\\) does not accept mixed\\.$#', + 'identifier' => 'assign.propertyType', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ - // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaListingCommand\\:\\:\\$orderBy \\(string\\|null\\) does not accept mixed\\.$#', + 'identifier' => 'assign.propertyType', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ - // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaListingCommand\\:\\:\\$orderDirection \\(string\\|null\\) does not accept mixed\\.$#', + 'identifier' => 'assign.propertyType', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; $ignoreErrors[] = [ - // identifier: method.nonObject 'message' => '#^Cannot call method getIdentity\\(\\) on Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null\\.$#', + 'identifier' => 'method.nonObject', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaaController.php', ]; $ignoreErrors[] = [ - // identifier: method.nonObject 'message' => '#^Cannot call method getRaaInstitutions\\(\\) on Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Dto\\\\Profile\\|null\\.$#', + 'identifier' => 'method.nonObject', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaaController.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#1 \\$identityId of method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\ProfileService\\:\\:findByIdentityId\\(\\) expects string, string\\|null given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaaController.php', ]; $ignoreErrors[] = [ - // identifier: method.nonObject 'message' => '#^Cannot call method getIdentity\\(\\) on Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null\\.$#', + 'identifier' => 'method.nonObject', 'count' => 2, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RecoveryTokenController.php', ]; $ignoreErrors[] = [ - // identifier: cast.int 'message' => '#^Cannot cast mixed to int\\.$#', + 'identifier' => 'cast.int', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RecoveryTokenController.php', ]; $ignoreErrors[] = [ - // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRecoveryTokensCommand\\:\\:\\$orderBy \\(string\\|null\\) does not accept mixed\\.$#', + 'identifier' => 'assign.propertyType', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RecoveryTokenController.php', ]; $ignoreErrors[] = [ - // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRecoveryTokensCommand\\:\\:\\$orderDirection \\(string\\|null\\) does not accept mixed\\.$#', + 'identifier' => 'assign.propertyType', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RecoveryTokenController.php', ]; $ignoreErrors[] = [ - // identifier: method.notFound - 'message' => '#^Call to an undefined method Symfony\\\\Component\\\\Form\\\\FormInterface\\\\:\\:getClickedButton\\(\\)\\.$#', + 'message' => '#^Call to an undefined method Symfony\\\\Component\\\\Form\\\\FormInterface\\\\:\\:getClickedButton\\(\\)\\.$#', + 'identifier' => 'method.notFound', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', ]; $ignoreErrors[] = [ - // identifier: method.notFound 'message' => '#^Call to an undefined method Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserProviderInterface\\:\\:findById\\(\\)\\.$#', + 'identifier' => 'method.notFound', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', ]; $ignoreErrors[] = [ - // identifier: method.nonObject 'message' => '#^Cannot call method getIdentity\\(\\) on Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null\\.$#', + 'identifier' => 'method.nonObject', 'count' => 3, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', ]; $ignoreErrors[] = [ - // identifier: cast.int 'message' => '#^Cannot cast mixed to int\\.$#', + 'identifier' => 'cast.int', 'count' => 2, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', ]; $ignoreErrors[] = [ - // identifier: missingType.generics 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Controller\\\\SecondFactorController\\:\\:__construct\\(\\) has parameter \\$identityService with generic interface Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserProviderInterface but does not specify its types\\: TUser$#', + 'identifier' => 'missingType.generics', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#2 \\.\\.\\.\\$values of function sprintf expects bool\\|float\\|int\\|string\\|null, mixed given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#3 \\.\\.\\.\\$values of function sprintf expects bool\\|float\\|int\\|string\\|null, mixed given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', ]; $ignoreErrors[] = [ - // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaSecondFactorsCommand\\:\\:\\$orderBy \\(string\\|null\\) does not accept mixed\\.$#', + 'identifier' => 'assign.propertyType', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', ]; $ignoreErrors[] = [ - // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaSecondFactorsCommand\\:\\:\\$orderDirection \\(string\\|null\\) does not accept mixed\\.$#', + 'identifier' => 'assign.propertyType', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', ]; $ignoreErrors[] = [ - // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchSecondFactorAuditLogCommand\\:\\:\\$orderBy \\(string\\|null\\) does not accept mixed\\.$#', + 'identifier' => 'assign.propertyType', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', ]; $ignoreErrors[] = [ - // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchSecondFactorAuditLogCommand\\:\\:\\$orderDirection \\(string\\|null\\) does not accept mixed\\.$#', + 'identifier' => 'assign.propertyType', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Controller\\\\Vetting\\\\Gssf\\\\GssfInitiateFormService\\:\\:renderInitiateForm\\(\\) has parameter \\$parameters with no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/Vetting/Gssf/GssfInitiateFormService.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#1 \\$gssfId of method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\VettingService\\:\\:verifyGssfId\\(\\) expects string, string\\|null given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/Vetting/Gssf/GssfVerifyController.php', ]; $ignoreErrors[] = [ - // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Controller\\\\VettingController\\:\\:cancelProcedure\\(\\) has parameter \\$procedureId with no type specified\\.$#', + 'identifier' => 'missingType.parameter', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/VettingController.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#2 \\$actorId of method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\SecondFactorService\\:\\:findVerifiedSecondFactorByRegistrationCode\\(\\) expects string, string\\|null given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/VettingController.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#2 \\$haystack of function in_array expects array, array\\|bool\\|float\\|int\\|string\\|null given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/VettingController.php', ]; $ignoreErrors[] = [ - // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\StartVettingProcedureCommand\\:\\:\\$authorityId \\(string\\) does not accept string\\|null\\.$#', + 'identifier' => 'assign.propertyType', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/VettingController.php', ]; $ignoreErrors[] = [ - // identifier: method.nonObject 'message' => '#^Cannot call method getRaaInstitutions\\(\\) on Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Dto\\\\Profile\\|null\\.$#', + 'identifier' => 'method.nonObject', 'count' => 2, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/VettingTypeHintController.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Controller\\\\VettingTypeHintController\\:\\:__construct\\(\\) has parameter \\$locales with no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/VettingTypeHintController.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#1 \\$identityId of method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\ProfileService\\:\\:findByIdentityId\\(\\) expects string, string\\|null given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/VettingTypeHintController.php', ]; $ignoreErrors[] = [ - // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\VettingTypeHintCommand\\:\\:\\$identityId \\(string\\) does not accept string\\|null\\.$#', + 'identifier' => 'assign.propertyType', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/VettingTypeHintController.php', ]; $ignoreErrors[] = [ - // identifier: method.notFound 'message' => '#^Call to an undefined method Symfony\\\\Contracts\\\\Translation\\\\TranslatorInterface\\:\\:setLocale\\(\\)\\.$#', + 'identifier' => 'method.notFound', 'count' => 2, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/EventListener/LocaleListener.php', ]; $ignoreErrors[] = [ - // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Exception\\\\AssertionFailedException\\:\\:__construct\\(\\) has parameter \\$code with no type specified\\.$#', + 'identifier' => 'missingType.parameter', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Exception/AssertionFailedException.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Exception\\\\AssertionFailedException\\:\\:__construct\\(\\) has parameter \\$constraints with no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Exception/AssertionFailedException.php', ]; $ignoreErrors[] = [ - // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Exception\\\\AssertionFailedException\\:\\:__construct\\(\\) has parameter \\$message with no type specified\\.$#', + 'identifier' => 'missingType.parameter', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Exception/AssertionFailedException.php', ]; $ignoreErrors[] = [ - // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Exception\\\\AssertionFailedException\\:\\:__construct\\(\\) has parameter \\$propertyPath with no type specified\\.$#', + 'identifier' => 'missingType.parameter', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Exception/AssertionFailedException.php', ]; $ignoreErrors[] = [ - // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Exception\\\\AssertionFailedException\\:\\:__construct\\(\\) has parameter \\$value with no type specified\\.$#', + 'identifier' => 'missingType.parameter', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Exception/AssertionFailedException.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Exception\\\\AssertionFailedException\\:\\:getConstraints\\(\\) return type has no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Exception/AssertionFailedException.php', ]; $ignoreErrors[] = [ - // identifier: missingType.return 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Exception\\\\AssertionFailedException\\:\\:getPropertyPath\\(\\) has no return type specified\\.$#', + 'identifier' => 'missingType.return', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Exception/AssertionFailedException.php', ]; $ignoreErrors[] = [ - // identifier: missingType.return 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Exception\\\\AssertionFailedException\\:\\:getValue\\(\\) has no return type specified\\.$#', + 'identifier' => 'missingType.return', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Exception/AssertionFailedException.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Form\\\\Extension\\\\RaRoleChoiceList\\:\\:buildChoices\\(\\) return type has no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Form/Extension/RaRoleChoiceList.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Form\\\\Extension\\\\RaRoleChoiceList\\:\\:create\\(\\) return type has no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Form/Extension/RaRoleChoiceList.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Form\\\\Extension\\\\RaRoleChoiceList\\:\\:getChoices\\(\\) return type has no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Form/Extension/RaRoleChoiceList.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Form\\\\Extension\\\\SecondFactorTypeChoiceList\\:\\:create\\(\\) return type has no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Form/Extension/SecondFactorTypeChoiceList.php', ]; $ignoreErrors[] = [ - // identifier: property.nonObject - 'message' => '#^Cannot access property \\$availableInstitutions on mixed\\.$#', - 'count' => 2, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Form/Type/CreateRaType.php', -]; -$ignoreErrors[] = [ - // identifier: property.nonObject - 'message' => '#^Cannot access property \\$availableInstitutions on mixed\\.$#', - 'count' => 1, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Form/Type/SelectInstitutionType.php', -]; -$ignoreErrors[] = [ - // identifier: property.nonObject - 'message' => '#^Cannot access property \\$locales on mixed\\.$#', - 'count' => 1, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Form/Type/VettingTypeHintType.php', -]; -$ignoreErrors[] = [ - // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Logger\\\\ProcedureAwareLogger has an uninitialized property \\$procedure\\. Give it default value or assign it in the constructor\\.$#', + 'identifier' => 'property.uninitialized', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Logger/ProcedureAwareLogger.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Logger\\\\ProcedureAwareLogger\\:\\:enrichContext\\(\\) has parameter \\$context with no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Logger/ProcedureAwareLogger.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Logger\\\\ProcedureAwareLogger\\:\\:enrichContext\\(\\) return type has no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Logger/ProcedureAwareLogger.php', ]; $ignoreErrors[] = [ - // identifier: return.type 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Repository\\\\SessionVettingProcedureRepository\\:\\:retrieve\\(\\) should return Surfnet\\\\StepupRa\\\\RaBundle\\\\VettingProcedure\\|null but returns mixed\\.$#', + 'identifier' => 'return.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Repository/SessionVettingProcedureRepository.php', ]; $ignoreErrors[] = [ - // identifier: missingType.return 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Repository\\\\VettingProcedureRepository\\:\\:store\\(\\) has no return type specified\\.$#', + 'identifier' => 'missingType.return', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Repository/VettingProcedureRepository.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\AuthenticatedIdentity\\:\\:__construct\\(\\) has parameter \\$roles with no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/AuthenticatedIdentity.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\AuthenticatedIdentity\\:\\:eraseCredentials\\(\\) return type has no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/AuthenticatedIdentity.php', ]; $ignoreErrors[] = [ - // identifier: missingType.return 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\Authentication\\\\AuthenticatedSessionStateHandler\\:\\:setCurrentRequestUri\\(\\) has no return type specified\\.$#', + 'identifier' => 'missingType.return', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/AuthenticatedSessionStateHandler.php', ]; $ignoreErrors[] = [ - // identifier: property.nonObject 'message' => '#^Cannot access property \\$authorizations on Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Dto\\\\Profile\\|null\\.$#', + 'identifier' => 'property.nonObject', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/Provider/SamlProvider.php', ]; $ignoreErrors[] = [ - // identifier: property.nonObject 'message' => '#^Cannot access property \\$isSraa on Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Dto\\\\Profile\\|null\\.$#', + 'identifier' => 'property.nonObject', 'count' => 2, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/Provider/SamlProvider.php', ]; $ignoreErrors[] = [ - // identifier: missingType.generics 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\Authentication\\\\Provider\\\\SamlProvider implements generic interface Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserProviderInterface but does not specify its types\\: TUser$#', + 'identifier' => 'missingType.generics', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/Provider/SamlProvider.php', ]; $ignoreErrors[] = [ - // identifier: return.type 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\Authentication\\\\Provider\\\\SamlProvider\\:\\:getNameId\\(\\) should return string but returns string\\|null\\.$#', + 'identifier' => 'return.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/Provider/SamlProvider.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#1 \\$array of function reset expects array\\|object, mixed given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/Provider/SamlProvider.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#1 \\$identityId of method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\ProfileService\\:\\:findByIdentityId\\(\\) expects string, string\\|null given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/Provider/SamlProvider.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#1 \\$loaIdentifier of method Surfnet\\\\StepupBundle\\\\Service\\\\LoaResolutionService\\:\\:getLoa\\(\\) expects string, string\\|null given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/Provider/SamlProvider.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#1 \\$nameId of method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\IdentityService\\:\\:findByNameIdAndInstitution\\(\\) expects string, string\\|null given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/Provider/SamlProvider.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#1 \\$value of function count expects array\\|Countable, mixed given\\.$#', + 'identifier' => 'argument.type', 'count' => 2, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/Provider/SamlProvider.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#2 \\$loa of class Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\AuthenticatedIdentity constructor expects Surfnet\\\\StepupBundle\\\\Value\\\\Loa, Surfnet\\\\StepupBundle\\\\Value\\\\Loa\\|null given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/Provider/SamlProvider.php', ]; $ignoreErrors[] = [ - // identifier: missingType.return 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\Authentication\\\\SamlAuthenticationStateHandler\\:\\:setRequestId\\(\\) has no return type specified\\.$#', + 'identifier' => 'missingType.return', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/SamlAuthenticationStateHandler.php', ]; $ignoreErrors[] = [ - // identifier: return.type 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\Authentication\\\\Session\\\\SessionStorage\\:\\:getCurrentRequestUri\\(\\) should return string but returns mixed\\.$#', + 'identifier' => 'return.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/Session/SessionStorage.php', ]; $ignoreErrors[] = [ - // identifier: return.type 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\Authentication\\\\Session\\\\SessionStorage\\:\\:getRequestId\\(\\) should return string\\|null but returns mixed\\.$#', + 'identifier' => 'return.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/Session/SessionStorage.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#1 \\$string of static method Surfnet\\\\StepupRa\\\\RaBundle\\\\Value\\\\DateTime\\:\\:fromString\\(\\) expects string, mixed given\\.$#', + 'identifier' => 'argument.type', 'count' => 2, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Authentication/Session/SessionStorage.php', ]; $ignoreErrors[] = [ - // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\Factory\\\\SamlFactory\\:\\:create\\(\\) has parameter \\$config with no type specified\\.$#', + 'identifier' => 'missingType.parameter', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Factory/SamlFactory.php', ]; $ignoreErrors[] = [ - // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\Factory\\\\SamlFactory\\:\\:create\\(\\) has parameter \\$defaultEntryPoint with no type specified\\.$#', + 'identifier' => 'missingType.parameter', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Factory/SamlFactory.php', ]; $ignoreErrors[] = [ - // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\Factory\\\\SamlFactory\\:\\:create\\(\\) has parameter \\$userProvider with no type specified\\.$#', + 'identifier' => 'missingType.parameter', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Factory/SamlFactory.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\Factory\\\\SamlFactory\\:\\:create\\(\\) return type has no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Factory/SamlFactory.php', ]; $ignoreErrors[] = [ - // identifier: return.type 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\Factory\\\\SamlFactory\\:\\:createAuthenticator\\(\\) should return array\\\\|string but returns array\\\\.$#', + 'identifier' => 'return.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/Factory/SamlFactory.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#1 \\$orderBy of method Surfnet\\\\StepupMiddlewareClient\\\\Identity\\\\Dto\\\\SecondFactorAuditLogSearchQuery\\:\\:setOrderBy\\(\\) expects string, string\\|null given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/AuditLogService.php', ]; $ignoreErrors[] = [ - // identifier: method.nonObject 'message' => '#^Cannot call method getUser\\(\\) on Symfony\\\\Component\\\\Security\\\\Core\\\\Authentication\\\\Token\\\\TokenInterface\\|null\\.$#', + 'identifier' => 'method.nonObject', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/CommandService.php', ]; $ignoreErrors[] = [ - // identifier: offsetAccess.nonOffsetAccessible 'message' => '#^Cannot access offset \'gssfId\' on mixed\\.$#', + 'identifier' => 'offsetAccess.nonOffsetAccessible', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/GssfService.php', ]; $ignoreErrors[] = [ - // identifier: offsetAccess.nonOffsetAccessible 'message' => '#^Cannot access offset \'procedureId\' on mixed\\.$#', + 'identifier' => 'offsetAccess.nonOffsetAccessible', 'count' => 2, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/GssfService.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#1 \\$procedureId of static method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\Gssf\\\\VerificationResult\\:\\:verificationFailed\\(\\) expects string, mixed given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/GssfService.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#1 \\$procedureId of static method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\Gssf\\\\VerificationResult\\:\\:verificationSucceeded\\(\\) expects string, mixed given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/GssfService.php', ]; $ignoreErrors[] = [ - // identifier: missingType.generics 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\IdentityService implements generic interface Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserProviderInterface but does not specify its types\\: TUser$#', + 'identifier' => 'missingType.generics', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/IdentityService.php', ]; $ignoreErrors[] = [ - // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\IdentityService\\:\\:supportsClass\\(\\) has parameter \\$class with no type specified\\.$#', + 'identifier' => 'missingType.parameter', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/IdentityService.php', ]; $ignoreErrors[] = [ - // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\InstitutionConfigurationOptionsServiceInterface\\:\\:getInstitutionConfigurationOptionsFor\\(\\) has parameter \\$institution with no type specified\\.$#', + 'identifier' => 'missingType.parameter', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/InstitutionConfigurationOptionsServiceInterface.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\InstitutionListingService\\:\\:getAll\\(\\) return type has no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/InstitutionListingService.php', ]; $ignoreErrors[] = [ - // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Command\\\\AccreditIdentityCommand\\:\\:\\$raInstitution \\(string\\) does not accept string\\|null\\.$#', + 'identifier' => 'assign.propertyType', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaCandidateService.php', ]; $ignoreErrors[] = [ - // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Command\\\\AccreditIdentityCommand\\:\\:\\$role \\(string\\) does not accept string\\|null\\.$#', + 'identifier' => 'assign.propertyType', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaCandidateService.php', ]; $ignoreErrors[] = [ - // identifier: booleanAnd.leftAlwaysTrue - 'message' => '#^Left side of && is always true\\.$#', - 'count' => 2, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaListingService.php', -]; -$ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#1 \\$raInstitution of method Surfnet\\\\StepupMiddlewareClient\\\\Identity\\\\Dto\\\\RaListingSearchQuery\\:\\:setRaInstitution\\(\\) expects string, string\\|null given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaListingService.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#1 \\$role of method Surfnet\\\\StepupMiddlewareClient\\\\Identity\\\\Dto\\\\RaListingSearchQuery\\:\\:setRole\\(\\) expects string, string\\|null given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaListingService.php', ]; $ignoreErrors[] = [ - // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\RaSecondFactorExport\\:\\:export\\(\\) has parameter \\$fileName with no type specified\\.$#', + 'identifier' => 'missingType.parameter', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaSecondFactorExport.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#1 \\$stream of function fclose expects resource, resource\\|false given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaSecondFactorExport.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#1 \\$stream of function fflush expects resource, resource\\|false given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaSecondFactorExport.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#1 \\$stream of function fputcsv expects resource, resource\\|false given\\.$#', + 'identifier' => 'argument.type', 'count' => 2, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaSecondFactorExport.php', ]; $ignoreErrors[] = [ - // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\RaSecondFactorService\\:\\:buildQuery\\(\\) has parameter \\$command with no type specified\\.$#', + 'identifier' => 'missingType.parameter', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaSecondFactorService.php', ]; $ignoreErrors[] = [ - // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\RaSecondFactorService\\:\\:buildQuery\\(\\) has parameter \\$query with no type specified\\.$#', + 'identifier' => 'missingType.parameter', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaSecondFactorService.php', ]; $ignoreErrors[] = [ - // identifier: return.type 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\RaSecondFactorService\\:\\:search\\(\\) should return Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Dto\\\\RaSecondFactorCollection but returns Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Dto\\\\RaSecondFactorCollection\\|null\\.$#', + 'identifier' => 'return.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaSecondFactorService.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#1 \\$collection of method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\RaSecondFactorExport\\:\\:export\\(\\) expects Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Dto\\\\RaSecondFactorExportCollection, Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Dto\\\\RaSecondFactorExportCollection\\|null given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaSecondFactorService.php', ]; $ignoreErrors[] = [ - // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Command\\\\AppointRoleCommand\\:\\:\\$role \\(string\\) does not accept string\\|null\\.$#', + 'identifier' => 'assign.propertyType', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaService.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#2 \\$haystack of function in_array expects array, array\\|bool\\|float\\|int\\|string\\|null given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/SecondFactorAssertionService.php', ]; $ignoreErrors[] = [ - // identifier: method.nonObject 'message' => '#^Cannot call method getElements\\(\\) on Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Dto\\\\VerifiedSecondFactorCollection\\|null\\.$#', + 'identifier' => 'method.nonObject', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/SecondFactorService.php', ]; $ignoreErrors[] = [ - // identifier: return.type 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\SecondFactorService\\:\\:findVerifiedSecondFactorByRegistrationCode\\(\\) should return Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Dto\\\\VerifiedSecondFactor\\|null but returns Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Dto\\\\VerifiedSecondFactor\\|false\\.$#', + 'identifier' => 'return.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/SecondFactorService.php', ]; $ignoreErrors[] = [ - // identifier: method.nonObject 'message' => '#^Cannot call method getYubikeyPublicId\\(\\) on Surfnet\\\\StepupBundle\\\\Value\\\\YubikeyPublicId\\|null\\.$#', + 'identifier' => 'method.nonObject', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/VettingService.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#1 \\$procedureId of method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\VettingService\\:\\:getProcedure\\(\\) expects string, string\\|null given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/VettingService.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#1 \\$secondFactorIdentifier of method Surfnet\\\\StepupRa\\\\RaBundle\\\\VettingProcedure\\:\\:verifySecondFactorIdentifier\\(\\) expects string, string\\|null given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/VettingService.php', ]; $ignoreErrors[] = [ - // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Command\\\\VetSecondFactorCommand\\:\\:\\$documentNumber \\(string\\) does not accept string\\|null\\.$#', + 'identifier' => 'assign.propertyType', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/VettingService.php', ]; $ignoreErrors[] = [ - // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Command\\\\VetSecondFactorCommand\\:\\:\\$identityVerified \\(bool\\) does not accept bool\\|null\\.$#', + 'identifier' => 'assign.propertyType', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/VettingService.php', ]; $ignoreErrors[] = [ - // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Command\\\\VetSecondFactorCommand\\:\\:\\$provePossessionSkipped \\(bool\\) does not accept bool\\|null\\.$#', + 'identifier' => 'assign.propertyType', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/VettingService.php', ]; $ignoreErrors[] = [ - // identifier: assign.propertyType 'message' => '#^Property Surfnet\\\\StepupMiddlewareClientBundle\\\\Identity\\\\Command\\\\VetSecondFactorCommand\\:\\:\\$registrationCode \\(string\\) does not accept string\\|null\\.$#', + 'identifier' => 'assign.propertyType', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/VettingService.php', ]; $ignoreErrors[] = [ - // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Twig\\\\Extensions\\\\Extension\\\\SecondFactorType\\:\\:translateSecondFactorType\\(\\) has parameter \\$secondFactorType with no type specified\\.$#', + 'identifier' => 'missingType.parameter', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Twig/Extensions/Extension/SecondFactorType.php', ]; $ignoreErrors[] = [ - // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\VettingProcedure has an uninitialized property \\$authorityId\\. Give it default value or assign it in the constructor\\.$#', + 'identifier' => 'property.uninitialized', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/VettingProcedure.php', ]; $ignoreErrors[] = [ - // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\VettingProcedure has an uninitialized property \\$id\\. Give it default value or assign it in the constructor\\.$#', + 'identifier' => 'property.uninitialized', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/VettingProcedure.php', ]; $ignoreErrors[] = [ - // identifier: property.uninitialized 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\VettingProcedure has an uninitialized property \\$secondFactor\\. Give it default value or assign it in the constructor\\.$#', + 'identifier' => 'property.uninitialized', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/VettingProcedure.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\DependencyInjection\\\\SurfnetStepupRaSamlStepupProviderExtension\\:\\:buildHostedEntityDefinition\\(\\) has parameter \\$configuration with no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\DependencyInjection\\\\SurfnetStepupRaSamlStepupProviderExtension\\:\\:buildHostedEntityDefinition\\(\\) has parameter \\$routes with no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\DependencyInjection\\\\SurfnetStepupRaSamlStepupProviderExtension\\:\\:createHostedDefinitions\\(\\) has parameter \\$configuration with no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\DependencyInjection\\\\SurfnetStepupRaSamlStepupProviderExtension\\:\\:createHostedDefinitions\\(\\) has parameter \\$routes with no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\DependencyInjection\\\\SurfnetStepupRaSamlStepupProviderExtension\\:\\:createMetadataDefinition\\(\\) has parameter \\$configuration with no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\DependencyInjection\\\\SurfnetStepupRaSamlStepupProviderExtension\\:\\:createMetadataDefinition\\(\\) has parameter \\$routes with no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\DependencyInjection\\\\SurfnetStepupRaSamlStepupProviderExtension\\:\\:createRemoteDefinition\\(\\) has parameter \\$configuration with no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php', ]; $ignoreErrors[] = [ - // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\DependencyInjection\\\\SurfnetStepupRaSamlStepupProviderExtension\\:\\:createRouteConfig\\(\\) has parameter \\$provider with no type specified\\.$#', + 'identifier' => 'missingType.parameter', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php', ]; $ignoreErrors[] = [ - // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\DependencyInjection\\\\SurfnetStepupRaSamlStepupProviderExtension\\:\\:createRouteConfig\\(\\) has parameter \\$routeName with no type specified\\.$#', + 'identifier' => 'missingType.parameter', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\DependencyInjection\\\\SurfnetStepupRaSamlStepupProviderExtension\\:\\:createRouteConfig\\(\\) return type has no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\DependencyInjection\\\\SurfnetStepupRaSamlStepupProviderExtension\\:\\:loadProviderConfiguration\\(\\) has parameter \\$configuration with no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php', ]; $ignoreErrors[] = [ - // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\DependencyInjection\\\\SurfnetStepupRaSamlStepupProviderExtension\\:\\:loadProviderConfiguration\\(\\) has parameter \\$provider with no type specified\\.$#', + 'identifier' => 'missingType.parameter', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\DependencyInjection\\\\SurfnetStepupRaSamlStepupProviderExtension\\:\\:loadProviderConfiguration\\(\\) has parameter \\$routes with no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#2 \\.\\.\\.\\$values of function sprintf expects bool\\|float\\|int\\|string\\|null, mixed given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/Exception/InvalidArgumentException.php', ]; $ignoreErrors[] = [ - // identifier: argument.type 'message' => '#^Parameter \\#3 \\.\\.\\.\\$values of function sprintf expects bool\\|float\\|int\\|string\\|null, mixed given\\.$#', + 'identifier' => 'argument.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/Exception/InvalidArgumentException.php', ]; $ignoreErrors[] = [ - // identifier: missingType.iterableValue 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\Exception\\\\UnknownProviderException\\:\\:create\\(\\) has parameter \\$knownProviders with no value type specified in iterable type array\\.$#', + 'identifier' => 'missingType.iterableValue', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/Exception/UnknownProviderException.php', ]; $ignoreErrors[] = [ - // identifier: missingType.parameter 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\Exception\\\\UnknownProviderException\\:\\:create\\(\\) has parameter \\$unknownProvider with no type specified\\.$#', + 'identifier' => 'missingType.parameter', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/Exception/UnknownProviderException.php', ]; $ignoreErrors[] = [ - // identifier: return.type 'message' => '#^Method Surfnet\\\\StepupRa\\\\SamlStepupProviderBundle\\\\Saml\\\\StateHandler\\:\\:getRequestId\\(\\) should return string\\|null but returns mixed\\.$#', + 'identifier' => 'return.type', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/SamlStepupProviderBundle/Saml/StateHandler.php', ]; diff --git a/ci/qa/phpstan.neon b/ci/qa/phpstan.neon index 5e257db0..e4c429ac 100644 --- a/ci/qa/phpstan.neon +++ b/ci/qa/phpstan.neon @@ -4,6 +4,7 @@ includes: rules: parameters: + treatPhpDocTypesAsCertain: false checkUninitializedProperties: true level: 9 paths: diff --git a/ci/qa/phpunit.xml b/ci/qa/phpunit.xml index abe77414..7649df95 100644 --- a/ci/qa/phpunit.xml +++ b/ci/qa/phpunit.xml @@ -1,6 +1,11 @@ - + ../../src diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/RaaController.php b/src/Surfnet/StepupRa/RaBundle/Controller/RaaController.php index fb2fe7e4..34a93306 100755 --- a/src/Surfnet/StepupRa/RaBundle/Controller/RaaController.php +++ b/src/Surfnet/StepupRa/RaBundle/Controller/RaaController.php @@ -83,11 +83,6 @@ public function institutionConfiguration(Request $request): Response $configuration = $this->institutionConfigurationOptionsService ->getInstitutionConfigurationOptionsFor($institution); - if (!$configuration) { - $this->logger->warning(sprintf('Unable to find the institution configuration for "%s"', $institution)); - throw new NotFoundHttpException('The institution configuration could not be found'); - } - return $this->render( 'institution_configuration/overview.html.twig', [ diff --git a/src/Surfnet/StepupRa/RaBundle/DateTime/DateTime.php b/src/Surfnet/StepupRa/RaBundle/DateTime/DateTime.php index a911f8bd..1df421a1 100755 --- a/src/Surfnet/StepupRa/RaBundle/DateTime/DateTime.php +++ b/src/Surfnet/StepupRa/RaBundle/DateTime/DateTime.php @@ -22,10 +22,11 @@ class DateTime { + /** @phpstan-ignore-next-line property.unusedType */ private static ?CoreDateTime $now = null; public static function now(): CoreDateTime { - return self::$now ?: new CoreDateTime; + return self::$now ?? new CoreDateTime; } } diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/AmendRegistrationAuthorityInformationType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/AmendRegistrationAuthorityInformationType.php index 7e1289b8..8d4adfc5 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/AmendRegistrationAuthorityInformationType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/AmendRegistrationAuthorityInformationType.php @@ -25,6 +25,9 @@ use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; +/** + * @extends AbstractType + */ class AmendRegistrationAuthorityInformationType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/AnchorType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/AnchorType.php index b5360294..1fe0e70e 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/AnchorType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/AnchorType.php @@ -19,13 +19,15 @@ namespace Surfnet\StepupRa\RaBundle\Form\Type; use Symfony\Component\Form\AbstractType; -use Symfony\Component\Form\ButtonTypeInterface; use Symfony\Component\Form\Extension\Core\Type\ButtonType; use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormView; use Symfony\Component\OptionsResolver\OptionsResolver; -class AnchorType extends AbstractType implements ButtonTypeInterface +/** + * @extends AbstractType + */ +class AnchorType extends AbstractType { public function getParent(): string { diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/ChangeRaLocationType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/ChangeRaLocationType.php index 106d4ca8..ffedf8cb 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/ChangeRaLocationType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/ChangeRaLocationType.php @@ -25,6 +25,9 @@ use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; +/** + * @extends AbstractType + */ class ChangeRaLocationType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/ChangeRaRoleType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/ChangeRaRoleType.php index 4dd4bb49..ca44a0d0 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/ChangeRaRoleType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/ChangeRaRoleType.php @@ -26,6 +26,9 @@ use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; +/** + * @extends AbstractType + */ class ChangeRaRoleType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/CreateRaLocationType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/CreateRaLocationType.php index d0f512f2..16088a8b 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/CreateRaLocationType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/CreateRaLocationType.php @@ -25,6 +25,9 @@ use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; +/** + * @extends AbstractType + */ class CreateRaLocationType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/CreateRaType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/CreateRaType.php index e70220d1..79343772 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/CreateRaType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/CreateRaType.php @@ -18,6 +18,7 @@ namespace Surfnet\StepupRa\RaBundle\Form\Type; +use InvalidArgumentException; use Surfnet\StepupRa\RaBundle\Command\AccreditCandidateCommand; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\SubmitType; @@ -25,13 +26,22 @@ use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; +/** + * @extends AbstractType + */ class CreateRaType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { - $options = array_combine( - $builder->getData()->availableInstitutions, - $builder->getData()->availableInstitutions, + $data = $builder->getData(); + + if (! $data instanceof AccreditCandidateCommand) { + throw new InvalidArgumentException('AccreditCandidateCommand is required.'); + } + + $choices = array_combine( + $data->availableInstitutions, + $data->availableInstitutions, ); $builder @@ -41,7 +51,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void ->add('contactInformation', TextareaType::class, [ 'label' => 'ra.management.form.create_ra.label.contact_information' ])->add('roleAtInstitution', RoleAtInstitutionType::class, [ - 'choices' => $options, + 'choices' => $choices, 'required' => true, 'label' => 'ra.management.form.create_ra.label.role', ]) diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/InitiateGssfType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/InitiateGssfType.php index 753dc243..1060fba5 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/InitiateGssfType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/InitiateGssfType.php @@ -25,6 +25,9 @@ use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\Routing\RouterInterface; +/** + * @extends AbstractType + */ class InitiateGssfType extends AbstractType { public function __construct(private readonly RouterInterface $router) diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/RemoveRaLocationType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/RemoveRaLocationType.php index ff49516d..380db7c4 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/RemoveRaLocationType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/RemoveRaLocationType.php @@ -24,6 +24,9 @@ use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; +/** + * @extends AbstractType + */ class RemoveRaLocationType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/RetractRegistrationAuthorityType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/RetractRegistrationAuthorityType.php index 95fada63..e3246372 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/RetractRegistrationAuthorityType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/RetractRegistrationAuthorityType.php @@ -24,6 +24,9 @@ use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; +/** + * @extends AbstractType + */ class RetractRegistrationAuthorityType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/RevokeRecoveryTokenType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/RevokeRecoveryTokenType.php index 536542b6..326082b0 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/RevokeRecoveryTokenType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/RevokeRecoveryTokenType.php @@ -24,6 +24,9 @@ use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; +/** + * @extends AbstractType + */ class RevokeRecoveryTokenType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/RevokeSecondFactorType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/RevokeSecondFactorType.php index 64bd0494..1ae064fa 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/RevokeSecondFactorType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/RevokeSecondFactorType.php @@ -24,6 +24,9 @@ use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; +/** + * @extends AbstractType + */ class RevokeSecondFactorType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/RoleAtInstitutionType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/RoleAtInstitutionType.php index 4efed652..db7c1cfa 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/RoleAtInstitutionType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/RoleAtInstitutionType.php @@ -38,6 +38,7 @@ * - search forms when you want to find identities with a specific role at a given institution * - when roles are applied to identities * + * @extends AbstractType */ class RoleAtInstitutionType extends AbstractType { diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/SearchRaCandidatesType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/SearchRaCandidatesType.php index d71f079c..f1fa9b31 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/SearchRaCandidatesType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/SearchRaCandidatesType.php @@ -27,6 +27,9 @@ use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; +/** + * @extends AbstractType + */ class SearchRaCandidatesType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/SearchRaListingType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/SearchRaListingType.php index 333e8297..dd4f1159 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/SearchRaListingType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/SearchRaListingType.php @@ -25,6 +25,9 @@ use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; +/** + * @extends AbstractType + */ class SearchRaListingType extends AbstractType { diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/SearchRaSecondFactorsType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/SearchRaSecondFactorsType.php index a5111089..aff68f85 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/SearchRaSecondFactorsType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/SearchRaSecondFactorsType.php @@ -26,6 +26,9 @@ use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; +/** + * @extends AbstractType + */ class SearchRaSecondFactorsType extends AbstractType { public function __construct(private readonly SecondFactorTypeChoiceList $secondFactorTypeChoiseList) diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/SearchRecoveryTokensType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/SearchRecoveryTokensType.php index 966f3999..7cd2d588 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/SearchRecoveryTokensType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/SearchRecoveryTokensType.php @@ -25,6 +25,9 @@ use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; +/** + * @extends AbstractType + */ class SearchRecoveryTokensType extends AbstractType { diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/SelectInstitutionType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/SelectInstitutionType.php index 9386e2d1..243a3e98 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/SelectInstitutionType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/SelectInstitutionType.php @@ -18,6 +18,7 @@ namespace Surfnet\StepupRa\RaBundle\Form\Type; +use InvalidArgumentException; use Surfnet\StepupRa\RaBundle\Command\SelectInstitutionCommand; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; @@ -25,17 +26,26 @@ use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; +/** + * @extends AbstractType + */ class SelectInstitutionType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { + $data = $builder->getData(); + + if (! $data instanceof SelectInstitutionCommand) { + throw new InvalidArgumentException('Form data must be an instance of SelectInstitutionCommand'); + } + $builder ->add( 'institution', ChoiceType::class, [ 'label' => 'ra.form.select_institution.label.institution', - 'choices' => $builder->getData()->availableInstitutions, + 'choices' => $data->availableInstitutions, ], )->add( 'select_and_apply', diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/SendSmsChallengeType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/SendSmsChallengeType.php index 1c5d650e..1fd7acf4 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/SendSmsChallengeType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/SendSmsChallengeType.php @@ -24,6 +24,9 @@ use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; +/** + * @extends AbstractType + */ class SendSmsChallengeType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/StartVettingProcedureType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/StartVettingProcedureType.php index 1319b5a6..a6cefcbd 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/StartVettingProcedureType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/StartVettingProcedureType.php @@ -26,6 +26,9 @@ use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; +/** + * @extends AbstractType + */ class StartVettingProcedureType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/VerifyIdentityType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/VerifyIdentityType.php index 16f506b7..6d357c81 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/VerifyIdentityType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/VerifyIdentityType.php @@ -26,6 +26,9 @@ use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; +/** + * @extends AbstractType + */ class VerifyIdentityType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/VerifyPhoneNumberType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/VerifyPhoneNumberType.php index d996eef0..b2f3934a 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/VerifyPhoneNumberType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/VerifyPhoneNumberType.php @@ -25,6 +25,9 @@ use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; +/** + * @extends AbstractType + */ class VerifyPhoneNumberType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/VerifyYubikeyPublicIdType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/VerifyYubikeyPublicIdType.php index 7a3260a0..01e8c170 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/VerifyYubikeyPublicIdType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/VerifyYubikeyPublicIdType.php @@ -23,6 +23,9 @@ use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; +/** + * @extends AbstractType + */ class VerifyYubikeyPublicIdType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/VettingTypeHintType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/VettingTypeHintType.php index f7aae3d5..884c2114 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/VettingTypeHintType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/VettingTypeHintType.php @@ -18,6 +18,7 @@ namespace Surfnet\StepupRa\RaBundle\Form\Type; +use InvalidArgumentException; use Surfnet\StepupRa\RaBundle\Command\VettingTypeHintCommand; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\HiddenType; @@ -26,13 +27,21 @@ use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; +/** + * @extends AbstractType + */ class VettingTypeHintType extends AbstractType { final public const HINT_TEXTAREA_NAME_PREFIX = 'vetting_type_hint_'; public function buildForm(FormBuilderInterface $builder, array $options): void { - foreach ($builder->getData()->locales as $locale) { + $data = $builder->getData(); + if (! $data instanceof VettingTypeHintCommand) { + throw new InvalidArgumentException('VettingTypeHintCommand is required.'); + } + + foreach ($data->locales as $locale) { $builder ->add( self::HINT_TEXTAREA_NAME_PREFIX . $locale, diff --git a/src/Surfnet/StepupRa/RaBundle/Service/InstitutionConfigurationOptionsService.php b/src/Surfnet/StepupRa/RaBundle/Service/InstitutionConfigurationOptionsService.php index 44b6910b..711b426f 100755 --- a/src/Surfnet/StepupRa/RaBundle/Service/InstitutionConfigurationOptionsService.php +++ b/src/Surfnet/StepupRa/RaBundle/Service/InstitutionConfigurationOptionsService.php @@ -32,7 +32,7 @@ public function __construct( /** * @param string $institution */ - public function getInstitutionConfigurationOptionsFor($institution): ?InstitutionConfigurationOptions + public function getInstitutionConfigurationOptionsFor($institution): InstitutionConfigurationOptions { $configuration = $this->apiInstitutionConfigurationOptionsService->getInstitutionConfigurationOptionsFor($institution); diff --git a/src/Surfnet/StepupRa/RaBundle/Service/InstitutionConfigurationOptionsServiceInterface.php b/src/Surfnet/StepupRa/RaBundle/Service/InstitutionConfigurationOptionsServiceInterface.php index 51efe6b2..7a7cc52c 100755 --- a/src/Surfnet/StepupRa/RaBundle/Service/InstitutionConfigurationOptionsServiceInterface.php +++ b/src/Surfnet/StepupRa/RaBundle/Service/InstitutionConfigurationOptionsServiceInterface.php @@ -25,5 +25,5 @@ interface InstitutionConfigurationOptionsServiceInterface /** * @param $institution */ - public function getInstitutionConfigurationOptionsFor($institution): ?InstitutionConfigurationOptions; + public function getInstitutionConfigurationOptionsFor($institution): InstitutionConfigurationOptions; } diff --git a/src/Surfnet/StepupRa/RaBundle/Service/LocaleProviderService.php b/src/Surfnet/StepupRa/RaBundle/Service/LocaleProviderService.php index 0475a5b7..6c0c4496 100755 --- a/src/Surfnet/StepupRa/RaBundle/Service/LocaleProviderService.php +++ b/src/Surfnet/StepupRa/RaBundle/Service/LocaleProviderService.php @@ -36,7 +36,6 @@ public function determinePreferredLocale(): string return ''; } - /** @var Identity $identity */ $identity = $token->getUser(); if (!$identity instanceof Identity) { diff --git a/src/Surfnet/StepupRa/RaBundle/Twig/Extensions/Extension/SecondFactorType.php b/src/Surfnet/StepupRa/RaBundle/Twig/Extensions/Extension/SecondFactorType.php index e55447cb..373186f0 100755 --- a/src/Surfnet/StepupRa/RaBundle/Twig/Extensions/Extension/SecondFactorType.php +++ b/src/Surfnet/StepupRa/RaBundle/Twig/Extensions/Extension/SecondFactorType.php @@ -41,7 +41,7 @@ public function getFilters(): array ]; } - public function translateSecondFactorType($secondFactorType): ?string + public function translateSecondFactorType($secondFactorType): string { return $this->translator->translate($secondFactorType, 'ra.second_factor.search.type.%s'); } diff --git a/src/Surfnet/StepupRa/RaBundle/Value/DateTime.php b/src/Surfnet/StepupRa/RaBundle/Value/DateTime.php index 71999042..054b1b42 100755 --- a/src/Surfnet/StepupRa/RaBundle/Value/DateTime.php +++ b/src/Surfnet/StepupRa/RaBundle/Value/DateTime.php @@ -38,7 +38,7 @@ class DateTime implements Stringable /** * Allows for mocking of time. * - * @var self|null + * @phpstan-ignore-next-line property.unusedType */ private static ?self $now = null; @@ -46,7 +46,7 @@ class DateTime implements Stringable public static function now(): DateTime { - return self::$now ?: new self(new CoreDateTime); + return self::$now ?? new self(new CoreDateTime); } /** diff --git a/src/Surfnet/StepupRa/RaBundle/Value/TimeFrame.php b/src/Surfnet/StepupRa/RaBundle/Value/TimeFrame.php index 7a4d9337..20117f21 100755 --- a/src/Surfnet/StepupRa/RaBundle/Value/TimeFrame.php +++ b/src/Surfnet/StepupRa/RaBundle/Value/TimeFrame.php @@ -31,7 +31,7 @@ final private function __construct(private DateInterval $timeFrame) /** * @param int $seconds */ - public static function ofSeconds($seconds): TimeFrame + public static function ofSeconds(mixed $seconds): TimeFrame { if (!is_int($seconds) || $seconds < 1) { throw InvalidArgumentException::invalidType('positive integer', 'seconds', $seconds); diff --git a/src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/Compiler/ViewConfigCollectionPass.php b/src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/Compiler/ViewConfigCollectionPass.php index 43383788..c1316014 100755 --- a/src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/Compiler/ViewConfigCollectionPass.php +++ b/src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/Compiler/ViewConfigCollectionPass.php @@ -40,9 +40,7 @@ public function process(ContainerBuilder $container): void $taggedServices = array_keys($taggedServices); foreach ($taggedServices as $id) { - $gsspIdMatches = []; - preg_match('/^gssp\.view_config\.(\w+)$/', $id, $gsspIdMatches); - if (!is_array($gsspIdMatches)) { + if (preg_match('/^gssp\.view_config\.(\w+)$/', $id, $gsspIdMatches) !== 1) { throw new InvalidConfigurationException('A manually tagged view config service was named incorrectly.'); } $definition->addMethodCall('addViewConfig', [new Reference($id), end($gsspIdMatches)]); From 894245b6145f48978d9d08be6b23793bb90ac57b Mon Sep 17 00:00:00 2001 From: Johan Kromhout Date: Tue, 13 Jan 2026 09:30:20 +0100 Subject: [PATCH 05/18] Add rector scripts & run apply SimplifyFormRenderingRector --- .github/workflows/test-integration.yml | 2 +- ci/qa/rector.php | 21 +++++++++++++++++++ ci/qa/rector.sh | 5 +++++ composer.json | 6 ++++++ .../Controller/RaLocationController.php | 6 +++--- .../Controller/RaManagementController.php | 10 ++++----- .../Controller/RecoveryTokenController.php | 4 ++-- .../Controller/SecondFactorController.php | 4 ++-- .../Controller/Vetting/SmsController.php | 4 ++-- .../Controller/Vetting/YubikeyController.php | 2 +- .../RaBundle/Controller/VettingController.php | 10 ++++----- .../Controller/VettingTypeHintController.php | 2 +- 12 files changed, 54 insertions(+), 22 deletions(-) create mode 100644 ci/qa/rector.php create mode 100755 ci/qa/rector.sh diff --git a/.github/workflows/test-integration.yml b/.github/workflows/test-integration.yml index f4c08494..a206e24c 100644 --- a/.github/workflows/test-integration.yml +++ b/.github/workflows/test-integration.yml @@ -26,4 +26,4 @@ jobs: run: yarn encore prod - name: Run QA tests - run: composer check + run: composer check-ci diff --git a/ci/qa/rector.php b/ci/qa/rector.php new file mode 100644 index 00000000..d99bcc3e --- /dev/null +++ b/ci/qa/rector.php @@ -0,0 +1,21 @@ +withPaths([ + __DIR__ . '/../../ci', + __DIR__ . '/../../config', + __DIR__ . '/../../src', + __DIR__ . '/../../templates', + ]) + // uncomment to reach your current PHP version +// ->withPhpSets() +// ->withAttributesSets(all: true) + ->withComposerBased(twig: true, doctrine: true, phpunit: true, symfony: true) +// ->withTypeCoverageLevel(0) +// ->withDeadCodeLevel(0) +// ->withCodeQualityLevel(0) + ; diff --git a/ci/qa/rector.sh b/ci/qa/rector.sh new file mode 100755 index 00000000..b2b58571 --- /dev/null +++ b/ci/qa/rector.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env sh + +# Ensure we run from project root +cd "$(dirname "$0")/../../" || exit 1 +./vendor/bin/rector --config=ci/qa/rector.php "$@" diff --git a/composer.json b/composer.json index 094e89f6..a45773f7 100644 --- a/composer.json +++ b/composer.json @@ -85,6 +85,10 @@ "chown -R www-data:www-data /var/www/html/var/cache" ], "check": [ + "@check-ci", + "@rector" + ], + "check-ci": [ "@phplint", "@phpmd", "@phpcs", @@ -95,6 +99,8 @@ ], "phplint": "./ci/qa/phplint", "license-headers": "./ci/qa/docheader", + "rector": "./ci/qa/rector.sh --dry-run", + "rector-fix": "./ci/qa/rector.sh", "phpmd": "./ci/qa/phpmd", "phpcs": "./ci/qa/phpcs", "phpstan": "./ci/qa/phpstan", diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php b/src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php index 0949a469..30e2e60f 100755 --- a/src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php +++ b/src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php @@ -111,7 +111,7 @@ public function manage(Request $request): Response 'form' => isset($form) ? $form->createView() : null, 'institution' => $institution, 'locations' => $locations, - 'removalForm' => $removalForm->createView(), + 'removalForm' => $removalForm, 'orderBy' => $command->orderBy, 'orderDirection' => $command->orderDirection ?: 'asc', 'inverseOrderDirection' => $command->orderDirection === 'asc' ? 'desc' : 'asc', @@ -151,7 +151,7 @@ public function create(Request $request): Response } return $this->render('ra_location/create.html.twig', [ - 'form' => $form->createView() + 'form' => $form ]); } @@ -203,7 +203,7 @@ public function change(Request $request): Response } return $this->render('ra_location/change.html.twig', [ - 'form' => $form->createView() + 'form' => $form ]); } diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php b/src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php index 0e19d76d..db5944ba 100755 --- a/src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php +++ b/src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php @@ -107,7 +107,7 @@ public function manage(Request $request): Response return $this->render( 'ra_management/manage.html.twig', [ - 'form' => $form->createView(), + 'form' => $form, 'raList' => $raListings, 'numberOfResults' => $raList->getTotalItems(), 'pagination' => $pagination, @@ -162,7 +162,7 @@ public function raCandidateSearch(Request $request): Response return $this->render( 'ra_management/ra_candidate_overview.html.twig', [ - 'form' => $form->createView(), + 'form' => $form, 'raCandidates' => $raCandidateList, 'pagination' => $pagination ], @@ -219,7 +219,7 @@ public function createRa(Request $request): Response return $this->render('ra_management/create_ra.html.twig', [ 'raCandidate' => $raCandidate->raCandidate, - 'form' => $form->createView() + 'form' => $form ]); } @@ -267,7 +267,7 @@ public function amendRaInformation(Request $request, $identityId, $raInstitution return $this->render('ra_management/amend_ra_information.html.twig', [ 'raListing' => $raListing, - 'form' => $form->createView(), + 'form' => $form, ]); } @@ -326,7 +326,7 @@ public function retractRegistrationAuthority(Request $request, $identityId, $raI return $this->render('ra_management/confirm_retract_ra.html.twig', [ 'raListing' => $raListing, - 'form' => $form->createView() + 'form' => $form ]); } } diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/RecoveryTokenController.php b/src/Surfnet/StepupRa/RaBundle/Controller/RecoveryTokenController.php index 01ece4f4..43113b85 100755 --- a/src/Surfnet/StepupRa/RaBundle/Controller/RecoveryTokenController.php +++ b/src/Surfnet/StepupRa/RaBundle/Controller/RecoveryTokenController.php @@ -89,8 +89,8 @@ public function search(Request $request): Response return $this->render( 'recovery_token/search.html.twig', [ - 'form' => $form->createView(), - 'revocationForm' => $revocationForm->createView(), + 'form' => $form, + 'revocationForm' => $revocationForm, 'recoveryTokens' => $recoveryTokens, 'pagination' => $pagination, 'numberOfRecoveryTokens' => $recoveryTokenCount, diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php b/src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php index 451d125e..b7148db2 100755 --- a/src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php +++ b/src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php @@ -107,8 +107,8 @@ public function search(Request $request): Response )); return $this->render('second_factor/search.html.twig', [ - 'form' => $form->createView(), - 'revocationForm' => $revocationForm->createView(), + 'form' => $form, + 'revocationForm' => $revocationForm, 'secondFactors' => $secondFactors, 'pagination' => $pagination, 'numberOfSecondFactors' => $secondFactorCount, diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/Vetting/SmsController.php b/src/Surfnet/StepupRa/RaBundle/Controller/Vetting/SmsController.php index 9f751de9..16806502 100755 --- a/src/Surfnet/StepupRa/RaBundle/Controller/Vetting/SmsController.php +++ b/src/Surfnet/StepupRa/RaBundle/Controller/Vetting/SmsController.php @@ -159,7 +159,7 @@ public function provePossession(Request $request, string $procedureId): Response return $this->render( 'vetting/sms/prove_possession.html.twig', - ['form' => $form->createView()], + ['form' => $form], ); } @@ -184,7 +184,7 @@ public function provePossession(Request $request, string $procedureId): Response return $this->render( 'vetting/sms/prove_possession.html.twig', - ['form' => $form->createView()], + ['form' => $form], ); } } diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/Vetting/YubikeyController.php b/src/Surfnet/StepupRa/RaBundle/Controller/Vetting/YubikeyController.php index 2c674aa0..5809042f 100755 --- a/src/Surfnet/StepupRa/RaBundle/Controller/Vetting/YubikeyController.php +++ b/src/Surfnet/StepupRa/RaBundle/Controller/Vetting/YubikeyController.php @@ -88,7 +88,7 @@ public function __invoke(Request $request, string $procedureId): Response return $this->render( view: 'vetting/yubikey/verify.html.twig', - parameters: ['form' => $form->createView()], + parameters: ['form' => $form], ); } } diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/VettingController.php b/src/Surfnet/StepupRa/RaBundle/Controller/VettingController.php index 8636865c..f2787b5b 100755 --- a/src/Surfnet/StepupRa/RaBundle/Controller/VettingController.php +++ b/src/Surfnet/StepupRa/RaBundle/Controller/VettingController.php @@ -87,7 +87,7 @@ public function startProcedure(Request $request): Response if (!$form->isSubmitted() || !$form->isValid()) { $this->logger->notice('No search submitted, displaying search by registration code form'); - return $this->render('vetting/start_procedure.html.twig', ['form' => $form->createView()]); + return $this->render('vetting/start_procedure.html.twig', ['form' => $form]); } $secondFactor = $this->secondFactorService @@ -97,7 +97,7 @@ public function startProcedure(Request $request): Response $this->addFlash('error', 'ra.form.start_vetting_procedure.unknown_registration_code'); $this->logger->notice('Cannot start new vetting procedure, no second factor found'); - return $this->render('vetting/start_procedure.html.twig', ['form' => $form->createView()]); + return $this->render('vetting/start_procedure.html.twig', ['form' => $form]); } $enabledSecondFactors = $this->getParameter('surfnet_stepup_ra.enabled_second_factors'); @@ -139,7 +139,7 @@ public function startProcedure(Request $request): Response ['registration_requested_at' => $secondFactor->registrationRequestedAt->format('Y-m-d')], ); - return $this->render('vetting/start_procedure.html.twig', ['form' => $form->createView()]); + return $this->render('vetting/start_procedure.html.twig', ['form' => $form]); } if (!$this->vettingService->isLoaSufficientToStartProcedure($command)) { @@ -147,7 +147,7 @@ public function startProcedure(Request $request): Response $this->logger->notice('Cannot start new vetting procedure, Authority LoA is insufficient'); - return $this->render('vetting/start_procedure.html.twig', ['form' => $form->createView()]); + return $this->render('vetting/start_procedure.html.twig', ['form' => $form]); } $procedureId = $this->vettingService->startProcedure($command); @@ -244,7 +244,7 @@ public function verifyIdentity(Request $request, string $procedureId): Response $this->addFlash('error', $error); } - return $this->render('vetting/verify_identity.html.twig', ['commonName' => $commonName, 'form' => $form->createView()]); + return $this->render('vetting/verify_identity.html.twig', ['commonName' => $commonName, 'form' => $form]); }; if (!$form->isSubmitted() || !$form->isValid()) { diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/VettingTypeHintController.php b/src/Surfnet/StepupRa/RaBundle/Controller/VettingTypeHintController.php index 2c29335e..fc98fab6 100755 --- a/src/Surfnet/StepupRa/RaBundle/Controller/VettingTypeHintController.php +++ b/src/Surfnet/StepupRa/RaBundle/Controller/VettingTypeHintController.php @@ -124,7 +124,7 @@ public function vettingTypeHint(Request $request): Response 'vetting_type_hint/overview.html.twig', [ 'form' => isset($form) ? $form->createView() : null, - 'hintForm' => $hintForm->createView(), + 'hintForm' => $hintForm, 'institution' => $institution, ], ); From 62c1af4557637f26d844c0e3ef2d47cd7e8af469 Mon Sep 17 00:00:00 2001 From: Johan Kromhout Date: Tue, 13 Jan 2026 09:32:12 +0100 Subject: [PATCH 06/18] Apply Attributes via Rector --- ci/qa/rector.php | 2 +- .../DependencyInjection/ConfigurationTest.php | 12 ++-- .../Session/SessionLifetimeGuardTest.php | 40 ++++++------ .../Security/Session/SessionStorageTest.php | 64 +++++++++---------- .../Tests/Service/VettingServiceTest.php | 4 +- .../RaBundle/Tests/Value/DateTimeTest.php | 16 ++--- .../RaBundle/Tests/Value/TimeFrameTest.php | 5 +- .../Tests/Provider/ViewConfigTest.php | 6 +- 8 files changed, 74 insertions(+), 75 deletions(-) diff --git a/ci/qa/rector.php b/ci/qa/rector.php index d99bcc3e..8ffd6f09 100644 --- a/ci/qa/rector.php +++ b/ci/qa/rector.php @@ -13,7 +13,7 @@ ]) // uncomment to reach your current PHP version // ->withPhpSets() -// ->withAttributesSets(all: true) + ->withAttributesSets(all: true) ->withComposerBased(twig: true, doctrine: true, phpunit: true, symfony: true) // ->withTypeCoverageLevel(0) // ->withDeadCodeLevel(0) diff --git a/src/Surfnet/StepupRa/RaBundle/Tests/DependencyInjection/ConfigurationTest.php b/src/Surfnet/StepupRa/RaBundle/Tests/DependencyInjection/ConfigurationTest.php index f6a7144c..cf298ffd 100755 --- a/src/Surfnet/StepupRa/RaBundle/Tests/DependencyInjection/ConfigurationTest.php +++ b/src/Surfnet/StepupRa/RaBundle/Tests/DependencyInjection/ConfigurationTest.php @@ -28,8 +28,8 @@ final class ConfigurationTest extends TestCase /** * @test - * @group configuration */ + #[\PHPUnit\Framework\Attributes\Group('configuration')] public function it_requires_second_factors_to_be_configured() { $configuration = [ @@ -44,8 +44,8 @@ public function it_requires_second_factors_to_be_configured() /** * @test - * @group configuration */ + #[\PHPUnit\Framework\Attributes\Group('configuration')] public function it_requires_session_timeout_configuration() { $configuration = ['enabled_second_factors' => ['sms']]; @@ -55,8 +55,8 @@ public function it_requires_session_timeout_configuration() /** * @test - * @group configuration */ + #[\PHPUnit\Framework\Attributes\Group('configuration')] public function it_requires_maximum_absolute_timeout_to_be_configured() { $configuration = [ @@ -69,8 +69,8 @@ public function it_requires_maximum_absolute_timeout_to_be_configured() /** * @test - * @group configuration */ + #[\PHPUnit\Framework\Attributes\Group('configuration')] public function it_requires_maximum_relative_timeout_to_be_configured() { $configuration = [ @@ -83,8 +83,8 @@ public function it_requires_maximum_relative_timeout_to_be_configured() /** * @test - * @group configuration */ + #[\PHPUnit\Framework\Attributes\Group('configuration')] public function it_allows_one_enabled_second_factor() { $this->assertConfigurationIsValid([['enabled_second_factors' => ['sms']]], 'enabled_second_factors'); @@ -92,8 +92,8 @@ public function it_allows_one_enabled_second_factor() /** * @test - * @group configuration */ + #[\PHPUnit\Framework\Attributes\Group('configuration')] public function it_allows_two_enabled_second_factors() { $this->assertConfigurationIsValid([['enabled_second_factors' => ['sms', 'yubikey']]], 'enabled_second_factors'); diff --git a/src/Surfnet/StepupRa/RaBundle/Tests/Security/Session/SessionLifetimeGuardTest.php b/src/Surfnet/StepupRa/RaBundle/Tests/Security/Session/SessionLifetimeGuardTest.php index 7e206dac..1d462b97 100755 --- a/src/Surfnet/StepupRa/RaBundle/Tests/Security/Session/SessionLifetimeGuardTest.php +++ b/src/Surfnet/StepupRa/RaBundle/Tests/Security/Session/SessionLifetimeGuardTest.php @@ -39,9 +39,9 @@ public function tearDown(): void /** * @test - * @group security - * @group session */ + #[\PHPUnit\Framework\Attributes\Group('security')] + #[\PHPUnit\Framework\Attributes\Group('session')] public function an_authentication_session_without_logged_authentication_is_within_absolute_limit() { $sessionLifetimeGuard = new SessionLifetimeGuard(TimeFrame::ofSeconds(1000), TimeFrame::ofSeconds(100)); @@ -53,9 +53,9 @@ public function an_authentication_session_without_logged_authentication_is_withi /** * @test - * @group security - * @group session */ + #[\PHPUnit\Framework\Attributes\Group('security')] + #[\PHPUnit\Framework\Attributes\Group('session')] public function an_authentication_session_without_logged_authentication_is_within_relative_limit() { $sessionLifetimeGuard = new SessionLifetimeGuard(TimeFrame::ofSeconds(1000), TimeFrame::ofSeconds(100)); @@ -67,9 +67,9 @@ public function an_authentication_session_without_logged_authentication_is_withi /** * @test - * @group security - * @group session */ + #[\PHPUnit\Framework\Attributes\Group('security')] + #[\PHPUnit\Framework\Attributes\Group('session')] public function an_authentication_session_without_logged_authentication_is_within_limits() { $sessionLifetimeGuard = new SessionLifetimeGuard(TimeFrame::ofSeconds(1000), TimeFrame::ofSeconds(100)); @@ -81,9 +81,9 @@ public function an_authentication_session_without_logged_authentication_is_withi /** * @test - * @group security - * @group session */ + #[\PHPUnit\Framework\Attributes\Group('security')] + #[\PHPUnit\Framework\Attributes\Group('session')] public function an_authentication_session_with_a_lifetime_within_the_absolute_timeframe_is_within_the_absolute_limit() { $sessionLifetimeGuard = new SessionLifetimeGuard(TimeFrame::ofSeconds(1000), TimeFrame::ofSeconds(1)); @@ -97,9 +97,9 @@ public function an_authentication_session_with_a_lifetime_within_the_absolute_ti /** * @test - * @group security - * @group session */ + #[\PHPUnit\Framework\Attributes\Group('security')] + #[\PHPUnit\Framework\Attributes\Group('session')] public function an_authentication_session_with_a_lifetime_of_exactly_the_absolute_timeframe_is_within_the_absolute_limit() { $sessionLifetimeGuard = new SessionLifetimeGuard(TimeFrame::ofSeconds(1000), TimeFrame::ofSeconds(1)); @@ -113,9 +113,9 @@ public function an_authentication_session_with_a_lifetime_of_exactly_the_absolut /** * @test - * @group security - * @group session */ + #[\PHPUnit\Framework\Attributes\Group('security')] + #[\PHPUnit\Framework\Attributes\Group('session')] public function an_authentication_session_with_a_lifetime_longer_than_the_absolute_timeframe_is_outside_the_absolute_limit() { $sessionLifetimeGuard = new SessionLifetimeGuard(TimeFrame::ofSeconds(1000), TimeFrame::ofSeconds(1)); @@ -129,9 +129,9 @@ public function an_authentication_session_with_a_lifetime_longer_than_the_absolu /** * @test - * @group security - * @group session */ + #[\PHPUnit\Framework\Attributes\Group('security')] + #[\PHPUnit\Framework\Attributes\Group('session')] public function an_authentication_session_with_an_interaction_within_the_relative_timeframe_is_within_the_relative_limit() { $sessionLifetimeGuard = new SessionLifetimeGuard(TimeFrame::ofSeconds(1), TimeFrame::ofSeconds(1000)); @@ -145,9 +145,9 @@ public function an_authentication_session_with_an_interaction_within_the_relativ /** * @test - * @group security - * @group session */ + #[\PHPUnit\Framework\Attributes\Group('security')] + #[\PHPUnit\Framework\Attributes\Group('session')] public function an_authentication_session_with_an_interaction_after_exactly_the_relative_timeframe_is_within_the_relative_limit() { $sessionLifetimeGuard = new SessionLifetimeGuard(TimeFrame::ofSeconds(1), TimeFrame::ofSeconds(1000)); @@ -161,9 +161,9 @@ public function an_authentication_session_with_an_interaction_after_exactly_the_ /** * @test - * @group security - * @group session */ + #[\PHPUnit\Framework\Attributes\Group('security')] + #[\PHPUnit\Framework\Attributes\Group('session')] public function an_authentication_session_with_an_interaction_after_the_relative_timeframe_is_outside_the_relative_limit() { $sessionLifetimeGuard = new SessionLifetimeGuard(TimeFrame::ofSeconds(1000), TimeFrame::ofSeconds(1)); @@ -177,14 +177,14 @@ public function an_authentication_session_with_an_interaction_after_the_relative /** * @test - * @group security - * @group session * @dataProvider bothLimitsVerificationProvider * * @param bool $isValid * @param null|DateTime $authenticationMoment * @param null|DateTime $interactionMoment */ + #[\PHPUnit\Framework\Attributes\Group('security')] + #[\PHPUnit\Framework\Attributes\Group('session')] public function an_authentication_session_is_verified_against_both_limits( $isValid, DateTime $authenticationMoment = null, diff --git a/src/Surfnet/StepupRa/RaBundle/Tests/Security/Session/SessionStorageTest.php b/src/Surfnet/StepupRa/RaBundle/Tests/Security/Session/SessionStorageTest.php index 2b9fe9fe..e8f85020 100755 --- a/src/Surfnet/StepupRa/RaBundle/Tests/Security/Session/SessionStorageTest.php +++ b/src/Surfnet/StepupRa/RaBundle/Tests/Security/Session/SessionStorageTest.php @@ -39,9 +39,9 @@ public function tearDown(): void /** * @test - * @group security - * @group session */ + #[\PHPUnit\Framework\Attributes\Group('security')] + #[\PHPUnit\Framework\Attributes\Group('session')] public function the_authentication_moment_can_be_logged() { $fakeRequestStack = new FakeRequestStack(); @@ -54,9 +54,9 @@ public function the_authentication_moment_can_be_logged() /** * @test - * @group security - * @group session */ + #[\PHPUnit\Framework\Attributes\Group('security')] + #[\PHPUnit\Framework\Attributes\Group('session')] public function the_authentication_moment_cannot_be_logged_twice() { $this->expectException(LogicException::class); @@ -69,9 +69,9 @@ public function the_authentication_moment_cannot_be_logged_twice() /** * @test - * @group security - * @group session */ + #[\PHPUnit\Framework\Attributes\Group('security')] + #[\PHPUnit\Framework\Attributes\Group('session')] public function whether_or_not_an_authentication_moment_is_logged_can_be_queried() { $fakeRequestStack = new FakeRequestStack(); @@ -86,9 +86,9 @@ public function whether_or_not_an_authentication_moment_is_logged_can_be_queried /** * @test - * @group security - * @group session */ + #[\PHPUnit\Framework\Attributes\Group('security')] + #[\PHPUnit\Framework\Attributes\Group('session')] public function a_logged_authentication_moment_can_be_retrieved() { $fakeRequestStack = new FakeRequestStack(); @@ -105,9 +105,9 @@ public function a_logged_authentication_moment_can_be_retrieved() /** * @test - * @group security - * @group session */ + #[\PHPUnit\Framework\Attributes\Group('security')] + #[\PHPUnit\Framework\Attributes\Group('session')] public function attempting_to_retrieve_an_authentication_moment_when_not_yet_logged_causes_an_exception_to_be_thrown() { $this->expectException(LogicException::class); @@ -120,9 +120,9 @@ public function attempting_to_retrieve_an_authentication_moment_when_not_yet_log /** * @test - * @group security - * @group session */ + #[\PHPUnit\Framework\Attributes\Group('security')] + #[\PHPUnit\Framework\Attributes\Group('session')] public function an_interaction_can_be_logged() { $fakeRequestStack = new FakeRequestStack(); @@ -135,9 +135,9 @@ public function an_interaction_can_be_logged() /** * @test - * @group security - * @group session */ + #[\PHPUnit\Framework\Attributes\Group('security')] + #[\PHPUnit\Framework\Attributes\Group('session')] public function the_moment_of_interaction_can_be_retrieved() { $fakeRequestStack = new FakeRequestStack(); @@ -154,9 +154,9 @@ public function the_moment_of_interaction_can_be_retrieved() /** * @test - * @group security - * @group session */ + #[\PHPUnit\Framework\Attributes\Group('security')] + #[\PHPUnit\Framework\Attributes\Group('session')] public function an_interaction_is_logged_when_an_authentication_is_logged() { $fakeRequestStack = new FakeRequestStack(); @@ -179,9 +179,9 @@ public function an_interaction_is_logged_when_an_authentication_is_logged() /** * @test - * @group security - * @group session */ + #[\PHPUnit\Framework\Attributes\Group('security')] + #[\PHPUnit\Framework\Attributes\Group('session')] public function the_moment_of_interaction_can_be_updated() { $fakeRequestStack = new FakeRequestStack(); @@ -206,9 +206,9 @@ public function the_moment_of_interaction_can_be_updated() /** * @test - * @group security - * @group session */ + #[\PHPUnit\Framework\Attributes\Group('security')] + #[\PHPUnit\Framework\Attributes\Group('session')] public function the_existence_of_a_moment_interaction_can_be_queried() { $fakeRequestStack = new FakeRequestStack(); @@ -223,9 +223,9 @@ public function the_existence_of_a_moment_interaction_can_be_queried() /** * @test - * @group security - * @group session */ + #[\PHPUnit\Framework\Attributes\Group('security')] + #[\PHPUnit\Framework\Attributes\Group('session')] public function the_current_uri_can_be_stored_in_the_session() { $fakeRequestStack = new FakeRequestStack(); @@ -240,9 +240,9 @@ public function the_current_uri_can_be_stored_in_the_session() /** * @test - * @group security - * @group session */ + #[\PHPUnit\Framework\Attributes\Group('security')] + #[\PHPUnit\Framework\Attributes\Group('session')] public function a_request_id_can_be_stored_in_the_session() { $fakeRequestStack = new FakeRequestStack(); @@ -257,9 +257,9 @@ public function a_request_id_can_be_stored_in_the_session() /** * @test - * @group security - * @group session */ + #[\PHPUnit\Framework\Attributes\Group('security')] + #[\PHPUnit\Framework\Attributes\Group('session')] public function the_presence_of_a_request_id_can_be_queried() { $fakeRequestStack = new FakeRequestStack(); @@ -275,9 +275,9 @@ public function the_presence_of_a_request_id_can_be_queried() /** * @test - * @group security - * @group session */ + #[\PHPUnit\Framework\Attributes\Group('security')] + #[\PHPUnit\Framework\Attributes\Group('session')] public function a_stored_request_id_can_be_cleared() { $fakeRequestStack = new FakeRequestStack(); @@ -298,9 +298,9 @@ public function a_stored_request_id_can_be_cleared() /** * @test - * @group security - * @group session */ + #[\PHPUnit\Framework\Attributes\Group('security')] + #[\PHPUnit\Framework\Attributes\Group('session')] public function a_session_can_be_invalidated() { $session = Mockery::mock(SessionInterface::class) @@ -317,9 +317,9 @@ public function a_session_can_be_invalidated() /** * @test - * @group security - * @group session */ + #[\PHPUnit\Framework\Attributes\Group('security')] + #[\PHPUnit\Framework\Attributes\Group('session')] public function a_session_can_be_migrated() { $session = Mockery::mock(SessionInterface::class) diff --git a/src/Surfnet/StepupRa/RaBundle/Tests/Service/VettingServiceTest.php b/src/Surfnet/StepupRa/RaBundle/Tests/Service/VettingServiceTest.php index 84f12a7d..ce10b37c 100755 --- a/src/Surfnet/StepupRa/RaBundle/Tests/Service/VettingServiceTest.php +++ b/src/Surfnet/StepupRa/RaBundle/Tests/Service/VettingServiceTest.php @@ -28,9 +28,9 @@ final class VettingServiceTest extends TestCase { /** * @test - * @group vetting * @dataProvider validRegistrationDatesProvider */ + #[\PHPUnit\Framework\Attributes\Group('vetting')] public function registration_code_is_valid_within_two_weeks_after_verification($registrationRequestedAt) { $command = new StartVettingProcedureCommand(); @@ -56,9 +56,9 @@ public function validRegistrationDatesProvider(): array /** * @test - * @group vetting * @dataProvider expiredRegistrationDatesProvider */ + #[\PHPUnit\Framework\Attributes\Group('vetting')] public function registration_code_is_invalid_two_weeks_after_verification($registrationRequestedAt) { $command = new StartVettingProcedureCommand(); diff --git a/src/Surfnet/StepupRa/RaBundle/Tests/Value/DateTimeTest.php b/src/Surfnet/StepupRa/RaBundle/Tests/Value/DateTimeTest.php index 093140de..c998f878 100755 --- a/src/Surfnet/StepupRa/RaBundle/Tests/Value/DateTimeTest.php +++ b/src/Surfnet/StepupRa/RaBundle/Tests/Value/DateTimeTest.php @@ -32,8 +32,8 @@ class DateTimeTest extends TestCase * compatibility with the new format. Think about log(-processors), (de-)serializers, etc. * * @test - * @group value */ + #[\PHPUnit\Framework\Attributes\Group('value')] public function the_configured_format_is_what_is_needed_for_correct_application_behavior() { $this->assertEquals('Y-m-d\\TH:i:sP', DateTime::FORMAT); @@ -44,8 +44,8 @@ public function the_configured_format_is_what_is_needed_for_correct_application_ * docblock above the {@see the_configured_format_is_what_is_needed_for_correct_application_behavior()} test * * @test - * @group value */ + #[\PHPUnit\Framework\Attributes\Group('value')] public function to_string_returns_the_time_in_the_correct_format() { $coreDateTimeObject = new CoreDateTime('@1000'); @@ -56,8 +56,8 @@ public function to_string_returns_the_time_in_the_correct_format() /** * @test - * @group value */ + #[\PHPUnit\Framework\Attributes\Group('value')] public function add_returns_a_different_object_that_has_the_interval_added() { $base = new DateTime(new CoreDateTime('@1000')); @@ -71,8 +71,8 @@ public function add_returns_a_different_object_that_has_the_interval_added() /** * @test - * @group value */ + #[\PHPUnit\Framework\Attributes\Group('value')] public function sub_returns_a_different_object_that_has_the_interval_substracted() { $base = new DateTime(new CoreDateTime('@1000')); @@ -86,8 +86,8 @@ public function sub_returns_a_different_object_that_has_the_interval_substracted /** * @test - * @group value */ + #[\PHPUnit\Framework\Attributes\Group('value')] public function comes_before_works_with_exclusive_comparison() { $base = new DateTime(new CoreDateTime('@1000')); @@ -102,8 +102,8 @@ public function comes_before_works_with_exclusive_comparison() /** * @test - * @group value */ + #[\PHPUnit\Framework\Attributes\Group('value')] public function comes_before_or_is_equal_works_with_inclusive_comparison() { $base = new DateTime(new CoreDateTime('@1000')); @@ -118,8 +118,8 @@ public function comes_before_or_is_equal_works_with_inclusive_comparison() /** * @test - * @group value */ + #[\PHPUnit\Framework\Attributes\Group('value')] public function comes_after_works_with_exclusive_comparison() { $base = new DateTime(new CoreDateTime('@1000')); @@ -134,8 +134,8 @@ public function comes_after_works_with_exclusive_comparison() /** * @test - * @group value */ + #[\PHPUnit\Framework\Attributes\Group('value')] public function comes_after_or_is_equal_works_with_inclusive_comparison() { $base = new DateTime(new CoreDateTime('@1000')); diff --git a/src/Surfnet/StepupRa/RaBundle/Tests/Value/TimeFrameTest.php b/src/Surfnet/StepupRa/RaBundle/Tests/Value/TimeFrameTest.php index 28a7898d..248fe923 100755 --- a/src/Surfnet/StepupRa/RaBundle/Tests/Value/TimeFrameTest.php +++ b/src/Surfnet/StepupRa/RaBundle/Tests/Value/TimeFrameTest.php @@ -27,11 +27,10 @@ class TimeFrameTest extends TestCase { /** * @test - * @group value * @dataProvider notPositiveIntegerProvider - * * @param mixed $notPositiveInteger */ + #[\PHPUnit\Framework\Attributes\Group('value')] public function it_cannot_be_given_an_non_positive_amount_of_seconds($notPositiveInteger) { $this->expectException(InvalidArgumentException::class); @@ -41,8 +40,8 @@ public function it_cannot_be_given_an_non_positive_amount_of_seconds($notPositiv /** * @test - * @group value */ + #[\PHPUnit\Framework\Attributes\Group('value')] public function to_string_output_matches_amount_of_seconds_as_string() { $seconds = 1000; diff --git a/src/Surfnet/StepupRa/SamlStepupProviderBundle/Tests/Provider/ViewConfigTest.php b/src/Surfnet/StepupRa/SamlStepupProviderBundle/Tests/Provider/ViewConfigTest.php index 6d0b4bf7..f857fdee 100755 --- a/src/Surfnet/StepupRa/SamlStepupProviderBundle/Tests/Provider/ViewConfigTest.php +++ b/src/Surfnet/StepupRa/SamlStepupProviderBundle/Tests/Provider/ViewConfigTest.php @@ -32,8 +32,8 @@ final class ViewConfigTest extends TestCase { /** * @test - * @group di */ + #[\PHPUnit\Framework\Attributes\Group('di')] public function view_config_translates_correctly() { $viewConfig = $this->buildViewConfig('nl_NL'); @@ -54,8 +54,8 @@ public function view_config_translates_correctly() /** * @test - * @group di */ + #[\PHPUnit\Framework\Attributes\Group('di')] public function translation_fails_when_no_current_language_set() { $this->expectExceptionMessage("The requested translation is not available in this language"); @@ -67,8 +67,8 @@ public function translation_fails_when_no_current_language_set() /** * @test - * @group di */ + #[\PHPUnit\Framework\Attributes\Group('di')] public function view_config_cannot_serve_french_translations() { $this->expectExceptionMessage("The requested translation is not available in this language: fr_FR. Available languages: en_GB, nl_NL"); From ec8232ba757ba402c6e407a7f1fe935a6f1358df Mon Sep 17 00:00:00 2001 From: Johan Kromhout Date: Tue, 13 Jan 2026 09:36:54 +0100 Subject: [PATCH 07/18] Apply `withPhpSets` rectors --- ci/qa/rector.php | 5 +---- .../Tests/Security/Session/SessionLifetimeGuardTest.php | 1 - .../RaBundle/Tests/Security/Session/SessionStorageTest.php | 1 - src/Surfnet/StepupRa/RaBundle/Value/DateTime.php | 2 +- 4 files changed, 2 insertions(+), 7 deletions(-) diff --git a/ci/qa/rector.php b/ci/qa/rector.php index 8ffd6f09..e55d37a6 100644 --- a/ci/qa/rector.php +++ b/ci/qa/rector.php @@ -12,10 +12,7 @@ __DIR__ . '/../../templates', ]) // uncomment to reach your current PHP version -// ->withPhpSets() + ->withPhpSets() ->withAttributesSets(all: true) ->withComposerBased(twig: true, doctrine: true, phpunit: true, symfony: true) -// ->withTypeCoverageLevel(0) -// ->withDeadCodeLevel(0) -// ->withCodeQualityLevel(0) ; diff --git a/src/Surfnet/StepupRa/RaBundle/Tests/Security/Session/SessionLifetimeGuardTest.php b/src/Surfnet/StepupRa/RaBundle/Tests/Security/Session/SessionLifetimeGuardTest.php index 1d462b97..0ebd2356 100755 --- a/src/Surfnet/StepupRa/RaBundle/Tests/Security/Session/SessionLifetimeGuardTest.php +++ b/src/Surfnet/StepupRa/RaBundle/Tests/Security/Session/SessionLifetimeGuardTest.php @@ -238,7 +238,6 @@ public function bothLimitsVerificationProvider(): array private function setCurrentTime(DateTime $now = null): void { $nowProperty = new ReflectionProperty(DateTime::class, 'now'); - $nowProperty->setAccessible(true); $nowProperty->setValue(null, $now); } diff --git a/src/Surfnet/StepupRa/RaBundle/Tests/Security/Session/SessionStorageTest.php b/src/Surfnet/StepupRa/RaBundle/Tests/Security/Session/SessionStorageTest.php index e8f85020..e966b8b3 100755 --- a/src/Surfnet/StepupRa/RaBundle/Tests/Security/Session/SessionStorageTest.php +++ b/src/Surfnet/StepupRa/RaBundle/Tests/Security/Session/SessionStorageTest.php @@ -342,7 +342,6 @@ public function a_session_can_be_migrated() private function setCurrentTime(DateTime $now = null): void { $nowProperty = new ReflectionProperty(DateTime::class, 'now'); - $nowProperty->setAccessible(true); $nowProperty->setValue(null, $now); } } diff --git a/src/Surfnet/StepupRa/RaBundle/Value/DateTime.php b/src/Surfnet/StepupRa/RaBundle/Value/DateTime.php index 054b1b42..e81599a1 100755 --- a/src/Surfnet/StepupRa/RaBundle/Value/DateTime.php +++ b/src/Surfnet/StepupRa/RaBundle/Value/DateTime.php @@ -42,7 +42,7 @@ class DateTime implements Stringable */ private static ?self $now = null; - private CoreDateTime $dateTime; + private readonly CoreDateTime $dateTime; public static function now(): DateTime { From 7dcc1279f17003ecd105903012ff1b3365677a1c Mon Sep 17 00:00:00 2001 From: Johan Kromhout Date: Tue, 13 Jan 2026 10:05:24 +0100 Subject: [PATCH 08/18] Upgrade phpunit 9 > 10 --- ci/qa/phpunit.xml | 13 +- ci/qa/rector.php | 1 - composer.json | 4 +- composer.lock | 633 +++++++----------- .../DependencyInjection/ConfigurationTest.php | 24 +- .../Session/SessionLifetimeGuardTest.php | 42 +- .../Security/Session/SessionStorageTest.php | 64 +- .../SecondFactorAssertionServiceTest.php | 8 +- .../Tests/Service/VettingServiceTest.php | 16 +- .../RaBundle/Tests/Value/DateTimeTest.php | 30 +- .../RaBundle/Tests/Value/TimeFrameTest.php | 10 +- .../MetadataFactoryCollectionTest.php | 8 +- .../Tests/Provider/ViewConfigTest.php | 12 +- symfony.lock | 6 - 14 files changed, 319 insertions(+), 552 deletions(-) diff --git a/ci/qa/phpunit.xml b/ci/qa/phpunit.xml index 7649df95..b8bb4994 100644 --- a/ci/qa/phpunit.xml +++ b/ci/qa/phpunit.xml @@ -1,16 +1,18 @@ - + + + - ../../src + ../../src - + @@ -23,7 +25,4 @@ ../../src - - - diff --git a/ci/qa/rector.php b/ci/qa/rector.php index e55d37a6..ff181cac 100644 --- a/ci/qa/rector.php +++ b/ci/qa/rector.php @@ -11,7 +11,6 @@ __DIR__ . '/../../src', __DIR__ . '/../../templates', ]) - // uncomment to reach your current PHP version ->withPhpSets() ->withAttributesSets(all: true) ->withComposerBased(twig: true, doctrine: true, phpunit: true, symfony: true) diff --git a/composer.json b/composer.json index a45773f7..5a32207f 100644 --- a/composer.json +++ b/composer.json @@ -43,13 +43,13 @@ }, "require-dev": { "malukenho/docheader": "^1.0.0", - "matthiasnoback/symfony-config-test": "^4.0", + "matthiasnoback/symfony-config-test": "^6.1", "mockery/mockery": "^1.0", "overtrue/phplint": "^9.0", "phpmd/phpmd": "^2.6", "phpstan/phpstan": "^2", "phpstan/phpstan-symfony": "^2.0", - "phpunit/phpunit": "^9.5", + "phpunit/phpunit": "^10.5.60", "rector/rector": "^2", "slevomat/coding-standard": "^8.13", "squizlabs/php_codesniffer": "^3.4", diff --git a/composer.lock b/composer.lock index 14d52d8c..adae2f73 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "d87d8dde27169b41f727f2d5577674c3", + "content-hash": "5b0daf665b413a06580be9079faff05f", "packages": [ { "name": "beberlei/assert", @@ -7363,76 +7363,6 @@ ], "time": "2025-08-10T19:31:58+00:00" }, - { - "name": "doctrine/instantiator", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", - "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", - "shasum": "" - }, - "require": { - "php": "^8.1" - }, - "require-dev": { - "doctrine/coding-standard": "^11", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^1.2", - "phpstan/phpstan": "^1.9.4", - "phpstan/phpstan-phpunit": "^1.3", - "phpunit/phpunit": "^9.5.27", - "vimeo/psalm": "^5.4" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", - "keywords": [ - "constructor", - "instantiate" - ], - "support": { - "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/2.0.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", - "type": "tidelift" - } - ], - "time": "2022-12-30T00:23:10+00:00" - }, { "name": "hamcrest/hamcrest-php", "version": "v2.1.1", @@ -7544,38 +7474,36 @@ }, { "name": "matthiasnoback/symfony-config-test", - "version": "4.3.0", + "version": "v6.1.0", "source": { "type": "git", "url": "https://github.com/SymfonyTest/SymfonyConfigTest.git", - "reference": "e7db0f5ea98817c7ba1b9266f8039c085e673db4" + "reference": "3c4594145376f528a2954269ec10456164e99a44" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/SymfonyTest/SymfonyConfigTest/zipball/e7db0f5ea98817c7ba1b9266f8039c085e673db4", - "reference": "e7db0f5ea98817c7ba1b9266f8039c085e673db4", + "url": "https://api.github.com/repos/SymfonyTest/SymfonyConfigTest/zipball/3c4594145376f528a2954269ec10456164e99a44", + "reference": "3c4594145376f528a2954269ec10456164e99a44", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0", - "symfony/config": "^4.4 || ^5.3 || ^6.0" - }, - "conflict": { - "phpunit/phpunit": "<7.0" - }, - "require-dev": { - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "php": "^8.1", + "phpunit/phpunit": "^10.5 || ^11.0 || ^12.0", + "symfony/config": "^5.4 || ^6.4 || ^7.0 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0.x-dev" + "dev-master": "6.x-dev" } }, "autoload": { "psr-4": { "Matthias\\SymfonyConfigTest\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -7593,13 +7521,14 @@ "keywords": [ "config", "phpunit", - "symfony" + "symfony", + "testing" ], "support": { "issues": "https://github.com/SymfonyTest/SymfonyConfigTest/issues", - "source": "https://github.com/SymfonyTest/SymfonyConfigTest/tree/4.3.0" + "source": "https://github.com/SymfonyTest/SymfonyConfigTest/tree/v6.1.0" }, - "time": "2021-09-15T12:30:20+00:00" + "time": "2025-08-13T18:34:21+00:00" }, { "name": "mockery/mockery", @@ -8274,16 +8203,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.32", + "version": "10.1.16", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5" + "reference": "7e308268858ed6baedc8704a304727d20bc07c77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/85402a822d1ecf1db1096959413d35e1c37cf1a5", - "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/7e308268858ed6baedc8704a304727d20bc07c77", + "reference": "7e308268858ed6baedc8704a304727d20bc07c77", "shasum": "" }, "require": { @@ -8291,18 +8220,18 @@ "ext-libxml": "*", "ext-xmlwriter": "*", "nikic/php-parser": "^4.19.1 || ^5.1.0", - "php": ">=7.3", - "phpunit/php-file-iterator": "^3.0.6", - "phpunit/php-text-template": "^2.0.4", - "sebastian/code-unit-reverse-lookup": "^2.0.3", - "sebastian/complexity": "^2.0.3", - "sebastian/environment": "^5.1.5", - "sebastian/lines-of-code": "^1.0.4", - "sebastian/version": "^3.0.2", + "php": ">=8.1", + "phpunit/php-file-iterator": "^4.1.0", + "phpunit/php-text-template": "^3.0.1", + "sebastian/code-unit-reverse-lookup": "^3.0.0", + "sebastian/complexity": "^3.2.0", + "sebastian/environment": "^6.1.0", + "sebastian/lines-of-code": "^2.0.2", + "sebastian/version": "^4.0.1", "theseer/tokenizer": "^1.2.3" }, "require-dev": { - "phpunit/phpunit": "^9.6" + "phpunit/phpunit": "^10.1" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -8311,7 +8240,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "9.2.x-dev" + "dev-main": "10.1.x-dev" } }, "autoload": { @@ -8340,7 +8269,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/9.2.32" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.16" }, "funding": [ { @@ -8348,32 +8277,32 @@ "type": "github" } ], - "time": "2024-08-22T04:23:01+00:00" + "time": "2024-08-22T04:31:57+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "3.0.6", + "version": "4.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a95037b6d9e608ba092da1b23931e537cadc3c3c", + "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -8400,7 +8329,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" + "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.1.0" }, "funding": [ { @@ -8408,28 +8338,28 @@ "type": "github" } ], - "time": "2021-12-02T12:48:52+00:00" + "time": "2023-08-31T06:24:48+00:00" }, { "name": "phpunit/php-invoker", - "version": "3.1.1", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", + "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { "ext-pcntl": "*", - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "suggest": { "ext-pcntl": "*" @@ -8437,7 +8367,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -8463,7 +8393,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-invoker/issues", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0" }, "funding": [ { @@ -8471,32 +8401,32 @@ "type": "github" } ], - "time": "2020-09-28T05:58:55+00:00" + "time": "2023-02-03T06:56:09+00:00" }, { "name": "phpunit/php-text-template", - "version": "2.0.4", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/0c7b06ff49e3d5072f057eb1fa59258bf287a748", + "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -8522,7 +8452,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.1" }, "funding": [ { @@ -8530,32 +8461,32 @@ "type": "github" } ], - "time": "2020-10-26T05:33:50+00:00" + "time": "2023-08-31T14:07:24+00:00" }, { "name": "phpunit/php-timer", - "version": "5.0.3", + "version": "6.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/e2a2d67966e740530f4a3343fe2e030ffdc1161d", + "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -8581,7 +8512,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0" }, "funding": [ { @@ -8589,24 +8520,23 @@ "type": "github" } ], - "time": "2020-10-26T13:16:10+00:00" + "time": "2023-02-03T06:57:52+00:00" }, { "name": "phpunit/phpunit", - "version": "9.6.31", + "version": "10.5.60", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "945d0b7f346a084ce5549e95289962972c4272e5" + "reference": "f2e26f52f80ef77832e359205f216eeac00e320c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/945d0b7f346a084ce5549e95289962972c4272e5", - "reference": "945d0b7f346a084ce5549e95289962972c4272e5", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f2e26f52f80ef77832e359205f216eeac00e320c", + "reference": "f2e26f52f80ef77832e359205f216eeac00e320c", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.5.0 || ^2", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", @@ -8616,27 +8546,26 @@ "myclabs/deep-copy": "^1.13.4", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", - "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.32", - "phpunit/php-file-iterator": "^3.0.6", - "phpunit/php-invoker": "^3.1.1", - "phpunit/php-text-template": "^2.0.4", - "phpunit/php-timer": "^5.0.3", - "sebastian/cli-parser": "^1.0.2", - "sebastian/code-unit": "^1.0.8", - "sebastian/comparator": "^4.0.9", - "sebastian/diff": "^4.0.6", - "sebastian/environment": "^5.1.5", - "sebastian/exporter": "^4.0.8", - "sebastian/global-state": "^5.0.8", - "sebastian/object-enumerator": "^4.0.4", - "sebastian/resource-operations": "^3.0.4", - "sebastian/type": "^3.2.1", - "sebastian/version": "^3.0.2" + "php": ">=8.1", + "phpunit/php-code-coverage": "^10.1.16", + "phpunit/php-file-iterator": "^4.1.0", + "phpunit/php-invoker": "^4.0.0", + "phpunit/php-text-template": "^3.0.1", + "phpunit/php-timer": "^6.0.0", + "sebastian/cli-parser": "^2.0.1", + "sebastian/code-unit": "^2.0.0", + "sebastian/comparator": "^5.0.4", + "sebastian/diff": "^5.1.1", + "sebastian/environment": "^6.1.0", + "sebastian/exporter": "^5.1.4", + "sebastian/global-state": "^6.0.2", + "sebastian/object-enumerator": "^5.0.0", + "sebastian/recursion-context": "^5.0.1", + "sebastian/type": "^4.0.0", + "sebastian/version": "^4.0.1" }, "suggest": { - "ext-soap": "To be able to generate mocks based on WSDL files", - "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + "ext-soap": "To be able to generate mocks based on WSDL files" }, "bin": [ "phpunit" @@ -8644,7 +8573,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "9.6-dev" + "dev-main": "10.5-dev" } }, "autoload": { @@ -8676,7 +8605,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.31" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.60" }, "funding": [ { @@ -8700,7 +8629,7 @@ "type": "tidelift" } ], - "time": "2025-12-06T07:45:52+00:00" + "time": "2025-12-06T07:50:42+00:00" }, { "name": "rector/rector", @@ -8764,28 +8693,28 @@ }, { "name": "sebastian/cli-parser", - "version": "1.0.2", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b" + "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b", - "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/c34583b87e7b7a8055bf6c450c2c77ce32a24084", + "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-main": "2.0-dev" } }, "autoload": { @@ -8808,7 +8737,8 @@ "homepage": "https://github.com/sebastianbergmann/cli-parser", "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.2" + "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.1" }, "funding": [ { @@ -8816,32 +8746,32 @@ "type": "github" } ], - "time": "2024-03-02T06:27:43+00:00" + "time": "2024-03-02T07:12:49+00:00" }, { "name": "sebastian/code-unit", - "version": "1.0.8", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + "reference": "a81fee9eef0b7a76af11d121767abc44c104e503" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/a81fee9eef0b7a76af11d121767abc44c104e503", + "reference": "a81fee9eef0b7a76af11d121767abc44c104e503", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-main": "2.0-dev" } }, "autoload": { @@ -8864,7 +8794,7 @@ "homepage": "https://github.com/sebastianbergmann/code-unit", "support": { "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + "source": "https://github.com/sebastianbergmann/code-unit/tree/2.0.0" }, "funding": [ { @@ -8872,32 +8802,32 @@ "type": "github" } ], - "time": "2020-10-26T13:08:54+00:00" + "time": "2023-02-03T06:58:43+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "2.0.3", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", + "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -8919,7 +8849,7 @@ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", "support": { "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0.0" }, "funding": [ { @@ -8927,34 +8857,36 @@ "type": "github" } ], - "time": "2020-09-28T05:30:19+00:00" + "time": "2023-02-03T06:59:15+00:00" }, { "name": "sebastian/comparator", - "version": "4.0.9", + "version": "5.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "67a2df3a62639eab2cc5906065e9805d4fd5dfc5" + "reference": "e8e53097718d2b53cfb2aa859b06a41abf58c62e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/67a2df3a62639eab2cc5906065e9805d4fd5dfc5", - "reference": "67a2df3a62639eab2cc5906065e9805d4fd5dfc5", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/e8e53097718d2b53cfb2aa859b06a41abf58c62e", + "reference": "e8e53097718d2b53cfb2aa859b06a41abf58c62e", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/diff": "^4.0", - "sebastian/exporter": "^4.0" + "ext-dom": "*", + "ext-mbstring": "*", + "php": ">=8.1", + "sebastian/diff": "^5.0", + "sebastian/exporter": "^5.0" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -8993,7 +8925,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.9" + "security": "https://github.com/sebastianbergmann/comparator/security/policy", + "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.4" }, "funding": [ { @@ -9013,33 +8946,33 @@ "type": "tidelift" } ], - "time": "2025-08-10T06:51:50+00:00" + "time": "2025-09-07T05:25:07+00:00" }, { "name": "sebastian/complexity", - "version": "2.0.3", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a" + "reference": "68ff824baeae169ec9f2137158ee529584553799" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a", - "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799", + "reference": "68ff824baeae169ec9f2137158ee529584553799", "shasum": "" }, "require": { "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "3.2-dev" } }, "autoload": { @@ -9062,7 +8995,8 @@ "homepage": "https://github.com/sebastianbergmann/complexity", "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", - "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3" + "security": "https://github.com/sebastianbergmann/complexity/security/policy", + "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0" }, "funding": [ { @@ -9070,33 +9004,33 @@ "type": "github" } ], - "time": "2023-12-22T06:19:30+00:00" + "time": "2023-12-21T08:37:17+00:00" }, { "name": "sebastian/diff", - "version": "4.0.6", + "version": "5.1.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc" + "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc", - "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c41e007b4b62af48218231d6c2275e4c9b975b2e", + "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.3", - "symfony/process": "^4.2 || ^5" + "phpunit/phpunit": "^10.0", + "symfony/process": "^6.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "5.1-dev" } }, "autoload": { @@ -9128,7 +9062,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6" + "security": "https://github.com/sebastianbergmann/diff/security/policy", + "source": "https://github.com/sebastianbergmann/diff/tree/5.1.1" }, "funding": [ { @@ -9136,27 +9071,27 @@ "type": "github" } ], - "time": "2024-03-02T06:30:58+00:00" + "time": "2024-03-02T07:15:17+00:00" }, { "name": "sebastian/environment", - "version": "5.1.5", + "version": "6.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" + "reference": "8074dbcd93529b357029f5cc5058fd3e43666984" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/8074dbcd93529b357029f5cc5058fd3e43666984", + "reference": "8074dbcd93529b357029f5cc5058fd3e43666984", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "suggest": { "ext-posix": "*" @@ -9164,7 +9099,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "5.1-dev" + "dev-main": "6.1-dev" } }, "autoload": { @@ -9183,7 +9118,7 @@ } ], "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", + "homepage": "https://github.com/sebastianbergmann/environment", "keywords": [ "Xdebug", "environment", @@ -9191,7 +9126,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" + "security": "https://github.com/sebastianbergmann/environment/security/policy", + "source": "https://github.com/sebastianbergmann/environment/tree/6.1.0" }, "funding": [ { @@ -9199,34 +9135,34 @@ "type": "github" } ], - "time": "2023-02-03T06:03:51+00:00" + "time": "2024-03-23T08:47:14+00:00" }, { "name": "sebastian/exporter", - "version": "4.0.8", + "version": "5.1.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "14c6ba52f95a36c3d27c835d65efc7123c446e8c" + "reference": "0735b90f4da94969541dac1da743446e276defa6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/14c6ba52f95a36c3d27c835d65efc7123c446e8c", - "reference": "14c6ba52f95a36c3d27c835d65efc7123c446e8c", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/0735b90f4da94969541dac1da743446e276defa6", + "reference": "0735b90f4da94969541dac1da743446e276defa6", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/recursion-context": "^4.0" + "ext-mbstring": "*", + "php": ">=8.1", + "sebastian/recursion-context": "^5.0" }, "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "5.1-dev" } }, "autoload": { @@ -9268,7 +9204,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.8" + "security": "https://github.com/sebastianbergmann/exporter/security/policy", + "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.4" }, "funding": [ { @@ -9288,38 +9225,35 @@ "type": "tidelift" } ], - "time": "2025-09-24T06:03:27+00:00" + "time": "2025-09-24T06:09:11+00:00" }, { "name": "sebastian/global-state", - "version": "5.0.8", + "version": "6.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6" + "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/b6781316bdcd28260904e7cc18ec983d0d2ef4f6", - "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", + "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" + "php": ">=8.1", + "sebastian/object-reflector": "^3.0", + "sebastian/recursion-context": "^5.0" }, "require-dev": { "ext-dom": "*", - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-uopz": "*" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -9338,59 +9272,48 @@ } ], "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", + "homepage": "https://www.github.com/sebastianbergmann/global-state", "keywords": [ "global state" ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.8" + "security": "https://github.com/sebastianbergmann/global-state/security/policy", + "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.2" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/sebastian/global-state", - "type": "tidelift" } ], - "time": "2025-08-10T07:10:35+00:00" + "time": "2024-03-02T07:19:19+00:00" }, { "name": "sebastian/lines-of-code", - "version": "1.0.4", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5" + "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5", - "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0", + "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0", "shasum": "" }, "require": { "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-main": "2.0-dev" } }, "autoload": { @@ -9413,7 +9336,8 @@ "homepage": "https://github.com/sebastianbergmann/lines-of-code", "support": { "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4" + "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2" }, "funding": [ { @@ -9421,34 +9345,34 @@ "type": "github" } ], - "time": "2023-12-22T06:20:34+00:00" + "time": "2023-12-21T08:38:20+00:00" }, { "name": "sebastian/object-enumerator", - "version": "4.0.4", + "version": "5.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" + "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/202d0e344a580d7f7d04b3fafce6933e59dae906", + "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" + "php": ">=8.1", + "sebastian/object-reflector": "^3.0", + "sebastian/recursion-context": "^5.0" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -9470,7 +9394,7 @@ "homepage": "https://github.com/sebastianbergmann/object-enumerator/", "support": { "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/5.0.0" }, "funding": [ { @@ -9478,32 +9402,32 @@ "type": "github" } ], - "time": "2020-10-26T13:12:34+00:00" + "time": "2023-02-03T07:08:32+00:00" }, { "name": "sebastian/object-reflector", - "version": "2.0.4", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + "reference": "24ed13d98130f0e7122df55d06c5c4942a577957" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/24ed13d98130f0e7122df55d06c5c4942a577957", + "reference": "24ed13d98130f0e7122df55d06c5c4942a577957", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -9525,7 +9449,7 @@ "homepage": "https://github.com/sebastianbergmann/object-reflector/", "support": { "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + "source": "https://github.com/sebastianbergmann/object-reflector/tree/3.0.0" }, "funding": [ { @@ -9533,32 +9457,32 @@ "type": "github" } ], - "time": "2020-10-26T13:14:26+00:00" + "time": "2023-02-03T07:06:18+00:00" }, { "name": "sebastian/recursion-context", - "version": "4.0.6", + "version": "5.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "539c6691e0623af6dc6f9c20384c120f963465a0" + "reference": "47e34210757a2f37a97dcd207d032e1b01e64c7a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/539c6691e0623af6dc6f9c20384c120f963465a0", - "reference": "539c6691e0623af6dc6f9c20384c120f963465a0", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/47e34210757a2f37a97dcd207d032e1b01e64c7a", + "reference": "47e34210757a2f37a97dcd207d032e1b01e64c7a", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -9588,7 +9512,8 @@ "homepage": "https://github.com/sebastianbergmann/recursion-context", "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.6" + "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.1" }, "funding": [ { @@ -9608,86 +9533,32 @@ "type": "tidelift" } ], - "time": "2025-08-10T06:57:39+00:00" - }, - { - "name": "sebastian/resource-operations", - "version": "3.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/05d5692a7993ecccd56a03e40cd7e5b09b1d404e", - "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "support": { - "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-03-14T16:00:52+00:00" + "time": "2025-08-10T07:50:56+00:00" }, { "name": "sebastian/type", - "version": "3.2.1", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" + "reference": "462699a16464c3944eefc02ebdd77882bd3925bf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/462699a16464c3944eefc02ebdd77882bd3925bf", + "reference": "462699a16464c3944eefc02ebdd77882bd3925bf", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.5" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -9710,7 +9581,7 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" + "source": "https://github.com/sebastianbergmann/type/tree/4.0.0" }, "funding": [ { @@ -9718,29 +9589,29 @@ "type": "github" } ], - "time": "2023-02-03T06:13:03+00:00" + "time": "2023-02-03T07:10:45+00:00" }, { "name": "sebastian/version", - "version": "3.0.2", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c6c1022351a901512170118436c764e473f6de8c" + "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", - "reference": "c6c1022351a901512170118436c764e473f6de8c", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c51fa83a5d8f43f1402e3f32a005e6262244ef17", + "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -9763,7 +9634,7 @@ "homepage": "https://github.com/sebastianbergmann/version", "support": { "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + "source": "https://github.com/sebastianbergmann/version/tree/4.0.1" }, "funding": [ { @@ -9771,7 +9642,7 @@ "type": "github" } ], - "time": "2020-09-28T06:39:44+00:00" + "time": "2023-02-07T11:34:05+00:00" }, { "name": "slevomat/coding-standard", diff --git a/src/Surfnet/StepupRa/RaBundle/Tests/DependencyInjection/ConfigurationTest.php b/src/Surfnet/StepupRa/RaBundle/Tests/DependencyInjection/ConfigurationTest.php index cf298ffd..7490739b 100755 --- a/src/Surfnet/StepupRa/RaBundle/Tests/DependencyInjection/ConfigurationTest.php +++ b/src/Surfnet/StepupRa/RaBundle/Tests/DependencyInjection/ConfigurationTest.php @@ -26,10 +26,8 @@ final class ConfigurationTest extends TestCase { use ConfigurationTestCaseTrait; - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('configuration')] + #[\PHPUnit\Framework\Attributes\Test] public function it_requires_second_factors_to_be_configured() { $configuration = [ @@ -42,10 +40,8 @@ public function it_requires_second_factors_to_be_configured() $this->assertConfigurationIsInvalid([$configuration], 'must be configured'); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('configuration')] + #[\PHPUnit\Framework\Attributes\Test] public function it_requires_session_timeout_configuration() { $configuration = ['enabled_second_factors' => ['sms']]; @@ -53,10 +49,8 @@ public function it_requires_session_timeout_configuration() $this->assertConfigurationIsInvalid([$configuration], 'must be configured'); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('configuration')] + #[\PHPUnit\Framework\Attributes\Test] public function it_requires_maximum_absolute_timeout_to_be_configured() { $configuration = [ @@ -67,10 +61,8 @@ public function it_requires_maximum_absolute_timeout_to_be_configured() $this->assertConfigurationIsInvalid([$configuration], 'must be configured'); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('configuration')] + #[\PHPUnit\Framework\Attributes\Test] public function it_requires_maximum_relative_timeout_to_be_configured() { $configuration = [ @@ -81,19 +73,15 @@ public function it_requires_maximum_relative_timeout_to_be_configured() $this->assertConfigurationIsInvalid([$configuration], 'must be configured'); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('configuration')] + #[\PHPUnit\Framework\Attributes\Test] public function it_allows_one_enabled_second_factor() { $this->assertConfigurationIsValid([['enabled_second_factors' => ['sms']]], 'enabled_second_factors'); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('configuration')] + #[\PHPUnit\Framework\Attributes\Test] public function it_allows_two_enabled_second_factors() { $this->assertConfigurationIsValid([['enabled_second_factors' => ['sms', 'yubikey']]], 'enabled_second_factors'); diff --git a/src/Surfnet/StepupRa/RaBundle/Tests/Security/Session/SessionLifetimeGuardTest.php b/src/Surfnet/StepupRa/RaBundle/Tests/Security/Session/SessionLifetimeGuardTest.php index 0ebd2356..c1cc9154 100755 --- a/src/Surfnet/StepupRa/RaBundle/Tests/Security/Session/SessionLifetimeGuardTest.php +++ b/src/Surfnet/StepupRa/RaBundle/Tests/Security/Session/SessionLifetimeGuardTest.php @@ -37,11 +37,9 @@ public function tearDown(): void $this->setCurrentTime(); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('security')] #[\PHPUnit\Framework\Attributes\Group('session')] + #[\PHPUnit\Framework\Attributes\Test] public function an_authentication_session_without_logged_authentication_is_within_absolute_limit() { $sessionLifetimeGuard = new SessionLifetimeGuard(TimeFrame::ofSeconds(1000), TimeFrame::ofSeconds(100)); @@ -51,11 +49,9 @@ public function an_authentication_session_without_logged_authentication_is_withi $this->assertTrue($sessionLifetimeGuard->sessionLifetimeWithinAbsoluteLimit($sessionWithoutAuthentication)); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('security')] #[\PHPUnit\Framework\Attributes\Group('session')] + #[\PHPUnit\Framework\Attributes\Test] public function an_authentication_session_without_logged_authentication_is_within_relative_limit() { $sessionLifetimeGuard = new SessionLifetimeGuard(TimeFrame::ofSeconds(1000), TimeFrame::ofSeconds(100)); @@ -65,11 +61,9 @@ public function an_authentication_session_without_logged_authentication_is_withi $this->assertTrue($sessionLifetimeGuard->sessionLifetimeWithinRelativeLimit($sessionWithoutAuthentication)); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('security')] #[\PHPUnit\Framework\Attributes\Group('session')] + #[\PHPUnit\Framework\Attributes\Test] public function an_authentication_session_without_logged_authentication_is_within_limits() { $sessionLifetimeGuard = new SessionLifetimeGuard(TimeFrame::ofSeconds(1000), TimeFrame::ofSeconds(100)); @@ -79,11 +73,9 @@ public function an_authentication_session_without_logged_authentication_is_withi $this->assertTrue($sessionLifetimeGuard->sessionLifetimeWithinLimits($sessionWithoutAuthentication)); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('security')] #[\PHPUnit\Framework\Attributes\Group('session')] + #[\PHPUnit\Framework\Attributes\Test] public function an_authentication_session_with_a_lifetime_within_the_absolute_timeframe_is_within_the_absolute_limit() { $sessionLifetimeGuard = new SessionLifetimeGuard(TimeFrame::ofSeconds(1000), TimeFrame::ofSeconds(1)); @@ -95,11 +87,9 @@ public function an_authentication_session_with_a_lifetime_within_the_absolute_ti $this->assertTrue($sessionLifetimeGuard->sessionLifetimeWithinAbsoluteLimit($sessionWithinTimeFrame)); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('security')] #[\PHPUnit\Framework\Attributes\Group('session')] + #[\PHPUnit\Framework\Attributes\Test] public function an_authentication_session_with_a_lifetime_of_exactly_the_absolute_timeframe_is_within_the_absolute_limit() { $sessionLifetimeGuard = new SessionLifetimeGuard(TimeFrame::ofSeconds(1000), TimeFrame::ofSeconds(1)); @@ -111,11 +101,9 @@ public function an_authentication_session_with_a_lifetime_of_exactly_the_absolut $this->assertTrue($sessionLifetimeGuard->sessionLifetimeWithinAbsoluteLimit($sessionWithinTimeFrame)); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('security')] #[\PHPUnit\Framework\Attributes\Group('session')] + #[\PHPUnit\Framework\Attributes\Test] public function an_authentication_session_with_a_lifetime_longer_than_the_absolute_timeframe_is_outside_the_absolute_limit() { $sessionLifetimeGuard = new SessionLifetimeGuard(TimeFrame::ofSeconds(1000), TimeFrame::ofSeconds(1)); @@ -127,11 +115,9 @@ public function an_authentication_session_with_a_lifetime_longer_than_the_absolu $this->assertFalse($sessionLifetimeGuard->sessionLifetimeWithinAbsoluteLimit($sessionWithinTimeFrame)); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('security')] #[\PHPUnit\Framework\Attributes\Group('session')] + #[\PHPUnit\Framework\Attributes\Test] public function an_authentication_session_with_an_interaction_within_the_relative_timeframe_is_within_the_relative_limit() { $sessionLifetimeGuard = new SessionLifetimeGuard(TimeFrame::ofSeconds(1), TimeFrame::ofSeconds(1000)); @@ -143,11 +129,9 @@ public function an_authentication_session_with_an_interaction_within_the_relativ $this->assertTrue($sessionLifetimeGuard->sessionLifetimeWithinRelativeLimit($sessionWithinTimeFrame)); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('security')] #[\PHPUnit\Framework\Attributes\Group('session')] + #[\PHPUnit\Framework\Attributes\Test] public function an_authentication_session_with_an_interaction_after_exactly_the_relative_timeframe_is_within_the_relative_limit() { $sessionLifetimeGuard = new SessionLifetimeGuard(TimeFrame::ofSeconds(1), TimeFrame::ofSeconds(1000)); @@ -159,11 +143,9 @@ public function an_authentication_session_with_an_interaction_after_exactly_the_ $this->assertTrue($sessionLifetimeGuard->sessionLifetimeWithinRelativeLimit($sessionWithinTimeFrame)); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('security')] #[\PHPUnit\Framework\Attributes\Group('session')] + #[\PHPUnit\Framework\Attributes\Test] public function an_authentication_session_with_an_interaction_after_the_relative_timeframe_is_outside_the_relative_limit() { $sessionLifetimeGuard = new SessionLifetimeGuard(TimeFrame::ofSeconds(1000), TimeFrame::ofSeconds(1)); @@ -176,8 +158,6 @@ public function an_authentication_session_with_an_interaction_after_the_relative } /** - * @test - * @dataProvider bothLimitsVerificationProvider * * @param bool $isValid * @param null|DateTime $authenticationMoment @@ -185,6 +165,8 @@ public function an_authentication_session_with_an_interaction_after_the_relative */ #[\PHPUnit\Framework\Attributes\Group('security')] #[\PHPUnit\Framework\Attributes\Group('session')] + #[\PHPUnit\Framework\Attributes\Test] + #[\PHPUnit\Framework\Attributes\DataProvider('bothLimitsVerificationProvider')] public function an_authentication_session_is_verified_against_both_limits( $isValid, DateTime $authenticationMoment = null, @@ -216,7 +198,7 @@ public function an_authentication_session_is_verified_against_both_limits( /** * @return array */ - public function bothLimitsVerificationProvider(): array + public static function bothLimitsVerificationProvider(): array { $withinLimit = new DateTime(new CoreDateTime('@1001')); $overLimit = new DateTime(new CoreDateTime('@999')); diff --git a/src/Surfnet/StepupRa/RaBundle/Tests/Security/Session/SessionStorageTest.php b/src/Surfnet/StepupRa/RaBundle/Tests/Security/Session/SessionStorageTest.php index e966b8b3..3e43ed05 100755 --- a/src/Surfnet/StepupRa/RaBundle/Tests/Security/Session/SessionStorageTest.php +++ b/src/Surfnet/StepupRa/RaBundle/Tests/Security/Session/SessionStorageTest.php @@ -37,11 +37,9 @@ public function tearDown(): void $this->setCurrentTime(); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('security')] #[\PHPUnit\Framework\Attributes\Group('session')] + #[\PHPUnit\Framework\Attributes\Test] public function the_authentication_moment_can_be_logged() { $fakeRequestStack = new FakeRequestStack(); @@ -52,11 +50,9 @@ public function the_authentication_moment_can_be_logged() $this->assertInstanceOf(SessionStorage::class, $sessionStorage); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('security')] #[\PHPUnit\Framework\Attributes\Group('session')] + #[\PHPUnit\Framework\Attributes\Test] public function the_authentication_moment_cannot_be_logged_twice() { $this->expectException(LogicException::class); @@ -67,11 +63,9 @@ public function the_authentication_moment_cannot_be_logged_twice() $sessionStorage->logAuthenticationMoment(); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('security')] #[\PHPUnit\Framework\Attributes\Group('session')] + #[\PHPUnit\Framework\Attributes\Test] public function whether_or_not_an_authentication_moment_is_logged_can_be_queried() { $fakeRequestStack = new FakeRequestStack(); @@ -84,11 +78,9 @@ public function whether_or_not_an_authentication_moment_is_logged_can_be_queried $this->assertTrue($sessionStorage->isAuthenticationMomentLogged()); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('security')] #[\PHPUnit\Framework\Attributes\Group('session')] + #[\PHPUnit\Framework\Attributes\Test] public function a_logged_authentication_moment_can_be_retrieved() { $fakeRequestStack = new FakeRequestStack(); @@ -103,11 +95,9 @@ public function a_logged_authentication_moment_can_be_retrieved() $this->assertEquals($now, $authenticationMoment); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('security')] #[\PHPUnit\Framework\Attributes\Group('session')] + #[\PHPUnit\Framework\Attributes\Test] public function attempting_to_retrieve_an_authentication_moment_when_not_yet_logged_causes_an_exception_to_be_thrown() { $this->expectException(LogicException::class); @@ -118,11 +108,9 @@ public function attempting_to_retrieve_an_authentication_moment_when_not_yet_log $sessionStorage->getAuthenticationMoment(); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('security')] #[\PHPUnit\Framework\Attributes\Group('session')] + #[\PHPUnit\Framework\Attributes\Test] public function an_interaction_can_be_logged() { $fakeRequestStack = new FakeRequestStack(); @@ -133,11 +121,9 @@ public function an_interaction_can_be_logged() $this->assertInstanceOf(SessionStorage::class, $sessionStorage); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('security')] #[\PHPUnit\Framework\Attributes\Group('session')] + #[\PHPUnit\Framework\Attributes\Test] public function the_moment_of_interaction_can_be_retrieved() { $fakeRequestStack = new FakeRequestStack(); @@ -152,11 +138,9 @@ public function the_moment_of_interaction_can_be_retrieved() $this->assertEquals($now, $interactionMoment); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('security')] #[\PHPUnit\Framework\Attributes\Group('session')] + #[\PHPUnit\Framework\Attributes\Test] public function an_interaction_is_logged_when_an_authentication_is_logged() { $fakeRequestStack = new FakeRequestStack(); @@ -177,11 +161,9 @@ public function an_interaction_is_logged_when_an_authentication_is_logged() ); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('security')] #[\PHPUnit\Framework\Attributes\Group('session')] + #[\PHPUnit\Framework\Attributes\Test] public function the_moment_of_interaction_can_be_updated() { $fakeRequestStack = new FakeRequestStack(); @@ -204,11 +186,9 @@ public function the_moment_of_interaction_can_be_updated() $this->assertEquals($later, $secondInteraction); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('security')] #[\PHPUnit\Framework\Attributes\Group('session')] + #[\PHPUnit\Framework\Attributes\Test] public function the_existence_of_a_moment_interaction_can_be_queried() { $fakeRequestStack = new FakeRequestStack(); @@ -221,11 +201,9 @@ public function the_existence_of_a_moment_interaction_can_be_queried() $this->assertTrue($sessionStorage->hasSeenInteraction()); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('security')] #[\PHPUnit\Framework\Attributes\Group('session')] + #[\PHPUnit\Framework\Attributes\Test] public function the_current_uri_can_be_stored_in_the_session() { $fakeRequestStack = new FakeRequestStack(); @@ -238,11 +216,9 @@ public function the_current_uri_can_be_stored_in_the_session() $this->assertSame($originalUri, $retrievedUri); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('security')] #[\PHPUnit\Framework\Attributes\Group('session')] + #[\PHPUnit\Framework\Attributes\Test] public function a_request_id_can_be_stored_in_the_session() { $fakeRequestStack = new FakeRequestStack(); @@ -255,11 +231,9 @@ public function a_request_id_can_be_stored_in_the_session() $this->assertSame($originalRequestId, $retrievedRequestId); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('security')] #[\PHPUnit\Framework\Attributes\Group('session')] + #[\PHPUnit\Framework\Attributes\Test] public function the_presence_of_a_request_id_can_be_queried() { $fakeRequestStack = new FakeRequestStack(); @@ -273,11 +247,9 @@ public function the_presence_of_a_request_id_can_be_queried() $this->assertTrue($sessionStorage->hasRequestId()); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('security')] #[\PHPUnit\Framework\Attributes\Group('session')] + #[\PHPUnit\Framework\Attributes\Test] public function a_stored_request_id_can_be_cleared() { $fakeRequestStack = new FakeRequestStack(); @@ -296,11 +268,9 @@ public function a_stored_request_id_can_be_cleared() $this->assertNull($sessionStorage->getRequestId()); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('security')] #[\PHPUnit\Framework\Attributes\Group('session')] + #[\PHPUnit\Framework\Attributes\Test] public function a_session_can_be_invalidated() { $session = Mockery::mock(SessionInterface::class) @@ -315,11 +285,9 @@ public function a_session_can_be_invalidated() $this->assertInstanceOf(SessionStorage::class, $sessionStorage); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('security')] #[\PHPUnit\Framework\Attributes\Group('session')] + #[\PHPUnit\Framework\Attributes\Test] public function a_session_can_be_migrated() { $session = Mockery::mock(SessionInterface::class) diff --git a/src/Surfnet/StepupRa/RaBundle/Tests/Service/SecondFactorAssertionServiceTest.php b/src/Surfnet/StepupRa/RaBundle/Tests/Service/SecondFactorAssertionServiceTest.php index 7559282d..f7bd9229 100755 --- a/src/Surfnet/StepupRa/RaBundle/Tests/Service/SecondFactorAssertionServiceTest.php +++ b/src/Surfnet/StepupRa/RaBundle/Tests/Service/SecondFactorAssertionServiceTest.php @@ -37,9 +37,7 @@ protected function setUp(): void $this->service = new SecondFactorAssertionService($this->parameterBag, $this->logger); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] public function assertSecondFactorEnabled_should_throw_exception_when_second_factor_disabled() { $type = 'sms'; @@ -58,9 +56,7 @@ public function assertSecondFactorEnabled_should_throw_exception_when_second_fac $this->service->assertSecondFactorEnabled($type); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] public function assertSecondFactorEnabled_should_not_throw_exception_when_second_factor_enabled() { $type = 'sms'; diff --git a/src/Surfnet/StepupRa/RaBundle/Tests/Service/VettingServiceTest.php b/src/Surfnet/StepupRa/RaBundle/Tests/Service/VettingServiceTest.php index ce10b37c..495e2c06 100755 --- a/src/Surfnet/StepupRa/RaBundle/Tests/Service/VettingServiceTest.php +++ b/src/Surfnet/StepupRa/RaBundle/Tests/Service/VettingServiceTest.php @@ -26,11 +26,9 @@ final class VettingServiceTest extends TestCase { - /** - * @test - * @dataProvider validRegistrationDatesProvider - */ #[\PHPUnit\Framework\Attributes\Group('vetting')] + #[\PHPUnit\Framework\Attributes\Test] + #[\PHPUnit\Framework\Attributes\DataProvider('validRegistrationDatesProvider')] public function registration_code_is_valid_within_two_weeks_after_verification($registrationRequestedAt) { $command = new StartVettingProcedureCommand(); @@ -44,7 +42,7 @@ public function registration_code_is_valid_within_two_weeks_after_verification($ ); } - public function validRegistrationDatesProvider(): array + public static function validRegistrationDatesProvider(): array { return [ [date_create('- 1 week')], @@ -54,11 +52,9 @@ public function validRegistrationDatesProvider(): array ]; } - /** - * @test - * @dataProvider expiredRegistrationDatesProvider - */ #[\PHPUnit\Framework\Attributes\Group('vetting')] + #[\PHPUnit\Framework\Attributes\Test] + #[\PHPUnit\Framework\Attributes\DataProvider('expiredRegistrationDatesProvider')] public function registration_code_is_invalid_two_weeks_after_verification($registrationRequestedAt) { $command = new StartVettingProcedureCommand(); @@ -72,7 +68,7 @@ public function registration_code_is_invalid_two_weeks_after_verification($regis ); } - public function expiredRegistrationDatesProvider(): array + public static function expiredRegistrationDatesProvider(): array { return [ [date_create('- 3 weeks')], diff --git a/src/Surfnet/StepupRa/RaBundle/Tests/Value/DateTimeTest.php b/src/Surfnet/StepupRa/RaBundle/Tests/Value/DateTimeTest.php index c998f878..b4b04cd6 100755 --- a/src/Surfnet/StepupRa/RaBundle/Tests/Value/DateTimeTest.php +++ b/src/Surfnet/StepupRa/RaBundle/Tests/Value/DateTimeTest.php @@ -30,10 +30,9 @@ class DateTimeTest extends TestCase * this might lead to some unforeseen errors. This ensures that if the format is changed, this test fails and * that you're hopefully reading this as an instruction to check all the places that handle datetime for * compatibility with the new format. Think about log(-processors), (de-)serializers, etc. - * - * @test */ #[\PHPUnit\Framework\Attributes\Group('value')] + #[\PHPUnit\Framework\Attributes\Test] public function the_configured_format_is_what_is_needed_for_correct_application_behavior() { $this->assertEquals('Y-m-d\\TH:i:sP', DateTime::FORMAT); @@ -42,10 +41,9 @@ public function the_configured_format_is_what_is_needed_for_correct_application_ /** * Ensure that the __toString of our DateTime object actually uses the correct format. For the reason why, read the * docblock above the {@see the_configured_format_is_what_is_needed_for_correct_application_behavior()} test - * - * @test */ #[\PHPUnit\Framework\Attributes\Group('value')] + #[\PHPUnit\Framework\Attributes\Test] public function to_string_returns_the_time_in_the_correct_format() { $coreDateTimeObject = new CoreDateTime('@1000'); @@ -54,10 +52,8 @@ public function to_string_returns_the_time_in_the_correct_format() $this->assertEquals($coreDateTimeObject->format(DateTime::FORMAT), (string) $ourDateTimeObject); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('value')] + #[\PHPUnit\Framework\Attributes\Test] public function add_returns_a_different_object_that_has_the_interval_added() { $base = new DateTime(new CoreDateTime('@1000')); @@ -69,10 +65,8 @@ public function add_returns_a_different_object_that_has_the_interval_added() $this->assertTrue($result > $base, 'DateTime::add adds the interval to the new object'); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('value')] + #[\PHPUnit\Framework\Attributes\Test] public function sub_returns_a_different_object_that_has_the_interval_substracted() { $base = new DateTime(new CoreDateTime('@1000')); @@ -84,10 +78,8 @@ public function sub_returns_a_different_object_that_has_the_interval_substracted $this->assertTrue($result < $base, 'DateTime::sub subtracts the interval to the new object'); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('value')] + #[\PHPUnit\Framework\Attributes\Test] public function comes_before_works_with_exclusive_comparison() { $base = new DateTime(new CoreDateTime('@1000')); @@ -100,10 +92,8 @@ public function comes_before_works_with_exclusive_comparison() $this->assertFalse($after->comesBefore($base)); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('value')] + #[\PHPUnit\Framework\Attributes\Test] public function comes_before_or_is_equal_works_with_inclusive_comparison() { $base = new DateTime(new CoreDateTime('@1000')); @@ -116,10 +106,8 @@ public function comes_before_or_is_equal_works_with_inclusive_comparison() $this->assertFalse($after->comesBeforeOrIsEqual($base)); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('value')] + #[\PHPUnit\Framework\Attributes\Test] public function comes_after_works_with_exclusive_comparison() { $base = new DateTime(new CoreDateTime('@1000')); @@ -132,10 +120,8 @@ public function comes_after_works_with_exclusive_comparison() $this->assertTrue($after->comesAfter($base)); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('value')] + #[\PHPUnit\Framework\Attributes\Test] public function comes_after_or_is_equal_works_with_inclusive_comparison() { $base = new DateTime(new CoreDateTime('@1000')); diff --git a/src/Surfnet/StepupRa/RaBundle/Tests/Value/TimeFrameTest.php b/src/Surfnet/StepupRa/RaBundle/Tests/Value/TimeFrameTest.php index 248fe923..15684199 100755 --- a/src/Surfnet/StepupRa/RaBundle/Tests/Value/TimeFrameTest.php +++ b/src/Surfnet/StepupRa/RaBundle/Tests/Value/TimeFrameTest.php @@ -26,11 +26,11 @@ class TimeFrameTest extends TestCase { /** - * @test - * @dataProvider notPositiveIntegerProvider * @param mixed $notPositiveInteger */ #[\PHPUnit\Framework\Attributes\Group('value')] + #[\PHPUnit\Framework\Attributes\Test] + #[\PHPUnit\Framework\Attributes\DataProvider('notPositiveIntegerProvider')] public function it_cannot_be_given_an_non_positive_amount_of_seconds($notPositiveInteger) { $this->expectException(InvalidArgumentException::class); @@ -38,10 +38,8 @@ public function it_cannot_be_given_an_non_positive_amount_of_seconds($notPositiv TimeFrame::ofSeconds($notPositiveInteger); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('value')] + #[\PHPUnit\Framework\Attributes\Test] public function to_string_output_matches_amount_of_seconds_as_string() { $seconds = 1000; @@ -58,7 +56,7 @@ public function to_string_output_matches_amount_of_seconds_as_string() /** * @return array */ - public function notPositiveIntegerProvider(): array + public static function notPositiveIntegerProvider(): array { return [ 'empty string' => [''], diff --git a/src/Surfnet/StepupRa/SamlStepupProviderBundle/Tests/Provider/MetadataFactoryCollectionTest.php b/src/Surfnet/StepupRa/SamlStepupProviderBundle/Tests/Provider/MetadataFactoryCollectionTest.php index 222c61c0..be59e648 100755 --- a/src/Surfnet/StepupRa/SamlStepupProviderBundle/Tests/Provider/MetadataFactoryCollectionTest.php +++ b/src/Surfnet/StepupRa/SamlStepupProviderBundle/Tests/Provider/MetadataFactoryCollectionTest.php @@ -25,9 +25,7 @@ class MetadataFactoryCollectionTest extends TestCase { - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] public function metadata_factory_can_be_added_and_retrieved(): void { $identifier = 'provider1'; @@ -39,9 +37,7 @@ public function metadata_factory_can_be_added_and_retrieved(): void $this->assertSame($factory, $collection->getByIdentifier($identifier)); } - /** - * @test - */ + #[\PHPUnit\Framework\Attributes\Test] public function exception_is_thrown_when_retrieving_non_existent_provider(): void { $identifier = 'provider1'; diff --git a/src/Surfnet/StepupRa/SamlStepupProviderBundle/Tests/Provider/ViewConfigTest.php b/src/Surfnet/StepupRa/SamlStepupProviderBundle/Tests/Provider/ViewConfigTest.php index f857fdee..980a987d 100755 --- a/src/Surfnet/StepupRa/SamlStepupProviderBundle/Tests/Provider/ViewConfigTest.php +++ b/src/Surfnet/StepupRa/SamlStepupProviderBundle/Tests/Provider/ViewConfigTest.php @@ -30,10 +30,8 @@ */ final class ViewConfigTest extends TestCase { - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('di')] + #[\PHPUnit\Framework\Attributes\Test] public function view_config_translates_correctly() { $viewConfig = $this->buildViewConfig('nl_NL'); @@ -52,10 +50,8 @@ public function view_config_translates_correctly() $this->assertEquals('EN gssfIdMismatch', $viewConfig->getGssfIdMismatch()); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('di')] + #[\PHPUnit\Framework\Attributes\Test] public function translation_fails_when_no_current_language_set() { $this->expectExceptionMessage("The requested translation is not available in this language"); @@ -65,10 +61,8 @@ public function translation_fails_when_no_current_language_set() $viewConfig->getExplanation(); } - /** - * @test - */ #[\PHPUnit\Framework\Attributes\Group('di')] + #[\PHPUnit\Framework\Attributes\Test] public function view_config_cannot_serve_french_translations() { $this->expectExceptionMessage("The requested translation is not available in this language: fr_FR. Available languages: en_GB, nl_NL"); diff --git a/symfony.lock b/symfony.lock index 0da9eb1b..e2e04125 100644 --- a/symfony.lock +++ b/symfony.lock @@ -41,9 +41,6 @@ "doctrine/inflector": { "version": "1.4.3" }, - "doctrine/instantiator": { - "version": "1.3.1" - }, "doctrine/lexer": { "version": "1.2.1" }, @@ -223,9 +220,6 @@ "sebastian/recursion-context": { "version": "3.0.0" }, - "sebastian/resource-operations": { - "version": "2.0.1" - }, "sebastian/type": { "version": "1.1.3" }, From 464ffb25166ede0292b0c3dccc79b111687cb880 Mon Sep 17 00:00:00 2001 From: Johan Kromhout Date: Tue, 13 Jan 2026 14:51:29 +0100 Subject: [PATCH 09/18] Update Symfony 6.4 > 7.4 --- composer.json | 85 +- composer.lock | 1928 +++++++++++++++------------- config/bundles.php | 2 +- config/packages/property_info.yaml | 3 + symfony.lock | 23 +- 5 files changed, 1090 insertions(+), 951 deletions(-) create mode 100644 config/packages/property_info.yaml diff --git a/composer.json b/composer.json index 5a32207f..47ae13c2 100644 --- a/composer.json +++ b/composer.json @@ -15,48 +15,48 @@ "php": "^8.2", "ext-dom": "*", "ext-openssl": "*", - "doctrine/annotations": "^2.0", - "guzzlehttp/guzzle": "^7", - "incenteev/composer-parameter-handler": "~2.0", - "jms/translation-bundle": "^2.1", - "knplabs/knp-paginator-bundle": "^6.0", - "nelmio/security-bundle": "^3.0", - "openconext/monitor-bundle": "^4.2", - "surfnet/stepup-bundle": "^6.0", - "surfnet/stepup-middleware-client-bundle": "^5.3.0", - "surfnet/stepup-saml-bundle": "^6.0", - "symfony/asset": "6.4.*", - "symfony/expression-language": "6.4.*", - "symfony/flex": "^v2.4.3", - "symfony/form": "6.4.*", - "symfony/framework-bundle": "6.4.*", - "symfony/http-foundation": "6.4.*", - "symfony/monolog-bundle": "^3.5", - "symfony/runtime": "6.4.*", - "symfony/security-bundle": "6.4.*", - "symfony/translation": "6.4.*", - "symfony/twig-bundle": "6.4.*", - "symfony/validator": "6.4.*", - "symfony/webpack-encore-bundle": "^1.7", - "twig/extra-bundle": "^3.0", - "twig/twig": "^3.0" + "doctrine/annotations": "^2.0.2", + "guzzlehttp/guzzle": "^7.10", + "incenteev/composer-parameter-handler": "^2.3", + "jms/translation-bundle": "^2.6", + "knplabs/knp-paginator-bundle": "^6.10", + "nelmio/security-bundle": "^3.7", + "openconext/monitor-bundle": "^4.3.1", + "surfnet/stepup-bundle": "^7.0.1", + "surfnet/stepup-middleware-client-bundle": "dev-feature/update_sf74#bf63618f1607fcc3aaf62a665ccdd6296f32ee64", + "surfnet/stepup-saml-bundle": "^7.0.1", + "symfony/asset": "7.4.*", + "symfony/expression-language": "7.4.*", + "symfony/flex": "^2.10.0", + "symfony/form": "7.4.*", + "symfony/framework-bundle": "7.4.*", + "symfony/http-foundation": "7.4.*", + "symfony/monolog-bundle": "^v4.0.1", + "symfony/runtime": "7.4.*", + "symfony/security-bundle": "7.4.*", + "symfony/translation": "7.4.*", + "symfony/twig-bundle": "7.4.*", + "symfony/validator": "7.4.*", + "symfony/webpack-encore-bundle": "^2.4", + "twig/extra-bundle": "^3.22.2", + "twig/twig": "^3.22.2" }, "require-dev": { - "malukenho/docheader": "^1.0.0", + "malukenho/docheader": "^1.1.0", "matthiasnoback/symfony-config-test": "^6.1", - "mockery/mockery": "^1.0", - "overtrue/phplint": "^9.0", - "phpmd/phpmd": "^2.6", - "phpstan/phpstan": "^2", - "phpstan/phpstan-symfony": "^2.0", + "mockery/mockery": "^1.6.12", + "overtrue/phplint": "^9.7.1", + "phpmd/phpmd": "^2.15", + "phpstan/phpstan": "^2.1.33", + "phpstan/phpstan-symfony": "^2.0.9", "phpunit/phpunit": "^10.5.60", - "rector/rector": "^2", - "slevomat/coding-standard": "^8.13", - "squizlabs/php_codesniffer": "^3.4", - "symfony/maker-bundle": "^1.19", - "symfony/phpunit-bridge": "6.4.*", - "symfony/stopwatch": "^5.1", - "symfony/web-profiler-bundle": "6.4.*" + "rector/rector": "^2.3", + "slevomat/coding-standard": "^8.22.1", + "squizlabs/php_codesniffer": "^3.13.5", + "symfony/maker-bundle": "^1.65.1", + "symfony/phpunit-bridge": "7.4.*", + "symfony/stopwatch": "^7.4", + "symfony/web-profiler-bundle": "7.4.*" }, "conflict": { "symfony/symfony": "*" @@ -99,8 +99,8 @@ ], "phplint": "./ci/qa/phplint", "license-headers": "./ci/qa/docheader", - "rector": "./ci/qa/rector.sh --dry-run", - "rector-fix": "./ci/qa/rector.sh", + "rector": "./ci/qa/rector.sh --dry-run", + "rector-fix": "./ci/qa/rector.sh", "phpmd": "./ci/qa/phpmd", "phpcs": "./ci/qa/phpcs", "phpstan": "./ci/qa/phpstan", @@ -148,7 +148,7 @@ }, "symfony": { "allow-contrib": false, - "require": "6.4.*" + "require": "7.4.*" }, "incenteev-parameters": [ { @@ -161,5 +161,6 @@ "file": "config/openconext/global_view_parameters.yaml" } ] - } + }, + "type": "project" } diff --git a/composer.lock b/composer.lock index adae2f73..77887499 100644 --- a/composer.lock +++ b/composer.lock @@ -4,29 +4,37 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "5b0daf665b413a06580be9079faff05f", + "content-hash": "3ae19ef14e0783b8554635655c91059b", "packages": [ { "name": "beberlei/assert", - "version": "v2.9.9", + "version": "v3.3.3", "source": { "type": "git", "url": "https://github.com/beberlei/assert.git", - "reference": "124317de301b7c91d5fce34c98bba2c6925bec95" + "reference": "b5fd8eacd8915a1b627b8bfc027803f1939734dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/beberlei/assert/zipball/124317de301b7c91d5fce34c98bba2c6925bec95", - "reference": "124317de301b7c91d5fce34c98bba2c6925bec95", + "url": "https://api.github.com/repos/beberlei/assert/zipball/b5fd8eacd8915a1b627b8bfc027803f1939734dd", + "reference": "b5fd8eacd8915a1b627b8bfc027803f1939734dd", "shasum": "" }, "require": { + "ext-ctype": "*", + "ext-json": "*", "ext-mbstring": "*", - "php": ">=5.3" + "ext-simplexml": "*", + "php": "^7.1 || ^8.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^2.1.1", - "phpunit/phpunit": "^4.8.35|^5.7" + "friendsofphp/php-cs-fixer": "*", + "phpstan/phpstan": "*", + "phpunit/phpunit": ">=6.0.0", + "yoast/phpunit-polyfills": "^0.1.0" + }, + "suggest": { + "ext-intl": "Needed to allow Assertion::count(), Assertion::isCountable(), Assertion::minCount(), and Assertion::maxCount() to operate on ResourceBundles" }, "type": "library", "autoload": { @@ -61,31 +69,31 @@ ], "support": { "issues": "https://github.com/beberlei/assert/issues", - "source": "https://github.com/beberlei/assert/tree/v2.9.9" + "source": "https://github.com/beberlei/assert/tree/v3.3.3" }, - "time": "2019-05-28T15:27:37+00:00" + "time": "2024-07-15T13:18:35+00:00" }, { "name": "brick/math", - "version": "0.11.0", + "version": "0.14.1", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478" + "reference": "f05858549e5f9d7bb45875a75583240a38a281d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/0ad82ce168c82ba30d1c01ec86116ab52f589478", - "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478", + "url": "https://api.github.com/repos/brick/math/zipball/f05858549e5f9d7bb45875a75583240a38a281d0", + "reference": "f05858549e5f9d7bb45875a75583240a38a281d0", "shasum": "" }, "require": { - "php": "^8.0" + "php": "^8.2" }, "require-dev": { "php-coveralls/php-coveralls": "^2.2", - "phpunit/phpunit": "^9.0", - "vimeo/psalm": "5.0.0" + "phpstan/phpstan": "2.1.22", + "phpunit/phpunit": "^11.5" }, "type": "library", "autoload": { @@ -105,12 +113,17 @@ "arithmetic", "bigdecimal", "bignum", + "bignumber", "brick", - "math" + "decimal", + "integer", + "math", + "mathematics", + "rational" ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.11.0" + "source": "https://github.com/brick/math/tree/0.14.1" }, "funding": [ { @@ -118,7 +131,7 @@ "type": "github" } ], - "time": "2023-01-15T23:15:59+00:00" + "time": "2025-11-24T14:40:29+00:00" }, { "name": "composer/ca-bundle", @@ -1843,16 +1856,16 @@ }, { "name": "psr/log", - "version": "2.0.0", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376" + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/ef29f6d262798707a9edd554e2b82517ef3a9376", - "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", "shasum": "" }, "require": { @@ -1861,7 +1874,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.x-dev" } }, "autoload": { @@ -1887,9 +1900,9 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/2.0.0" + "source": "https://github.com/php-fig/log/tree/3.0.2" }, - "time": "2021-07-14T16:41:46+00:00" + "time": "2024-09-11T13:17:53+00:00" }, { "name": "ralouphie/getallheaders", @@ -2194,16 +2207,16 @@ }, { "name": "surfnet/stepup-bundle", - "version": "6.0.17", + "version": "7.0.1", "source": { "type": "git", "url": "https://github.com/OpenConext/Stepup-bundle.git", - "reference": "0565138f262cc8c33864d1635ee90386f389cdc0" + "reference": "05da7f6945da3a7b33b78555f784aa6bcc35320c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/OpenConext/Stepup-bundle/zipball/0565138f262cc8c33864d1635ee90386f389cdc0", - "reference": "0565138f262cc8c33864d1635ee90386f389cdc0", + "url": "https://api.github.com/repos/OpenConext/Stepup-bundle/zipball/05da7f6945da3a7b33b78555f784aa6bcc35320c", + "reference": "05da7f6945da3a7b33b78555f784aa6bcc35320c", "shasum": "" }, "require": { @@ -2213,26 +2226,31 @@ "guzzlehttp/guzzle": "^7.8", "monolog/monolog": "^3", "php": "^8.2", - "surfnet/stepup-saml-bundle": "^6.0", - "symfony/config": "^5.4|^6.3", - "symfony/dependency-injection": "^5.4|^6.3", - "symfony/form": "^5.4|^6.3", - "symfony/framework-bundle": "^5.4|^6.3", - "symfony/http-kernel": "^5.4|^6.3", - "symfony/twig-bridge": "^5.4|^6.3", - "symfony/validator": "^5.4|^6.3" + "surfnet/stepup-saml-bundle": "^7.0", + "symfony/config": "^6.3|^7.0", + "symfony/dependency-injection": "^6.3|^7.0", + "symfony/form": "^6.3|^7.0", + "symfony/framework-bundle": "^6.3|^7.0", + "symfony/http-kernel": "^6.3|^7.0", + "symfony/twig-bridge": "^6.3|^7.0", + "symfony/validator": "^6.3|^7.0" + }, + "conflict": { + "robrichards/xmlseclibs": "<3.1.4" }, "require-dev": { + "irstea/phpcpd-shim": "^6.0", + "malukenho/docheader": "^1.1", "mockery/mockery": "^1.5", "overtrue/phplint": "*", "phpmd/phpmd": "^2.13", - "phpstan/phpstan": "^1.10", - "phpstan/phpstan-symfony": "^1.3", - "phpunit/phpunit": "^9.6", - "sebastian/phpcpd": "^6.0", - "slevomat/coding-standard": "^8.13", - "squizlabs/php_codesniffer": "^3.7.1", - "symfony/phpunit-bridge": "^5.4|^6.3" + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-symfony": "^2.0", + "phpunit/phpunit": "^11.0.0", + "rector/rector": "^2.2", + "slevomat/coding-standard": "^8.24", + "squizlabs/php_codesniffer": "^4.0", + "symfony/phpunit-bridge": "^7.3" }, "type": "library", "extra": { @@ -2240,6 +2258,10 @@ "includes": [ "./ci/qa/extension.neon" ] + }, + "symfony": { + "require": "7.0.*", + "allow-contrib": false } }, "autoload": { @@ -2259,50 +2281,52 @@ ], "support": { "issues": "https://github.com/OpenConext/Stepup-bundle/issues", - "source": "https://github.com/OpenConext/Stepup-bundle/tree/6.0.17" + "source": "https://github.com/OpenConext/Stepup-bundle/tree/7.0.1" }, - "time": "2024-05-24T13:37:46+00:00" + "time": "2025-12-15T09:53:01+00:00" }, { "name": "surfnet/stepup-middleware-client-bundle", - "version": "5.3.0", + "version": "dev-feature/update_sf74", "source": { "type": "git", "url": "https://github.com/OpenConext/Stepup-Middleware-clientbundle.git", - "reference": "0294e909e8cec89f2a0cf7305fe1f6cb86ada2da" + "reference": "bf63618f1607fcc3aaf62a665ccdd6296f32ee64" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/OpenConext/Stepup-Middleware-clientbundle/zipball/0294e909e8cec89f2a0cf7305fe1f6cb86ada2da", - "reference": "0294e909e8cec89f2a0cf7305fe1f6cb86ada2da", + "url": "https://api.github.com/repos/OpenConext/Stepup-Middleware-clientbundle/zipball/bf63618f1607fcc3aaf62a665ccdd6296f32ee64", + "reference": "bf63618f1607fcc3aaf62a665ccdd6296f32ee64", "shasum": "" }, "require": { - "beberlei/assert": "~2.0", - "brick/math": "^0.11.0", + "beberlei/assert": "^3.3", + "brick/math": "^0.14.1", "guzzlehttp/guzzle": "^7.8", - "php": "^8.1", - "psr/log": "~2.0", + "php": "^8.2", + "psr/log": "^3.0", "ramsey/uuid": "^4.7", - "surfnet/stepup-bundle": "^6.0", - "symfony/config": "^5.4|^6.3", - "symfony/dependency-injection": "^5.4|^6.3", - "symfony/framework-bundle": "^5.4|^6.3", - "symfony/http-kernel": "^5.4|^6.3", - "symfony/validator": "^5.4|^6.3" + "surfnet/stepup-bundle": "^7.0.1", + "surfnet/stepup-saml-bundle": "^7.0.1", + "symfony/config": "^6.4|^7.4", + "symfony/dependency-injection": "^6.4|^7.4", + "symfony/framework-bundle": "^6.4|^7.4", + "symfony/http-kernel": "^6.4|^7.4", + "symfony/validator": "^6.4|^7.4" }, "require-dev": { - "matthiasnoback/symfony-config-test": "^4.0|^v5.0.0", + "malukenho/docheader": "^1.1", + "matthiasnoback/symfony-config-test": "^6.1", "mockery/mockery": "^1.6", - "overtrue/phplint": "*", + "overtrue/phplint": "^9.7.1", "phpmd/phpmd": "^2.13", - "phpstan/phpstan": "^1.10", - "phpstan/phpstan-symfony": "^1.3", - "phpunit/phpunit": "^9.6", - "sebastian/phpcpd": "^6.0", - "slevomat/coding-standard": "^8.13", - "squizlabs/php_codesniffer": "^3.7.1", - "symfony/phpunit-bridge": "^5.4|^6.3" + "phpstan/phpstan": "^2", + "phpstan/phpstan-symfony": "^2", + "phpunit/phpunit": "^11.5.46", + "rector/rector": "^2", + "slevomat/coding-standard": "^8.26", + "squizlabs/php_codesniffer": "^4.0", + "symfony/phpunit-bridge": "^6.4|^7.4" }, "type": "library", "autoload": { @@ -2318,50 +2342,56 @@ "description": "Symfony 5|6 bundle for consuming the Step-up Middleware API.", "support": { "issues": "https://github.com/OpenConext/Stepup-Middleware-clientbundle/issues", - "source": "https://github.com/OpenConext/Stepup-Middleware-clientbundle/tree/5.3.0" + "source": "https://github.com/OpenConext/Stepup-Middleware-clientbundle/tree/feature/update_sf74" }, - "time": "2025-05-15T08:51:47+00:00" + "time": "2026-01-13T13:19:59+00:00" }, { "name": "surfnet/stepup-saml-bundle", - "version": "6.2.0", + "version": "7.0.1", "source": { "type": "git", "url": "https://github.com/OpenConext/Stepup-saml-bundle.git", - "reference": "3ee8ae9e45dd45104945d8766a1d8e5a022701df" + "reference": "d39369136c5125f3c20daf225259e1416032bef9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/OpenConext/Stepup-saml-bundle/zipball/3ee8ae9e45dd45104945d8766a1d8e5a022701df", - "reference": "3ee8ae9e45dd45104945d8766a1d8e5a022701df", + "url": "https://api.github.com/repos/OpenConext/Stepup-saml-bundle/zipball/d39369136c5125f3c20daf225259e1416032bef9", + "reference": "d39369136c5125f3c20daf225259e1416032bef9", "shasum": "" }, "require": { "ext-dom": "*", "ext-openssl": "*", "php": "^8.1", - "robrichards/xmlseclibs": "^3.1.1", + "psr/log": "^3.0", + "robrichards/xmlseclibs": "^3.1.4", "simplesamlphp/saml2": "^4.6", - "symfony/dependency-injection": "^6.3", - "symfony/framework-bundle": "^6.3", - "symfony/security-bundle": "^6.3", - "symfony/templating": "^6.3", + "symfony/dependency-injection": "^6.3|^7.0", + "symfony/framework-bundle": "^6.3|^7.0", + "symfony/security-bundle": "^6.3|^7.0", + "symfony/templating": "^6.3|7.0", "twig/twig": "^3" }, + "conflict": { + "symfony/http-foundation": ">=8.0" + }, "require-dev": { + "ext-libxml": "*", "ext-zlib": "*", - "mbhsoft/phpunit-xsdvalidation": "^3.0", + "irstea/phpcpd-shim": "^6.0", + "malukenho/docheader": "^1.1", "mockery/mockery": "^1.5", "overtrue/phplint": "*", "phpmd/phpmd": "^2.6", - "phpstan/extension-installer": "^1.3", - "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^9.5", - "psr/log": "~1.0", - "sebastian/exporter": "^4.0.5", - "sebastian/phpcpd": "^6.0", - "squizlabs/php_codesniffer": "^3.7.1", - "symfony/phpunit-bridge": "^6.3" + "phpstan/extension-installer": "^1.4", + "phpstan/phpstan": "^2.1", + "phpunit/phpunit": "^11.0.0", + "rector/rector": "^2.2", + "sebastian/exporter": "^6.3", + "slevomat/coding-standard": "^8.24", + "squizlabs/php_codesniffer": "^4.0", + "symfony/phpunit-bridge": "^7.3.4" }, "type": "symfony-bundle", "extra": { @@ -2380,7 +2410,7 @@ "license": [ "Apache-2.0" ], - "description": "A Symfony 6 bundle that integrates the simplesamlphp\\saml2 library with Symfony.", + "description": "A Symfony 7 bundle that integrates the simplesamlphp\\saml2 library with Symfony.", "keywords": [ "SAML2", "saml", @@ -2390,34 +2420,34 @@ ], "support": { "issues": "https://github.com/OpenConext/Stepup-saml-bundle/issues", - "source": "https://github.com/OpenConext/Stepup-saml-bundle/tree/6.2.0" + "source": "https://github.com/OpenConext/Stepup-saml-bundle/tree/7.0.1" }, - "time": "2025-05-26T09:04:11+00:00" + "time": "2025-12-15T10:40:55+00:00" }, { "name": "symfony/asset", - "version": "v6.4.24", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/asset.git", - "reference": "cfee7c0d64be113383db74a2fdd65d426b7f3aab" + "reference": "0f7bccb9ffa1f373cbd659774d90629b2773464f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/asset/zipball/cfee7c0d64be113383db74a2fdd65d426b7f3aab", - "reference": "cfee7c0d64be113383db74a2fdd65d426b7f3aab", + "url": "https://api.github.com/repos/symfony/asset/zipball/0f7bccb9ffa1f373cbd659774d90629b2773464f", + "reference": "0f7bccb9ffa1f373cbd659774d90629b2773464f", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "conflict": { - "symfony/http-foundation": "<5.4" + "symfony/http-foundation": "<6.4" }, "require-dev": { - "symfony/http-client": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^5.4|^6.0|^7.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0" + "symfony/http-client": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -2445,7 +2475,7 @@ "description": "Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/asset/tree/v6.4.24" + "source": "https://github.com/symfony/asset/tree/v7.4.0" }, "funding": [ { @@ -2465,35 +2495,38 @@ "type": "tidelift" } ], - "time": "2025-07-10T08:14:14+00:00" + "time": "2025-08-04T07:05:15+00:00" }, { "name": "symfony/cache", - "version": "v6.4.31", + "version": "v7.4.3", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "a1b306757c34b96fe97c0c586f50dceed05c7adb" + "reference": "642117d18bc56832e74b68235359ccefab03dd11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/a1b306757c34b96fe97c0c586f50dceed05c7adb", - "reference": "a1b306757c34b96fe97c0c586f50dceed05c7adb", + "url": "https://api.github.com/repos/symfony/cache/zipball/642117d18bc56832e74b68235359ccefab03dd11", + "reference": "642117d18bc56832e74b68235359ccefab03dd11", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "psr/cache": "^2.0|^3.0", "psr/log": "^1.1|^2|^3", - "symfony/cache-contracts": "^2.5|^3", + "symfony/cache-contracts": "^3.6", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/service-contracts": "^2.5|^3", - "symfony/var-exporter": "^6.3.6|^7.0" + "symfony/var-exporter": "^6.4|^7.0|^8.0" }, "conflict": { - "doctrine/dbal": "<2.13.1", - "symfony/dependency-injection": "<5.4", - "symfony/http-kernel": "<5.4", - "symfony/var-dumper": "<5.4" + "doctrine/dbal": "<3.6", + "ext-redis": "<6.1", + "ext-relay": "<0.12.1", + "symfony/dependency-injection": "<6.4", + "symfony/http-kernel": "<6.4", + "symfony/var-dumper": "<6.4" }, "provide": { "psr/cache-implementation": "2.0|3.0", @@ -2502,15 +2535,16 @@ }, "require-dev": { "cache/integration-tests": "dev-master", - "doctrine/dbal": "^2.13.1|^3|^4", + "doctrine/dbal": "^3.6|^4", "predis/predis": "^1.1|^2.0", "psr/simple-cache": "^1.0|^2.0|^3.0", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/filesystem": "^5.4|^6.0|^7.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0" + "symfony/clock": "^6.4|^7.0|^8.0", + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/filesystem": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/messenger": "^6.4|^7.0|^8.0", + "symfony/var-dumper": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -2545,7 +2579,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v6.4.31" + "source": "https://github.com/symfony/cache/tree/v7.4.3" }, "funding": [ { @@ -2565,7 +2599,7 @@ "type": "tidelift" } ], - "time": "2025-12-27T18:26:25+00:00" + "time": "2025-12-28T10:45:24+00:00" }, { "name": "symfony/cache-contracts", @@ -2645,20 +2679,20 @@ }, { "name": "symfony/clock", - "version": "v6.4.30", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/clock.git", - "reference": "fb2df4bc9e3037c4765ba7fd29e00167001a9b68" + "reference": "9169f24776edde469914c1e7a1442a50f7a4e110" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/clock/zipball/fb2df4bc9e3037c4765ba7fd29e00167001a9b68", - "reference": "fb2df4bc9e3037c4765ba7fd29e00167001a9b68", + "url": "https://api.github.com/repos/symfony/clock/zipball/9169f24776edde469914c1e7a1442a50f7a4e110", + "reference": "9169f24776edde469914c1e7a1442a50f7a4e110", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "psr/clock": "^1.0", "symfony/polyfill-php83": "^1.28" }, @@ -2699,7 +2733,7 @@ "time" ], "support": { - "source": "https://github.com/symfony/clock/tree/v6.4.30" + "source": "https://github.com/symfony/clock/tree/v7.4.0" }, "funding": [ { @@ -2719,38 +2753,38 @@ "type": "tidelift" } ], - "time": "2025-11-11T21:24:34+00:00" + "time": "2025-11-12T15:39:26+00:00" }, { "name": "symfony/config", - "version": "v6.4.28", + "version": "v7.4.3", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "15947c18ef3ddb0b2f4ec936b9e90e2520979f62" + "reference": "800ce889e358a53a9678b3212b0c8cecd8c6aace" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/15947c18ef3ddb0b2f4ec936b9e90e2520979f62", - "reference": "15947c18ef3ddb0b2f4ec936b9e90e2520979f62", + "url": "https://api.github.com/repos/symfony/config/zipball/800ce889e358a53a9678b3212b0c8cecd8c6aace", + "reference": "800ce889e358a53a9678b3212b0c8cecd8c6aace", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/filesystem": "^5.4|^6.0|^7.0", + "symfony/filesystem": "^7.1|^8.0", "symfony/polyfill-ctype": "~1.8" }, "conflict": { - "symfony/finder": "<5.4", + "symfony/finder": "<6.4", "symfony/service-contracts": "<2.5" }, "require-dev": { - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/finder": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0|^8.0", + "symfony/finder": "^6.4|^7.0|^8.0", + "symfony/messenger": "^6.4|^7.0|^8.0", "symfony/service-contracts": "^2.5|^3", - "symfony/yaml": "^5.4|^6.0|^7.0" + "symfony/yaml": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -2778,7 +2812,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v6.4.28" + "source": "https://github.com/symfony/config/tree/v7.4.3" }, "funding": [ { @@ -2798,51 +2832,51 @@ "type": "tidelift" } ], - "time": "2025-11-01T19:52:02+00:00" + "time": "2025-12-23T14:24:27+00:00" }, { "name": "symfony/console", - "version": "v6.4.31", + "version": "v7.4.3", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "f9f8a889f54c264f9abac3fc0f7a371ffca51997" + "reference": "732a9ca6cd9dfd940c639062d5edbde2f6727fb6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/f9f8a889f54c264f9abac3fc0f7a371ffca51997", - "reference": "f9f8a889f54c264f9abac3fc0f7a371ffca51997", + "url": "https://api.github.com/repos/symfony/console/zipball/732a9ca6cd9dfd940c639062d5edbde2f6727fb6", + "reference": "732a9ca6cd9dfd940c639062d5edbde2f6727fb6", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^5.4|^6.0|^7.0" + "symfony/string": "^7.2|^8.0" }, "conflict": { - "symfony/dependency-injection": "<5.4", - "symfony/dotenv": "<5.4", - "symfony/event-dispatcher": "<5.4", - "symfony/lock": "<5.4", - "symfony/process": "<5.4" + "symfony/dependency-injection": "<6.4", + "symfony/dotenv": "<6.4", + "symfony/event-dispatcher": "<6.4", + "symfony/lock": "<6.4", + "symfony/process": "<6.4" }, "provide": { "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/lock": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0" + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/event-dispatcher": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/lock": "^6.4|^7.0|^8.0", + "symfony/messenger": "^6.4|^7.0|^8.0", + "symfony/process": "^6.4|^7.0|^8.0", + "symfony/stopwatch": "^6.4|^7.0|^8.0", + "symfony/var-dumper": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -2876,7 +2910,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.31" + "source": "https://github.com/symfony/console/tree/v7.4.3" }, "funding": [ { @@ -2896,44 +2930,43 @@ "type": "tidelift" } ], - "time": "2025-12-22T08:30:34+00:00" + "time": "2025-12-23T14:50:43+00:00" }, { "name": "symfony/dependency-injection", - "version": "v6.4.31", + "version": "v7.4.3", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "10058832a74a33648870aa2057e3fdc8796a6566" + "reference": "54122901b6d772e94f1e71a75e0533bc16563499" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/10058832a74a33648870aa2057e3fdc8796a6566", - "reference": "10058832a74a33648870aa2057e3fdc8796a6566", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/54122901b6d772e94f1e71a75e0533bc16563499", + "reference": "54122901b6d772e94f1e71a75e0533bc16563499", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "psr/container": "^1.1|^2.0", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/service-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.4.20|^7.2.5" + "symfony/service-contracts": "^3.6", + "symfony/var-exporter": "^6.4.20|^7.2.5|^8.0" }, "conflict": { "ext-psr": "<1.1|>=2", - "symfony/config": "<6.1", - "symfony/finder": "<5.4", - "symfony/proxy-manager-bridge": "<6.3", - "symfony/yaml": "<5.4" + "symfony/config": "<6.4", + "symfony/finder": "<6.4", + "symfony/yaml": "<6.4" }, "provide": { "psr/container-implementation": "1.1|2.0", "symfony/service-implementation": "1.1|2.0|3.0" }, "require-dev": { - "symfony/config": "^6.1|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/yaml": "^5.4|^6.0|^7.0" + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/yaml": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -2961,7 +2994,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.4.31" + "source": "https://github.com/symfony/dependency-injection/tree/v7.4.3" }, "funding": [ { @@ -2981,7 +3014,7 @@ "type": "tidelift" } ], - "time": "2025-12-23T13:34:50+00:00" + "time": "2025-12-28T10:55:46+00:00" }, { "name": "symfony/deprecation-contracts", @@ -3052,31 +3085,34 @@ }, { "name": "symfony/error-handler", - "version": "v6.4.26", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "41bedcaec5b72640b0ec2096547b75fda72ead6c" + "reference": "48be2b0653594eea32dcef130cca1c811dcf25c2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/41bedcaec5b72640b0ec2096547b75fda72ead6c", - "reference": "41bedcaec5b72640b0ec2096547b75fda72ead6c", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/48be2b0653594eea32dcef130cca1c811dcf25c2", + "reference": "48be2b0653594eea32dcef130cca1c811dcf25c2", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^5.4|^6.0|^7.0" + "symfony/polyfill-php85": "^1.32", + "symfony/var-dumper": "^6.4|^7.0|^8.0" }, "conflict": { "symfony/deprecation-contracts": "<2.5", "symfony/http-kernel": "<6.4" }, "require-dev": { + "symfony/console": "^6.4|^7.0|^8.0", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/serializer": "^5.4|^6.0|^7.0" + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/serializer": "^6.4|^7.0|^8.0", + "symfony/webpack-encore-bundle": "^1.0|^2.0" }, "bin": [ "Resources/bin/patch-type-declarations" @@ -3107,7 +3143,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/v6.4.26" + "source": "https://github.com/symfony/error-handler/tree/v7.4.0" }, "funding": [ { @@ -3127,28 +3163,28 @@ "type": "tidelift" } ], - "time": "2025-09-11T09:57:09+00:00" + "time": "2025-11-05T14:29:59+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v6.4.25", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "b0cf3162020603587363f0551cd3be43958611ff" + "reference": "9dddcddff1ef974ad87b3708e4b442dc38b2261d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b0cf3162020603587363f0551cd3be43958611ff", - "reference": "b0cf3162020603587363f0551cd3be43958611ff", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9dddcddff1ef974ad87b3708e4b442dc38b2261d", + "reference": "9dddcddff1ef974ad87b3708e4b442dc38b2261d", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/event-dispatcher-contracts": "^2.5|^3" }, "conflict": { - "symfony/dependency-injection": "<5.4", + "symfony/dependency-injection": "<6.4", "symfony/service-contracts": "<2.5" }, "provide": { @@ -3157,13 +3193,14 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/error-handler": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^5.4|^6.0|^7.0", + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/error-handler": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/framework-bundle": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", "symfony/service-contracts": "^2.5|^3", - "symfony/stopwatch": "^5.4|^6.0|^7.0" + "symfony/stopwatch": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -3191,7 +3228,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.25" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.4.0" }, "funding": [ { @@ -3211,7 +3248,7 @@ "type": "tidelift" } ], - "time": "2025-08-13T09:41:44+00:00" + "time": "2025-10-28T09:38:46+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -3291,21 +3328,21 @@ }, { "name": "symfony/expression-language", - "version": "v6.4.30", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/expression-language.git", - "reference": "01906f3b379833b347de9abc8ddc326593e9122b" + "reference": "8b9bbbb8c71f79a09638f6ea77c531e511139efa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/expression-language/zipball/01906f3b379833b347de9abc8ddc326593e9122b", - "reference": "01906f3b379833b347de9abc8ddc326593e9122b", + "url": "https://api.github.com/repos/symfony/expression-language/zipball/8b9bbbb8c71f79a09638f6ea77c531e511139efa", + "reference": "8b9bbbb8c71f79a09638f6ea77c531e511139efa", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/cache": "^5.4|^6.0|^7.0", + "php": ">=8.2", + "symfony/cache": "^6.4|^7.0|^8.0", "symfony/deprecation-contracts": "^2.5|^3", "symfony/service-contracts": "^2.5|^3" }, @@ -3335,7 +3372,7 @@ "description": "Provides an engine that can compile and evaluate expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/expression-language/tree/v6.4.30" + "source": "https://github.com/symfony/expression-language/tree/v7.4.0" }, "funding": [ { @@ -3355,29 +3392,29 @@ "type": "tidelift" } ], - "time": "2025-11-09T10:02:06+00:00" + "time": "2025-11-12T15:39:26+00:00" }, { "name": "symfony/filesystem", - "version": "v6.4.30", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "441c6b69f7222aadae7cbf5df588496d5ee37789" + "reference": "d551b38811096d0be9c4691d406991b47c0c630a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/441c6b69f7222aadae7cbf5df588496d5ee37789", - "reference": "441c6b69f7222aadae7cbf5df588496d5ee37789", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/d551b38811096d0be9c4691d406991b47c0c630a", + "reference": "d551b38811096d0be9c4691d406991b47c0c630a", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.8" }, "require-dev": { - "symfony/process": "^5.4|^6.4|^7.0" + "symfony/process": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -3405,7 +3442,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.4.30" + "source": "https://github.com/symfony/filesystem/tree/v7.4.0" }, "funding": [ { @@ -3425,27 +3462,27 @@ "type": "tidelift" } ], - "time": "2025-11-26T14:43:45+00:00" + "time": "2025-11-27T13:27:24+00:00" }, { "name": "symfony/finder", - "version": "v6.4.31", + "version": "v7.4.3", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "5547f2e1f0ca8e2e7abe490156b62da778cfbe2b" + "reference": "fffe05569336549b20a1be64250b40516d6e8d06" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/5547f2e1f0ca8e2e7abe490156b62da778cfbe2b", - "reference": "5547f2e1f0ca8e2e7abe490156b62da778cfbe2b", + "url": "https://api.github.com/repos/symfony/finder/zipball/fffe05569336549b20a1be64250b40516d6e8d06", + "reference": "fffe05569336549b20a1be64250b40516d6e8d06", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "symfony/filesystem": "^6.0|^7.0" + "symfony/filesystem": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -3473,7 +3510,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.4.31" + "source": "https://github.com/symfony/finder/tree/v7.4.3" }, "funding": [ { @@ -3493,7 +3530,7 @@ "type": "tidelift" } ], - "time": "2025-12-11T14:52:17+00:00" + "time": "2025-12-23T14:50:43+00:00" }, { "name": "symfony/flex", @@ -3570,56 +3607,58 @@ }, { "name": "symfony/form", - "version": "v6.4.31", + "version": "v7.4.3", "source": { "type": "git", "url": "https://github.com/symfony/form.git", - "reference": "a518332215c2a54784bf85bdd293a7f700f1d153" + "reference": "f7e147d3e57198122568f17909bc85266b0b2592" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/form/zipball/a518332215c2a54784bf85bdd293a7f700f1d153", - "reference": "a518332215c2a54784bf85bdd293a7f700f1d153", + "url": "https://api.github.com/repos/symfony/form/zipball/f7e147d3e57198122568f17909bc85266b0b2592", + "reference": "f7e147d3e57198122568f17909bc85266b0b2592", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/options-resolver": "^5.4|^6.0|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0|^8.0", + "symfony/options-resolver": "^7.3|^8.0", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-intl-icu": "^1.21", "symfony/polyfill-mbstring": "~1.0", - "symfony/property-access": "^5.4|^6.0|^7.0", + "symfony/property-access": "^6.4|^7.0|^8.0", "symfony/service-contracts": "^2.5|^3" }, "conflict": { - "symfony/console": "<5.4", - "symfony/dependency-injection": "<5.4", - "symfony/doctrine-bridge": "<5.4.21|>=6,<6.2.7", - "symfony/error-handler": "<5.4", - "symfony/framework-bundle": "<5.4", - "symfony/http-kernel": "<5.4", - "symfony/translation": "<5.4.35|>=6.0,<6.3.12|>=6.4,<6.4.3|>=7.0,<7.0.3", + "symfony/console": "<6.4", + "symfony/dependency-injection": "<6.4", + "symfony/doctrine-bridge": "<6.4", + "symfony/error-handler": "<6.4", + "symfony/framework-bundle": "<6.4", + "symfony/http-kernel": "<6.4", + "symfony/intl": "<7.4", + "symfony/translation": "<6.4.3|>=7.0,<7.0.3", "symfony/translation-contracts": "<2.5", - "symfony/twig-bridge": "<6.3" + "symfony/twig-bridge": "<6.4" }, "require-dev": { "doctrine/collections": "^1.0|^2.0", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/html-sanitizer": "^6.1|^7.0", - "symfony/http-foundation": "^5.4|^6.0|^7.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/intl": "^5.4|^6.0|^7.0", - "symfony/security-core": "^6.2|^7.0", - "symfony/security-csrf": "^5.4|^6.0|^7.0", - "symfony/translation": "^5.4.35|~6.3.12|^6.4.3|^7.0.3", - "symfony/uid": "^5.4|^6.0|^7.0", - "symfony/validator": "^5.4|^6.0|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0" + "symfony/clock": "^6.4|^7.0|^8.0", + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/html-sanitizer": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/intl": "^7.4|^8.0", + "symfony/security-core": "^6.4|^7.0|^8.0", + "symfony/security-csrf": "^6.4|^7.0|^8.0", + "symfony/translation": "^6.4.3|^7.0.3|^8.0", + "symfony/uid": "^6.4|^7.0|^8.0", + "symfony/validator": "^6.4.12|^7.1.5|^8.0", + "symfony/var-dumper": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -3647,7 +3686,7 @@ "description": "Allows to easily create, process and reuse HTML forms", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/form/tree/v6.4.31" + "source": "https://github.com/symfony/form/tree/v7.4.3" }, "funding": [ { @@ -3667,112 +3706,117 @@ "type": "tidelift" } ], - "time": "2025-12-23T08:34:29+00:00" + "time": "2025-12-23T14:50:43+00:00" }, { "name": "symfony/framework-bundle", - "version": "v6.4.31", + "version": "v7.4.3", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "0ab60c05570b9e2bfab92b9944b938b8ffb5ba96" + "reference": "df908e8f9e5f6cc3c9e0d0172e030a5c1c280582" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/0ab60c05570b9e2bfab92b9944b938b8ffb5ba96", - "reference": "0ab60c05570b9e2bfab92b9944b938b8ffb5ba96", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/df908e8f9e5f6cc3c9e0d0172e030a5c1c280582", + "reference": "df908e8f9e5f6cc3c9e0d0172e030a5c1c280582", "shasum": "" }, "require": { "composer-runtime-api": ">=2.1", "ext-xml": "*", - "php": ">=8.1", - "symfony/cache": "^5.4|^6.0|^7.0", - "symfony/config": "^6.1|^7.0", - "symfony/dependency-injection": "^6.4.12|^7.0", + "php": ">=8.2", + "symfony/cache": "^6.4.12|^7.0|^8.0", + "symfony/config": "^7.4.3|^8.0.3", + "symfony/dependency-injection": "^7.4|^8.0", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/error-handler": "^6.1|^7.0", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/filesystem": "^5.4|^6.0|^7.0", - "symfony/finder": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/http-kernel": "^6.4", + "symfony/error-handler": "^7.3|^8.0", + "symfony/event-dispatcher": "^6.4|^7.0|^8.0", + "symfony/filesystem": "^7.1|^8.0", + "symfony/finder": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", "symfony/polyfill-mbstring": "~1.0", - "symfony/routing": "^6.4|^7.0" + "symfony/polyfill-php85": "^1.32", + "symfony/routing": "^7.4|^8.0" }, "conflict": { - "doctrine/annotations": "<1.13.1", "doctrine/persistence": "<1.3", "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", - "symfony/asset": "<5.4", + "symfony/asset": "<6.4", "symfony/asset-mapper": "<6.4", - "symfony/clock": "<6.3", - "symfony/console": "<5.4|>=7.0", + "symfony/clock": "<6.4", + "symfony/console": "<6.4", "symfony/dom-crawler": "<6.4", - "symfony/dotenv": "<5.4", - "symfony/form": "<5.4", - "symfony/http-client": "<6.3", - "symfony/lock": "<5.4", - "symfony/mailer": "<5.4", - "symfony/messenger": "<6.3", + "symfony/dotenv": "<6.4", + "symfony/form": "<7.4", + "symfony/http-client": "<6.4", + "symfony/lock": "<6.4", + "symfony/mailer": "<6.4", + "symfony/messenger": "<7.4", "symfony/mime": "<6.4", - "symfony/property-access": "<5.4", - "symfony/property-info": "<5.4", - "symfony/runtime": "<5.4.45|>=6.0,<6.4.13|>=7.0,<7.1.6", + "symfony/property-access": "<6.4", + "symfony/property-info": "<6.4", + "symfony/runtime": "<6.4.13|>=7.0,<7.1.6", "symfony/scheduler": "<6.4.4|>=7.0.0,<7.0.4", - "symfony/security-core": "<5.4", - "symfony/security-csrf": "<5.4", - "symfony/serializer": "<6.4", - "symfony/stopwatch": "<5.4", - "symfony/translation": "<6.4", - "symfony/twig-bridge": "<5.4", - "symfony/twig-bundle": "<5.4", + "symfony/security-core": "<6.4", + "symfony/security-csrf": "<7.2", + "symfony/serializer": "<7.2.5", + "symfony/stopwatch": "<6.4", + "symfony/translation": "<7.3", + "symfony/twig-bridge": "<6.4", + "symfony/twig-bundle": "<6.4", "symfony/validator": "<6.4", "symfony/web-profiler-bundle": "<6.4", - "symfony/workflow": "<6.4" + "symfony/webhook": "<7.2", + "symfony/workflow": "<7.4" }, "require-dev": { - "doctrine/annotations": "^1.13.1|^2", "doctrine/persistence": "^1.3|^2|^3", "dragonmantank/cron-expression": "^3.1", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", "seld/jsonlint": "^1.10", - "symfony/asset": "^5.4|^6.0|^7.0", - "symfony/asset-mapper": "^6.4|^7.0", - "symfony/browser-kit": "^5.4|^6.0|^7.0", - "symfony/clock": "^6.2|^7.0", - "symfony/console": "^5.4.9|^6.0.9|^7.0", - "symfony/css-selector": "^5.4|^6.0|^7.0", - "symfony/dom-crawler": "^6.4|^7.0", - "symfony/dotenv": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/form": "^5.4|^6.0|^7.0", - "symfony/html-sanitizer": "^6.1|^7.0", - "symfony/http-client": "^6.3|^7.0", - "symfony/lock": "^5.4|^6.0|^7.0", - "symfony/mailer": "^5.4|^6.0|^7.0", - "symfony/messenger": "^6.3|^7.0", - "symfony/mime": "^6.4|^7.0", - "symfony/notifier": "^5.4|^6.0|^7.0", + "symfony/asset": "^6.4|^7.0|^8.0", + "symfony/asset-mapper": "^6.4|^7.0|^8.0", + "symfony/browser-kit": "^6.4|^7.0|^8.0", + "symfony/clock": "^6.4|^7.0|^8.0", + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/css-selector": "^6.4|^7.0|^8.0", + "symfony/dom-crawler": "^6.4|^7.0|^8.0", + "symfony/dotenv": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/form": "^7.4|^8.0", + "symfony/html-sanitizer": "^6.4|^7.0|^8.0", + "symfony/http-client": "^6.4|^7.0|^8.0", + "symfony/json-streamer": "^7.3|^8.0", + "symfony/lock": "^6.4|^7.0|^8.0", + "symfony/mailer": "^6.4|^7.0|^8.0", + "symfony/messenger": "^7.4|^8.0", + "symfony/mime": "^6.4|^7.0|^8.0", + "symfony/notifier": "^6.4|^7.0|^8.0", + "symfony/object-mapper": "^7.3|^8.0", "symfony/polyfill-intl-icu": "~1.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/property-info": "^5.4|^6.0|^7.0", - "symfony/rate-limiter": "^5.4|^6.0|^7.0", - "symfony/scheduler": "^6.4.4|^7.0.4", - "symfony/security-bundle": "^5.4|^6.0|^7.0", - "symfony/semaphore": "^5.4|^6.0|^7.0", - "symfony/serializer": "^6.4|^7.0", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/string": "^5.4|^6.0|^7.0", - "symfony/translation": "^6.4|^7.0", - "symfony/twig-bundle": "^5.4|^6.0|^7.0", - "symfony/uid": "^5.4|^6.0|^7.0", - "symfony/validator": "^6.4|^7.0", - "symfony/web-link": "^5.4|^6.0|^7.0", - "symfony/workflow": "^6.4|^7.0", - "symfony/yaml": "^5.4|^6.0|^7.0", - "twig/twig": "^2.10|^3.0.4" + "symfony/process": "^6.4|^7.0|^8.0", + "symfony/property-info": "^6.4|^7.0|^8.0", + "symfony/rate-limiter": "^6.4|^7.0|^8.0", + "symfony/runtime": "^6.4.13|^7.1.6|^8.0", + "symfony/scheduler": "^6.4.4|^7.0.4|^8.0", + "symfony/security-bundle": "^6.4|^7.0|^8.0", + "symfony/semaphore": "^6.4|^7.0|^8.0", + "symfony/serializer": "^7.2.5|^8.0", + "symfony/stopwatch": "^6.4|^7.0|^8.0", + "symfony/string": "^6.4|^7.0|^8.0", + "symfony/translation": "^7.3|^8.0", + "symfony/twig-bundle": "^6.4|^7.0|^8.0", + "symfony/type-info": "^7.1.8|^8.0", + "symfony/uid": "^6.4|^7.0|^8.0", + "symfony/validator": "^7.4|^8.0", + "symfony/web-link": "^6.4|^7.0|^8.0", + "symfony/webhook": "^7.2|^8.0", + "symfony/workflow": "^7.4|^8.0", + "symfony/yaml": "^7.3|^8.0", + "twig/twig": "^3.12" }, "type": "symfony-bundle", "autoload": { @@ -3800,7 +3844,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v6.4.31" + "source": "https://github.com/symfony/framework-bundle/tree/v7.4.3" }, "funding": [ { @@ -3820,40 +3864,41 @@ "type": "tidelift" } ], - "time": "2025-12-23T14:16:13+00:00" + "time": "2025-12-29T09:31:36+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.4.31", + "version": "v7.4.3", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "a35ee6f47e4775179704d7877a8b0da3cb09241a" + "reference": "a70c745d4cea48dbd609f4075e5f5cbce453bd52" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/a35ee6f47e4775179704d7877a8b0da3cb09241a", - "reference": "a35ee6f47e4775179704d7877a8b0da3cb09241a", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/a70c745d4cea48dbd609f4075e5f5cbce453bd52", + "reference": "a70c745d4cea48dbd609f4075e5f5cbce453bd52", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php83": "^1.27" + "symfony/polyfill-mbstring": "^1.1" }, "conflict": { + "doctrine/dbal": "<3.6", "symfony/cache": "<6.4.12|>=7.0,<7.1.5" }, "require-dev": { - "doctrine/dbal": "^2.13.1|^3|^4", + "doctrine/dbal": "^3.6|^4", "predis/predis": "^1.1|^2.0", - "symfony/cache": "^6.4.12|^7.1.5", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0", - "symfony/mime": "^5.4|^6.0|^7.0", - "symfony/rate-limiter": "^5.4|^6.0|^7.0" + "symfony/cache": "^6.4.12|^7.1.5|^8.0", + "symfony/clock": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/mime": "^6.4|^7.0|^8.0", + "symfony/rate-limiter": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -3881,7 +3926,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.31" + "source": "https://github.com/symfony/http-foundation/tree/v7.4.3" }, "funding": [ { @@ -3901,77 +3946,78 @@ "type": "tidelift" } ], - "time": "2025-12-17T10:10:57+00:00" + "time": "2025-12-23T14:23:49+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.31", + "version": "v7.4.3", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "16b0d46d8e11f480345c15b229cfc827a8a0f731" + "reference": "885211d4bed3f857b8c964011923528a55702aa5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/16b0d46d8e11f480345c15b229cfc827a8a0f731", - "reference": "16b0d46d8e11f480345c15b229cfc827a8a0f731", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/885211d4bed3f857b8c964011923528a55702aa5", + "reference": "885211d4bed3f857b8c964011923528a55702aa5", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "psr/log": "^1|^2|^3", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/error-handler": "^6.4|^7.0", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^6.4|^7.0", + "symfony/error-handler": "^6.4|^7.0|^8.0", + "symfony/event-dispatcher": "^7.3|^8.0", + "symfony/http-foundation": "^7.4|^8.0", "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "symfony/browser-kit": "<5.4", - "symfony/cache": "<5.4", - "symfony/config": "<6.1", - "symfony/console": "<5.4", + "symfony/browser-kit": "<6.4", + "symfony/cache": "<6.4", + "symfony/config": "<6.4", + "symfony/console": "<6.4", "symfony/dependency-injection": "<6.4", - "symfony/doctrine-bridge": "<5.4", - "symfony/form": "<5.4", - "symfony/http-client": "<5.4", + "symfony/doctrine-bridge": "<6.4", + "symfony/flex": "<2.10", + "symfony/form": "<6.4", + "symfony/http-client": "<6.4", "symfony/http-client-contracts": "<2.5", - "symfony/mailer": "<5.4", - "symfony/messenger": "<5.4", - "symfony/translation": "<5.4", + "symfony/mailer": "<6.4", + "symfony/messenger": "<6.4", + "symfony/translation": "<6.4", "symfony/translation-contracts": "<2.5", - "symfony/twig-bridge": "<5.4", + "symfony/twig-bridge": "<6.4", "symfony/validator": "<6.4", - "symfony/var-dumper": "<6.3", - "twig/twig": "<2.13" + "symfony/var-dumper": "<6.4", + "twig/twig": "<3.12" }, "provide": { "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", - "symfony/browser-kit": "^5.4|^6.0|^7.0", - "symfony/clock": "^6.2|^7.0", - "symfony/config": "^6.1|^7.0", - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/css-selector": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/dom-crawler": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/finder": "^5.4|^6.0|^7.0", + "symfony/browser-kit": "^6.4|^7.0|^8.0", + "symfony/clock": "^6.4|^7.0|^8.0", + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/css-selector": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/dom-crawler": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/finder": "^6.4|^7.0|^8.0", "symfony/http-client-contracts": "^2.5|^3", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/property-access": "^5.4.5|^6.0.5|^7.0", - "symfony/routing": "^5.4|^6.0|^7.0", - "symfony/serializer": "^6.4.4|^7.0.4", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/translation": "^5.4|^6.0|^7.0", + "symfony/process": "^6.4|^7.0|^8.0", + "symfony/property-access": "^7.1|^8.0", + "symfony/routing": "^6.4|^7.0|^8.0", + "symfony/serializer": "^7.1|^8.0", + "symfony/stopwatch": "^6.4|^7.0|^8.0", + "symfony/translation": "^6.4|^7.0|^8.0", "symfony/translation-contracts": "^2.5|^3", - "symfony/uid": "^5.4|^6.0|^7.0", - "symfony/validator": "^6.4|^7.0", - "symfony/var-dumper": "^5.4|^6.4|^7.0", - "symfony/var-exporter": "^6.2|^7.0", - "twig/twig": "^2.13|^3.0.4" + "symfony/uid": "^6.4|^7.0|^8.0", + "symfony/validator": "^6.4|^7.0|^8.0", + "symfony/var-dumper": "^6.4|^7.0|^8.0", + "symfony/var-exporter": "^6.4|^7.0|^8.0", + "twig/twig": "^3.12" }, "type": "library", "autoload": { @@ -3999,7 +4045,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/v6.4.31" + "source": "https://github.com/symfony/http-kernel/tree/v7.4.3" }, "funding": [ { @@ -4019,42 +4065,42 @@ "type": "tidelift" } ], - "time": "2025-12-31T08:27:27+00:00" + "time": "2025-12-31T08:43:57+00:00" }, { "name": "symfony/monolog-bridge", - "version": "v6.4.28", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/monolog-bridge.git", - "reference": "d2f4b68e3247cf44d93f48545c8c072a75c17e5b" + "reference": "189d16466ff83d9c51fad26382bf0beeb41bda21" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/d2f4b68e3247cf44d93f48545c8c072a75c17e5b", - "reference": "d2f4b68e3247cf44d93f48545c8c072a75c17e5b", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/189d16466ff83d9c51fad26382bf0beeb41bda21", + "reference": "189d16466ff83d9c51fad26382bf0beeb41bda21", "shasum": "" }, "require": { - "monolog/monolog": "^1.25.1|^2|^3", - "php": ">=8.1", + "monolog/monolog": "^3", + "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/http-kernel": "^5.4|^6.0|^7.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", "symfony/service-contracts": "^2.5|^3" }, "conflict": { - "symfony/console": "<5.4", - "symfony/http-foundation": "<5.4", - "symfony/security-core": "<5.4" + "symfony/console": "<6.4", + "symfony/http-foundation": "<6.4", + "symfony/security-core": "<6.4" }, "require-dev": { - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/http-client": "^5.4|^6.0|^7.0", - "symfony/mailer": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/mime": "^5.4|^6.0|^7.0", - "symfony/security-core": "^5.4|^6.0|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0" + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/http-client": "^6.4|^7.0|^8.0", + "symfony/mailer": "^6.4|^7.0|^8.0", + "symfony/messenger": "^6.4|^7.0|^8.0", + "symfony/mime": "^6.4|^7.0|^8.0", + "symfony/security-core": "^6.4|^7.0|^8.0", + "symfony/var-dumper": "^6.4|^7.0|^8.0" }, "type": "symfony-bridge", "autoload": { @@ -4082,7 +4128,7 @@ "description": "Provides integration for Monolog with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/monolog-bridge/tree/v6.4.28" + "source": "https://github.com/symfony/monolog-bridge/tree/v7.4.0" }, "funding": [ { @@ -4102,37 +4148,36 @@ "type": "tidelift" } ], - "time": "2025-10-30T19:57:08+00:00" + "time": "2025-11-01T09:17:33+00:00" }, { "name": "symfony/monolog-bundle", - "version": "v3.11.1", + "version": "v4.0.1", "source": { "type": "git", "url": "https://github.com/symfony/monolog-bundle.git", - "reference": "0e675a6e08f791ef960dc9c7e392787111a3f0c1" + "reference": "3b4ee2717ee56c5e1edb516140a175eb2a72bc66" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/0e675a6e08f791ef960dc9c7e392787111a3f0c1", - "reference": "0e675a6e08f791ef960dc9c7e392787111a3f0c1", + "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/3b4ee2717ee56c5e1edb516140a175eb2a72bc66", + "reference": "3b4ee2717ee56c5e1edb516140a175eb2a72bc66", "shasum": "" }, "require": { "composer-runtime-api": "^2.0", - "monolog/monolog": "^1.25.1 || ^2.0 || ^3.0", - "php": ">=8.1", - "symfony/config": "^6.4 || ^7.0", - "symfony/dependency-injection": "^6.4 || ^7.0", - "symfony/deprecation-contracts": "^2.5 || ^3.0", - "symfony/http-kernel": "^6.4 || ^7.0", - "symfony/monolog-bridge": "^6.4 || ^7.0", + "monolog/monolog": "^3.5", + "php": ">=8.2", + "symfony/config": "^7.3 || ^8.0", + "symfony/dependency-injection": "^7.3 || ^8.0", + "symfony/http-kernel": "^7.3 || ^8.0", + "symfony/monolog-bridge": "^7.3 || ^8.0", "symfony/polyfill-php84": "^1.30" }, "require-dev": { - "symfony/console": "^6.4 || ^7.0", - "symfony/phpunit-bridge": "^7.3.3", - "symfony/yaml": "^6.4 || ^7.0" + "phpunit/phpunit": "^11.5.41 || ^12.3", + "symfony/console": "^7.3 || ^8.0", + "symfony/yaml": "^7.3 || ^8.0" }, "type": "symfony-bundle", "autoload": { @@ -4162,7 +4207,7 @@ ], "support": { "issues": "https://github.com/symfony/monolog-bundle/issues", - "source": "https://github.com/symfony/monolog-bundle/tree/v3.11.1" + "source": "https://github.com/symfony/monolog-bundle/tree/v4.0.1" }, "funding": [ { @@ -4182,24 +4227,24 @@ "type": "tidelift" } ], - "time": "2025-12-08T07:58:26+00:00" + "time": "2025-12-08T08:00:13+00:00" }, { "name": "symfony/options-resolver", - "version": "v6.4.30", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "eeaa8cabe54c7b3516938c72a4a161c0cc80a34f" + "reference": "b38026df55197f9e39a44f3215788edf83187b80" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/eeaa8cabe54c7b3516938c72a4a161c0cc80a34f", - "reference": "eeaa8cabe54c7b3516938c72a4a161c0cc80a34f", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/b38026df55197f9e39a44f3215788edf83187b80", + "reference": "b38026df55197f9e39a44f3215788edf83187b80", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3" }, "type": "library", @@ -4233,7 +4278,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v6.4.30" + "source": "https://github.com/symfony/options-resolver/tree/v7.4.0" }, "funding": [ { @@ -4253,31 +4298,31 @@ "type": "tidelift" } ], - "time": "2025-11-12T13:06:53+00:00" + "time": "2025-11-12T15:39:26+00:00" }, { "name": "symfony/password-hasher", - "version": "v6.4.24", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/password-hasher.git", - "reference": "dcab5ac87450aaed26483ba49c2ce86808da7557" + "reference": "aa075ce6f54fe931f03c1e382597912f4fd94e1e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/password-hasher/zipball/dcab5ac87450aaed26483ba49c2ce86808da7557", - "reference": "dcab5ac87450aaed26483ba49c2ce86808da7557", + "url": "https://api.github.com/repos/symfony/password-hasher/zipball/aa075ce6f54fe931f03c1e382597912f4fd94e1e", + "reference": "aa075ce6f54fe931f03c1e382597912f4fd94e1e", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "conflict": { - "symfony/security-core": "<5.4" + "symfony/security-core": "<6.4" }, "require-dev": { - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/security-core": "^5.4|^6.0|^7.0" + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/security-core": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -4309,7 +4354,7 @@ "password" ], "support": { - "source": "https://github.com/symfony/password-hasher/tree/v6.4.24" + "source": "https://github.com/symfony/password-hasher/tree/v7.4.0" }, "funding": [ { @@ -4329,7 +4374,7 @@ "type": "tidelift" } ], - "time": "2025-07-10T08:14:14+00:00" + "time": "2025-08-13T16:46:49+00:00" }, { "name": "symfony/polyfill-ctype", @@ -4755,17 +4800,17 @@ "time": "2024-12-23T08:48:59+00:00" }, { - "name": "symfony/polyfill-php80", + "name": "symfony/polyfill-php83", "version": "v1.33.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608" + "url": "https://github.com/symfony/polyfill-php83.git", + "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608", - "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/17f6f9a6b1735c0f163024d959f700cfbc5155e5", + "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5", "shasum": "" }, "require": { @@ -4783,7 +4828,7 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" + "Symfony\\Polyfill\\Php83\\": "" }, "classmap": [ "Resources/stubs" @@ -4794,10 +4839,6 @@ "MIT" ], "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, { "name": "Nicolas Grekas", "email": "p@tchwork.com" @@ -4807,7 +4848,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -4816,7 +4857,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.33.0" }, "funding": [ { @@ -4836,20 +4877,20 @@ "type": "tidelift" } ], - "time": "2025-01-02T08:10:11+00:00" + "time": "2025-07-08T02:45:35+00:00" }, { - "name": "symfony/polyfill-php83", + "name": "symfony/polyfill-php84", "version": "v1.33.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5" + "url": "https://github.com/symfony/polyfill-php84.git", + "reference": "d8ced4d875142b6a7426000426b8abc631d6b191" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/17f6f9a6b1735c0f163024d959f700cfbc5155e5", - "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5", + "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/d8ced4d875142b6a7426000426b8abc631d6b191", + "reference": "d8ced4d875142b6a7426000426b8abc631d6b191", "shasum": "" }, "require": { @@ -4867,7 +4908,7 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Php83\\": "" + "Symfony\\Polyfill\\Php84\\": "" }, "classmap": [ "Resources/stubs" @@ -4887,7 +4928,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 8.4+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -4896,7 +4937,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-php84/tree/v1.33.0" }, "funding": [ { @@ -4916,20 +4957,20 @@ "type": "tidelift" } ], - "time": "2025-07-08T02:45:35+00:00" + "time": "2025-06-24T13:30:11+00:00" }, { - "name": "symfony/polyfill-php84", + "name": "symfony/polyfill-php85", "version": "v1.33.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php84.git", - "reference": "d8ced4d875142b6a7426000426b8abc631d6b191" + "url": "https://github.com/symfony/polyfill-php85.git", + "reference": "d4e5fcd4ab3d998ab16c0db48e6cbb9a01993f91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/d8ced4d875142b6a7426000426b8abc631d6b191", - "reference": "d8ced4d875142b6a7426000426b8abc631d6b191", + "url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/d4e5fcd4ab3d998ab16c0db48e6cbb9a01993f91", + "reference": "d4e5fcd4ab3d998ab16c0db48e6cbb9a01993f91", "shasum": "" }, "require": { @@ -4947,7 +4988,7 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Php84\\": "" + "Symfony\\Polyfill\\Php85\\": "" }, "classmap": [ "Resources/stubs" @@ -4967,7 +5008,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 8.4+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 8.5+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -4976,7 +5017,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php84/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-php85/tree/v1.33.0" }, "funding": [ { @@ -4996,29 +5037,29 @@ "type": "tidelift" } ], - "time": "2025-06-24T13:30:11+00:00" + "time": "2025-06-23T16:12:55+00:00" }, { "name": "symfony/property-access", - "version": "v6.4.31", + "version": "v7.4.3", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "1b1044599d7fb93cdb82f5a1291ba66f1caf6119" + "reference": "30aff8455647be949fc2e8fcef2847d5a6743c98" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/1b1044599d7fb93cdb82f5a1291ba66f1caf6119", - "reference": "1b1044599d7fb93cdb82f5a1291ba66f1caf6119", + "url": "https://api.github.com/repos/symfony/property-access/zipball/30aff8455647be949fc2e8fcef2847d5a6743c98", + "reference": "30aff8455647be949fc2e8fcef2847d5a6743c98", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/property-info": "^6.4.31|~7.3.9|^7.4.2" + "php": ">=8.2", + "symfony/property-info": "^6.4.31|~7.3.9|^7.4.2|^8.0.3" }, "require-dev": { - "symfony/cache": "^5.4|^6.0|^7.0" + "symfony/cache": "^6.4|^7.0|^8.0", + "symfony/var-exporter": "^6.4.1|^7.0.1|^8.0" }, "type": "library", "autoload": { @@ -5057,7 +5098,7 @@ "reflection" ], "support": { - "source": "https://github.com/symfony/property-access/tree/v6.4.31" + "source": "https://github.com/symfony/property-access/tree/v7.4.3" }, "funding": [ { @@ -5077,41 +5118,41 @@ "type": "tidelift" } ], - "time": "2025-12-18T08:11:26+00:00" + "time": "2025-12-18T10:35:58+00:00" }, { "name": "symfony/property-info", - "version": "v6.4.31", + "version": "v7.4.3", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "f155cef234af1c16ed47791d182e146df237b35f" + "reference": "ea62b28cd68fb36e252abd77de61e505a0f2a7b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/f155cef234af1c16ed47791d182e146df237b35f", - "reference": "f155cef234af1c16ed47791d182e146df237b35f", + "url": "https://api.github.com/repos/symfony/property-info/zipball/ea62b28cd68fb36e252abd77de61e505a0f2a7b1", + "reference": "ea62b28cd68fb36e252abd77de61e505a0f2a7b1", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/string": "^5.4|^6.0|^7.0" + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/string": "^6.4|^7.0|^8.0", + "symfony/type-info": "~7.3.8|^7.4.1|^8.0.1" }, "conflict": { - "doctrine/annotations": "<1.12", "phpdocumentor/reflection-docblock": "<5.2", "phpdocumentor/type-resolver": "<1.5.1", - "symfony/cache": "<5.4", - "symfony/dependency-injection": "<5.4|>=6.0,<6.4", - "symfony/serializer": "<5.4" + "symfony/cache": "<6.4", + "symfony/dependency-injection": "<6.4", + "symfony/serializer": "<6.4" }, "require-dev": { - "doctrine/annotations": "^1.12|^2", "phpdocumentor/reflection-docblock": "^5.2", "phpstan/phpdoc-parser": "^1.0|^2.0", - "symfony/cache": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/serializer": "^5.4|^6.4|^7.0" + "symfony/cache": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/serializer": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -5147,7 +5188,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v6.4.31" + "source": "https://github.com/symfony/property-info/tree/v7.4.3" }, "funding": [ { @@ -5167,40 +5208,38 @@ "type": "tidelift" } ], - "time": "2025-12-16T19:55:30+00:00" + "time": "2025-12-18T08:28:41+00:00" }, { "name": "symfony/routing", - "version": "v6.4.30", + "version": "v7.4.3", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "ea50a13c2711eebcbb66b38ef6382e62e3262859" + "reference": "5d3fd7adf8896c2fdb54e2f0f35b1bcbd9e45090" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/ea50a13c2711eebcbb66b38ef6382e62e3262859", - "reference": "ea50a13c2711eebcbb66b38ef6382e62e3262859", + "url": "https://api.github.com/repos/symfony/routing/zipball/5d3fd7adf8896c2fdb54e2f0f35b1bcbd9e45090", + "reference": "5d3fd7adf8896c2fdb54e2f0f35b1bcbd9e45090", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3" }, "conflict": { - "doctrine/annotations": "<1.12", - "symfony/config": "<6.2", - "symfony/dependency-injection": "<5.4", - "symfony/yaml": "<5.4" + "symfony/config": "<6.4", + "symfony/dependency-injection": "<6.4", + "symfony/yaml": "<6.4" }, "require-dev": { - "doctrine/annotations": "^1.12|^2", "psr/log": "^1|^2|^3", - "symfony/config": "^6.2|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^5.4|^6.0|^7.0", - "symfony/yaml": "^5.4|^6.0|^7.0" + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", + "symfony/yaml": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -5234,7 +5273,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.30" + "source": "https://github.com/symfony/routing/tree/v7.4.3" }, "funding": [ { @@ -5254,35 +5293,35 @@ "type": "tidelift" } ], - "time": "2025-11-22T09:51:35+00:00" + "time": "2025-12-19T10:00:43+00:00" }, { "name": "symfony/runtime", - "version": "v6.4.30", + "version": "v7.4.1", "source": { "type": "git", "url": "https://github.com/symfony/runtime.git", - "reference": "fb3149ee85d3b639dd3e49ea9dda05656f0537e3" + "reference": "876f902a6cb6b26c003de244188c06b2ba1c172f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/runtime/zipball/fb3149ee85d3b639dd3e49ea9dda05656f0537e3", - "reference": "fb3149ee85d3b639dd3e49ea9dda05656f0537e3", + "url": "https://api.github.com/repos/symfony/runtime/zipball/876f902a6cb6b26c003de244188c06b2ba1c172f", + "reference": "876f902a6cb6b26c003de244188c06b2ba1c172f", "shasum": "" }, "require": { "composer-plugin-api": "^1.0|^2.0", - "php": ">=8.1" + "php": ">=8.2" }, "conflict": { - "symfony/dotenv": "<5.4" + "symfony/dotenv": "<6.4" }, "require-dev": { - "composer/composer": "^1.0.2|^2.0", - "symfony/console": "^5.4.9|^6.0.9|^7.0", - "symfony/dotenv": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^5.4|^6.0|^7.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0" + "composer/composer": "^2.6", + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/dotenv": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0" }, "type": "composer-plugin", "extra": { @@ -5317,7 +5356,7 @@ "runtime" ], "support": { - "source": "https://github.com/symfony/runtime/tree/v6.4.30" + "source": "https://github.com/symfony/runtime/tree/v7.4.1" }, "funding": [ { @@ -5337,75 +5376,71 @@ "type": "tidelift" } ], - "time": "2025-12-05T10:55:13+00:00" + "time": "2025-12-05T14:04:53+00:00" }, { "name": "symfony/security-bundle", - "version": "v6.4.30", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/security-bundle.git", - "reference": "508e67e68156cf3cb2b982504191b2ce34daa921" + "reference": "48a64e746857464a5e8fd7bab84b31c9ba967eb9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-bundle/zipball/508e67e68156cf3cb2b982504191b2ce34daa921", - "reference": "508e67e68156cf3cb2b982504191b2ce34daa921", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/48a64e746857464a5e8fd7bab84b31c9ba967eb9", + "reference": "48a64e746857464a5e8fd7bab84b31c9ba967eb9", "shasum": "" }, "require": { "composer-runtime-api": ">=2.1", "ext-xml": "*", - "php": ">=8.1", - "symfony/clock": "^6.3|^7.0", - "symfony/config": "^6.1|^7.0", - "symfony/dependency-injection": "^6.4.11|^7.1.4", + "php": ">=8.2", + "symfony/clock": "^6.4|^7.0|^8.0", + "symfony/config": "^7.4|^8.0", + "symfony/dependency-injection": "^6.4.11|^7.1.4|^8.0", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^6.2|^7.0", - "symfony/http-kernel": "^6.2", - "symfony/password-hasher": "^5.4|^6.0|^7.0", - "symfony/security-core": "^6.2|^7.0", - "symfony/security-csrf": "^5.4|^6.0|^7.0", - "symfony/security-http": "^6.3.6|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4.13|^7.1.6|^8.0", + "symfony/password-hasher": "^6.4|^7.0|^8.0", + "symfony/security-core": "^7.4|^8.0", + "symfony/security-csrf": "^6.4|^7.0|^8.0", + "symfony/security-http": "^7.4|^8.0", "symfony/service-contracts": "^2.5|^3" }, "conflict": { - "symfony/browser-kit": "<5.4", - "symfony/console": "<5.4", + "symfony/browser-kit": "<6.4", + "symfony/console": "<6.4", "symfony/framework-bundle": "<6.4", - "symfony/http-client": "<5.4", - "symfony/ldap": "<5.4", + "symfony/http-client": "<6.4", + "symfony/ldap": "<6.4", "symfony/serializer": "<6.4", - "symfony/twig-bundle": "<5.4", + "symfony/twig-bundle": "<6.4", "symfony/validator": "<6.4" }, "require-dev": { - "symfony/asset": "^5.4|^6.0|^7.0", - "symfony/browser-kit": "^5.4|^6.0|^7.0", - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/css-selector": "^5.4|^6.0|^7.0", - "symfony/dom-crawler": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/form": "^5.4|^6.0|^7.0", - "symfony/framework-bundle": "^6.4|^7.0", - "symfony/http-client": "^5.4|^6.0|^7.0", - "symfony/ldap": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/rate-limiter": "^5.4|^6.0|^7.0", - "symfony/serializer": "^6.4|^7.0", - "symfony/translation": "^5.4|^6.0|^7.0", - "symfony/twig-bridge": "^5.4|^6.0|^7.0", - "symfony/twig-bundle": "^5.4|^6.0|^7.0", - "symfony/validator": "^6.4|^7.0", - "symfony/yaml": "^5.4|^6.0|^7.0", - "twig/twig": "^2.13|^3.0.4", - "web-token/jwt-checker": "^3.1", - "web-token/jwt-signature-algorithm-ecdsa": "^3.1", - "web-token/jwt-signature-algorithm-eddsa": "^3.1", - "web-token/jwt-signature-algorithm-hmac": "^3.1", - "web-token/jwt-signature-algorithm-none": "^3.1", - "web-token/jwt-signature-algorithm-rsa": "^3.1" + "symfony/asset": "^6.4|^7.0|^8.0", + "symfony/browser-kit": "^6.4|^7.0|^8.0", + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/css-selector": "^6.4|^7.0|^8.0", + "symfony/dom-crawler": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/form": "^6.4|^7.0|^8.0", + "symfony/framework-bundle": "^6.4.13|^7.1.6|^8.0", + "symfony/http-client": "^6.4|^7.0|^8.0", + "symfony/ldap": "^6.4|^7.0|^8.0", + "symfony/process": "^6.4|^7.0|^8.0", + "symfony/rate-limiter": "^6.4|^7.0|^8.0", + "symfony/runtime": "^6.4.13|^7.1.6|^8.0", + "symfony/serializer": "^6.4|^7.0|^8.0", + "symfony/translation": "^6.4|^7.0|^8.0", + "symfony/twig-bridge": "^6.4|^7.0|^8.0", + "symfony/twig-bundle": "^6.4|^7.0|^8.0", + "symfony/validator": "^6.4|^7.0|^8.0", + "symfony/yaml": "^6.4|^7.0|^8.0", + "twig/twig": "^3.15", + "web-token/jwt-library": "^3.3.2|^4.0" }, "type": "symfony-bundle", "autoload": { @@ -5433,7 +5468,7 @@ "description": "Provides a tight integration of the Security component into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-bundle/tree/v6.4.30" + "source": "https://github.com/symfony/security-bundle/tree/v7.4.0" }, "funding": [ { @@ -5453,49 +5488,50 @@ "type": "tidelift" } ], - "time": "2025-12-04T18:05:02+00:00" + "time": "2025-11-14T09:57:20+00:00" }, { "name": "symfony/security-core", - "version": "v6.4.31", + "version": "v7.4.3", "source": { "type": "git", "url": "https://github.com/symfony/security-core.git", - "reference": "fa269ad61a021cc54329dc96e57bed78ba720bfe" + "reference": "be0b8585f2d69b48a9b1a6372aa48d23c7e7eeb4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-core/zipball/fa269ad61a021cc54329dc96e57bed78ba720bfe", - "reference": "fa269ad61a021cc54329dc96e57bed78ba720bfe", + "url": "https://api.github.com/repos/symfony/security-core/zipball/be0b8585f2d69b48a9b1a6372aa48d23c7e7eeb4", + "reference": "be0b8585f2d69b48a9b1a6372aa48d23c7e7eeb4", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", "symfony/event-dispatcher-contracts": "^2.5|^3", - "symfony/password-hasher": "^5.4|^6.0|^7.0", + "symfony/password-hasher": "^6.4|^7.0|^8.0", "symfony/service-contracts": "^2.5|^3" }, "conflict": { - "symfony/event-dispatcher": "<5.4", - "symfony/http-foundation": "<5.4", - "symfony/ldap": "<5.4", - "symfony/security-guard": "<5.4", - "symfony/translation": "<5.4.35|>=6.0,<6.3.12|>=6.4,<6.4.3|>=7.0,<7.0.3", - "symfony/validator": "<5.4" + "symfony/dependency-injection": "<6.4", + "symfony/event-dispatcher": "<6.4", + "symfony/http-foundation": "<6.4", + "symfony/ldap": "<6.4", + "symfony/translation": "<6.4.3|>=7.0,<7.0.3", + "symfony/validator": "<6.4" }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", "psr/container": "^1.1|^2.0", "psr/log": "^1|^2|^3", - "symfony/cache": "^5.4|^6.0|^7.0", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^5.4|^6.0|^7.0", - "symfony/ldap": "^5.4|^6.0|^7.0", - "symfony/string": "^5.4|^6.0|^7.0", - "symfony/translation": "^5.4.35|~6.3.12|^6.4.3|^7.0.3", - "symfony/validator": "^6.4|^7.0" + "symfony/cache": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/event-dispatcher": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", + "symfony/ldap": "^6.4|^7.0|^8.0", + "symfony/string": "^6.4|^7.0|^8.0", + "symfony/translation": "^6.4.3|^7.0.3|^8.0", + "symfony/validator": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -5523,7 +5559,7 @@ "description": "Symfony Security Component - Core Library", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-core/tree/v6.4.31" + "source": "https://github.com/symfony/security-core/tree/v7.4.3" }, "funding": [ { @@ -5543,31 +5579,33 @@ "type": "tidelift" } ], - "time": "2025-12-17T22:32:13+00:00" + "time": "2025-12-19T23:18:26+00:00" }, { "name": "symfony/security-csrf", - "version": "v6.4.31", + "version": "v7.4.3", "source": { "type": "git", "url": "https://github.com/symfony/security-csrf.git", - "reference": "52f62836fcb19cd351ef3a2aa9cf61a489e8990f" + "reference": "d526fa61963d926e91c9fb22edf829d9f8793dfe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-csrf/zipball/52f62836fcb19cd351ef3a2aa9cf61a489e8990f", - "reference": "52f62836fcb19cd351ef3a2aa9cf61a489e8990f", + "url": "https://api.github.com/repos/symfony/security-csrf/zipball/d526fa61963d926e91c9fb22edf829d9f8793dfe", + "reference": "d526fa61963d926e91c9fb22edf829d9f8793dfe", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/security-core": "^5.4|^6.0|^7.0" + "php": ">=8.2", + "symfony/security-core": "^6.4|^7.0|^8.0" }, "conflict": { - "symfony/http-foundation": "<5.4" + "symfony/http-foundation": "<6.4" }, "require-dev": { - "symfony/http-foundation": "^5.4|^6.0|^7.0" + "psr/log": "^1|^2|^3", + "symfony/http-foundation": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -5595,7 +5633,7 @@ "description": "Symfony Security Component - CSRF Library", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-csrf/tree/v6.4.31" + "source": "https://github.com/symfony/security-csrf/tree/v7.4.3" }, "funding": [ { @@ -5615,51 +5653,51 @@ "type": "tidelift" } ], - "time": "2025-12-17T22:32:13+00:00" + "time": "2025-12-23T15:24:11+00:00" }, { "name": "symfony/security-http", - "version": "v6.4.31", + "version": "v7.4.3", "source": { "type": "git", "url": "https://github.com/symfony/security-http.git", - "reference": "2f4ddc4a79b0e6f7dcc72e5ebd7109b3436b967a" + "reference": "72f3b3fa9f322c9579d5246895a09f945cc33e36" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-http/zipball/2f4ddc4a79b0e6f7dcc72e5ebd7109b3436b967a", - "reference": "2f4ddc4a79b0e6f7dcc72e5ebd7109b3436b967a", + "url": "https://api.github.com/repos/symfony/security-http/zipball/72f3b3fa9f322c9579d5246895a09f945cc33e36", + "reference": "72f3b3fa9f322c9579d5246895a09f945cc33e36", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/http-foundation": "^6.2|^7.0", - "symfony/http-kernel": "^6.3|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", "symfony/polyfill-mbstring": "~1.0", - "symfony/property-access": "^5.4|^6.0|^7.0", - "symfony/security-core": "^6.4|^7.0", + "symfony/property-access": "^6.4|^7.0|^8.0", + "symfony/security-core": "^7.3|^8.0", "symfony/service-contracts": "^2.5|^3" }, "conflict": { - "symfony/clock": "<6.3", - "symfony/event-dispatcher": "<5.4.9|>=6,<6.0.9", + "symfony/clock": "<6.4", "symfony/http-client-contracts": "<3.0", - "symfony/security-bundle": "<5.4", - "symfony/security-csrf": "<5.4" + "symfony/security-bundle": "<6.4", + "symfony/security-csrf": "<6.4" }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/cache": "^5.4|^6.0|^7.0", - "symfony/clock": "^6.3|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/cache": "^6.4|^7.0|^8.0", + "symfony/clock": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/http-client": "^6.4|^7.0|^8.0", "symfony/http-client-contracts": "^3.0", - "symfony/rate-limiter": "^5.4|^6.0|^7.0", - "symfony/routing": "^5.4|^6.0|^7.0", - "symfony/security-csrf": "^5.4|^6.0|^7.0", - "symfony/translation": "^5.4|^6.0|^7.0", - "web-token/jwt-checker": "^3.1", - "web-token/jwt-signature-algorithm-ecdsa": "^3.1" + "symfony/rate-limiter": "^6.4|^7.0|^8.0", + "symfony/routing": "^6.4|^7.0|^8.0", + "symfony/security-csrf": "^6.4|^7.0|^8.0", + "symfony/translation": "^6.4|^7.0|^8.0", + "web-token/jwt-library": "^3.3.2|^4.0" }, "type": "library", "autoload": { @@ -5687,7 +5725,7 @@ "description": "Symfony Security Component - HTTP Integration", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-http/tree/v6.4.31" + "source": "https://github.com/symfony/security-http/tree/v7.4.3" }, "funding": [ { @@ -5707,7 +5745,7 @@ "type": "tidelift" } ], - "time": "2025-12-17T22:32:13+00:00" + "time": "2025-12-19T23:18:26+00:00" }, { "name": "symfony/service-contracts", @@ -5798,22 +5836,23 @@ }, { "name": "symfony/string", - "version": "v6.4.30", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "50590a057841fa6bf69d12eceffce3465b9e32cb" + "reference": "d50e862cb0a0e0886f73ca1f31b865efbb795003" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/50590a057841fa6bf69d12eceffce3465b9e32cb", - "reference": "50590a057841fa6bf69d12eceffce3465b9e32cb", + "url": "https://api.github.com/repos/symfony/string/zipball/d50e862cb0a0e0886f73ca1f31b865efbb795003", + "reference": "d50e862cb0a0e0886f73ca1f31b865efbb795003", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3.0", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-grapheme": "~1.33", "symfony/polyfill-intl-normalizer": "~1.0", "symfony/polyfill-mbstring": "~1.0" }, @@ -5821,10 +5860,11 @@ "symfony/translation-contracts": "<2.5" }, "require-dev": { - "symfony/http-client": "^5.4|^6.0|^7.0", - "symfony/intl": "^6.2|^7.0", + "symfony/emoji": "^7.1|^8.0", + "symfony/http-client": "^6.4|^7.0|^8.0", + "symfony/intl": "^6.4|^7.0|^8.0", "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^5.4|^6.0|^7.0" + "symfony/var-exporter": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -5863,7 +5903,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.30" + "source": "https://github.com/symfony/string/tree/v7.4.0" }, "funding": [ { @@ -5883,7 +5923,7 @@ "type": "tidelift" } ], - "time": "2025-11-21T18:03:05+00:00" + "time": "2025-11-27T13:27:24+00:00" }, { "name": "symfony/templating", @@ -5957,51 +5997,52 @@ }, { "name": "symfony/translation", - "version": "v6.4.31", + "version": "v7.4.3", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "81579408ecf7dc5aa2d8462a6d5c3a430a80e6f2" + "reference": "7ef27c65d78886f7599fdd5c93d12c9243ecf44d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/81579408ecf7dc5aa2d8462a6d5c3a430a80e6f2", - "reference": "81579408ecf7dc5aa2d8462a6d5c3a430a80e6f2", + "url": "https://api.github.com/repos/symfony/translation/zipball/7ef27c65d78886f7599fdd5c93d12c9243ecf44d", + "reference": "7ef27c65d78886f7599fdd5c93d12c9243ecf44d", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", - "symfony/translation-contracts": "^2.5|^3.0" + "symfony/translation-contracts": "^2.5.3|^3.3" }, "conflict": { - "symfony/config": "<5.4", - "symfony/console": "<5.4", - "symfony/dependency-injection": "<5.4", + "nikic/php-parser": "<5.0", + "symfony/config": "<6.4", + "symfony/console": "<6.4", + "symfony/dependency-injection": "<6.4", "symfony/http-client-contracts": "<2.5", - "symfony/http-kernel": "<5.4", + "symfony/http-kernel": "<6.4", "symfony/service-contracts": "<2.5", - "symfony/twig-bundle": "<5.4", - "symfony/yaml": "<5.4" + "symfony/twig-bundle": "<6.4", + "symfony/yaml": "<6.4" }, "provide": { "symfony/translation-implementation": "2.3|3.0" }, "require-dev": { - "nikic/php-parser": "^4.18|^5.0", + "nikic/php-parser": "^5.0", "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/finder": "^5.4|^6.0|^7.0", + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/finder": "^6.4|^7.0|^8.0", "symfony/http-client-contracts": "^2.5|^3.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/intl": "^5.4|^6.0|^7.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/intl": "^6.4|^7.0|^8.0", "symfony/polyfill-intl-icu": "^1.21", - "symfony/routing": "^5.4|^6.0|^7.0", + "symfony/routing": "^6.4|^7.0|^8.0", "symfony/service-contracts": "^2.5|^3", - "symfony/yaml": "^5.4|^6.0|^7.0" + "symfony/yaml": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -6032,7 +6073,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.4.31" + "source": "https://github.com/symfony/translation/tree/v7.4.3" }, "funding": [ { @@ -6052,7 +6093,7 @@ "type": "tidelift" } ], - "time": "2025-12-18T11:37:55+00:00" + "time": "2025-12-29T09:31:36+00:00" }, { "name": "symfony/translation-contracts", @@ -6138,68 +6179,70 @@ }, { "name": "symfony/twig-bridge", - "version": "v6.4.31", + "version": "v7.4.3", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "24a498d80fd2a28087fbac0a96e0721ce2756b65" + "reference": "43c922fce020060c65b0fd54bfd8def3b38949b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/24a498d80fd2a28087fbac0a96e0721ce2756b65", - "reference": "24a498d80fd2a28087fbac0a96e0721ce2756b65", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/43c922fce020060c65b0fd54bfd8def3b38949b6", + "reference": "43c922fce020060c65b0fd54bfd8def3b38949b6", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", "symfony/translation-contracts": "^2.5|^3", - "twig/twig": "^2.13|^3.0.4" + "twig/twig": "^3.21" }, "conflict": { "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", - "symfony/console": "<5.4", + "symfony/console": "<6.4", "symfony/form": "<6.4", - "symfony/http-foundation": "<5.4", + "symfony/http-foundation": "<6.4", "symfony/http-kernel": "<6.4", - "symfony/mime": "<6.2", + "symfony/mime": "<6.4", "symfony/serializer": "<6.4", - "symfony/translation": "<5.4", - "symfony/workflow": "<5.4" + "symfony/translation": "<6.4", + "symfony/workflow": "<6.4" }, "require-dev": { "egulias/email-validator": "^2.1.10|^3|^4", "league/html-to-markdown": "^5.0", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/asset": "^5.4|^6.0|^7.0", - "symfony/asset-mapper": "^6.3|^7.0", - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/finder": "^5.4|^6.0|^7.0", - "symfony/form": "^6.4.30|~7.3.8|^7.4.1", - "symfony/html-sanitizer": "^6.1|^7.0", - "symfony/http-foundation": "^5.4|^6.0|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/intl": "^5.4|^6.0|^7.0", - "symfony/mime": "^6.2|^7.0", + "symfony/asset": "^6.4|^7.0|^8.0", + "symfony/asset-mapper": "^6.4|^7.0|^8.0", + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/emoji": "^7.1|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/finder": "^6.4|^7.0|^8.0", + "symfony/form": "^6.4.30|~7.3.8|^7.4.1|^8.0.1", + "symfony/html-sanitizer": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^7.3|^8.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/intl": "^6.4|^7.0|^8.0", + "symfony/mime": "^6.4|^7.0|^8.0", "symfony/polyfill-intl-icu": "~1.0", - "symfony/property-info": "^5.4|^6.0|^7.0", - "symfony/routing": "^5.4|^6.0|^7.0", + "symfony/property-info": "^6.4|^7.0|^8.0", + "symfony/routing": "^6.4|^7.0|^8.0", "symfony/security-acl": "^2.8|^3.0", - "symfony/security-core": "^5.4|^6.0|^7.0", - "symfony/security-csrf": "^5.4|^6.0|^7.0", - "symfony/security-http": "^5.4|^6.0|^7.0", - "symfony/serializer": "^6.4.3|^7.0.3", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/translation": "^6.1|^7.0", - "symfony/web-link": "^5.4|^6.0|^7.0", - "symfony/workflow": "^5.4|^6.0|^7.0", - "symfony/yaml": "^5.4|^6.0|^7.0", - "twig/cssinliner-extra": "^2.12|^3", - "twig/inky-extra": "^2.12|^3", - "twig/markdown-extra": "^2.12|^3" + "symfony/security-core": "^6.4|^7.0|^8.0", + "symfony/security-csrf": "^6.4|^7.0|^8.0", + "symfony/security-http": "^6.4|^7.0|^8.0", + "symfony/serializer": "^6.4.3|^7.0.3|^8.0", + "symfony/stopwatch": "^6.4|^7.0|^8.0", + "symfony/translation": "^6.4|^7.0|^8.0", + "symfony/validator": "^6.4|^7.0|^8.0", + "symfony/web-link": "^6.4|^7.0|^8.0", + "symfony/workflow": "^6.4|^7.0|^8.0", + "symfony/yaml": "^6.4|^7.0|^8.0", + "twig/cssinliner-extra": "^3", + "twig/inky-extra": "^3", + "twig/markdown-extra": "^3" }, "type": "symfony-bridge", "autoload": { @@ -6227,7 +6270,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v6.4.31" + "source": "https://github.com/symfony/twig-bridge/tree/v7.4.3" }, "funding": [ { @@ -6247,47 +6290,49 @@ "type": "tidelift" } ], - "time": "2025-12-11T18:16:47+00:00" + "time": "2025-12-16T08:02:06+00:00" }, { "name": "symfony/twig-bundle", - "version": "v6.4.31", + "version": "v7.4.3", "source": { "type": "git", "url": "https://github.com/symfony/twig-bundle.git", - "reference": "df14e1b81483b04534317e8f61617560ab60777d" + "reference": "9e1f5fd2668ed26c60d17d63f15fe270ed8da5e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/df14e1b81483b04534317e8f61617560ab60777d", - "reference": "df14e1b81483b04534317e8f61617560ab60777d", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/9e1f5fd2668ed26c60d17d63f15fe270ed8da5e6", + "reference": "9e1f5fd2668ed26c60d17d63f15fe270ed8da5e6", "shasum": "" }, "require": { "composer-runtime-api": ">=2.1", - "php": ">=8.1", - "symfony/config": "^6.1|^7.0", - "symfony/dependency-injection": "^6.1|^7.0", - "symfony/http-foundation": "^5.4|^6.0|^7.0", - "symfony/http-kernel": "^6.2", - "symfony/twig-bridge": "^6.4", - "twig/twig": "^2.13|^3.0.4" + "php": ">=8.2", + "symfony/config": "^7.4|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/http-foundation": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4.13|^7.1.6|^8.0", + "symfony/twig-bridge": "^7.3|^8.0", + "twig/twig": "^3.12" }, "conflict": { - "symfony/framework-bundle": "<5.4", - "symfony/translation": "<5.4" + "symfony/framework-bundle": "<6.4", + "symfony/translation": "<6.4" }, "require-dev": { - "symfony/asset": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/finder": "^5.4|^6.0|^7.0", - "symfony/form": "^5.4|^6.0|^7.0", - "symfony/framework-bundle": "^5.4|^6.0|^7.0", - "symfony/routing": "^5.4|^6.0|^7.0", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/translation": "^5.4|^6.0|^7.0", - "symfony/web-link": "^5.4|^6.0|^7.0", - "symfony/yaml": "^5.4|^6.0|^7.0" + "symfony/asset": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/finder": "^6.4|^7.0|^8.0", + "symfony/form": "^6.4|^7.0|^8.0", + "symfony/framework-bundle": "^6.4.13|^7.1.6|^8.0", + "symfony/routing": "^6.4|^7.0|^8.0", + "symfony/runtime": "^6.4.13|^7.1.6", + "symfony/stopwatch": "^6.4|^7.0|^8.0", + "symfony/translation": "^6.4|^7.0|^8.0", + "symfony/web-link": "^6.4|^7.0|^8.0", + "symfony/yaml": "^6.4|^7.0|^8.0" }, "type": "symfony-bundle", "autoload": { @@ -6315,7 +6360,7 @@ "description": "Provides a tight integration of Twig into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bundle/tree/v6.4.31" + "source": "https://github.com/symfony/twig-bundle/tree/v7.4.3" }, "funding": [ { @@ -6335,24 +6380,107 @@ "type": "tidelift" } ], - "time": "2025-12-18T03:19:37+00:00" + "time": "2025-12-19T10:00:43+00:00" + }, + { + "name": "symfony/type-info", + "version": "v7.4.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/type-info.git", + "reference": "ac5ab66b21c758df71b7210cf1033d1ac807f202" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/type-info/zipball/ac5ab66b21c758df71b7210cf1033d1ac807f202", + "reference": "ac5ab66b21c758df71b7210cf1033d1ac807f202", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "phpstan/phpdoc-parser": "<1.30" + }, + "require-dev": { + "phpstan/phpdoc-parser": "^1.30|^2.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\TypeInfo\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mathias Arlaud", + "email": "mathias.arlaud@gmail.com" + }, + { + "name": "Baptiste LEDUC", + "email": "baptiste.leduc@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Extracts PHP types information.", + "homepage": "https://symfony.com", + "keywords": [ + "PHPStan", + "phpdoc", + "symfony", + "type" + ], + "support": { + "source": "https://github.com/symfony/type-info/tree/v7.4.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-12-05T14:04:53+00:00" }, { "name": "symfony/validator", - "version": "v6.4.31", + "version": "v7.4.3", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "0c3f60adce4e6fc86583b0c7e363ce90fe3ca3e7" + "reference": "9670bedf4c454b21d1e04606b6c227990da8bebe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/0c3f60adce4e6fc86583b0c7e363ce90fe3ca3e7", - "reference": "0c3f60adce4e6fc86583b0c7e363ce90fe3ca3e7", + "url": "https://api.github.com/repos/symfony/validator/zipball/9670bedf4c454b21d1e04606b6c227990da8bebe", + "reference": "9670bedf4c454b21d1e04606b6c227990da8bebe", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.0", @@ -6360,34 +6488,37 @@ "symfony/translation-contracts": "^2.5|^3" }, "conflict": { - "doctrine/annotations": "<1.13", "doctrine/lexer": "<1.1", - "symfony/dependency-injection": "<5.4", - "symfony/expression-language": "<5.4", - "symfony/http-kernel": "<5.4", - "symfony/intl": "<5.4", - "symfony/property-info": "<5.4", - "symfony/translation": "<5.4.35|>=6.0,<6.3.12|>=6.4,<6.4.3|>=7.0,<7.0.3", - "symfony/yaml": "<5.4" + "symfony/dependency-injection": "<6.4", + "symfony/doctrine-bridge": "<7.0", + "symfony/expression-language": "<6.4", + "symfony/http-kernel": "<6.4", + "symfony/intl": "<6.4", + "symfony/property-info": "<6.4", + "symfony/translation": "<6.4.3|>=7.0,<7.0.3", + "symfony/var-exporter": "<6.4.25|>=7.0,<7.3.3", + "symfony/yaml": "<6.4" }, "require-dev": { - "doctrine/annotations": "^1.13|^2", "egulias/email-validator": "^2.1.10|^3|^4", - "symfony/cache": "^5.4|^6.0|^7.0", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/finder": "^5.4|^6.0|^7.0", - "symfony/http-client": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^5.4|^6.0|^7.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/intl": "^5.4|^6.0|^7.0", - "symfony/mime": "^5.4|^6.0|^7.0", - "symfony/property-access": "^5.4|^6.0|^7.0", - "symfony/property-info": "^5.4|^6.0|^7.0", - "symfony/translation": "^5.4.35|~6.3.12|^6.4.3|^7.0.3", - "symfony/yaml": "^5.4|^6.0|^7.0" + "symfony/cache": "^6.4|^7.0|^8.0", + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/finder": "^6.4|^7.0|^8.0", + "symfony/http-client": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/intl": "^6.4|^7.0|^8.0", + "symfony/mime": "^6.4|^7.0|^8.0", + "symfony/process": "^6.4|^7.0|^8.0", + "symfony/property-access": "^6.4|^7.0|^8.0", + "symfony/property-info": "^6.4|^7.0|^8.0", + "symfony/string": "^6.4|^7.0|^8.0", + "symfony/translation": "^6.4.3|^7.0.3|^8.0", + "symfony/type-info": "^7.1.8", + "symfony/yaml": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -6416,7 +6547,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v6.4.31" + "source": "https://github.com/symfony/validator/tree/v7.4.3" }, "funding": [ { @@ -6436,37 +6567,36 @@ "type": "tidelift" } ], - "time": "2025-12-24T09:35:58+00:00" + "time": "2025-12-27T17:05:22+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.26", + "version": "v7.4.3", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "cfae1497a2f1eaad78dbc0590311c599c7178d4a" + "reference": "7e99bebcb3f90d8721890f2963463280848cba92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/cfae1497a2f1eaad78dbc0590311c599c7178d4a", - "reference": "cfae1497a2f1eaad78dbc0590311c599c7178d4a", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/7e99bebcb3f90d8721890f2963463280848cba92", + "reference": "7e99bebcb3f90d8721890f2963463280848cba92", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/console": "<5.4" + "symfony/console": "<6.4" }, "require-dev": { - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/error-handler": "^6.3|^7.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/uid": "^5.4|^6.0|^7.0", - "twig/twig": "^2.13|^3.0.4" + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/process": "^6.4|^7.0|^8.0", + "symfony/uid": "^6.4|^7.0|^8.0", + "twig/twig": "^3.12" }, "bin": [ "Resources/bin/var-dump-server" @@ -6504,7 +6634,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.26" + "source": "https://github.com/symfony/var-dumper/tree/v7.4.3" }, "funding": [ { @@ -6524,30 +6654,30 @@ "type": "tidelift" } ], - "time": "2025-09-25T15:37:27+00:00" + "time": "2025-12-18T07:04:31+00:00" }, { "name": "symfony/var-exporter", - "version": "v6.4.26", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "466fcac5fa2e871f83d31173f80e9c2684743bfc" + "reference": "03a60f169c79a28513a78c967316fbc8bf17816f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/466fcac5fa2e871f83d31173f80e9c2684743bfc", - "reference": "466fcac5fa2e871f83d31173f80e9c2684743bfc", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/03a60f169c79a28513a78c967316fbc8bf17816f", + "reference": "03a60f169c79a28513a78c967316fbc8bf17816f", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3" }, "require-dev": { - "symfony/property-access": "^6.4|^7.0", - "symfony/serializer": "^6.4|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0" + "symfony/property-access": "^6.4|^7.0|^8.0", + "symfony/serializer": "^6.4|^7.0|^8.0", + "symfony/var-dumper": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -6585,7 +6715,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.4.26" + "source": "https://github.com/symfony/var-exporter/tree/v7.4.0" }, "funding": [ { @@ -6605,37 +6735,36 @@ "type": "tidelift" } ], - "time": "2025-09-11T09:57:09+00:00" + "time": "2025-09-11T10:15:23+00:00" }, { "name": "symfony/webpack-encore-bundle", - "version": "v1.17.2", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/symfony/webpack-encore-bundle.git", - "reference": "471ebbc03072dad6e31840dc317bc634a32785f5" + "reference": "5b932e0feddd81aaf0ecd7d5fcd2e450e5a7817e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/webpack-encore-bundle/zipball/471ebbc03072dad6e31840dc317bc634a32785f5", - "reference": "471ebbc03072dad6e31840dc317bc634a32785f5", + "url": "https://api.github.com/repos/symfony/webpack-encore-bundle/zipball/5b932e0feddd81aaf0ecd7d5fcd2e450e5a7817e", + "reference": "5b932e0feddd81aaf0ecd7d5fcd2e450e5a7817e", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/asset": "^4.4 || ^5.0 || ^6.0", - "symfony/config": "^4.4 || ^5.0 || ^6.0", - "symfony/dependency-injection": "^4.4 || ^5.0 || ^6.0", - "symfony/deprecation-contracts": "^2.1 || ^3.0", - "symfony/http-kernel": "^4.4 || ^5.0 || ^6.0", - "symfony/polyfill-php80": "^1.25.0", - "symfony/service-contracts": "^1.0 || ^2.0 || ^3.0" + "php": ">=8.1.0", + "symfony/asset": "^5.4 || ^6.2 || ^7.0 || ^8.0", + "symfony/config": "^5.4 || ^6.2 || ^7.0 || ^8.0", + "symfony/dependency-injection": "^5.4 || ^6.2 || ^7.0 || ^8.0", + "symfony/http-kernel": "^5.4 || ^6.2 || ^7.0 || ^8.0", + "symfony/service-contracts": "^1.1.9 || ^2.1.3 || ^3.0" }, "require-dev": { - "symfony/framework-bundle": "^4.4 || ^5.0 || ^6.0", - "symfony/phpunit-bridge": "^5.3 || ^6.0", - "symfony/twig-bundle": "^4.4 || ^5.0 || ^6.0", - "symfony/web-link": "^4.4 || ^5.0 || ^6.0" + "symfony/framework-bundle": "^5.4 || ^6.2 || ^7.0 || ^8.0", + "symfony/http-client": "^5.4 || ^6.2 || ^7.0 || ^8.0", + "symfony/phpunit-bridge": "^5.4 || ^6.2 || ^7.0 || ^8.0", + "symfony/twig-bundle": "^5.4 || ^6.2 || ^7.0 || ^8.0", + "symfony/web-link": "^5.4 || ^6.2 || ^7.0 || ^8.0" }, "type": "symfony-bundle", "extra": { @@ -6659,10 +6788,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Integration with your Symfony app & Webpack Encore!", + "description": "Integration of your Symfony app with Webpack Encore", "support": { "issues": "https://github.com/symfony/webpack-encore-bundle/issues", - "source": "https://github.com/symfony/webpack-encore-bundle/tree/v1.17.2" + "source": "https://github.com/symfony/webpack-encore-bundle/tree/v2.4.0" }, "funding": [ { @@ -6673,37 +6802,41 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2023-09-26T14:36:28+00:00" + "time": "2025-11-27T13:41:46+00:00" }, { "name": "symfony/yaml", - "version": "v6.4.30", + "version": "v7.4.1", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "8207ae83da19ee3748d6d4f567b4d9a7c656e331" + "reference": "24dd4de28d2e3988b311751ac49e684d783e2345" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/8207ae83da19ee3748d6d4f567b4d9a7c656e331", - "reference": "8207ae83da19ee3748d6d4f567b4d9a7c656e331", + "url": "https://api.github.com/repos/symfony/yaml/zipball/24dd4de28d2e3988b311751ac49e684d783e2345", + "reference": "24dd4de28d2e3988b311751ac49e684d783e2345", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "symfony/console": "<5.4" + "symfony/console": "<6.4" }, "require-dev": { - "symfony/console": "^5.4|^6.0|^7.0" + "symfony/console": "^6.4|^7.0|^8.0" }, "bin": [ "Resources/bin/yaml-lint" @@ -6734,7 +6867,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.4.30" + "source": "https://github.com/symfony/yaml/tree/v7.4.1" }, "funding": [ { @@ -6754,7 +6887,7 @@ "type": "tidelift" } ], - "time": "2025-12-02T11:50:18+00:00" + "time": "2025-12-04T18:11:45+00:00" }, { "name": "twig/extra-bundle", @@ -7675,16 +7808,16 @@ }, { "name": "overtrue/phplint", - "version": "9.6.3", + "version": "9.7.1", "source": { "type": "git", "url": "https://github.com/overtrue/phplint.git", - "reference": "b0ec1d07b37a37e7fc872c8bdbddacadcecbe047" + "reference": "69ec6707970ef95bdc6cd7489e407dbf9ff2981b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/overtrue/phplint/zipball/b0ec1d07b37a37e7fc872c8bdbddacadcecbe047", - "reference": "b0ec1d07b37a37e7fc872c8bdbddacadcecbe047", + "url": "https://api.github.com/repos/overtrue/phplint/zipball/69ec6707970ef95bdc6cd7489e407dbf9ff2981b", + "reference": "69ec6707970ef95bdc6cd7489e407dbf9ff2981b", "shasum": "" }, "require": { @@ -7692,18 +7825,17 @@ "ext-dom": "*", "ext-json": "*", "ext-mbstring": "*", - "php": "^8.1", - "symfony/cache": "^6.4 || ^7.0", - "symfony/console": "^6.4 || ^7.0", - "symfony/event-dispatcher": "^6.4 || ^7.0", - "symfony/finder": "^6.4 || ^7.0", - "symfony/options-resolver": "^6.4 || ^7.0", - "symfony/process": "^6.4 || ^7.0", - "symfony/yaml": "^6.4 || ^7.0" + "php": "^8.2", + "symfony/cache": "^7.4 || ^8.0", + "symfony/console": "^7.4 || ^8.0", + "symfony/event-dispatcher": "^7.4 || ^8.0", + "symfony/finder": "^7.4 || ^8.0", + "symfony/options-resolver": "^7.4 || ^8.0", + "symfony/process": "^7.4 || ^8.0", + "symfony/yaml": "^7.4 || ^8.0" }, "require-dev": { "bamarni/composer-bin-plugin": "^1.4", - "brainmaestro/composer-git-hooks": "^3.0.0", "jetbrains/phpstorm-stubs": "^2024.1", "php-parallel-lint/php-console-highlighter": "^1.0" }, @@ -7712,19 +7844,13 @@ ], "type": "library", "extra": { - "hooks": { - "pre-commit": [ - "composer style:fix", - "composer code:check" - ] - }, "bamarni-bin": { "bin-links": true, - "forward-command": true, + "forward-command": false, "target-directory": "vendor-bin" }, "branch-alias": { - "dev-main": "9.6.x-dev" + "dev-main": "9.7.x-dev" } }, "autoload": { @@ -7756,7 +7882,7 @@ ], "support": { "issues": "https://github.com/overtrue/phplint/issues", - "source": "https://github.com/overtrue/phplint/tree/9.6.3" + "source": "https://github.com/overtrue/phplint/tree/9.7.1" }, "funding": [ { @@ -7764,7 +7890,7 @@ "type": "github" } ], - "time": "2025-11-27T13:49:59+00:00" + "time": "2025-11-29T07:48:19+00:00" }, { "name": "pdepend/pdepend", @@ -8032,16 +8158,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "2.3.0", + "version": "2.3.1", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495" + "reference": "16dbf9937da8d4528ceb2145c9c7c0bd29e26374" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/1e0cd5370df5dd2e556a36b9c62f62e555870495", - "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/16dbf9937da8d4528ceb2145c9c7c0bd29e26374", + "reference": "16dbf9937da8d4528ceb2145c9c7c0bd29e26374", "shasum": "" }, "require": { @@ -8073,9 +8199,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.1" }, - "time": "2025-08-30T15:50:23+00:00" + "time": "2026-01-12T11:33:04+00:00" }, { "name": "phpstan/phpstan", @@ -9888,28 +10014,24 @@ }, { "name": "symfony/phpunit-bridge", - "version": "v6.4.26", + "version": "v7.4.3", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "406aa80401bf960e7a173a3ccf268ae82b6bc93f" + "reference": "f933e68bb9df29d08077a37e1515a23fea8562ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/406aa80401bf960e7a173a3ccf268ae82b6bc93f", - "reference": "406aa80401bf960e7a173a3ccf268ae82b6bc93f", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/f933e68bb9df29d08077a37e1515a23fea8562ab", + "reference": "f933e68bb9df29d08077a37e1515a23fea8562ab", "shasum": "" }, "require": { - "php": ">=7.1.3" - }, - "conflict": { - "phpunit/phpunit": "<7.5|9.1.2" + "php": ">=8.1.0" }, "require-dev": { - "symfony/deprecation-contracts": "^2.5|^3.0", - "symfony/error-handler": "^5.4|^6.0|^7.0", - "symfony/polyfill-php81": "^1.27" + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/error-handler": "^6.4.3|^7.0.3|^8.0" }, "bin": [ "bin/simple-phpunit" @@ -9953,7 +10075,7 @@ "testing" ], "support": { - "source": "https://github.com/symfony/phpunit-bridge/tree/v6.4.26" + "source": "https://github.com/symfony/phpunit-bridge/tree/v7.4.3" }, "funding": [ { @@ -9973,24 +10095,24 @@ "type": "tidelift" } ], - "time": "2025-09-12T08:37:02+00:00" + "time": "2025-12-09T15:33:45+00:00" }, { "name": "symfony/process", - "version": "v6.4.31", + "version": "v7.4.3", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "8541b7308fca001320e90bca8a73a28aa5604a6e" + "reference": "2f8e1a6cdf590ca63715da4d3a7a3327404a523f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/8541b7308fca001320e90bca8a73a28aa5604a6e", - "reference": "8541b7308fca001320e90bca8a73a28aa5604a6e", + "url": "https://api.github.com/repos/symfony/process/zipball/2f8e1a6cdf590ca63715da4d3a7a3327404a523f", + "reference": "2f8e1a6cdf590ca63715da4d3a7a3327404a523f", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "type": "library", "autoload": { @@ -10018,7 +10140,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.4.31" + "source": "https://github.com/symfony/process/tree/v7.4.3" }, "funding": [ { @@ -10038,25 +10160,25 @@ "type": "tidelift" } ], - "time": "2025-12-15T19:26:35+00:00" + "time": "2025-12-19T10:00:43+00:00" }, { "name": "symfony/stopwatch", - "version": "v5.4.45", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "fb2c199cf302eb207f8c23e7ee174c1c31a5c004" + "reference": "8a24af0a2e8a872fb745047180649b8418303084" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/fb2c199cf302eb207f8c23e7ee174c1c31a5c004", - "reference": "fb2c199cf302eb207f8c23e7ee174c1c31a5c004", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/8a24af0a2e8a872fb745047180649b8418303084", + "reference": "8a24af0a2e8a872fb745047180649b8418303084", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/service-contracts": "^1|^2|^3" + "php": ">=8.2", + "symfony/service-contracts": "^2.5|^3" }, "type": "library", "autoload": { @@ -10084,7 +10206,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v5.4.45" + "source": "https://github.com/symfony/stopwatch/tree/v7.4.0" }, "funding": [ { @@ -10095,47 +10217,55 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:11:13+00:00" + "time": "2025-08-04T07:05:15+00:00" }, { "name": "symfony/web-profiler-bundle", - "version": "v6.4.27", + "version": "v7.4.3", "source": { "type": "git", "url": "https://github.com/symfony/web-profiler-bundle.git", - "reference": "4c2ab411372e8bd854678cd7c81f1a9bfd6914aa" + "reference": "5220b59d06f6554658a0dc4d6bd4497a789e51dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/4c2ab411372e8bd854678cd7c81f1a9bfd6914aa", - "reference": "4c2ab411372e8bd854678cd7c81f1a9bfd6914aa", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/5220b59d06f6554658a0dc4d6bd4497a789e51dd", + "reference": "5220b59d06f6554658a0dc4d6bd4497a789e51dd", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/framework-bundle": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/routing": "^5.4|^6.0|^7.0", - "symfony/twig-bundle": "^5.4|^6.0", - "twig/twig": "^2.13|^3.0.4" + "composer-runtime-api": ">=2.1", + "php": ">=8.2", + "symfony/config": "^7.3|^8.0", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/framework-bundle": "^6.4.13|^7.1.6|^8.0", + "symfony/http-kernel": "^6.4.13|^7.1.6|^8.0", + "symfony/routing": "^6.4|^7.0|^8.0", + "symfony/twig-bundle": "^6.4|^7.0|^8.0", + "twig/twig": "^3.15" }, "conflict": { - "symfony/form": "<5.4", - "symfony/mailer": "<5.4", - "symfony/messenger": "<5.4", - "symfony/twig-bundle": ">=7.0" + "symfony/form": "<6.4", + "symfony/mailer": "<6.4", + "symfony/messenger": "<6.4", + "symfony/serializer": "<7.2", + "symfony/workflow": "<7.3" }, "require-dev": { - "symfony/browser-kit": "^5.4|^6.0|^7.0", - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/css-selector": "^5.4|^6.0|^7.0", - "symfony/stopwatch": "^5.4|^6.0|^7.0" + "symfony/browser-kit": "^6.4|^7.0|^8.0", + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/css-selector": "^6.4|^7.0|^8.0", + "symfony/runtime": "^6.4.13|^7.1.6|^8.0", + "symfony/stopwatch": "^6.4|^7.0|^8.0" }, "type": "symfony-bundle", "autoload": { @@ -10166,7 +10296,7 @@ "dev" ], "support": { - "source": "https://github.com/symfony/web-profiler-bundle/tree/v6.4.27" + "source": "https://github.com/symfony/web-profiler-bundle/tree/v7.4.3" }, "funding": [ { @@ -10186,7 +10316,7 @@ "type": "tidelift" } ], - "time": "2025-10-05T13:55:43+00:00" + "time": "2025-12-27T17:05:22+00:00" }, { "name": "theseer/tokenizer", @@ -10241,7 +10371,9 @@ ], "aliases": [], "minimum-stability": "stable", - "stability-flags": {}, + "stability-flags": { + "surfnet/stepup-middleware-client-bundle": 20 + }, "prefer-stable": false, "prefer-lowest": false, "platform": { diff --git a/config/bundles.php b/config/bundles.php index 67e9637b..63419be6 100644 --- a/config/bundles.php +++ b/config/bundles.php @@ -9,7 +9,6 @@ OpenConext\MonitorBundle\OpenConextMonitorBundle::class => ['all' => true], Surfnet\SamlBundle\SurfnetSamlBundle::class => ['all' => true], Surfnet\StepupBundle\SurfnetStepupBundle::class => ['all' => true], - Surfnet\StepupMiddlewareClientBundle\SurfnetStepupMiddlewareClientBundle::class => ['all' => true], Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true], Surfnet\StepupRa\RaBundle\SurfnetStepupRaRaBundle::class => ['all' => true], Surfnet\StepupRa\SamlStepupProviderBundle\SurfnetStepupRaSamlStepupProviderBundle::class => ['all' => true], @@ -18,4 +17,5 @@ Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true], Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true, 'smoketest' => true], Symfony\WebpackEncoreBundle\WebpackEncoreBundle::class => ['all' => true], + Surfnet\StepupMiddlewareClientBundle\SurfnetStepupMiddlewareClientBundle::class => ['all' => true], ]; diff --git a/config/packages/property_info.yaml b/config/packages/property_info.yaml new file mode 100644 index 00000000..dd31b9da --- /dev/null +++ b/config/packages/property_info.yaml @@ -0,0 +1,3 @@ +framework: + property_info: + with_constructor_extractor: true diff --git a/symfony.lock b/symfony.lock index e2e04125..ad57c845 100644 --- a/symfony.lock +++ b/symfony.lock @@ -1,7 +1,4 @@ { - "beberlei/assert": { - "version": "v2.9.9" - }, "composer/ca-bundle": { "version": "1.2.7" }, @@ -187,9 +184,6 @@ "ralouphie/getallheaders": { "version": "3.0.3" }, - "ramsey/uuid": { - "version": "3.9.3" - }, "robrichards/xmlseclibs": { "version": "3.1.0" }, @@ -257,7 +251,7 @@ "version": "4.1.1" }, "surfnet/stepup-middleware-client-bundle": { - "version": "4.0.0" + "version": "dev-feature/update_sf74" }, "surfnet/stepup-saml-bundle": { "version": "4.1.11" @@ -424,15 +418,24 @@ "symfony/polyfill-mbstring": { "version": "v1.17.1" }, - "symfony/polyfill-php80": { - "version": "v1.17.1" - }, "symfony/process": { "version": "v4.4.37" }, "symfony/property-access": { "version": "v4.4.10" }, + "symfony/property-info": { + "version": "7.4", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "main", + "version": "7.3", + "ref": "dae70df71978ae9226ae915ffd5fad817f5ca1f7" + }, + "files": [ + "config/packages/property_info.yaml" + ] + }, "symfony/routing": { "version": "4.2", "recipe": { From 7495f7b523ff46330c4cc3c563954545a21aac63 Mon Sep 17 00:00:00 2001 From: Johan Kromhout Date: Tue, 13 Jan 2026 15:04:54 +0100 Subject: [PATCH 10/18] Fix qa errors --- ci/qa/phpstan-baseline.php | 18 ------------------ .../RaBundle/Logger/ProcedureAwareLogger.php | 19 ++++++++++--------- .../Security/AuthenticatedIdentity.php | 12 +++++++++--- .../Authentication/Handler/FailureHandler.php | 2 +- .../Extensions/Extension/SecondFactorType.php | 15 ++++----------- 5 files changed, 24 insertions(+), 42 deletions(-) diff --git a/ci/qa/phpstan-baseline.php b/ci/qa/phpstan-baseline.php index af0299b8..23a7222a 100644 --- a/ci/qa/phpstan-baseline.php +++ b/ci/qa/phpstan-baseline.php @@ -607,18 +607,6 @@ 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Exception/AssertionFailedException.php', ]; -$ignoreErrors[] = [ - 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Exception\\\\AssertionFailedException\\:\\:getPropertyPath\\(\\) has no return type specified\\.$#', - 'identifier' => 'missingType.return', - 'count' => 1, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Exception/AssertionFailedException.php', -]; -$ignoreErrors[] = [ - 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Exception\\\\AssertionFailedException\\:\\:getValue\\(\\) has no return type specified\\.$#', - 'identifier' => 'missingType.return', - 'count' => 1, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Exception/AssertionFailedException.php', -]; $ignoreErrors[] = [ 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Form\\\\Extension\\\\RaRoleChoiceList\\:\\:buildChoices\\(\\) return type has no value type specified in iterable type array\\.$#', 'identifier' => 'missingType.iterableValue', @@ -679,12 +667,6 @@ 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/AuthenticatedIdentity.php', ]; -$ignoreErrors[] = [ - 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\AuthenticatedIdentity\\:\\:eraseCredentials\\(\\) return type has no value type specified in iterable type array\\.$#', - 'identifier' => 'missingType.iterableValue', - 'count' => 1, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Security/AuthenticatedIdentity.php', -]; $ignoreErrors[] = [ 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Security\\\\Authentication\\\\AuthenticatedSessionStateHandler\\:\\:setCurrentRequestUri\\(\\) has no return type specified\\.$#', 'identifier' => 'missingType.return', diff --git a/src/Surfnet/StepupRa/RaBundle/Logger/ProcedureAwareLogger.php b/src/Surfnet/StepupRa/RaBundle/Logger/ProcedureAwareLogger.php index 750bf958..4a2fd174 100755 --- a/src/Surfnet/StepupRa/RaBundle/Logger/ProcedureAwareLogger.php +++ b/src/Surfnet/StepupRa/RaBundle/Logger/ProcedureAwareLogger.php @@ -19,6 +19,7 @@ namespace Surfnet\StepupRa\RaBundle\Logger; use Psr\Log\LoggerInterface; +use Stringable; use Surfnet\StepupRa\RaBundle\Exception\RuntimeException; /** @@ -40,47 +41,47 @@ public function forProcedure(string $procedure): ProcedureAwareLogger return $logger; } - public function emergency($message, array $context = []): void + public function emergency(string|Stringable $message, array $context = []): void { $this->logger->emergency($message, $this->enrichContext($context)); } - public function alert($message, array $context = []): void + public function alert(string|Stringable $message, array $context = []): void { $this->logger->alert($message, $this->enrichContext($context)); } - public function critical($message, array $context = []): void + public function critical(string|Stringable $message, array $context = []): void { $this->logger->critical($message, $this->enrichContext($context)); } - public function error($message, array $context = []): void + public function error(string|Stringable $message, array $context = []): void { $this->logger->error($message, $this->enrichContext($context)); } - public function warning($message, array $context = []): void + public function warning(string|Stringable $message, array $context = []): void { $this->logger->warning($message, $this->enrichContext($context)); } - public function notice($message, array $context = []): void + public function notice(string|Stringable $message, array $context = []): void { $this->logger->notice($message, $this->enrichContext($context)); } - public function info($message, array $context = []): void + public function info(string|Stringable $message, array $context = []): void { $this->logger->info($message, $this->enrichContext($context)); } - public function debug($message, array $context = []): void + public function debug(string|Stringable $message, array $context = []): void { $this->logger->debug($message, $this->enrichContext($context)); } - public function log($level, $message, array $context = []): void + public function log($level, string|Stringable $message, array $context = []): void { $this->logger->log($level, $message, $this->enrichContext($context)); } diff --git a/src/Surfnet/StepupRa/RaBundle/Security/AuthenticatedIdentity.php b/src/Surfnet/StepupRa/RaBundle/Security/AuthenticatedIdentity.php index bc395cae..8944fb32 100755 --- a/src/Surfnet/StepupRa/RaBundle/Security/AuthenticatedIdentity.php +++ b/src/Surfnet/StepupRa/RaBundle/Security/AuthenticatedIdentity.php @@ -20,6 +20,7 @@ namespace Surfnet\StepupRa\RaBundle\Security; +use LogicException; use Surfnet\StepupBundle\Value\Loa; use Surfnet\StepupMiddlewareClientBundle\Identity\Dto\Identity; use Symfony\Component\Security\Core\User\UserInterface; @@ -95,9 +96,8 @@ public function getSalt(): ?string /** * @inheritDoc */ - public function eraseCredentials(): array + public function eraseCredentials(): void { - return []; } /** @@ -111,6 +111,12 @@ public function getOriginalIdentity(): Identity public function getUserIdentifier(): string { $parts = explode(':', $this->originalIdentity->nameId); - return end($parts); + $identifier = end($parts); + + if ($identifier === false || $identifier === '') { + throw new LogicException('Cannot determine user identifier from nameId'); + } + + return $identifier; } } diff --git a/src/Surfnet/StepupRa/RaBundle/Security/Authentication/Handler/FailureHandler.php b/src/Surfnet/StepupRa/RaBundle/Security/Authentication/Handler/FailureHandler.php index 51360a92..8d89607a 100644 --- a/src/Surfnet/StepupRa/RaBundle/Security/Authentication/Handler/FailureHandler.php +++ b/src/Surfnet/StepupRa/RaBundle/Security/Authentication/Handler/FailureHandler.php @@ -49,7 +49,7 @@ public function onAuthenticationFailure(Request $request, AuthenticationExceptio $exception->getMessageKey(), $exception->getMessage(), ); - $this->logger->notice($message); + $this->logger?->notice($message); // The exception controller is used to show the failed authentication return $this->exceptionController->show($request, $exception); } diff --git a/src/Surfnet/StepupRa/RaBundle/Twig/Extensions/Extension/SecondFactorType.php b/src/Surfnet/StepupRa/RaBundle/Twig/Extensions/Extension/SecondFactorType.php index 373186f0..757d6111 100755 --- a/src/Surfnet/StepupRa/RaBundle/Twig/Extensions/Extension/SecondFactorType.php +++ b/src/Surfnet/StepupRa/RaBundle/Twig/Extensions/Extension/SecondFactorType.php @@ -19,13 +19,12 @@ namespace Surfnet\StepupRa\RaBundle\Twig\Extensions\Extension; use Surfnet\StepupBundle\Service\SecondFactorTypeTranslationService; -use Twig\Extension\AbstractExtension; -use Twig\TwigFilter; +use Twig\Attribute\AsTwigFilter; -final class SecondFactorType extends AbstractExtension +final readonly class SecondFactorType { public function __construct( - private readonly SecondFactorTypeTranslationService $translator, + private SecondFactorTypeTranslationService $translator, ) { } @@ -34,13 +33,7 @@ public function getName(): string return 'ra.twig.second_factor_type'; } - public function getFilters(): array - { - return [ - new TwigFilter('trans_second_factor_type', $this->translateSecondFactorType(...)), - ]; - } - + #[AsTwigFilter(name: 'trans_second_factor_type')] public function translateSecondFactorType($secondFactorType): string { return $this->translator->translate($secondFactorType, 'ra.second_factor.search.type.%s'); From ae1d7279d62c2c3a21f727d8ef51e96d903bb91d Mon Sep 17 00:00:00 2001 From: Johan Kromhout Date: Tue, 13 Jan 2026 15:17:00 +0100 Subject: [PATCH 11/18] Update release notes & fix build --- .github/dependabot.yml | 2 + .github/workflows/test-integration.yml | 7 +- CHANGELOG.md | 3 + composer.json | 6 +- composer.lock | 585 ++++++++++-------- .../Exception/AssertionFailedException.php | 9 +- .../RaBundle/Resources/config/services.yml | 2 - .../RaBundle/Tests/Value/DateTimeTest.php | 2 +- 8 files changed, 364 insertions(+), 252 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index cbf12a00..7ba852bb 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -25,6 +25,8 @@ updates: - "*" # Maintain dependencies for npm - package-ecosystem: "npm" + cooldown: + default-days: 14 directories: - "/" schedule: diff --git a/.github/workflows/test-integration.yml b/.github/workflows/test-integration.yml index a206e24c..dc817c39 100644 --- a/.github/workflows/test-integration.yml +++ b/.github/workflows/test-integration.yml @@ -1,5 +1,10 @@ name: Run QA tests (static analysis, lint and unit tests) -on: [pull_request] +on: + pull_request: + push: + branches: + - main + workflow_dispatch: jobs: run-qa-tests: diff --git a/CHANGELOG.md b/CHANGELOG.md index 7f240e3a..6a145436 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## 7.0.0 +- Update to Symfony 7.4 + ## 6.0.1 - Ensure the correct error page is displayed when authentication fails #332 - Upgrade of numerous NPM and Composer dependencies diff --git a/composer.json b/composer.json index 47ae13c2..ae07b74d 100644 --- a/composer.json +++ b/composer.json @@ -49,10 +49,10 @@ "phpmd/phpmd": "^2.15", "phpstan/phpstan": "^2.1.33", "phpstan/phpstan-symfony": "^2.0.9", - "phpunit/phpunit": "^10.5.60", + "phpunit/phpunit": "^11.0", "rector/rector": "^2.3", - "slevomat/coding-standard": "^8.22.1", - "squizlabs/php_codesniffer": "^3.13.5", + "slevomat/coding-standard": "^8.26", + "squizlabs/php_codesniffer": "^4.0", "symfony/maker-bundle": "^1.65.1", "symfony/phpunit-bridge": "7.4.*", "symfony/stopwatch": "^7.4", diff --git a/composer.lock b/composer.lock index 77887499..3be68435 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "3ae19ef14e0783b8554635655c91059b", + "content-hash": "e3a88893ab4694054b09aee1df9ab4c4", "packages": [ { "name": "beberlei/assert", @@ -8329,35 +8329,35 @@ }, { "name": "phpunit/php-code-coverage", - "version": "10.1.16", + "version": "11.0.12", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "7e308268858ed6baedc8704a304727d20bc07c77" + "reference": "2c1ed04922802c15e1de5d7447b4856de949cf56" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/7e308268858ed6baedc8704a304727d20bc07c77", - "reference": "7e308268858ed6baedc8704a304727d20bc07c77", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2c1ed04922802c15e1de5d7447b4856de949cf56", + "reference": "2c1ed04922802c15e1de5d7447b4856de949cf56", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.19.1 || ^5.1.0", - "php": ">=8.1", - "phpunit/php-file-iterator": "^4.1.0", - "phpunit/php-text-template": "^3.0.1", - "sebastian/code-unit-reverse-lookup": "^3.0.0", - "sebastian/complexity": "^3.2.0", - "sebastian/environment": "^6.1.0", - "sebastian/lines-of-code": "^2.0.2", - "sebastian/version": "^4.0.1", - "theseer/tokenizer": "^1.2.3" + "nikic/php-parser": "^5.7.0", + "php": ">=8.2", + "phpunit/php-file-iterator": "^5.1.0", + "phpunit/php-text-template": "^4.0.1", + "sebastian/code-unit-reverse-lookup": "^4.0.1", + "sebastian/complexity": "^4.0.1", + "sebastian/environment": "^7.2.1", + "sebastian/lines-of-code": "^3.0.1", + "sebastian/version": "^5.0.2", + "theseer/tokenizer": "^1.3.1" }, "require-dev": { - "phpunit/phpunit": "^10.1" + "phpunit/phpunit": "^11.5.46" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -8366,7 +8366,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "10.1.x-dev" + "dev-main": "11.0.x-dev" } }, "autoload": { @@ -8395,40 +8395,52 @@ "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/10.1.16" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.12" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/php-code-coverage", + "type": "tidelift" } ], - "time": "2024-08-22T04:31:57+00:00" + "time": "2025-12-24T07:01:01+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "4.1.0", + "version": "5.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c" + "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a95037b6d9e608ba092da1b23931e537cadc3c3c", - "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/118cfaaa8bc5aef3287bf315b6060b1174754af6", + "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -8456,7 +8468,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.1.0" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.0" }, "funding": [ { @@ -8464,28 +8476,28 @@ "type": "github" } ], - "time": "2023-08-31T06:24:48+00:00" + "time": "2024-08-27T05:02:59+00:00" }, { "name": "phpunit/php-invoker", - "version": "4.0.0", + "version": "5.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7" + "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", - "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/c1ca3814734c07492b3d4c5f794f4b0995333da2", + "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { "ext-pcntl": "*", - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "suggest": { "ext-pcntl": "*" @@ -8493,7 +8505,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -8519,7 +8531,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-invoker/issues", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0" + "security": "https://github.com/sebastianbergmann/php-invoker/security/policy", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/5.0.1" }, "funding": [ { @@ -8527,32 +8540,32 @@ "type": "github" } ], - "time": "2023-02-03T06:56:09+00:00" + "time": "2024-07-03T05:07:44+00:00" }, { "name": "phpunit/php-text-template", - "version": "3.0.1", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748" + "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/0c7b06ff49e3d5072f057eb1fa59258bf287a748", - "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/3e0404dc6b300e6bf56415467ebcb3fe4f33e964", + "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -8579,7 +8592,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-text-template/issues", "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.1" + "source": "https://github.com/sebastianbergmann/php-text-template/tree/4.0.1" }, "funding": [ { @@ -8587,32 +8600,32 @@ "type": "github" } ], - "time": "2023-08-31T14:07:24+00:00" + "time": "2024-07-03T05:08:43+00:00" }, { "name": "phpunit/php-timer", - "version": "6.0.0", + "version": "7.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d" + "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/e2a2d67966e740530f4a3343fe2e030ffdc1161d", - "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", + "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -8638,7 +8651,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0" + "security": "https://github.com/sebastianbergmann/php-timer/security/policy", + "source": "https://github.com/sebastianbergmann/php-timer/tree/7.0.1" }, "funding": [ { @@ -8646,20 +8660,20 @@ "type": "github" } ], - "time": "2023-02-03T06:57:52+00:00" + "time": "2024-07-03T05:09:35+00:00" }, { "name": "phpunit/phpunit", - "version": "10.5.60", + "version": "11.5.46", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "f2e26f52f80ef77832e359205f216eeac00e320c" + "reference": "75dfe79a2aa30085b7132bb84377c24062193f33" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f2e26f52f80ef77832e359205f216eeac00e320c", - "reference": "f2e26f52f80ef77832e359205f216eeac00e320c", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/75dfe79a2aa30085b7132bb84377c24062193f33", + "reference": "75dfe79a2aa30085b7132bb84377c24062193f33", "shasum": "" }, "require": { @@ -8672,23 +8686,23 @@ "myclabs/deep-copy": "^1.13.4", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", - "php": ">=8.1", - "phpunit/php-code-coverage": "^10.1.16", - "phpunit/php-file-iterator": "^4.1.0", - "phpunit/php-invoker": "^4.0.0", - "phpunit/php-text-template": "^3.0.1", - "phpunit/php-timer": "^6.0.0", - "sebastian/cli-parser": "^2.0.1", - "sebastian/code-unit": "^2.0.0", - "sebastian/comparator": "^5.0.4", - "sebastian/diff": "^5.1.1", - "sebastian/environment": "^6.1.0", - "sebastian/exporter": "^5.1.4", - "sebastian/global-state": "^6.0.2", - "sebastian/object-enumerator": "^5.0.0", - "sebastian/recursion-context": "^5.0.1", - "sebastian/type": "^4.0.0", - "sebastian/version": "^4.0.1" + "php": ">=8.2", + "phpunit/php-code-coverage": "^11.0.11", + "phpunit/php-file-iterator": "^5.1.0", + "phpunit/php-invoker": "^5.0.1", + "phpunit/php-text-template": "^4.0.1", + "phpunit/php-timer": "^7.0.1", + "sebastian/cli-parser": "^3.0.2", + "sebastian/code-unit": "^3.0.3", + "sebastian/comparator": "^6.3.2", + "sebastian/diff": "^6.0.2", + "sebastian/environment": "^7.2.1", + "sebastian/exporter": "^6.3.2", + "sebastian/global-state": "^7.0.2", + "sebastian/object-enumerator": "^6.0.1", + "sebastian/type": "^5.1.3", + "sebastian/version": "^5.0.2", + "staabm/side-effects-detector": "^1.0.5" }, "suggest": { "ext-soap": "To be able to generate mocks based on WSDL files" @@ -8699,7 +8713,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "10.5-dev" + "dev-main": "11.5-dev" } }, "autoload": { @@ -8731,7 +8745,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.60" + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.46" }, "funding": [ { @@ -8755,7 +8769,7 @@ "type": "tidelift" } ], - "time": "2025-12-06T07:50:42+00:00" + "time": "2025-12-06T08:01:15+00:00" }, { "name": "rector/rector", @@ -8819,28 +8833,28 @@ }, { "name": "sebastian/cli-parser", - "version": "2.0.1", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084" + "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/c34583b87e7b7a8055bf6c450c2c77ce32a24084", - "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/15c5dd40dc4f38794d383bb95465193f5e0ae180", + "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -8864,7 +8878,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.1" + "source": "https://github.com/sebastianbergmann/cli-parser/tree/3.0.2" }, "funding": [ { @@ -8872,32 +8886,32 @@ "type": "github" } ], - "time": "2024-03-02T07:12:49+00:00" + "time": "2024-07-03T04:41:36+00:00" }, { "name": "sebastian/code-unit", - "version": "2.0.0", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "a81fee9eef0b7a76af11d121767abc44c104e503" + "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/a81fee9eef0b7a76af11d121767abc44c104e503", - "reference": "a81fee9eef0b7a76af11d121767abc44c104e503", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/54391c61e4af8078e5b276ab082b6d3c54c9ad64", + "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.5" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -8920,7 +8934,8 @@ "homepage": "https://github.com/sebastianbergmann/code-unit", "support": { "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "source": "https://github.com/sebastianbergmann/code-unit/tree/2.0.0" + "security": "https://github.com/sebastianbergmann/code-unit/security/policy", + "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.3" }, "funding": [ { @@ -8928,32 +8943,32 @@ "type": "github" } ], - "time": "2023-02-03T06:58:43+00:00" + "time": "2025-03-19T07:56:08+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "3.0.0", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d" + "reference": "183a9b2632194febd219bb9246eee421dad8d45e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", - "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/183a9b2632194febd219bb9246eee421dad8d45e", + "reference": "183a9b2632194febd219bb9246eee421dad8d45e", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -8975,7 +8990,8 @@ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", "support": { "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0.0" + "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/4.0.1" }, "funding": [ { @@ -8983,36 +8999,39 @@ "type": "github" } ], - "time": "2023-02-03T06:59:15+00:00" + "time": "2024-07-03T04:45:54+00:00" }, { "name": "sebastian/comparator", - "version": "5.0.4", + "version": "6.3.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "e8e53097718d2b53cfb2aa859b06a41abf58c62e" + "reference": "85c77556683e6eee4323e4c5468641ca0237e2e8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/e8e53097718d2b53cfb2aa859b06a41abf58c62e", - "reference": "e8e53097718d2b53cfb2aa859b06a41abf58c62e", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/85c77556683e6eee4323e4c5468641ca0237e2e8", + "reference": "85c77556683e6eee4323e4c5468641ca0237e2e8", "shasum": "" }, "require": { "ext-dom": "*", "ext-mbstring": "*", - "php": ">=8.1", - "sebastian/diff": "^5.0", - "sebastian/exporter": "^5.0" + "php": ">=8.2", + "sebastian/diff": "^6.0", + "sebastian/exporter": "^6.0" }, "require-dev": { - "phpunit/phpunit": "^10.5" + "phpunit/phpunit": "^11.4" + }, + "suggest": { + "ext-bcmath": "For comparing BcMath\\Number objects" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "6.3-dev" } }, "autoload": { @@ -9052,7 +9071,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.4" + "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.2" }, "funding": [ { @@ -9072,33 +9091,33 @@ "type": "tidelift" } ], - "time": "2025-09-07T05:25:07+00:00" + "time": "2025-08-10T08:07:46+00:00" }, { "name": "sebastian/complexity", - "version": "3.2.0", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "68ff824baeae169ec9f2137158ee529584553799" + "reference": "ee41d384ab1906c68852636b6de493846e13e5a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799", - "reference": "68ff824baeae169ec9f2137158ee529584553799", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/ee41d384ab1906c68852636b6de493846e13e5a0", + "reference": "ee41d384ab1906c68852636b6de493846e13e5a0", "shasum": "" }, "require": { - "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=8.1" + "nikic/php-parser": "^5.0", + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.2-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -9122,7 +9141,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", "security": "https://github.com/sebastianbergmann/complexity/security/policy", - "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0" + "source": "https://github.com/sebastianbergmann/complexity/tree/4.0.1" }, "funding": [ { @@ -9130,33 +9149,33 @@ "type": "github" } ], - "time": "2023-12-21T08:37:17+00:00" + "time": "2024-07-03T04:49:50+00:00" }, { "name": "sebastian/diff", - "version": "5.1.1", + "version": "6.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e" + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c41e007b4b62af48218231d6c2275e4c9b975b2e", - "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544", + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0", - "symfony/process": "^6.4" + "phpunit/phpunit": "^11.0", + "symfony/process": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.1-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -9189,7 +9208,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/5.1.1" + "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2" }, "funding": [ { @@ -9197,27 +9216,27 @@ "type": "github" } ], - "time": "2024-03-02T07:15:17+00:00" + "time": "2024-07-03T04:53:05+00:00" }, { "name": "sebastian/environment", - "version": "6.1.0", + "version": "7.2.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "8074dbcd93529b357029f5cc5058fd3e43666984" + "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/8074dbcd93529b357029f5cc5058fd3e43666984", - "reference": "8074dbcd93529b357029f5cc5058fd3e43666984", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/a5c75038693ad2e8d4b6c15ba2403532647830c4", + "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.3" }, "suggest": { "ext-posix": "*" @@ -9225,7 +9244,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "6.1-dev" + "dev-main": "7.2-dev" } }, "autoload": { @@ -9253,42 +9272,54 @@ "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", "security": "https://github.com/sebastianbergmann/environment/security/policy", - "source": "https://github.com/sebastianbergmann/environment/tree/6.1.0" + "source": "https://github.com/sebastianbergmann/environment/tree/7.2.1" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/environment", + "type": "tidelift" } ], - "time": "2024-03-23T08:47:14+00:00" + "time": "2025-05-21T11:55:47+00:00" }, { "name": "sebastian/exporter", - "version": "5.1.4", + "version": "6.3.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "0735b90f4da94969541dac1da743446e276defa6" + "reference": "70a298763b40b213ec087c51c739efcaa90bcd74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/0735b90f4da94969541dac1da743446e276defa6", - "reference": "0735b90f4da94969541dac1da743446e276defa6", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/70a298763b40b213ec087c51c739efcaa90bcd74", + "reference": "70a298763b40b213ec087c51c739efcaa90bcd74", "shasum": "" }, "require": { "ext-mbstring": "*", - "php": ">=8.1", - "sebastian/recursion-context": "^5.0" + "php": ">=8.2", + "sebastian/recursion-context": "^6.0" }, "require-dev": { - "phpunit/phpunit": "^10.5" + "phpunit/phpunit": "^11.3" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.1-dev" + "dev-main": "6.3-dev" } }, "autoload": { @@ -9331,7 +9362,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", "security": "https://github.com/sebastianbergmann/exporter/security/policy", - "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.4" + "source": "https://github.com/sebastianbergmann/exporter/tree/6.3.2" }, "funding": [ { @@ -9351,35 +9382,35 @@ "type": "tidelift" } ], - "time": "2025-09-24T06:09:11+00:00" + "time": "2025-09-24T06:12:51+00:00" }, { "name": "sebastian/global-state", - "version": "6.0.2", + "version": "7.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9" + "reference": "3be331570a721f9a4b5917f4209773de17f747d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", - "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/3be331570a721f9a4b5917f4209773de17f747d7", + "reference": "3be331570a721f9a4b5917f4209773de17f747d7", "shasum": "" }, "require": { - "php": ">=8.1", - "sebastian/object-reflector": "^3.0", - "sebastian/recursion-context": "^5.0" + "php": ">=8.2", + "sebastian/object-reflector": "^4.0", + "sebastian/recursion-context": "^6.0" }, "require-dev": { "ext-dom": "*", - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -9405,7 +9436,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", "security": "https://github.com/sebastianbergmann/global-state/security/policy", - "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.2" + "source": "https://github.com/sebastianbergmann/global-state/tree/7.0.2" }, "funding": [ { @@ -9413,33 +9444,33 @@ "type": "github" } ], - "time": "2024-03-02T07:19:19+00:00" + "time": "2024-07-03T04:57:36+00:00" }, { "name": "sebastian/lines-of-code", - "version": "2.0.2", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0" + "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0", - "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d36ad0d782e5756913e42ad87cb2890f4ffe467a", + "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a", "shasum": "" }, "require": { - "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=8.1" + "nikic/php-parser": "^5.0", + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -9463,7 +9494,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2" + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/3.0.1" }, "funding": [ { @@ -9471,34 +9502,34 @@ "type": "github" } ], - "time": "2023-12-21T08:38:20+00:00" + "time": "2024-07-03T04:58:38+00:00" }, { "name": "sebastian/object-enumerator", - "version": "5.0.0", + "version": "6.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906" + "reference": "f5b498e631a74204185071eb41f33f38d64608aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/202d0e344a580d7f7d04b3fafce6933e59dae906", - "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f5b498e631a74204185071eb41f33f38d64608aa", + "reference": "f5b498e631a74204185071eb41f33f38d64608aa", "shasum": "" }, "require": { - "php": ">=8.1", - "sebastian/object-reflector": "^3.0", - "sebastian/recursion-context": "^5.0" + "php": ">=8.2", + "sebastian/object-reflector": "^4.0", + "sebastian/recursion-context": "^6.0" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -9520,7 +9551,8 @@ "homepage": "https://github.com/sebastianbergmann/object-enumerator/", "support": { "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/5.0.0" + "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/6.0.1" }, "funding": [ { @@ -9528,32 +9560,32 @@ "type": "github" } ], - "time": "2023-02-03T07:08:32+00:00" + "time": "2024-07-03T05:00:13+00:00" }, { "name": "sebastian/object-reflector", - "version": "3.0.0", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "24ed13d98130f0e7122df55d06c5c4942a577957" + "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/24ed13d98130f0e7122df55d06c5c4942a577957", - "reference": "24ed13d98130f0e7122df55d06c5c4942a577957", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/6e1a43b411b2ad34146dee7524cb13a068bb35f9", + "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -9575,7 +9607,8 @@ "homepage": "https://github.com/sebastianbergmann/object-reflector/", "support": { "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/3.0.0" + "security": "https://github.com/sebastianbergmann/object-reflector/security/policy", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/4.0.1" }, "funding": [ { @@ -9583,32 +9616,32 @@ "type": "github" } ], - "time": "2023-02-03T07:06:18+00:00" + "time": "2024-07-03T05:01:32+00:00" }, { "name": "sebastian/recursion-context", - "version": "5.0.1", + "version": "6.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "47e34210757a2f37a97dcd207d032e1b01e64c7a" + "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/47e34210757a2f37a97dcd207d032e1b01e64c7a", - "reference": "47e34210757a2f37a97dcd207d032e1b01e64c7a", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/f6458abbf32a6c8174f8f26261475dc133b3d9dc", + "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.5" + "phpunit/phpunit": "^11.3" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -9639,7 +9672,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.1" + "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.3" }, "funding": [ { @@ -9659,32 +9692,32 @@ "type": "tidelift" } ], - "time": "2025-08-10T07:50:56+00:00" + "time": "2025-08-13T04:42:22+00:00" }, { "name": "sebastian/type", - "version": "4.0.0", + "version": "5.1.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "462699a16464c3944eefc02ebdd77882bd3925bf" + "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/462699a16464c3944eefc02ebdd77882bd3925bf", - "reference": "462699a16464c3944eefc02ebdd77882bd3925bf", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/f77d2d4e78738c98d9a68d2596fe5e8fa380f449", + "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^11.3" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.1-dev" } }, "autoload": { @@ -9707,37 +9740,50 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/4.0.0" + "security": "https://github.com/sebastianbergmann/type/security/policy", + "source": "https://github.com/sebastianbergmann/type/tree/5.1.3" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/type", + "type": "tidelift" } ], - "time": "2023-02-03T07:10:45+00:00" + "time": "2025-08-09T06:55:48+00:00" }, { "name": "sebastian/version", - "version": "4.0.1", + "version": "5.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17" + "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c51fa83a5d8f43f1402e3f32a005e6262244ef17", - "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c687e3387b99f5b03b6caa64c74b63e2936ff874", + "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -9760,7 +9806,8 @@ "homepage": "https://github.com/sebastianbergmann/version", "support": { "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/4.0.1" + "security": "https://github.com/sebastianbergmann/version/security/policy", + "source": "https://github.com/sebastianbergmann/version/tree/5.0.2" }, "funding": [ { @@ -9768,36 +9815,36 @@ "type": "github" } ], - "time": "2023-02-07T11:34:05+00:00" + "time": "2024-10-09T05:16:32+00:00" }, { "name": "slevomat/coding-standard", - "version": "8.22.1", + "version": "8.26.0", "source": { "type": "git", "url": "https://github.com/slevomat/coding-standard.git", - "reference": "1dd80bf3b93692bedb21a6623c496887fad05fec" + "reference": "d247cdc04b91956bdcfaa0b1313c01960b189d3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/1dd80bf3b93692bedb21a6623c496887fad05fec", - "reference": "1dd80bf3b93692bedb21a6623c496887fad05fec", + "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/d247cdc04b91956bdcfaa0b1313c01960b189d3c", + "reference": "d247cdc04b91956bdcfaa0b1313c01960b189d3c", "shasum": "" }, "require": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7 || ^1.1.2", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7 || ^1.2.0", "php": "^7.4 || ^8.0", "phpstan/phpdoc-parser": "^2.3.0", - "squizlabs/php_codesniffer": "^3.13.4" + "squizlabs/php_codesniffer": "^4.0.1" }, "require-dev": { "phing/phing": "3.0.1|3.1.0", "php-parallel-lint/php-parallel-lint": "1.4.0", - "phpstan/phpstan": "2.1.24", + "phpstan/phpstan": "2.1.33", "phpstan/phpstan-deprecation-rules": "2.0.3", - "phpstan/phpstan-phpunit": "2.0.7", - "phpstan/phpstan-strict-rules": "2.0.6", - "phpunit/phpunit": "9.6.8|10.5.48|11.4.4|11.5.36|12.3.10" + "phpstan/phpstan-phpunit": "2.0.11", + "phpstan/phpstan-strict-rules": "2.0.7", + "phpunit/phpunit": "9.6.31|10.5.60|11.4.4|11.5.46|12.5.4" }, "type": "phpcodesniffer-standard", "extra": { @@ -9821,7 +9868,7 @@ ], "support": { "issues": "https://github.com/slevomat/coding-standard/issues", - "source": "https://github.com/slevomat/coding-standard/tree/8.22.1" + "source": "https://github.com/slevomat/coding-standard/tree/8.26.0" }, "funding": [ { @@ -9833,30 +9880,30 @@ "type": "tidelift" } ], - "time": "2025-09-13T08:53:30+00:00" + "time": "2025-12-21T18:01:15+00:00" }, { "name": "squizlabs/php_codesniffer", - "version": "3.13.5", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "0ca86845ce43291e8f5692c7356fccf3bcf02bf4" + "reference": "0525c73950de35ded110cffafb9892946d7771b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/0ca86845ce43291e8f5692c7356fccf3bcf02bf4", - "reference": "0ca86845ce43291e8f5692c7356fccf3bcf02bf4", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/0525c73950de35ded110cffafb9892946d7771b5", + "reference": "0525c73950de35ded110cffafb9892946d7771b5", "shasum": "" }, "require": { "ext-simplexml": "*", "ext-tokenizer": "*", "ext-xmlwriter": "*", - "php": ">=5.4.0" + "php": ">=7.2.0" }, "require-dev": { - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" + "phpunit/phpunit": "^8.4.0 || ^9.3.4 || ^10.5.32 || 11.3.3 - 11.5.28 || ^11.5.31" }, "bin": [ "bin/phpcbf", @@ -9881,7 +9928,7 @@ "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors" } ], - "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "description": "PHP_CodeSniffer tokenizes PHP files and detects violations of a defined set of coding standards.", "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer", "keywords": [ "phpcs", @@ -9912,7 +9959,59 @@ "type": "thanks_dev" } ], - "time": "2025-11-04T16:30:35+00:00" + "time": "2025-11-10T16:43:36+00:00" + }, + { + "name": "staabm/side-effects-detector", + "version": "1.0.5", + "source": { + "type": "git", + "url": "https://github.com/staabm/side-effects-detector.git", + "reference": "d8334211a140ce329c13726d4a715adbddd0a163" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163", + "reference": "d8334211a140ce329c13726d4a715adbddd0a163", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^1.12.6", + "phpunit/phpunit": "^9.6.21", + "symfony/var-dumper": "^5.4.43", + "tomasvotruba/type-coverage": "1.0.0", + "tomasvotruba/unused-public": "1.0.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "lib/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A static analysis tool to detect side effects in PHP code", + "keywords": [ + "static analysis" + ], + "support": { + "issues": "https://github.com/staabm/side-effects-detector/issues", + "source": "https://github.com/staabm/side-effects-detector/tree/1.0.5" + }, + "funding": [ + { + "url": "https://github.com/staabm", + "type": "github" + } + ], + "time": "2024-10-20T05:08:20+00:00" }, { "name": "symfony/maker-bundle", diff --git a/src/Surfnet/StepupRa/RaBundle/Exception/AssertionFailedException.php b/src/Surfnet/StepupRa/RaBundle/Exception/AssertionFailedException.php index f481bc3c..0b033842 100755 --- a/src/Surfnet/StepupRa/RaBundle/Exception/AssertionFailedException.php +++ b/src/Surfnet/StepupRa/RaBundle/Exception/AssertionFailedException.php @@ -23,8 +23,13 @@ class AssertionFailedException extends InvalidArgumentException implements AssertAssertionFailedException { // @codingStandardsIgnoreStart Compliance with beberlei/assert's invalid argument exception - public function __construct($message, $code, private $value, private $propertyPath = null, private readonly array $constraints = []) - { + public function __construct( + $message, + $code, + private $value, + private $propertyPath = null, + private readonly array $constraints = [], + ) { parent::__construct($message, $code); } // @codingStandardsIgnoreEnd diff --git a/src/Surfnet/StepupRa/RaBundle/Resources/config/services.yml b/src/Surfnet/StepupRa/RaBundle/Resources/config/services.yml index 4c621a2d..9acba3e0 100755 --- a/src/Surfnet/StepupRa/RaBundle/Resources/config/services.yml +++ b/src/Surfnet/StepupRa/RaBundle/Resources/config/services.yml @@ -328,5 +328,3 @@ services: class: Surfnet\StepupRa\RaBundle\Twig\Extensions\Extension\SecondFactorType arguments: - "@surfnet_stepup.service.second_factor_type_translator" - tags: - - { name : twig.extension } diff --git a/src/Surfnet/StepupRa/RaBundle/Tests/Value/DateTimeTest.php b/src/Surfnet/StepupRa/RaBundle/Tests/Value/DateTimeTest.php index b4b04cd6..0d0c6c6e 100755 --- a/src/Surfnet/StepupRa/RaBundle/Tests/Value/DateTimeTest.php +++ b/src/Surfnet/StepupRa/RaBundle/Tests/Value/DateTimeTest.php @@ -16,7 +16,7 @@ * limitations under the License. */ -namespace Surfnet\Stepup\Tests\DateTime; +namespace Surfnet\StepupRa\RaBundle\Tests\Value; use DateInterval; use DateTime as CoreDateTime; From 02f08f5a8de4cbf36ed48a3c8584c320c78ca245 Mon Sep 17 00:00:00 2001 From: Johan Kromhout Date: Thu, 15 Jan 2026 12:08:23 +0100 Subject: [PATCH 12/18] Resolve Symfony deprecations and errors. The button group does not have data to map so needs mapped > false. And no data to inherit as wel. Symfony became more strict. --- ci/qa/phpstan-baseline.php | 24 --------- config/packages/framework.yaml | 6 ++- config/packages/nelmio_security.yaml | 3 -- .../Command/SearchRaCandidatesCommand.php | 1 + .../Controller/RaManagementController.php | 6 +-- ...ndRegistrationAuthorityInformationType.php | 2 +- .../RaBundle/Form/Type/AnchorType.php | 3 +- .../Form/Type/ChangeRaLocationType.php | 2 +- .../RaBundle/Form/Type/ChangeRaRoleType.php | 2 +- .../Form/Type/CreateRaLocationType.php | 2 +- .../RaBundle/Form/Type/CreateRaType.php | 2 +- .../Type/RetractRegistrationAuthorityType.php | 2 +- .../Form/Type/SearchRaSecondFactorsType.php | 2 +- .../Form/Type/SearchRecoveryTokensType.php | 2 +- .../RaBundle/Resources/config/services.yml | 3 ++ .../Extensions/Extension/SpacelessTest.php | 52 ++++++++++++++++++ .../Extensions/Extension/SecondFactorType.php | 4 ++ .../Twig/Extensions/Extension/Spaceless.php | 54 +++++++++++++++++++ 18 files changed, 131 insertions(+), 41 deletions(-) create mode 100644 src/Surfnet/StepupRa/RaBundle/Tests/Twig/Extensions/Extension/SpacelessTest.php create mode 100644 src/Surfnet/StepupRa/RaBundle/Twig/Extensions/Extension/Spaceless.php diff --git a/ci/qa/phpstan-baseline.php b/ci/qa/phpstan-baseline.php index 23a7222a..61417757 100644 --- a/ci/qa/phpstan-baseline.php +++ b/ci/qa/phpstan-baseline.php @@ -301,12 +301,6 @@ 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php', ]; -$ignoreErrors[] = [ - 'message' => '#^Access to an undefined property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaCandidatesCommand\\:\\:\\$actorInstitution\\.$#', - 'identifier' => 'property.notFound', - 'count' => 1, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', -]; $ignoreErrors[] = [ 'message' => '#^Call to an undefined method Symfony\\\\Component\\\\Form\\\\FormInterface\\:\\:isClicked\\(\\)\\.$#', 'identifier' => 'method.notFound', @@ -355,24 +349,6 @@ 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; -$ignoreErrors[] = [ - 'message' => '#^Parameter \\#1 \\$identityId of method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\RaCandidateService\\:\\:getRaCandidate\\(\\) expects string, mixed given\\.$#', - 'identifier' => 'argument.type', - 'count' => 1, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', -]; -$ignoreErrors[] = [ - 'message' => '#^Parameter \\#2 \\.\\.\\.\\$values of function sprintf expects bool\\|float\\|int\\|string\\|null, mixed given\\.$#', - 'identifier' => 'argument.type', - 'count' => 1, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', -]; -$ignoreErrors[] = [ - 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\AccreditCandidateCommand\\:\\:\\$identityId \\(string\\) does not accept mixed\\.$#', - 'identifier' => 'assign.propertyType', - 'count' => 1, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', -]; $ignoreErrors[] = [ 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaCandidatesCommand\\:\\:\\$orderBy \\(string\\|null\\) does not accept mixed\\.$#', 'identifier' => 'assign.propertyType', diff --git a/config/packages/framework.yaml b/config/packages/framework.yaml index 2c29213f..9455c1bb 100644 --- a/config/packages/framework.yaml +++ b/config/packages/framework.yaml @@ -29,7 +29,9 @@ when@dev: framework: router: strict_requirements: true - profiler: { only_exceptions: false } + profiler: + only_exceptions: false + collect_serializer_data: true when@smoketest: framework: @@ -39,6 +41,7 @@ when@smoketest: profiler: only_exceptions: false collect: true + collect_serializer_data: true php_errors: log: false # prevents user deprecated warnings when@test: @@ -48,4 +51,5 @@ when@test: storage_factory_id: session.storage.factory.mock_file profiler: collect: false + collect_serializer_data: true diff --git a/config/packages/nelmio_security.yaml b/config/packages/nelmio_security.yaml index 623f39ae..969ec525 100644 --- a/config/packages/nelmio_security.yaml +++ b/config/packages/nelmio_security.yaml @@ -25,9 +25,6 @@ nelmio_security: content_type: nosniff: true - xss_protection: - enabled: true - mode_block: true forced_ssl: enabled: true hsts_max_age: 31536000 # 365 days diff --git a/src/Surfnet/StepupRa/RaBundle/Command/SearchRaCandidatesCommand.php b/src/Surfnet/StepupRa/RaBundle/Command/SearchRaCandidatesCommand.php index 0b3be058..c5c17c74 100755 --- a/src/Surfnet/StepupRa/RaBundle/Command/SearchRaCandidatesCommand.php +++ b/src/Surfnet/StepupRa/RaBundle/Command/SearchRaCandidatesCommand.php @@ -24,6 +24,7 @@ class SearchRaCandidatesCommand { #[Assert\NotBlank(message: 'ra.search_ra_candidates.actor_id.blank')] public string $actorId; + public ?string $actorInstitution = null; public ?string $institution = null; diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php b/src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php index db5944ba..dde7c55e 100755 --- a/src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php +++ b/src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php @@ -20,7 +20,6 @@ use Knp\Component\Pager\PaginatorInterface; use Psr\Log\LoggerInterface; -use Surfnet\StepupMiddlewareClientBundle\Identity\Dto\Identity; use Surfnet\StepupMiddlewareClientBundle\Identity\Dto\RaCandidateInstitution; use Surfnet\StepupMiddlewareClientBundle\Identity\Dto\RaListing; use Surfnet\StepupRa\RaBundle\Command\AccreditCandidateCommand; @@ -175,14 +174,13 @@ public function raCandidateSearch(Request $request): Response methods: ['GET', 'POST'], )] #[IsGranted('ROLE_RAA')] - public function createRa(Request $request): Response + public function createRa(Request $request, string $identityId): Response { $this->logger->notice('Page for Accreditation of Identity to Ra or Raa requested'); - $identityId = $request->get('identityId'); $raCandidate = $this->raCandidateService->getRaCandidate($identityId, $this->getUser()->getIdentity()->id); - if (! isset($raCandidate->raCandidate)) { + if ($raCandidate === null || !isset($raCandidate->raCandidate)) { $this->logger->warning(sprintf('RaCandidate based on identity "%s" not found', $identityId)); throw new NotFoundHttpException(); } diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/AmendRegistrationAuthorityInformationType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/AmendRegistrationAuthorityInformationType.php index 8d4adfc5..92d155d8 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/AmendRegistrationAuthorityInformationType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/AmendRegistrationAuthorityInformationType.php @@ -45,7 +45,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'button-group', ButtonGroupType::class, [ - 'inherit_data' => true, + 'mapped' => false, ], ) ->add('amend_ra_info', SubmitType::class, [ diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/AnchorType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/AnchorType.php index 1fe0e70e..61819bc3 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/AnchorType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/AnchorType.php @@ -19,6 +19,7 @@ namespace Surfnet\StepupRa\RaBundle\Form\Type; use Symfony\Component\Form\AbstractType; +use Symfony\Component\Form\ButtonTypeInterface; use Symfony\Component\Form\Extension\Core\Type\ButtonType; use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormView; @@ -27,7 +28,7 @@ /** * @extends AbstractType */ -class AnchorType extends AbstractType +class AnchorType extends AbstractType implements ButtonTypeInterface { public function getParent(): string { diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/ChangeRaLocationType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/ChangeRaLocationType.php index ffedf8cb..d8ca7491 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/ChangeRaLocationType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/ChangeRaLocationType.php @@ -47,7 +47,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'button-group', ButtonGroupType::class, [ - 'inherit_data' => true, + 'mapped' => false, // The empty label ensures the buttons are positioned correctly 'label' => ' ', 'row_attr' => [ diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/ChangeRaRoleType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/ChangeRaRoleType.php index ca44a0d0..a2f1fb63 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/ChangeRaRoleType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/ChangeRaRoleType.php @@ -45,7 +45,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'button-group', ButtonGroupType::class, [ - 'inherit_data' => true, + 'mapped' => false, ], ) ->add('create_ra', SubmitType::class, [ diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/CreateRaLocationType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/CreateRaLocationType.php index 16088a8b..1d8fc2b0 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/CreateRaLocationType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/CreateRaLocationType.php @@ -47,7 +47,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'button-group', ButtonGroupType::class, [ - 'inherit_data' => true, + 'mapped' => false, ], ) ->add('create_ra_location', SubmitType::class, [ diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/CreateRaType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/CreateRaType.php index 79343772..b52d8e4f 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/CreateRaType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/CreateRaType.php @@ -60,7 +60,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'button-group', ButtonGroupType::class, [ - 'inherit_data' => true, + 'mapped' => false, ], ) ->add('create_ra', SubmitType::class, [ diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/RetractRegistrationAuthorityType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/RetractRegistrationAuthorityType.php index e3246372..c0e726ca 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/RetractRegistrationAuthorityType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/RetractRegistrationAuthorityType.php @@ -36,7 +36,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'button-group', ButtonGroupType::class, [ - 'inherit_data' => true, + 'mapped' => false, ], ) ->add('confirm', SubmitType::class, [ diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/SearchRaSecondFactorsType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/SearchRaSecondFactorsType.php index aff68f85..aef84a57 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/SearchRaSecondFactorsType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/SearchRaSecondFactorsType.php @@ -75,7 +75,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'button-group', ButtonGroupType::class, [ - 'inherit_data' => true, + 'mapped' => false, ], ) ->add('search', SubmitType::class, [ diff --git a/src/Surfnet/StepupRa/RaBundle/Form/Type/SearchRecoveryTokensType.php b/src/Surfnet/StepupRa/RaBundle/Form/Type/SearchRecoveryTokensType.php index 7cd2d588..d7925602 100755 --- a/src/Surfnet/StepupRa/RaBundle/Form/Type/SearchRecoveryTokensType.php +++ b/src/Surfnet/StepupRa/RaBundle/Form/Type/SearchRecoveryTokensType.php @@ -72,7 +72,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'button-group', ButtonGroupType::class, [ - 'inherit_data' => true, + 'mapped' => false, ], ) ->add('search', SubmitType::class, [ diff --git a/src/Surfnet/StepupRa/RaBundle/Resources/config/services.yml b/src/Surfnet/StepupRa/RaBundle/Resources/config/services.yml index 9acba3e0..3ae3ff9c 100755 --- a/src/Surfnet/StepupRa/RaBundle/Resources/config/services.yml +++ b/src/Surfnet/StepupRa/RaBundle/Resources/config/services.yml @@ -328,3 +328,6 @@ services: class: Surfnet\StepupRa\RaBundle\Twig\Extensions\Extension\SecondFactorType arguments: - "@surfnet_stepup.service.second_factor_type_translator" + + ra.twig.spaceless: + class: Surfnet\StepupRa\RaBundle\Twig\Extensions\Extension\Spaceless \ No newline at end of file diff --git a/src/Surfnet/StepupRa/RaBundle/Tests/Twig/Extensions/Extension/SpacelessTest.php b/src/Surfnet/StepupRa/RaBundle/Tests/Twig/Extensions/Extension/SpacelessTest.php new file mode 100644 index 00000000..59a44028 --- /dev/null +++ b/src/Surfnet/StepupRa/RaBundle/Tests/Twig/Extensions/Extension/SpacelessTest.php @@ -0,0 +1,52 @@ +extension = new Spaceless(); + } + + public function testItRemovesWhitespaceBetweenTags(): void + { + $input = "
\n
text "; + $expected = '
text '; + $this->assertSame($expected, $this->extension->spaceless($input)); + } + + public function testItReturnsEmptyStringForNull(): void + { + $this->assertSame('', $this->extension->spaceless(null)); + } + + public function testItTrimsOuterWhitespace(): void + { + $input = "

a

b

"; + $expected = '

a

b

'; + $this->assertSame($expected, $this->extension->spaceless($input)); + } +} + diff --git a/src/Surfnet/StepupRa/RaBundle/Twig/Extensions/Extension/SecondFactorType.php b/src/Surfnet/StepupRa/RaBundle/Twig/Extensions/Extension/SecondFactorType.php index 757d6111..4315d87d 100755 --- a/src/Surfnet/StepupRa/RaBundle/Twig/Extensions/Extension/SecondFactorType.php +++ b/src/Surfnet/StepupRa/RaBundle/Twig/Extensions/Extension/SecondFactorType.php @@ -36,6 +36,10 @@ public function getName(): string #[AsTwigFilter(name: 'trans_second_factor_type')] public function translateSecondFactorType($secondFactorType): string { + if (is_null($secondFactorType)) { + return ''; + } + return $this->translator->translate($secondFactorType, 'ra.second_factor.search.type.%s'); } } diff --git a/src/Surfnet/StepupRa/RaBundle/Twig/Extensions/Extension/Spaceless.php b/src/Surfnet/StepupRa/RaBundle/Twig/Extensions/Extension/Spaceless.php new file mode 100644 index 00000000..ac79bf3b --- /dev/null +++ b/src/Surfnet/StepupRa/RaBundle/Twig/Extensions/Extension/Spaceless.php @@ -0,0 +1,54 @@ + <" => "><"). Whitespace inside + * tags or textual content is preserved. + */ +class Spaceless +{ + /** + * Removes whitespaces between HTML/XML tags. + * Mirrors the prior (now deprecated) Twig spaceless filter behavior. + */ + #[AsTwigFilter(name: 'spaceless', isSafe: ['html'])] + public function spaceless(?string $content): string + { + if ($content === null) { + return ''; + } + + $replaced = preg_replace('/>\s+<', $content); + + if (!is_string($replaced)) { + return $content; + } + + return trim($replaced); + } +} From 1b45e180b2258b8b706fcb0bfb6637c57dbcdb6c Mon Sep 17 00:00:00 2001 From: Johan Kromhout Date: Thu, 15 Jan 2026 13:59:06 +0100 Subject: [PATCH 13/18] Resolve Symfony deprecations: get() and ignored default on required config node --- ci/qa/phpstan-baseline.php | 120 ------------------ .../Command/ExportRaSecondFactorsCommand.php | 10 +- .../Command/SearchRaCandidatesCommand.php | 4 +- .../Command/SearchRaListingCommand.php | 4 +- .../Command/SearchRaLocationsCommand.php | 4 +- .../Command/SearchRaSecondFactorsCommand.php | 9 +- .../Command/SearchRecoveryTokensCommand.php | 4 +- .../Controller/RaLocationController.php | 22 ++-- .../Controller/RaManagementController.php | 15 ++- .../Controller/RecoveryTokenController.php | 11 +- .../Controller/SecondFactorController.php | 19 +-- .../Controller/Traits/OrderFromRequest.php | 42 ++++++ .../DependencyInjection/Configuration.php | 2 - .../Traits/OrderFromRequestTest.php | 97 ++++++++++++++ 14 files changed, 198 insertions(+), 165 deletions(-) create mode 100644 src/Surfnet/StepupRa/RaBundle/Controller/Traits/OrderFromRequest.php create mode 100644 src/Surfnet/StepupRa/RaBundle/Tests/Controller/Traits/OrderFromRequestTest.php diff --git a/ci/qa/phpstan-baseline.php b/ci/qa/phpstan-baseline.php index 61417757..9ecd1d1c 100644 --- a/ci/qa/phpstan-baseline.php +++ b/ci/qa/phpstan-baseline.php @@ -271,36 +271,6 @@ 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php', ]; -$ignoreErrors[] = [ - 'message' => '#^Parameter \\#1 \\$id of method Surfnet\\\\StepupRa\\\\RaBundle\\\\Service\\\\RaLocationService\\:\\:find\\(\\) expects string, mixed given\\.$#', - 'identifier' => 'argument.type', - 'count' => 1, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php', -]; -$ignoreErrors[] = [ - 'message' => '#^Parameter \\#2 \\.\\.\\.\\$values of function sprintf expects bool\\|float\\|int\\|string\\|null, mixed given\\.$#', - 'identifier' => 'argument.type', - 'count' => 1, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php', -]; -$ignoreErrors[] = [ - 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\CreateRaLocationCommand\\:\\:\\$institution \\(string\\) does not accept mixed\\.$#', - 'identifier' => 'assign.propertyType', - 'count' => 1, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php', -]; -$ignoreErrors[] = [ - 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaLocationsCommand\\:\\:\\$orderBy \\(string\\|null\\) does not accept mixed\\.$#', - 'identifier' => 'assign.propertyType', - 'count' => 1, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php', -]; -$ignoreErrors[] = [ - 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaLocationsCommand\\:\\:\\$orderDirection \\(string\\|null\\) does not accept mixed\\.$#', - 'identifier' => 'assign.propertyType', - 'count' => 1, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php', -]; $ignoreErrors[] = [ 'message' => '#^Call to an undefined method Symfony\\\\Component\\\\Form\\\\FormInterface\\:\\:isClicked\\(\\)\\.$#', 'identifier' => 'method.notFound', @@ -319,12 +289,6 @@ 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; -$ignoreErrors[] = [ - 'message' => '#^Cannot cast mixed to int\\.$#', - 'identifier' => 'cast.int', - 'count' => 2, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', -]; $ignoreErrors[] = [ 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Controller\\\\RaManagementController\\:\\:amendRaInformation\\(\\) has parameter \\$identityId with no type specified\\.$#', 'identifier' => 'missingType.parameter', @@ -349,30 +313,6 @@ 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', ]; -$ignoreErrors[] = [ - 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaCandidatesCommand\\:\\:\\$orderBy \\(string\\|null\\) does not accept mixed\\.$#', - 'identifier' => 'assign.propertyType', - 'count' => 1, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', -]; -$ignoreErrors[] = [ - 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaCandidatesCommand\\:\\:\\$orderDirection \\(string\\|null\\) does not accept mixed\\.$#', - 'identifier' => 'assign.propertyType', - 'count' => 1, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', -]; -$ignoreErrors[] = [ - 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaListingCommand\\:\\:\\$orderBy \\(string\\|null\\) does not accept mixed\\.$#', - 'identifier' => 'assign.propertyType', - 'count' => 1, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', -]; -$ignoreErrors[] = [ - 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaListingCommand\\:\\:\\$orderDirection \\(string\\|null\\) does not accept mixed\\.$#', - 'identifier' => 'assign.propertyType', - 'count' => 1, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php', -]; $ignoreErrors[] = [ 'message' => '#^Cannot call method getIdentity\\(\\) on Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null\\.$#', 'identifier' => 'method.nonObject', @@ -397,24 +337,6 @@ 'count' => 2, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RecoveryTokenController.php', ]; -$ignoreErrors[] = [ - 'message' => '#^Cannot cast mixed to int\\.$#', - 'identifier' => 'cast.int', - 'count' => 1, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RecoveryTokenController.php', -]; -$ignoreErrors[] = [ - 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRecoveryTokensCommand\\:\\:\\$orderBy \\(string\\|null\\) does not accept mixed\\.$#', - 'identifier' => 'assign.propertyType', - 'count' => 1, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RecoveryTokenController.php', -]; -$ignoreErrors[] = [ - 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRecoveryTokensCommand\\:\\:\\$orderDirection \\(string\\|null\\) does not accept mixed\\.$#', - 'identifier' => 'assign.propertyType', - 'count' => 1, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/RecoveryTokenController.php', -]; $ignoreErrors[] = [ 'message' => '#^Call to an undefined method Symfony\\\\Component\\\\Form\\\\FormInterface\\\\:\\:getClickedButton\\(\\)\\.$#', 'identifier' => 'method.notFound', @@ -433,54 +355,12 @@ 'count' => 3, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', ]; -$ignoreErrors[] = [ - 'message' => '#^Cannot cast mixed to int\\.$#', - 'identifier' => 'cast.int', - 'count' => 2, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', -]; $ignoreErrors[] = [ 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Controller\\\\SecondFactorController\\:\\:__construct\\(\\) has parameter \\$identityService with generic interface Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserProviderInterface but does not specify its types\\: TUser$#', 'identifier' => 'missingType.generics', 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', ]; -$ignoreErrors[] = [ - 'message' => '#^Parameter \\#2 \\.\\.\\.\\$values of function sprintf expects bool\\|float\\|int\\|string\\|null, mixed given\\.$#', - 'identifier' => 'argument.type', - 'count' => 1, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', -]; -$ignoreErrors[] = [ - 'message' => '#^Parameter \\#3 \\.\\.\\.\\$values of function sprintf expects bool\\|float\\|int\\|string\\|null, mixed given\\.$#', - 'identifier' => 'argument.type', - 'count' => 1, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', -]; -$ignoreErrors[] = [ - 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaSecondFactorsCommand\\:\\:\\$orderBy \\(string\\|null\\) does not accept mixed\\.$#', - 'identifier' => 'assign.propertyType', - 'count' => 1, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', -]; -$ignoreErrors[] = [ - 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchRaSecondFactorsCommand\\:\\:\\$orderDirection \\(string\\|null\\) does not accept mixed\\.$#', - 'identifier' => 'assign.propertyType', - 'count' => 1, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', -]; -$ignoreErrors[] = [ - 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchSecondFactorAuditLogCommand\\:\\:\\$orderBy \\(string\\|null\\) does not accept mixed\\.$#', - 'identifier' => 'assign.propertyType', - 'count' => 1, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', -]; -$ignoreErrors[] = [ - 'message' => '#^Property Surfnet\\\\StepupRa\\\\RaBundle\\\\Command\\\\SearchSecondFactorAuditLogCommand\\:\\:\\$orderDirection \\(string\\|null\\) does not accept mixed\\.$#', - 'identifier' => 'assign.propertyType', - 'count' => 1, - 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php', -]; $ignoreErrors[] = [ 'message' => '#^Method Surfnet\\\\StepupRa\\\\RaBundle\\\\Controller\\\\Vetting\\\\Gssf\\\\GssfInitiateFormService\\:\\:renderInitiateForm\\(\\) has parameter \\$parameters with no value type specified in iterable type array\\.$#', 'identifier' => 'missingType.iterableValue', diff --git a/src/Surfnet/StepupRa/RaBundle/Command/ExportRaSecondFactorsCommand.php b/src/Surfnet/StepupRa/RaBundle/Command/ExportRaSecondFactorsCommand.php index 100fea7e..0cb60d02 100755 --- a/src/Surfnet/StepupRa/RaBundle/Command/ExportRaSecondFactorsCommand.php +++ b/src/Surfnet/StepupRa/RaBundle/Command/ExportRaSecondFactorsCommand.php @@ -63,19 +63,23 @@ final class ExportRaSecondFactorsCommand /** * @var string|null One of the STATUS_* constants. */ - #[Assert\Choice(['unverified', 'verified', 'vetted', 'revoked'], message: 'ra.search_ra_second_factors.status.invalid_choice')] + #[Assert\Choice( + choices: [self::STATUS_UNVERIFIED, self::STATUS_VERIFIED, self::STATUS_VETTED, self::STATUS_REVOKED], + message: 'ra.search_ra_second_factors.status.invalid_choice', + ) + ] public $status; /** * @var string|null */ - #[Assert\Choice(['name', 'type', 'secondFactorId', 'email', 'status'], message: 'ra.search_ra_second_factors.order_by.invalid_choice')] + #[Assert\Choice(choices: ['name', 'type', 'secondFactorId', 'email', 'status'], message: 'ra.search_ra_second_factors.order_by.invalid_choice')] public $orderBy; /** * @var string|null */ - #[Assert\Choice(['asc', 'desc'], message: 'ra.search_ra_second_factors.order_direction.invalid_choice')] + #[Assert\Choice(choices: ['asc', 'desc'], message: 'ra.search_ra_second_factors.order_direction.invalid_choice')] public $orderDirection; /** diff --git a/src/Surfnet/StepupRa/RaBundle/Command/SearchRaCandidatesCommand.php b/src/Surfnet/StepupRa/RaBundle/Command/SearchRaCandidatesCommand.php index c5c17c74..8973d585 100755 --- a/src/Surfnet/StepupRa/RaBundle/Command/SearchRaCandidatesCommand.php +++ b/src/Surfnet/StepupRa/RaBundle/Command/SearchRaCandidatesCommand.php @@ -34,10 +34,10 @@ class SearchRaCandidatesCommand public ?string $raInstitution = null; - #[Assert\Choice(['name', 'email'], message: 'ra.search_ra_candidates.order_by.invalid_choice')] + #[Assert\Choice(choices: ['name', 'email'], message: 'ra.search_ra_candidates.order_by.invalid_choice')] public ?string $orderBy = null; - #[Assert\Choice(['asc', 'desc'], message: 'ra.search_ra_candidates.order_direction.invalid_choice')] + #[Assert\Choice(choices: ['asc', 'desc'], message: 'ra.search_ra_candidates.order_direction.invalid_choice')] public ?string $orderDirection = null; #[Assert\GreaterThan(0, message: 'ra.search_ra_candidates.page_number.greater_than_zero')] diff --git a/src/Surfnet/StepupRa/RaBundle/Command/SearchRaListingCommand.php b/src/Surfnet/StepupRa/RaBundle/Command/SearchRaListingCommand.php index cf0ee0e4..f5f05554 100755 --- a/src/Surfnet/StepupRa/RaBundle/Command/SearchRaListingCommand.php +++ b/src/Surfnet/StepupRa/RaBundle/Command/SearchRaListingCommand.php @@ -54,13 +54,13 @@ class SearchRaListingCommand /** * @var string|null */ - #[Assert\Choice(['name', 'email'], message: 'ra.search_ra_candidates.order_by.invalid_choice')] + #[Assert\Choice(choices: ['name', 'email'], message: 'ra.search_ra_candidates.order_by.invalid_choice')] public $orderBy; /** * @var string|null */ - #[Assert\Choice(['asc', 'desc'], message: 'ra.search_ra_candidates.order_direction.invalid_choice')] + #[Assert\Choice(choices: ['asc', 'desc'], message: 'ra.search_ra_candidates.order_direction.invalid_choice')] public $orderDirection; /** diff --git a/src/Surfnet/StepupRa/RaBundle/Command/SearchRaLocationsCommand.php b/src/Surfnet/StepupRa/RaBundle/Command/SearchRaLocationsCommand.php index 4663ec2b..d6f74a9b 100755 --- a/src/Surfnet/StepupRa/RaBundle/Command/SearchRaLocationsCommand.php +++ b/src/Surfnet/StepupRa/RaBundle/Command/SearchRaLocationsCommand.php @@ -33,12 +33,12 @@ final class SearchRaLocationsCommand /** * @var string|null */ - #[Assert\Choice(['name', 'type', 'secondFactorId', 'email', 'status'], message: 'ra.search_ra_second_factors.order_by.invalid_choice')] + #[Assert\Choice(choices: ['name', 'type', 'secondFactorId', 'email', 'status'], message: 'ra.search_ra_second_factors.order_by.invalid_choice')] public $orderBy; /** * @var string|null */ - #[Assert\Choice(['asc', 'desc'], message: 'ra.search_ra_second_factors.order_direction.invalid_choice')] + #[Assert\Choice(choices: ['asc', 'desc'], message: 'ra.search_ra_second_factors.order_direction.invalid_choice')] public $orderDirection; } diff --git a/src/Surfnet/StepupRa/RaBundle/Command/SearchRaSecondFactorsCommand.php b/src/Surfnet/StepupRa/RaBundle/Command/SearchRaSecondFactorsCommand.php index 160ae1d0..b688e1bc 100755 --- a/src/Surfnet/StepupRa/RaBundle/Command/SearchRaSecondFactorsCommand.php +++ b/src/Surfnet/StepupRa/RaBundle/Command/SearchRaSecondFactorsCommand.php @@ -58,19 +58,22 @@ final class SearchRaSecondFactorsCommand /** * @var string|null One of the STATUS_* constants. */ - #[Assert\Choice(['unverified', 'verified', 'vetted', 'revoked'], message: 'ra.search_ra_second_factors.status.invalid_choice')] + #[Assert\Choice( + choices: [self::STATUS_UNVERIFIED, self::STATUS_VERIFIED, self::STATUS_VETTED, self::STATUS_REVOKED], + message: 'ra.search_ra_second_factors.status.invalid_choice', + )] public $status; /** * @var string|null */ - #[Assert\Choice(['name', 'type', 'secondFactorId', 'email', 'status'], message: 'ra.search_ra_second_factors.order_by.invalid_choice')] + #[Assert\Choice(choices: ['name', 'type', 'secondFactorId', 'email', 'status'], message: 'ra.search_ra_second_factors.order_by.invalid_choice')] public $orderBy; /** * @var string|null */ - #[Assert\Choice(['asc', 'desc'], message: 'ra.search_ra_second_factors.order_direction.invalid_choice')] + #[Assert\Choice(choices: ['asc', 'desc'], message: 'ra.search_ra_second_factors.order_direction.invalid_choice')] public $orderDirection; /** diff --git a/src/Surfnet/StepupRa/RaBundle/Command/SearchRecoveryTokensCommand.php b/src/Surfnet/StepupRa/RaBundle/Command/SearchRecoveryTokensCommand.php index db3c4399..9fd1c822 100755 --- a/src/Surfnet/StepupRa/RaBundle/Command/SearchRecoveryTokensCommand.php +++ b/src/Surfnet/StepupRa/RaBundle/Command/SearchRecoveryTokensCommand.php @@ -33,10 +33,10 @@ final class SearchRecoveryTokensCommand public ?string $email = null; - #[Assert\Choice(['name', 'type', 'email', 'status'], message: 'ra.search_ra_recovery_tokens.order_by.invalid_choice')] + #[Assert\Choice(choices: ['name', 'type', 'email', 'status'], message: 'ra.search_ra_recovery_tokens.order_by.invalid_choice')] public ?string $orderBy = null; - #[Assert\Choice(['asc', 'desc'], message: 'ra.search_ra_recovery_tokens.order_direction.invalid_choice')] + #[Assert\Choice(choices: ['asc', 'desc'], message: 'ra.search_ra_recovery_tokens.order_direction.invalid_choice')] public ?string $orderDirection = null; #[Assert\GreaterThan(0, message: 'ra.search_ra_recovery_tokens.page_number.greater_than_zero')] diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php b/src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php index 30e2e60f..3e7289b4 100755 --- a/src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php +++ b/src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php @@ -19,12 +19,12 @@ namespace Surfnet\StepupRa\RaBundle\Controller; use Psr\Log\LoggerInterface; -use Surfnet\StepupMiddlewareClientBundle\Identity\Dto\Identity; use Surfnet\StepupRa\RaBundle\Command\ChangeRaLocationCommand; use Surfnet\StepupRa\RaBundle\Command\CreateRaLocationCommand; use Surfnet\StepupRa\RaBundle\Command\RemoveRaLocationCommand; use Surfnet\StepupRa\RaBundle\Command\SearchRaLocationsCommand; use Surfnet\StepupRa\RaBundle\Command\SelectInstitutionCommand; +use Surfnet\StepupRa\RaBundle\Controller\Traits\OrderFromRequest; use Surfnet\StepupRa\RaBundle\Form\Type\ChangeRaLocationType; use Surfnet\StepupRa\RaBundle\Form\Type\CreateRaLocationType; use Surfnet\StepupRa\RaBundle\Form\Type\RemoveRaLocationType; @@ -47,6 +47,8 @@ */ final class RaLocationController extends AbstractController { + use OrderFromRequest; + public function __construct( private readonly RaLocationService $raLocationService, private readonly InstitutionListingService $institutionListingService, @@ -56,11 +58,15 @@ public function __construct( ) { } + /** + * @SuppressWarnings("PHPMD.CyclomaticComplexity") + * @SuppressWarnings("PHPMD.NPathComplexity") + */ #[Route('/locations', name: 'ra_locations_manage', methods: ['GET', 'POST'])] #[IsGranted('ROLE_RA')] public function manage(Request $request): Response { - $institutionParameter = $request->get('institution'); + $institutionParameter = $request->query->has('institution') ? $request->query->get('institution') : $request->request->get('institution'); $identity = $this->getUser()->getIdentity(); $this->logger->notice('Starting search for locations'); @@ -95,8 +101,8 @@ public function manage(Request $request): Response $command = new SearchRaLocationsCommand(); $command->institution = $institution; - $command->orderBy = $request->get('orderBy'); - $command->orderDirection = $request->get('orderDirection'); + $command->orderBy = $this->getString($request, 'orderBy'); + $command->orderDirection = $this->getString($request, 'orderDirection'); $locations = $this->raLocationService->search($command); @@ -120,10 +126,8 @@ public function manage(Request $request): Response #[Route('/locations/create/{institution}', name: 'ra_location_create', methods: ['GET', 'POST'])] #[IsGranted('ROLE_RA')] - public function create(Request $request): Response + public function create(Request $request, string $institution): Response { - $institution = $request->get('institution'); - $identity = $this->getUser()->getIdentity(); $command = new CreateRaLocationCommand(); $command->institution = $institution; @@ -161,9 +165,9 @@ public function create(Request $request): Response methods: ['GET', 'POST'], )] #[IsGranted('ROLE_RA')] - public function change(Request $request): Response + public function change(Request $request, string $locationId): Response { - $requestedLocationId = $request->get('locationId'); + $requestedLocationId = $locationId; $raLocation = $this->raLocationService->find($requestedLocationId); if (!$raLocation) { diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php b/src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php index dde7c55e..033efee4 100755 --- a/src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php +++ b/src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php @@ -27,6 +27,7 @@ use Surfnet\StepupRa\RaBundle\Command\RetractRegistrationAuthorityCommand; use Surfnet\StepupRa\RaBundle\Command\SearchRaCandidatesCommand; use Surfnet\StepupRa\RaBundle\Command\SearchRaListingCommand; +use Surfnet\StepupRa\RaBundle\Controller\Traits\OrderFromRequest; use Surfnet\StepupRa\RaBundle\Form\Type\AmendRegistrationAuthorityInformationType; use Surfnet\StepupRa\RaBundle\Form\Type\CreateRaType; use Surfnet\StepupRa\RaBundle\Form\Type\RetractRegistrationAuthorityType; @@ -49,6 +50,8 @@ */ class RaManagementController extends AbstractController { + use OrderFromRequest; + public function __construct( private readonly LoggerInterface $logger, private readonly RaListingService $raListingService, @@ -74,9 +77,9 @@ public function manage(Request $request): Response $command = new SearchRaListingCommand(); $command->actorId = $identity->id; - $command->pageNumber = (int) $request->get('p', 1); - $command->orderBy = $request->get('orderBy'); - $command->orderDirection = $request->get('orderDirection'); + $command->pageNumber = $request->query->getInt('p', 1); + $command->orderBy = $request->query->get('orderBy'); + $command->orderDirection = $request->query->get('orderDirection'); // The options that will populate the institution filter choice list. $raList = $this->raListingService->search($command); @@ -131,9 +134,9 @@ public function raCandidateSearch(Request $request): Response $command->actorId = $identity->id; $command->actorInstitution = $institution; $command->raInstitution = null; - $command->pageNumber = (int) $request->get('p', 1); - $command->orderBy = $request->get('orderBy'); - $command->orderDirection = $request->get('orderDirection'); + $command->pageNumber = $request->query->has('p') ? $request->query->getInt('p') : $request->request->getInt('p', 1); + $command->orderBy = $this->getString($request, 'orderBy'); + $command->orderDirection = $this->getString($request, 'orderDirection'); $raCandidateList = $this->raCandidateService->search($command); diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/RecoveryTokenController.php b/src/Surfnet/StepupRa/RaBundle/Controller/RecoveryTokenController.php index 43113b85..1157ab5b 100755 --- a/src/Surfnet/StepupRa/RaBundle/Controller/RecoveryTokenController.php +++ b/src/Surfnet/StepupRa/RaBundle/Controller/RecoveryTokenController.php @@ -20,9 +20,9 @@ use Knp\Component\Pager\PaginatorInterface; use Psr\Log\LoggerInterface; -use Surfnet\StepupMiddlewareClientBundle\Identity\Dto\Identity; use Surfnet\StepupRa\RaBundle\Command\RevokeRecoveryTokenCommand; use Surfnet\StepupRa\RaBundle\Command\SearchRecoveryTokensCommand; +use Surfnet\StepupRa\RaBundle\Controller\Traits\OrderFromRequest; use Surfnet\StepupRa\RaBundle\Form\Type\RevokeRecoveryTokenType; use Surfnet\StepupRa\RaBundle\Form\Type\SearchRecoveryTokensType; use Surfnet\StepupRa\RaBundle\Service\RecoveryTokenService; @@ -31,11 +31,12 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; -use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; use Symfony\Component\Security\Http\Attribute\IsGranted; final class RecoveryTokenController extends AbstractController { + use OrderFromRequest; + public function __construct( private readonly RecoveryTokenService $recoveryTokenService, private readonly PaginatorInterface $paginator, @@ -56,9 +57,9 @@ public function search(Request $request): Response $command = new SearchRecoveryTokensCommand(); $command->actorId = $identity->id; - $command->pageNumber = (int) $request->get('p', 1); - $command->orderBy = $request->get('orderBy'); - $command->orderDirection = $request->get('orderDirection'); + $command->pageNumber = $request->query->has('p') ? $request->query->getInt('p') : $request->request->getInt('p', 1); + $command->orderBy = $this->getString($request, 'orderBy'); + $command->orderDirection = $this->getString($request, 'orderDirection'); // Huh, why do we load the recovery tokens at this point? // This is just to get the filter options for the available institutions of the search results. diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php b/src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php index b7148db2..e52f7f1d 100755 --- a/src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php +++ b/src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php @@ -24,6 +24,7 @@ use Surfnet\StepupRa\RaBundle\Command\RevokeSecondFactorCommand; use Surfnet\StepupRa\RaBundle\Command\SearchRaSecondFactorsCommand; use Surfnet\StepupRa\RaBundle\Command\SearchSecondFactorAuditLogCommand; +use Surfnet\StepupRa\RaBundle\Controller\Traits\OrderFromRequest; use Surfnet\StepupRa\RaBundle\Form\Type\RevokeSecondFactorType; use Surfnet\StepupRa\RaBundle\Form\Type\SearchRaSecondFactorsType; use Surfnet\StepupRa\RaBundle\Service\AuditLogService; @@ -45,6 +46,8 @@ */ final class SecondFactorController extends AbstractController { + use OrderFromRequest; + public function __construct( private readonly PaginatorInterface $paginator, private readonly LoggerInterface $logger, @@ -69,9 +72,9 @@ public function search(Request $request): Response $command = new SearchRaSecondFactorsCommand(); $command->actorId = $identity->id; - $command->pageNumber = (int) $request->get('p', 1); - $command->orderBy = $request->get('orderBy'); - $command->orderDirection = $request->get('orderDirection'); + $command->pageNumber = $request->query->has('p') ? $request->query->getInt('p') : $request->request->getInt('p', 1); + $command->orderBy = $this->getString($request, 'orderBy'); + $command->orderDirection = $this->getString($request, 'orderDirection'); $secondFactors = $this->secondFactorService->search($command); @@ -175,10 +178,8 @@ public function revoke(Request $request): RedirectResponse methods: ['GET'], )] #[IsGranted('ROLE_RA')] - public function auditLog(Request $request): Response + public function auditLog(Request $request, string $identityId): Response { - $identityId = $request->get('identityId'); - $this->logger->notice(sprintf('Requested AuditLog for SecondFactors of identity "%s"', $identityId)); $identity = $this->identityService->findById($identityId); @@ -197,9 +198,9 @@ public function auditLog(Request $request): Response $command = new SearchSecondFactorAuditLogCommand(); $command->identityId = $identity->id; $command->institution = $identity->institution; - $command->pageNumber = (int) $request->get('p', 1); - $command->orderBy = $request->get('orderBy', 'recordedOn'); - $command->orderDirection = $request->get('orderDirection', 'desc'); + $command->pageNumber = $request->query->getInt('p', 1); + $command->orderBy = $request->query->getString('orderBy', 'recordedOn'); + $command->orderDirection = $request->query->getString('orderDirection', 'desc'); $auditLog = $this->auditLogService->getAuditlog($command); $pagination = $this->paginator->paginate( diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/Traits/OrderFromRequest.php b/src/Surfnet/StepupRa/RaBundle/Controller/Traits/OrderFromRequest.php new file mode 100644 index 00000000..69a105b3 --- /dev/null +++ b/src/Surfnet/StepupRa/RaBundle/Controller/Traits/OrderFromRequest.php @@ -0,0 +1,42 @@ +query->has($paramName)) { + return $request->query->getString($paramName); + } + + if ($request->request->has($paramName)) { + return $request->request->getString($paramName); + } + + return null; + } +} diff --git a/src/Surfnet/StepupRa/RaBundle/DependencyInjection/Configuration.php b/src/Surfnet/StepupRa/RaBundle/DependencyInjection/Configuration.php index 05e06692..ac681e69 100755 --- a/src/Surfnet/StepupRa/RaBundle/DependencyInjection/Configuration.php +++ b/src/Surfnet/StepupRa/RaBundle/DependencyInjection/Configuration.php @@ -81,7 +81,6 @@ private function appendSessionConfiguration(NodeBuilder $childNodes): void ->children() ->integerNode('max_absolute_lifetime') ->isRequired() - ->defaultValue(3600) ->info('The maximum lifetime of a session regardless of interaction by the user, in seconds.') ->example('3600 -> 1 hour * 60 minutes * 60 seconds') ->validate() @@ -93,7 +92,6 @@ private function appendSessionConfiguration(NodeBuilder $childNodes): void ->end() ->integerNode('max_relative_lifetime') ->isRequired() - ->defaultValue(600) ->info( 'The maximum relative lifetime of a session; the maximum allowed time between two ' . 'interactions by the user', diff --git a/src/Surfnet/StepupRa/RaBundle/Tests/Controller/Traits/OrderFromRequestTest.php b/src/Surfnet/StepupRa/RaBundle/Tests/Controller/Traits/OrderFromRequestTest.php new file mode 100644 index 00000000..83308c84 --- /dev/null +++ b/src/Surfnet/StepupRa/RaBundle/Tests/Controller/Traits/OrderFromRequestTest.php @@ -0,0 +1,97 @@ +traitObject = new class { + use OrderFromRequest; + + public function getStringPublic(Request $request, string $paramName): null|string + { + return $this->getString($request, $paramName); + } + }; + } + + #[Test] + public function it_returns_value_from_query_parameter(): void + { + $request = new Request(['orderBy' => 'name']); + $result = $this->traitObject->getStringPublic($request, 'orderBy'); + + $this->assertSame('name', $result); + } + + #[Test] + public function it_returns_value_from_request_parameter(): void + { + $request = new Request([], ['orderBy' => 'date']); + $result = $this->traitObject->getStringPublic($request, 'orderBy'); + + $this->assertSame('date', $result); + } + + #[Test] + public function it_returns_null_when_parameter_not_found(): void + { + $request = new Request(); + $result = $this->traitObject->getStringPublic($request, 'orderBy'); + + $this->assertNull($result); + } + + #[Test] + public function it_prioritizes_query_parameter_over_request_parameter(): void + { + $request = new Request(['orderBy' => 'query_value'], ['orderBy' => 'request_value']); + + $result = $this->traitObject->getStringPublic($request, 'orderBy'); + + $this->assertSame('query_value', $result); + } + + #[Test] + public function it_handles_empty_string_values(): void + { + $request = new Request(['orderBy' => '']); + $result = $this->traitObject->getStringPublic($request, 'orderBy'); + + $this->assertSame('', $result); + } + + #[Test] + public function it_handles_numeric_string_values(): void + { + $request = new Request(['page' => '42']); + $result = $this->traitObject->getStringPublic($request, 'page'); + + $this->assertSame('42', $result); + } +} + From f850e2fad102811c1f9254c344b029b0a7c9076b Mon Sep 17 00:00:00 2001 From: Johan Kromhout Date: Thu, 15 Jan 2026 14:00:44 +0100 Subject: [PATCH 14/18] Rector cleanup: RecastingRemovalRector RemoveUselessParamTagRector RemoveUselessReturnTagRector --- ci/qa/rector.php | 4 +++- .../Service/YubikeySecondFactor/VerificationResult.php | 1 - .../Tests/Security/Session/SessionLifetimeGuardTest.php | 3 --- .../RaBundle/Tests/TestDouble/Factory/GuzzleApiFactory.php | 7 ++----- .../StepupRa/RaBundle/Tests/Value/TimeFrameTest.php | 3 --- src/Surfnet/StepupRa/RaBundle/Value/DateTime.php | 3 --- .../SurfnetStepupRaSamlStepupProviderExtension.php | 5 +---- 7 files changed, 6 insertions(+), 20 deletions(-) diff --git a/ci/qa/rector.php b/ci/qa/rector.php index ff181cac..3634507b 100644 --- a/ci/qa/rector.php +++ b/ci/qa/rector.php @@ -14,4 +14,6 @@ ->withPhpSets() ->withAttributesSets(all: true) ->withComposerBased(twig: true, doctrine: true, phpunit: true, symfony: true) - ; + ->withPHPStanConfigs([__DIR__.'/phpstan.neon']) + ->withPreparedSets(deadCode: true) +; diff --git a/src/Surfnet/StepupRa/RaBundle/Service/YubikeySecondFactor/VerificationResult.php b/src/Surfnet/StepupRa/RaBundle/Service/YubikeySecondFactor/VerificationResult.php index f5e73173..20e4c67e 100755 --- a/src/Surfnet/StepupRa/RaBundle/Service/YubikeySecondFactor/VerificationResult.php +++ b/src/Surfnet/StepupRa/RaBundle/Service/YubikeySecondFactor/VerificationResult.php @@ -35,7 +35,6 @@ class VerificationResult /** * @param int $result - * @param YubikeyPublicId|null $publicId */ public function __construct($result, private readonly ?YubikeyPublicId $publicId = null) { diff --git a/src/Surfnet/StepupRa/RaBundle/Tests/Security/Session/SessionLifetimeGuardTest.php b/src/Surfnet/StepupRa/RaBundle/Tests/Security/Session/SessionLifetimeGuardTest.php index c1cc9154..a99c02ba 100755 --- a/src/Surfnet/StepupRa/RaBundle/Tests/Security/Session/SessionLifetimeGuardTest.php +++ b/src/Surfnet/StepupRa/RaBundle/Tests/Security/Session/SessionLifetimeGuardTest.php @@ -195,9 +195,6 @@ public function an_authentication_session_is_verified_against_both_limits( $this->assertSame($isValid, $sessionLifetimeGuard->sessionLifetimeWithinLimits($authenticatedSessionMock)); } - /** - * @return array - */ public static function bothLimitsVerificationProvider(): array { $withinLimit = new DateTime(new CoreDateTime('@1001')); diff --git a/src/Surfnet/StepupRa/RaBundle/Tests/TestDouble/Factory/GuzzleApiFactory.php b/src/Surfnet/StepupRa/RaBundle/Tests/TestDouble/Factory/GuzzleApiFactory.php index b8cfc582..fc36bad1 100755 --- a/src/Surfnet/StepupRa/RaBundle/Tests/TestDouble/Factory/GuzzleApiFactory.php +++ b/src/Surfnet/StepupRa/RaBundle/Tests/TestDouble/Factory/GuzzleApiFactory.php @@ -31,8 +31,7 @@ class GuzzleApiFactory * @param $apiUri * @param $username * @param $password - * @return Client - * + * * @see \Surfnet\StepupMiddlewareClientBundle\DependencyInjection\SurfnetStepupMiddlewareClientExtension::configureMiddlewareReadApiClient */ public static function createApiGuzzleClient($apiUri, $username, $password): Client @@ -55,8 +54,7 @@ public static function createApiGuzzleClient($apiUri, $username, $password): Cli /** * @param $apiUri - * @return Client - * + * * @see \Surfnet\StepupMiddlewareClientBundle\DependencyInjection\SurfnetStepupMiddlewareClientExtension::configureMiddlewareCommandApiUrl */ public static function createCommandGuzzleClient($apiUri): Client @@ -71,7 +69,6 @@ public static function createCommandGuzzleClient($apiUri): Client /** * @param string $uri - * @return CookieJar */ private static function makeCookieJar($uri): CookieJar { diff --git a/src/Surfnet/StepupRa/RaBundle/Tests/Value/TimeFrameTest.php b/src/Surfnet/StepupRa/RaBundle/Tests/Value/TimeFrameTest.php index 15684199..1fdb5333 100755 --- a/src/Surfnet/StepupRa/RaBundle/Tests/Value/TimeFrameTest.php +++ b/src/Surfnet/StepupRa/RaBundle/Tests/Value/TimeFrameTest.php @@ -53,9 +53,6 @@ public function to_string_output_matches_amount_of_seconds_as_string() ); } - /** - * @return array - */ public static function notPositiveIntegerProvider(): array { return [ diff --git a/src/Surfnet/StepupRa/RaBundle/Value/DateTime.php b/src/Surfnet/StepupRa/RaBundle/Value/DateTime.php index e81599a1..0ec98b4b 100755 --- a/src/Surfnet/StepupRa/RaBundle/Value/DateTime.php +++ b/src/Surfnet/StepupRa/RaBundle/Value/DateTime.php @@ -63,9 +63,6 @@ public static function fromString(string $string): DateTime return new self($dateTime); } - /** - * @param CoreDateTime|null $dateTime - */ public function __construct(?CoreDateTime $dateTime = null) { $this->dateTime = $dateTime ?: new CoreDateTime(); diff --git a/src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php b/src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php index 390fd329..0627f421 100755 --- a/src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php +++ b/src/Surfnet/StepupRa/SamlStepupProviderBundle/DependencyInjection/SurfnetStepupRaSamlStepupProviderExtension.php @@ -60,7 +60,7 @@ public function load(array $configs, ContainerBuilder $container): void // service definitions etc. assert(is_string($provider)); - if ($provider !== strtolower((string) $provider)) { + if ($provider !== strtolower($provider)) { throw new InvalidConfigurationException('The provider name must be completely lowercase'); } @@ -167,9 +167,6 @@ private function buildHostedEntityDefinition($provider, array $configuration, ar return $hostedDefinition; } - /** - * @param string $provider - */ private function createRemoteDefinition( string $provider, array $configuration, From 2e05d898ec8597b0083ba76b9e3a659f9dd53c69 Mon Sep 17 00:00:00 2001 From: Johan Kromhout Date: Thu, 15 Jan 2026 14:59:40 +0100 Subject: [PATCH 15/18] Update frontend tooling --- package.json | 14 +- webpack.config.js | 24 +- yarn.lock | 3909 +++++++++++++++------------------------------ 3 files changed, 1314 insertions(+), 2633 deletions(-) diff --git a/package.json b/package.json index 35ed252f..b43f76ab 100644 --- a/package.json +++ b/package.json @@ -1,25 +1,25 @@ { "browserslist": "last 2 versions, ie 11, > 1%", - "engines" : { - "node" : ">=20.0.0" + "engines": { + "node": ">=20.0.0" }, "devDependencies": { "@babel/core": "^7.27.3", "@babel/preset-env": "^7.27.2", - "@symfony/webpack-encore": "^4.7.0", + "@symfony/webpack-encore": "^5.3.1", "bootstrap-less": "^3.3.8", "core-js": "^3.42.0", "file-loader": "^6.0.0", "font-awesome": "^4.7.0", "jquery": "^3.5.1", - "jscpd": "^3.4.5", - "less": "^3.12.2", - "less-loader": "^11.1", + "jscpd": "^4.0.7", + "less": "^4.5.1", + "less-loader": "^12.3.0", "lodash": "^4.17.20", "moment": "^2.29.2", "regenerator-runtime": "^0.14.1", "webpack": "^5.99.9", - "webpack-cli": "^5.0.0", + "webpack-cli": "^6.0.1", "webpack-notifier": "^1.15.0" }, "license": "UNLICENSED", diff --git a/webpack.config.js b/webpack.config.js index d3b6dfa8..02568506 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -54,7 +54,11 @@ Encore * list of features, see: * https://symfony.com/doc/current/frontend.html#adding-more-features */ - .enableLessLoader() + .enableLessLoader((options) => { + options.lessOptions = { + math: 'always', // Maintains Less 3.x math behavior for Bootstrap 3 + }; + }) .cleanupOutputBeforeBuild() .enableBuildNotifications() .enableSourceMaps(!Encore.isProduction()) @@ -66,24 +70,6 @@ Encore config.useBuiltIns = 'usage'; config.corejs = 3; }) - - // enables Sass/SCSS support - //.enableSassLoader() - - // uncomment if you use TypeScript - //.enableTypeScriptLoader() - - // uncomment to get integrity="..." attributes on your script & link tags - // requires WebpackEncoreBundle 1.4 or higher - //.enableIntegrityHashes(Encore.isProduction()) - - - // uncomment if you're having problems with a jQuery plugin - //.autoProvidejQuery() - - // uncomment if you use API Platform Admin (composer req api-admin) - //.enableReactPreset() - //.addEntry('admin', './assets/js/admin.js') ; module.exports = Encore.getWebpackConfig(); diff --git a/yarn.lock b/yarn.lock index f9914605..32936551 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,151 +2,132 @@ # yarn lockfile v1 -"@ampproject/remapping@^2.2.0": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" - integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@babel/code-frame@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.27.1.tgz#200f715e66d52a23b221a9435534a91cc13ad5be" - integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== +"@babel/code-frame@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.28.6.tgz#72499312ec58b1e2245ba4a4f550c132be4982f7" + integrity sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q== dependencies: - "@babel/helper-validator-identifier" "^7.27.1" + "@babel/helper-validator-identifier" "^7.28.5" js-tokens "^4.0.0" picocolors "^1.1.1" -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.27.2": - version "7.27.3" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.27.3.tgz#cc49c2ac222d69b889bf34c795f537c0c6311111" - integrity sha512-V42wFfx1ymFte+ecf6iXghnnP8kWTO+ZLXIyZq+1LAXHHvTZdVxicn4yiVYdYMGaCO3tmqub11AorKkv+iodqw== +"@babel/compat-data@^7.27.7", "@babel/compat-data@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.28.6.tgz#103f466803fa0f059e82ccac271475470570d74c" + integrity sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg== "@babel/core@^7.27.3": - version "7.27.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.27.3.tgz#d7d05502bccede3cab36373ed142e6a1df554c2f" - integrity sha512-hyrN8ivxfvJ4i0fIJuV4EOlV0WDMz5Ui4StRTgVaAvWeiRCilXgwVvxJKtFQ3TKtHgJscB2YiXKGNJuVwhQMtA== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.27.3" - "@babel/helper-compilation-targets" "^7.27.2" - "@babel/helper-module-transforms" "^7.27.3" - "@babel/helpers" "^7.27.3" - "@babel/parser" "^7.27.3" - "@babel/template" "^7.27.2" - "@babel/traverse" "^7.27.3" - "@babel/types" "^7.27.3" + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.6.tgz#531bf883a1126e53501ba46eb3bb414047af507f" + integrity sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw== + dependencies: + "@babel/code-frame" "^7.28.6" + "@babel/generator" "^7.28.6" + "@babel/helper-compilation-targets" "^7.28.6" + "@babel/helper-module-transforms" "^7.28.6" + "@babel/helpers" "^7.28.6" + "@babel/parser" "^7.28.6" + "@babel/template" "^7.28.6" + "@babel/traverse" "^7.28.6" + "@babel/types" "^7.28.6" + "@jridgewell/remapping" "^2.3.5" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.27.3": - version "7.27.3" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.27.3.tgz#ef1c0f7cfe3b5fc8cbb9f6cc69f93441a68edefc" - integrity sha512-xnlJYj5zepml8NXtjkG0WquFUv8RskFqyFcVgTBp5k+NaA/8uw/K+OSVf8AMGw5e9HKP2ETd5xpK5MLZQD6b4Q== +"@babel/generator@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.28.6.tgz#48dcc65d98fcc8626a48f72b62e263d25fc3c3f1" + integrity sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw== dependencies: - "@babel/parser" "^7.27.3" - "@babel/types" "^7.27.3" - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" + "@babel/parser" "^7.28.6" + "@babel/types" "^7.28.6" + "@jridgewell/gen-mapping" "^0.3.12" + "@jridgewell/trace-mapping" "^0.3.28" jsesc "^3.0.2" -"@babel/helper-annotate-as-pure@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" - integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-annotate-as-pure@^7.27.1": +"@babel/helper-annotate-as-pure@^7.27.1", "@babel/helper-annotate-as-pure@^7.27.3": version "7.27.3" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz#f31fd86b915fc4daf1f3ac6976c59be7084ed9c5" integrity sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg== dependencies: "@babel/types" "^7.27.3" -"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.27.1", "@babel/helper-compilation-targets@^7.27.2": - version "7.27.2" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz#46a0f6efab808d51d29ce96858dd10ce8732733d" - integrity sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ== +"@babel/helper-compilation-targets@^7.27.1", "@babel/helper-compilation-targets@^7.27.2", "@babel/helper-compilation-targets@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz#32c4a3f41f12ed1532179b108a4d746e105c2b25" + integrity sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA== dependencies: - "@babel/compat-data" "^7.27.2" + "@babel/compat-data" "^7.28.6" "@babel/helper-validator-option" "^7.27.1" browserslist "^4.24.0" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz#5bee4262a6ea5ddc852d0806199eb17ca3de9281" - integrity sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A== +"@babel/helper-create-class-features-plugin@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz#611ff5482da9ef0db6291bcd24303400bca170fb" + integrity sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow== dependencies: - "@babel/helper-annotate-as-pure" "^7.27.1" - "@babel/helper-member-expression-to-functions" "^7.27.1" + "@babel/helper-annotate-as-pure" "^7.27.3" + "@babel/helper-member-expression-to-functions" "^7.28.5" "@babel/helper-optimise-call-expression" "^7.27.1" - "@babel/helper-replace-supers" "^7.27.1" + "@babel/helper-replace-supers" "^7.28.6" "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" - "@babel/traverse" "^7.27.1" + "@babel/traverse" "^7.28.6" semver "^6.3.1" -"@babel/helper-create-regexp-features-plugin@^7.18.6": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" - integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.27.1", "@babel/helper-create-regexp-features-plugin@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz#7c1ddd64b2065c7f78034b25b43346a7e19ed997" + integrity sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw== dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - regexpu-core "^5.3.1" + "@babel/helper-annotate-as-pure" "^7.27.3" + regexpu-core "^6.3.1" semver "^6.3.1" -"@babel/helper-create-regexp-features-plugin@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz#05b0882d97ba1d4d03519e4bce615d70afa18c53" - integrity sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ== +"@babel/helper-define-polyfill-provider@^0.6.5": + version "0.6.5" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz#742ccf1cb003c07b48859fc9fa2c1bbe40e5f753" + integrity sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg== dependencies: - "@babel/helper-annotate-as-pure" "^7.27.1" - regexpu-core "^6.2.0" - semver "^6.3.1" - -"@babel/helper-define-polyfill-provider@^0.6.3": - version "0.6.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz#f4f2792fae2ef382074bc2d713522cf24e6ddb21" - integrity sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg== - dependencies: - "@babel/helper-compilation-targets" "^7.22.6" - "@babel/helper-plugin-utils" "^7.22.5" - debug "^4.1.1" + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-plugin-utils" "^7.27.1" + debug "^4.4.1" lodash.debounce "^4.0.8" - resolve "^1.14.2" + resolve "^1.22.10" -"@babel/helper-member-expression-to-functions@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz#ea1211276be93e798ce19037da6f06fbb994fa44" - integrity sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA== +"@babel/helper-globals@^7.28.0": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz#b9430df2aa4e17bc28665eadeae8aa1d985e6674" + integrity sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw== + +"@babel/helper-member-expression-to-functions@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz#f3e07a10be37ed7a63461c63e6929575945a6150" + integrity sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg== dependencies: - "@babel/traverse" "^7.27.1" - "@babel/types" "^7.27.1" + "@babel/traverse" "^7.28.5" + "@babel/types" "^7.28.5" -"@babel/helper-module-imports@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz#7ef769a323e2655e126673bb6d2d6913bbead204" - integrity sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w== +"@babel/helper-module-imports@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz#60632cbd6ffb70b22823187201116762a03e2d5c" + integrity sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw== dependencies: - "@babel/traverse" "^7.27.1" - "@babel/types" "^7.27.1" + "@babel/traverse" "^7.28.6" + "@babel/types" "^7.28.6" -"@babel/helper-module-transforms@^7.27.1", "@babel/helper-module-transforms@^7.27.3": - version "7.27.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz#db0bbcfba5802f9ef7870705a7ef8788508ede02" - integrity sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg== +"@babel/helper-module-transforms@^7.27.1", "@babel/helper-module-transforms@^7.28.3", "@babel/helper-module-transforms@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz#9312d9d9e56edc35aeb6e95c25d4106b50b9eb1e" + integrity sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA== dependencies: - "@babel/helper-module-imports" "^7.27.1" - "@babel/helper-validator-identifier" "^7.27.1" - "@babel/traverse" "^7.27.3" + "@babel/helper-module-imports" "^7.28.6" + "@babel/helper-validator-identifier" "^7.28.5" + "@babel/traverse" "^7.28.6" "@babel/helper-optimise-call-expression@^7.27.1": version "7.27.1" @@ -155,10 +136,10 @@ dependencies: "@babel/types" "^7.27.1" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz#ddb2f876534ff8013e6c2b299bf4d39b3c51d44c" - integrity sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw== +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.27.1", "@babel/helper-plugin-utils@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz#6f13ea251b68c8532e985fd532f28741a8af9ac8" + integrity sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug== "@babel/helper-remap-async-to-generator@^7.27.1": version "7.27.1" @@ -169,14 +150,14 @@ "@babel/helper-wrap-function" "^7.27.1" "@babel/traverse" "^7.27.1" -"@babel/helper-replace-supers@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz#b1ed2d634ce3bdb730e4b52de30f8cccfd692bc0" - integrity sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA== +"@babel/helper-replace-supers@^7.27.1", "@babel/helper-replace-supers@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz#94aa9a1d7423a00aead3f204f78834ce7d53fe44" + integrity sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg== dependencies: - "@babel/helper-member-expression-to-functions" "^7.27.1" + "@babel/helper-member-expression-to-functions" "^7.28.5" "@babel/helper-optimise-call-expression" "^7.27.1" - "@babel/traverse" "^7.27.1" + "@babel/traverse" "^7.28.6" "@babel/helper-skip-transparent-expression-wrappers@^7.27.1": version "7.27.1" @@ -191,10 +172,10 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== -"@babel/helper-validator-identifier@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz#a7054dcc145a967dd4dc8fee845a57c1316c9df8" - integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== +"@babel/helper-validator-identifier@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4" + integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== "@babel/helper-validator-option@^7.27.1": version "7.27.1" @@ -202,36 +183,36 @@ integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg== "@babel/helper-wrap-function@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz#b88285009c31427af318d4fe37651cd62a142409" - integrity sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ== + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.28.6.tgz#4e349ff9222dab69a93a019cc296cdd8442e279a" + integrity sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ== dependencies: - "@babel/template" "^7.27.1" - "@babel/traverse" "^7.27.1" - "@babel/types" "^7.27.1" + "@babel/template" "^7.28.6" + "@babel/traverse" "^7.28.6" + "@babel/types" "^7.28.6" -"@babel/helpers@^7.27.3": - version "7.27.3" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.27.3.tgz#387d65d279290e22fe7a47a8ffcd2d0c0184edd0" - integrity sha512-h/eKy9agOya1IGuLaZ9tEUgz+uIRXcbtOhRtUyyMf8JFmn1iT13vnl/IGVWSkdOCG/pC57U4S1jnAabAavTMwg== +"@babel/helpers@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.6.tgz#fca903a313ae675617936e8998b814c415cbf5d7" + integrity sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw== dependencies: - "@babel/template" "^7.27.2" - "@babel/types" "^7.27.3" + "@babel/template" "^7.28.6" + "@babel/types" "^7.28.6" -"@babel/parser@^7.27.2", "@babel/parser@^7.27.3", "@babel/parser@^7.6.0", "@babel/parser@^7.9.6": - version "7.27.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.3.tgz#1b7533f0d908ad2ac545c4d05cbe2fb6dc8cfaaf" - integrity sha512-xyYxRj6+tLNDTWi0KCBcZ9V7yg3/lwL9DWh9Uwh/RIVlIfFidggcgxKX3GCXwCiswwcGRawBKbEg2LG/Y8eJhw== +"@babel/parser@^7.28.6", "@babel/parser@^7.6.0", "@babel/parser@^7.9.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.6.tgz#f01a8885b7fa1e56dd8a155130226cd698ef13fd" + integrity sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ== dependencies: - "@babel/types" "^7.27.3" + "@babel/types" "^7.28.6" -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz#61dd8a8e61f7eb568268d1b5f129da3eee364bf9" - integrity sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA== +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz#fbde57974707bbfa0376d34d425ff4fa6c732421" + integrity sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q== dependencies: "@babel/helper-plugin-utils" "^7.27.1" - "@babel/traverse" "^7.27.1" + "@babel/traverse" "^7.28.5" "@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.27.1": version "7.27.1" @@ -256,32 +237,32 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" "@babel/plugin-transform-optional-chaining" "^7.27.1" -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz#bb1c25af34d75115ce229a1de7fa44bf8f955670" - integrity sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw== +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.6.tgz#0e8289cec28baaf05d54fd08d81ae3676065f69f" + integrity sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g== dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/traverse" "^7.27.1" + "@babel/helper-plugin-utils" "^7.28.6" + "@babel/traverse" "^7.28.6" "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": version "7.21.0-placeholder-for-preset-env.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== -"@babel/plugin-syntax-import-assertions@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz#88894aefd2b03b5ee6ad1562a7c8e1587496aecd" - integrity sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg== +"@babel/plugin-syntax-import-assertions@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.28.6.tgz#ae9bc1923a6ba527b70104dd2191b0cd872c8507" + integrity sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw== dependencies: - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-syntax-import-attributes@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz#34c017d54496f9b11b61474e7ea3dfd5563ffe07" - integrity sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww== +"@babel/plugin-syntax-import-attributes@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz#b71d5914665f60124e133696f17cd7669062c503" + integrity sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw== dependencies: - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-plugin-utils" "^7.28.6" "@babel/plugin-syntax-unicode-sets-regex@^7.18.6": version "7.18.6" @@ -298,22 +279,22 @@ dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-async-generator-functions@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.27.1.tgz#ca433df983d68e1375398e7ca71bf2a4f6fd89d7" - integrity sha512-eST9RrwlpaoJBDHShc+DS2SG4ATTi2MYNb4OxYkf3n+7eb49LWpnS+HSpVfW4x927qQwgk8A2hGNVaajAEw0EA== +"@babel/plugin-transform-async-generator-functions@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.6.tgz#80cb86d3eaa2102e18ae90dd05ab87bdcad3877d" + integrity sha512-9knsChgsMzBV5Yh3kkhrZNxH3oCYAfMBkNNaVN4cP2RVlFPe8wYdwwcnOsAbkdDoV9UjFtOXWrWB52M8W4jNeA== dependencies: - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-plugin-utils" "^7.28.6" "@babel/helper-remap-async-to-generator" "^7.27.1" - "@babel/traverse" "^7.27.1" + "@babel/traverse" "^7.28.6" -"@babel/plugin-transform-async-to-generator@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz#9a93893b9379b39466c74474f55af03de78c66e7" - integrity sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA== +"@babel/plugin-transform-async-to-generator@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.28.6.tgz#bd97b42237b2d1bc90d74bcb486c39be5b4d7e77" + integrity sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g== dependencies: - "@babel/helper-module-imports" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-module-imports" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" "@babel/helper-remap-async-to-generator" "^7.27.1" "@babel/plugin-transform-block-scoped-functions@^7.27.1": @@ -323,63 +304,64 @@ dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-block-scoping@^7.27.1": - version "7.27.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.3.tgz#a21f37e222dc0a7b91c3784fa3bd4edf8d7a6dc1" - integrity sha512-+F8CnfhuLhwUACIJMLWnjz6zvzYM2r0yeIHKlbgfw7ml8rOMJsXNXV/hyRcb3nb493gRs4WvYpQAndWj/qQmkQ== +"@babel/plugin-transform-block-scoping@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.6.tgz#e1ef5633448c24e76346125c2534eeb359699a99" + integrity sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw== dependencies: - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-class-properties@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz#dd40a6a370dfd49d32362ae206ddaf2bb082a925" - integrity sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA== +"@babel/plugin-transform-class-properties@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.28.6.tgz#d274a4478b6e782d9ea987fda09bdb6d28d66b72" + integrity sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-create-class-features-plugin" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-class-static-block@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz#7e920d5625b25bbccd3061aefbcc05805ed56ce4" - integrity sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA== +"@babel/plugin-transform-class-static-block@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.6.tgz#1257491e8259c6d125ac4d9a6f39f9d2bf3dba70" + integrity sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-create-class-features-plugin" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-classes@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.27.1.tgz#03bb04bea2c7b2f711f0db7304a8da46a85cced4" - integrity sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA== +"@babel/plugin-transform-classes@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.6.tgz#8f6fb79ba3703978e701ce2a97e373aae7dda4b7" + integrity sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q== dependencies: - "@babel/helper-annotate-as-pure" "^7.27.1" - "@babel/helper-compilation-targets" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-replace-supers" "^7.27.1" - "@babel/traverse" "^7.27.1" - globals "^11.1.0" + "@babel/helper-annotate-as-pure" "^7.27.3" + "@babel/helper-compilation-targets" "^7.28.6" + "@babel/helper-globals" "^7.28.0" + "@babel/helper-plugin-utils" "^7.28.6" + "@babel/helper-replace-supers" "^7.28.6" + "@babel/traverse" "^7.28.6" -"@babel/plugin-transform-computed-properties@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz#81662e78bf5e734a97982c2b7f0a793288ef3caa" - integrity sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw== +"@babel/plugin-transform-computed-properties@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.28.6.tgz#936824fc71c26cb5c433485776d79c8e7b0202d2" + integrity sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ== dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/template" "^7.27.1" + "@babel/helper-plugin-utils" "^7.28.6" + "@babel/template" "^7.28.6" -"@babel/plugin-transform-destructuring@^7.27.1", "@babel/plugin-transform-destructuring@^7.27.3": - version "7.27.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.27.3.tgz#3cc8299ed798d9a909f8d66ddeb40849ec32e3b0" - integrity sha512-s4Jrok82JpiaIprtY2nHsYmrThKvvwgHwjgd7UMiYhZaN0asdXNLr0y+NjTfkA7SyQE5i2Fb7eawUOZmLvyqOA== +"@babel/plugin-transform-destructuring@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz#b8402764df96179a2070bb7b501a1586cf8ad7a7" + integrity sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw== dependencies: "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.28.5" -"@babel/plugin-transform-dotall-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz#aa6821de864c528b1fecf286f0a174e38e826f4d" - integrity sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw== +"@babel/plugin-transform-dotall-regex@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.28.6.tgz#def31ed84e0fb6e25c71e53c124e7b76a4ab8e61" + integrity sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-create-regexp-features-plugin" "^7.28.5" + "@babel/helper-plugin-utils" "^7.28.6" "@babel/plugin-transform-duplicate-keys@^7.27.1": version "7.27.1" @@ -388,13 +370,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz#5043854ca620a94149372e69030ff8cb6a9eb0ec" - integrity sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ== +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.28.6.tgz#e0c59ba54f1655dd682f2edf5f101b5910a8f6f3" + integrity sha512-5suVoXjC14lUN6ZL9OLKIHCNVWCrqGqlmEp/ixdXjvgnEl/kauLvvMO/Xw9NyMc95Joj1AeLVPVMvibBgSoFlA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-create-regexp-features-plugin" "^7.28.5" + "@babel/helper-plugin-utils" "^7.28.6" "@babel/plugin-transform-dynamic-import@^7.27.1": version "7.27.1" @@ -403,12 +385,20 @@ dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-exponentiation-operator@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz#fc497b12d8277e559747f5a3ed868dd8064f83e1" - integrity sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ== +"@babel/plugin-transform-explicit-resource-management@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.6.tgz#dd6788f982c8b77e86779d1d029591e39d9d8be7" + integrity sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg== dependencies: - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-plugin-utils" "^7.28.6" + "@babel/plugin-transform-destructuring" "^7.28.5" + +"@babel/plugin-transform-exponentiation-operator@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.6.tgz#5e477eb7eafaf2ab5537a04aaafcf37e2d7f1091" + integrity sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw== + dependencies: + "@babel/helper-plugin-utils" "^7.28.6" "@babel/plugin-transform-export-namespace-from@^7.27.1": version "7.27.1" @@ -434,12 +424,12 @@ "@babel/helper-plugin-utils" "^7.27.1" "@babel/traverse" "^7.27.1" -"@babel/plugin-transform-json-strings@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz#a2e0ce6ef256376bd527f290da023983527a4f4c" - integrity sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q== +"@babel/plugin-transform-json-strings@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.28.6.tgz#4c8c15b2dc49e285d110a4cf3dac52fd2dfc3038" + integrity sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw== dependencies: - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-plugin-utils" "^7.28.6" "@babel/plugin-transform-literals@^7.27.1": version "7.27.1" @@ -448,12 +438,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-logical-assignment-operators@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz#890cb20e0270e0e5bebe3f025b434841c32d5baa" - integrity sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw== +"@babel/plugin-transform-logical-assignment-operators@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.6.tgz#53028a3d77e33c50ef30a8fce5ca17065936e605" + integrity sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A== dependencies: - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-plugin-utils" "^7.28.6" "@babel/plugin-transform-member-expression-literals@^7.27.1": version "7.27.1" @@ -470,23 +460,23 @@ "@babel/helper-module-transforms" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-modules-commonjs@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz#8e44ed37c2787ecc23bdc367f49977476614e832" - integrity sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw== +"@babel/plugin-transform-modules-commonjs@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.28.6.tgz#c0232e0dfe66a734cc4ad0d5e75fc3321b6fdef1" + integrity sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA== dependencies: - "@babel/helper-module-transforms" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-module-transforms" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-modules-systemjs@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz#00e05b61863070d0f3292a00126c16c0e024c4ed" - integrity sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA== +"@babel/plugin-transform-modules-systemjs@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.28.5.tgz#7439e592a92d7670dfcb95d0cbc04bd3e64801d2" + integrity sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew== dependencies: - "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-module-transforms" "^7.28.3" "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-validator-identifier" "^7.27.1" - "@babel/traverse" "^7.27.1" + "@babel/helper-validator-identifier" "^7.28.5" + "@babel/traverse" "^7.28.5" "@babel/plugin-transform-modules-umd@^7.27.1": version "7.27.1" @@ -511,29 +501,30 @@ dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-nullish-coalescing-operator@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz#4f9d3153bf6782d73dd42785a9d22d03197bc91d" - integrity sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA== +"@babel/plugin-transform-nullish-coalescing-operator@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.28.6.tgz#9bc62096e90ab7a887f3ca9c469f6adec5679757" + integrity sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg== dependencies: - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-numeric-separator@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz#614e0b15cc800e5997dadd9bd6ea524ed6c819c6" - integrity sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw== +"@babel/plugin-transform-numeric-separator@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.28.6.tgz#1310b0292762e7a4a335df5f580c3320ee7d9e9f" + integrity sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w== dependencies: - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-object-rest-spread@^7.27.2": - version "7.27.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.27.3.tgz#ce130aa73fef828bc3e3e835f9bc6144be3eb1c0" - integrity sha512-7ZZtznF9g4l2JCImCo5LNKFHB5eXnN39lLtLY5Tg+VkR0jwOt7TBciMckuiQIOIW7L5tkQOCh3bVGYeXgMx52Q== +"@babel/plugin-transform-object-rest-spread@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.6.tgz#fdd4bc2d72480db6ca42aed5c051f148d7b067f7" + integrity sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA== dependencies: - "@babel/helper-compilation-targets" "^7.27.2" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/plugin-transform-destructuring" "^7.27.3" - "@babel/plugin-transform-parameters" "^7.27.1" + "@babel/helper-compilation-targets" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" + "@babel/plugin-transform-destructuring" "^7.28.5" + "@babel/plugin-transform-parameters" "^7.27.7" + "@babel/traverse" "^7.28.6" "@babel/plugin-transform-object-super@^7.27.1": version "7.27.1" @@ -543,44 +534,44 @@ "@babel/helper-plugin-utils" "^7.27.1" "@babel/helper-replace-supers" "^7.27.1" -"@babel/plugin-transform-optional-catch-binding@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz#84c7341ebde35ccd36b137e9e45866825072a30c" - integrity sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q== +"@babel/plugin-transform-optional-catch-binding@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.28.6.tgz#75107be14c78385978201a49c86414a150a20b4c" + integrity sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ== dependencies: - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-optional-chaining@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz#874ce3c4f06b7780592e946026eb76a32830454f" - integrity sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg== +"@babel/plugin-transform-optional-chaining@^7.27.1", "@babel/plugin-transform-optional-chaining@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.6.tgz#926cf150bd421fc8362753e911b4a1b1ce4356cd" + integrity sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w== dependencies: - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-plugin-utils" "^7.28.6" "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" -"@babel/plugin-transform-parameters@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.1.tgz#80334b54b9b1ac5244155a0c8304a187a618d5a7" - integrity sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg== +"@babel/plugin-transform-parameters@^7.27.7": + version "7.27.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz#1fd2febb7c74e7d21cf3b05f7aebc907940af53a" + integrity sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg== dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-private-methods@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz#fdacbab1c5ed81ec70dfdbb8b213d65da148b6af" - integrity sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA== +"@babel/plugin-transform-private-methods@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.28.6.tgz#c76fbfef3b86c775db7f7c106fff544610bdb411" + integrity sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-create-class-features-plugin" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-private-property-in-object@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz#4dbbef283b5b2f01a21e81e299f76e35f900fb11" - integrity sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ== +"@babel/plugin-transform-private-property-in-object@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.28.6.tgz#4fafef1e13129d79f1d75ac180c52aafefdb2811" + integrity sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA== dependencies: - "@babel/helper-annotate-as-pure" "^7.27.1" - "@babel/helper-create-class-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-annotate-as-pure" "^7.27.3" + "@babel/helper-create-class-features-plugin" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" "@babel/plugin-transform-property-literals@^7.27.1": version "7.27.1" @@ -589,20 +580,20 @@ dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-regenerator@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.1.tgz#0a471df9213416e44cd66bf67176b66f65768401" - integrity sha512-B19lbbL7PMrKr52BNPjCqg1IyNUIjTcxKj8uX9zHO+PmWN93s19NDr/f69mIkEp2x9nmDJ08a7lgHaTTzvW7mw== +"@babel/plugin-transform-regenerator@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.6.tgz#6ca2ed5b76cff87980f96eaacfc2ce833e8e7a1b" + integrity sha512-eZhoEZHYQLL5uc1gS5e9/oTknS0sSSAtd5TkKMUp3J+S/CaUjagc0kOUPsEbDmMeva0nC3WWl4SxVY6+OBuxfw== dependencies: - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/plugin-transform-regexp-modifiers@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz#df9ba5577c974e3f1449888b70b76169998a6d09" - integrity sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA== +"@babel/plugin-transform-regexp-modifiers@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.28.6.tgz#7ef0163bd8b4a610481b2509c58cf217f065290b" + integrity sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-create-regexp-features-plugin" "^7.28.5" + "@babel/helper-plugin-utils" "^7.28.6" "@babel/plugin-transform-reserved-words@^7.27.1": version "7.27.1" @@ -618,12 +609,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-spread@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz#1a264d5fc12750918f50e3fe3e24e437178abb08" - integrity sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q== +"@babel/plugin-transform-spread@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.28.6.tgz#40a2b423f6db7b70f043ad027a58bcb44a9757b6" + integrity sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA== dependencies: - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-plugin-utils" "^7.28.6" "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" "@babel/plugin-transform-sticky-regex@^7.27.1": @@ -654,13 +645,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-unicode-property-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz#bdfe2d3170c78c5691a3c3be934c8c0087525956" - integrity sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q== +"@babel/plugin-transform-unicode-property-regex@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.28.6.tgz#63a7a6c21a0e75dae9b1861454111ea5caa22821" + integrity sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-create-regexp-features-plugin" "^7.28.5" + "@babel/helper-plugin-utils" "^7.28.6" "@babel/plugin-transform-unicode-regex@^7.27.1": version "7.27.1" @@ -670,87 +661,88 @@ "@babel/helper-create-regexp-features-plugin" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-unicode-sets-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz#6ab706d10f801b5c72da8bb2548561fa04193cd1" - integrity sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw== +"@babel/plugin-transform-unicode-sets-regex@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.28.6.tgz#924912914e5df9fe615ec472f88ff4788ce04d4e" + integrity sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-create-regexp-features-plugin" "^7.28.5" + "@babel/helper-plugin-utils" "^7.28.6" "@babel/preset-env@^7.27.2": - version "7.27.2" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.27.2.tgz#106e6bfad92b591b1f6f76fd4cf13b7725a7bf9a" - integrity sha512-Ma4zSuYSlGNRlCLO+EAzLnCmJK2vdstgv+n7aUP+/IKZrOfWHOJVdSJtuub8RzHTj3ahD37k5OKJWvzf16TQyQ== + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.28.6.tgz#b4586bb59d8c61be6c58997f4912e7ea6bd17178" + integrity sha512-GaTI4nXDrs7l0qaJ6Rg06dtOXTBCG6TMDB44zbqofCIC4PqC7SEvmFFtpxzCDw9W5aJ7RKVshgXTLvLdBFV/qw== dependencies: - "@babel/compat-data" "^7.27.2" - "@babel/helper-compilation-targets" "^7.27.2" - "@babel/helper-plugin-utils" "^7.27.1" + "@babel/compat-data" "^7.28.6" + "@babel/helper-compilation-targets" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" "@babel/helper-validator-option" "^7.27.1" - "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.27.1" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.28.5" "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.27.1" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.27.1" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.27.1" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.27.1" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.28.6" "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-import-assertions" "^7.27.1" - "@babel/plugin-syntax-import-attributes" "^7.27.1" + "@babel/plugin-syntax-import-assertions" "^7.28.6" + "@babel/plugin-syntax-import-attributes" "^7.28.6" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" "@babel/plugin-transform-arrow-functions" "^7.27.1" - "@babel/plugin-transform-async-generator-functions" "^7.27.1" - "@babel/plugin-transform-async-to-generator" "^7.27.1" + "@babel/plugin-transform-async-generator-functions" "^7.28.6" + "@babel/plugin-transform-async-to-generator" "^7.28.6" "@babel/plugin-transform-block-scoped-functions" "^7.27.1" - "@babel/plugin-transform-block-scoping" "^7.27.1" - "@babel/plugin-transform-class-properties" "^7.27.1" - "@babel/plugin-transform-class-static-block" "^7.27.1" - "@babel/plugin-transform-classes" "^7.27.1" - "@babel/plugin-transform-computed-properties" "^7.27.1" - "@babel/plugin-transform-destructuring" "^7.27.1" - "@babel/plugin-transform-dotall-regex" "^7.27.1" + "@babel/plugin-transform-block-scoping" "^7.28.6" + "@babel/plugin-transform-class-properties" "^7.28.6" + "@babel/plugin-transform-class-static-block" "^7.28.6" + "@babel/plugin-transform-classes" "^7.28.6" + "@babel/plugin-transform-computed-properties" "^7.28.6" + "@babel/plugin-transform-destructuring" "^7.28.5" + "@babel/plugin-transform-dotall-regex" "^7.28.6" "@babel/plugin-transform-duplicate-keys" "^7.27.1" - "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.27.1" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.28.6" "@babel/plugin-transform-dynamic-import" "^7.27.1" - "@babel/plugin-transform-exponentiation-operator" "^7.27.1" + "@babel/plugin-transform-explicit-resource-management" "^7.28.6" + "@babel/plugin-transform-exponentiation-operator" "^7.28.6" "@babel/plugin-transform-export-namespace-from" "^7.27.1" "@babel/plugin-transform-for-of" "^7.27.1" "@babel/plugin-transform-function-name" "^7.27.1" - "@babel/plugin-transform-json-strings" "^7.27.1" + "@babel/plugin-transform-json-strings" "^7.28.6" "@babel/plugin-transform-literals" "^7.27.1" - "@babel/plugin-transform-logical-assignment-operators" "^7.27.1" + "@babel/plugin-transform-logical-assignment-operators" "^7.28.6" "@babel/plugin-transform-member-expression-literals" "^7.27.1" "@babel/plugin-transform-modules-amd" "^7.27.1" - "@babel/plugin-transform-modules-commonjs" "^7.27.1" - "@babel/plugin-transform-modules-systemjs" "^7.27.1" + "@babel/plugin-transform-modules-commonjs" "^7.28.6" + "@babel/plugin-transform-modules-systemjs" "^7.28.5" "@babel/plugin-transform-modules-umd" "^7.27.1" "@babel/plugin-transform-named-capturing-groups-regex" "^7.27.1" "@babel/plugin-transform-new-target" "^7.27.1" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.27.1" - "@babel/plugin-transform-numeric-separator" "^7.27.1" - "@babel/plugin-transform-object-rest-spread" "^7.27.2" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.28.6" + "@babel/plugin-transform-numeric-separator" "^7.28.6" + "@babel/plugin-transform-object-rest-spread" "^7.28.6" "@babel/plugin-transform-object-super" "^7.27.1" - "@babel/plugin-transform-optional-catch-binding" "^7.27.1" - "@babel/plugin-transform-optional-chaining" "^7.27.1" - "@babel/plugin-transform-parameters" "^7.27.1" - "@babel/plugin-transform-private-methods" "^7.27.1" - "@babel/plugin-transform-private-property-in-object" "^7.27.1" + "@babel/plugin-transform-optional-catch-binding" "^7.28.6" + "@babel/plugin-transform-optional-chaining" "^7.28.6" + "@babel/plugin-transform-parameters" "^7.27.7" + "@babel/plugin-transform-private-methods" "^7.28.6" + "@babel/plugin-transform-private-property-in-object" "^7.28.6" "@babel/plugin-transform-property-literals" "^7.27.1" - "@babel/plugin-transform-regenerator" "^7.27.1" - "@babel/plugin-transform-regexp-modifiers" "^7.27.1" + "@babel/plugin-transform-regenerator" "^7.28.6" + "@babel/plugin-transform-regexp-modifiers" "^7.28.6" "@babel/plugin-transform-reserved-words" "^7.27.1" "@babel/plugin-transform-shorthand-properties" "^7.27.1" - "@babel/plugin-transform-spread" "^7.27.1" + "@babel/plugin-transform-spread" "^7.28.6" "@babel/plugin-transform-sticky-regex" "^7.27.1" "@babel/plugin-transform-template-literals" "^7.27.1" "@babel/plugin-transform-typeof-symbol" "^7.27.1" "@babel/plugin-transform-unicode-escapes" "^7.27.1" - "@babel/plugin-transform-unicode-property-regex" "^7.27.1" + "@babel/plugin-transform-unicode-property-regex" "^7.28.6" "@babel/plugin-transform-unicode-regex" "^7.27.1" - "@babel/plugin-transform-unicode-sets-regex" "^7.27.1" + "@babel/plugin-transform-unicode-sets-regex" "^7.28.6" "@babel/preset-modules" "0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2 "^0.4.10" - babel-plugin-polyfill-corejs3 "^0.11.0" - babel-plugin-polyfill-regenerator "^0.6.1" - core-js-compat "^3.40.0" + babel-plugin-polyfill-corejs2 "^0.4.14" + babel-plugin-polyfill-corejs3 "^0.13.0" + babel-plugin-polyfill-regenerator "^0.6.5" + core-js-compat "^3.43.0" semver "^6.3.1" "@babel/preset-modules@0.1.6-no-external-plugins": @@ -762,178 +754,165 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/regjsgen@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" - integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== - -"@babel/template@^7.27.1", "@babel/template@^7.27.2": - version "7.27.2" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.2.tgz#fa78ceed3c4e7b63ebf6cb39e5852fca45f6809d" - integrity sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw== - dependencies: - "@babel/code-frame" "^7.27.1" - "@babel/parser" "^7.27.2" - "@babel/types" "^7.27.1" - -"@babel/traverse@^7.27.1", "@babel/traverse@^7.27.3": - version "7.27.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.27.3.tgz#8b62a6c2d10f9d921ba7339c90074708509cffae" - integrity sha512-lId/IfN/Ye1CIu8xG7oKBHXd2iNb2aW1ilPszzGcJug6M8RCKfVNcYhpI5+bMvFYjK7lXIM0R+a+6r8xhHp2FQ== - dependencies: - "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.27.3" - "@babel/parser" "^7.27.3" - "@babel/template" "^7.27.2" - "@babel/types" "^7.27.3" +"@babel/template@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.28.6.tgz#0e7e56ecedb78aeef66ce7972b082fce76a23e57" + integrity sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ== + dependencies: + "@babel/code-frame" "^7.28.6" + "@babel/parser" "^7.28.6" + "@babel/types" "^7.28.6" + +"@babel/traverse@^7.27.1", "@babel/traverse@^7.28.5", "@babel/traverse@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.28.6.tgz#871ddc79a80599a5030c53b1cc48cbe3a5583c2e" + integrity sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg== + dependencies: + "@babel/code-frame" "^7.28.6" + "@babel/generator" "^7.28.6" + "@babel/helper-globals" "^7.28.0" + "@babel/parser" "^7.28.6" + "@babel/template" "^7.28.6" + "@babel/types" "^7.28.6" debug "^4.3.1" - globals "^11.1.0" -"@babel/types@^7.22.5", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.4.4", "@babel/types@^7.6.1", "@babel/types@^7.9.6": - version "7.27.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.3.tgz#c0257bedf33aad6aad1f406d35c44758321eb3ec" - integrity sha512-Y1GkI4ktrtvmawoSq+4FCVHNryea6uR+qUQy0AGxLSsjCX0nVmkYQMBLHDkXZuo5hGx7eYdnIaslsdBFm7zbUw== +"@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.28.5", "@babel/types@^7.28.6", "@babel/types@^7.4.4", "@babel/types@^7.6.1", "@babel/types@^7.9.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.6.tgz#c3e9377f1b155005bcc4c46020e7e394e13089df" + integrity sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg== dependencies: "@babel/helper-string-parser" "^7.27.1" - "@babel/helper-validator-identifier" "^7.27.1" + "@babel/helper-validator-identifier" "^7.28.5" "@colors/colors@1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@discoveryjs/json-ext@^0.5.0": - version "0.5.7" - resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" - integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== +"@discoveryjs/json-ext@^0.6.1": + version "0.6.3" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz#f13c7c205915eb91ae54c557f5e92bddd8be0e83" + integrity sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ== + +"@jest/pattern@30.0.1": + version "30.0.1" + resolved "https://registry.yarnpkg.com/@jest/pattern/-/pattern-30.0.1.tgz#d5304147f49a052900b4b853dedb111d080e199f" + integrity sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA== + dependencies: + "@types/node" "*" + jest-regex-util "30.0.1" -"@jest/schemas@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" - integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== +"@jest/schemas@30.0.5": + version "30.0.5" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-30.0.5.tgz#7bdf69fc5a368a5abdb49fd91036c55225846473" + integrity sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA== dependencies: - "@sinclair/typebox" "^0.27.8" + "@sinclair/typebox" "^0.34.0" -"@jest/types@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" - integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== +"@jest/types@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-30.2.0.tgz#1c678a7924b8f59eafd4c77d56b6d0ba976d62b8" + integrity sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg== dependencies: - "@jest/schemas" "^29.6.3" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" + "@jest/pattern" "30.0.1" + "@jest/schemas" "30.0.5" + "@types/istanbul-lib-coverage" "^2.0.6" + "@types/istanbul-reports" "^3.0.4" "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" + "@types/yargs" "^17.0.33" + chalk "^4.1.2" -"@jridgewell/gen-mapping@^0.3.0": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== +"@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5": + version "0.3.13" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f" + integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/sourcemap-codec" "^1.5.0" + "@jridgewell/trace-mapping" "^0.3.24" -"@jridgewell/gen-mapping@^0.3.5": - version "0.3.8" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz#4f0e06362e01362f823d348f1872b08f666d8142" - integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA== +"@jridgewell/remapping@^2.3.5": + version "2.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1" + integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== dependencies: - "@jridgewell/set-array" "^1.2.1" - "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.24" "@jridgewell/resolve-uri@^3.1.0": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" - integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== - -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== - -"@jridgewell/set-array@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" - integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== "@jridgewell/source-map@^0.3.3": - version "0.3.5" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91" - integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ== + version "0.3.11" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.11.tgz#b21835cbd36db656b857c2ad02ebd413cc13a9ba" + integrity sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA== dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": - version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== +"@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" + integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== -"@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.22" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz#72a621e5de59f5f1ef792d0793a82ee20f645e4c" - integrity sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw== +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.28": + version "0.3.31" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0" + integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" -"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": - version "0.3.25" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" - integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== +"@jscpd/badge-reporter@4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@jscpd/badge-reporter/-/badge-reporter-4.0.3.tgz#e8da318d9b5d74eb456fd1b9c6de3f17277e05f4" + integrity sha512-ZDBQzbVRK2v9U1yxHIkvzbwBMgSHTZM4s0vbiDf9NKBwrpxiAvSYWSwdAtlC8xQeMpJlBNls/cTXakXmiKGb8g== dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" + badgen "^3.2.3" + colors "^1.4.0" + fs-extra "^11.2.0" -"@jscpd/core@^3.5.4": - version "3.5.4" - resolved "https://registry.yarnpkg.com/@jscpd/core/-/core-3.5.4.tgz#0dff08af5e071d22ba35dcb5701fb008338d2b32" - integrity sha512-jf37O5C8/Pe4/FbSvgW+IDBwWkRfBCDzJGx4c+zrbq52CIY4ZvREfi1kw6BaE6C6Xz84FgfpKYOuSW/8gTk83A== +"@jscpd/core@4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@jscpd/core/-/core-4.0.3.tgz#baf69ade4d1fd4581930e7ab65c4bb2053ce8b97" + integrity sha512-7C//TeHQlyt0Tm/jEynir4VsyWpVmwS6GPzw0mPPhgYE1/5F6knYYWQiwUZEEAEfNwkwW3EoG4YcKPAkdOJISA== dependencies: - eventemitter3 "^4.0.4" + eventemitter3 "^5.0.1" -"@jscpd/finder@^3.5.10": - version "3.5.10" - resolved "https://registry.yarnpkg.com/@jscpd/finder/-/finder-3.5.10.tgz#5fee68f51e23157b6323743e3f2b8357921cd8b2" - integrity sha512-zyafUsTB2xDySho3wKMSoZuiMw2XvkdYW72kI7bLdz9M+ERyTMRfUnX1RgoGldXyylyZPF1FSflmfsppkV4Wuw== - dependencies: - "@jscpd/core" "^3.5.4" - "@jscpd/tokenizer" "^3.5.4" - blamer "^1.0.4" - bytes "^3.1.0" - cli-table3 "^0.6.0" - colors "1.4.0" - fast-glob "^3.2.2" - fs-extra "^9.0.0" +"@jscpd/finder@4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@jscpd/finder/-/finder-4.0.3.tgz#2cb720087642e3206830e0c5e2579276b6e388af" + integrity sha512-qHi5jlG/8s2uF3Kr6QX1zZEwpj8L8RRHSHQekQxOyqm9sgWqXaaIgoR1+dZqn+XhQWFXhY8CKrrFS9T6u6GKUg== + dependencies: + "@jscpd/core" "4.0.3" + "@jscpd/tokenizer" "4.0.3" + blamer "^1.0.6" + bytes "^3.1.2" + cli-table3 "^0.6.5" + colors "^1.4.0" + fast-glob "^3.3.2" + fs-extra "^11.2.0" markdown-table "^2.0.0" - pug "^3.0.1" + pug "^3.0.3" -"@jscpd/html-reporter@^3.5.10": - version "3.5.10" - resolved "https://registry.yarnpkg.com/@jscpd/html-reporter/-/html-reporter-3.5.10.tgz#caadce105eb1d0943707c2f8b05285d6b1f96a43" - integrity sha512-EPee/YSy/12UboUOoOD+vFvU8/Bi/CAKnjTDnAdPnJlSh68jog/BNhHKrXiiJKZS2CLn1WzjUaefJrn8VcWo+A== +"@jscpd/html-reporter@4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@jscpd/html-reporter/-/html-reporter-4.0.3.tgz#f891be29ec35eac2c1355340b19bd46d73f86cae" + integrity sha512-1WxywVjdx35Kd1X1S2gfMJ9Tod1NDDMpmctP9ybVZURjq3xdShDiShg5ry2kj+1qOBqMnMVvc21r9AD+IwEK2g== dependencies: - "@jscpd/finder" "^3.5.10" colors "1.4.0" - fs-extra "^9.0.1" - pug "^3.0.2" + fs-extra "^11.2.0" + pug "^3.0.3" -"@jscpd/tokenizer@^3.5.4": - version "3.5.4" - resolved "https://registry.yarnpkg.com/@jscpd/tokenizer/-/tokenizer-3.5.4.tgz#23a54d359f0848f418bd01c77129384e24acc12d" - integrity sha512-qvGbHNFaGXqMqgw0cujRqSM2cuPBAR9EOtZNUx4eGQ6IeuJhsS+aI0ijEUOE1OdVBStdu5xYdyytuLkkmtJzHA== +"@jscpd/tokenizer@4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@jscpd/tokenizer/-/tokenizer-4.0.3.tgz#da24953f300126770f5096801aba2bcfab6881c8" + integrity sha512-EosztK2+i2TPnLZuroC5jfvSPVuSDRsPtrAOL2UhwNttcK3L8F0/ERih6zRySMNUgL77OOhch5QX0I3YE8HLcQ== dependencies: - "@jscpd/core" "^3.5.4" + "@jscpd/core" "4.0.3" reprism "^0.0.11" - spark-md5 "^3.0.1" - -"@leichtgewicht/ip-codec@^2.0.1": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" - integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== + spark-md5 "^3.0.2" "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -966,71 +945,33 @@ error-stack-parser "^2.1.4" string-width "^4.2.3" -"@sinclair/typebox@^0.27.8": - version "0.27.8" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" - integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== +"@sinclair/typebox@^0.34.0": + version "0.34.47" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.34.47.tgz#61b684d8a20d2890b9f1f7b0d4f76b4b39f5bc0d" + integrity sha512-ZGIBQ+XDvO5JQku9wmwtabcVTHJsgSWAHYtVuM9pBNNR5E88v6Jcj/llpmsjivig5X8A8HHOb4/mbEKPS5EvAw== -"@symfony/webpack-encore@^4.7.0": - version "4.7.0" - resolved "https://registry.yarnpkg.com/@symfony/webpack-encore/-/webpack-encore-4.7.0.tgz#d8f9ddc28ddb4175d65e3dd9de3a86e38e6fff52" - integrity sha512-vlvg1mYLVSaujTEUmkd/ucwK7LG7+89PHfOwfz/sJ53n2IFGtuAXyPyXL0igJ0tMcKvDuCShiWTX1nfnzT/Srw== +"@symfony/webpack-encore@^5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@symfony/webpack-encore/-/webpack-encore-5.3.1.tgz#a8b183bb8ba9f8ce0aa47be5f520ae194ffa1412" + integrity sha512-fNevCvcFMWrY63b901F2mvuECFUqwrQUUEJ9TZkO42lc81F0D6yiTMCFpzTKNrUIO7JSoD8aQxAWJbI5Kly4yg== dependencies: "@nuxt/friendly-errors-webpack-plugin" "^2.5.1" - assets-webpack-plugin "7.0.*" - babel-loader "^9.1.3" - chalk "^4.0.0" - clean-webpack-plugin "^4.0.0" - css-loader "^6.7.0" - css-minimizer-webpack-plugin "^5.0.0" + babel-loader "^9.1.3 || ^10.0.0" + css-loader "^7.1.0" + css-minimizer-webpack-plugin "^7.0.0" fastest-levenshtein "^1.0.16" mini-css-extract-plugin "^2.6.0" + picocolors "^1.1.0" pretty-error "^4.0.0" resolve-url-loader "^5.0.0" semver "^7.3.2" - style-loader "^3.3.0" - sync-rpc "^1.3.6" + style-loader "^3.3.0 || ^4.0.0" tapable "^2.2.1" terser-webpack-plugin "^5.3.0" - tmp "^0.2.1" - webpack-dev-server "^4.8.0" + tmp "^0.2.5" + webpack-manifest-plugin "^5.0.1" yargs-parser "^21.0.0" -"@trysound/sax@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" - integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== - -"@types/body-parser@*": - version "1.19.5" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" - integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== - dependencies: - "@types/connect" "*" - "@types/node" "*" - -"@types/bonjour@^3.5.9": - version "3.5.13" - resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956" - integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== - dependencies: - "@types/node" "*" - -"@types/connect-history-api-fallback@^1.3.5": - version "1.5.4" - resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" - integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== - dependencies: - "@types/express-serve-static-core" "*" - "@types/node" "*" - -"@types/connect@*": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" - integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== - dependencies: - "@types/node" "*" - "@types/eslint-scope@^3.7.7": version "3.7.7" resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" @@ -1047,52 +988,12 @@ "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*", "@types/estree@^1.0.6": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" - integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== +"@types/estree@*", "@types/estree@^1.0.8": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" + integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== -"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": - version "4.17.42" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.42.tgz#2a276952acc73d1b8dc63fd4210647abbc553a71" - integrity sha512-ckM3jm2bf/MfB3+spLPWYPUH573plBFwpOhqQ2WottxYV85j1HQFlxmnTq57X1yHY9awZPig06hL/cLMgNWHIQ== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - "@types/send" "*" - -"@types/express@*", "@types/express@^4.17.13": - version "4.17.21" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" - integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.33" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/glob@^7.1.1": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - -"@types/http-errors@*": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" - integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== - -"@types/http-proxy@^1.17.8": - version "1.17.14" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.14.tgz#57f8ccaa1c1c3780644f8a94f9c6b5000b5e2eec" - integrity sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w== - dependencies: - "@types/node" "*" - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.6": version "2.0.6" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== @@ -1104,7 +1005,7 @@ dependencies: "@types/istanbul-lib-coverage" "*" -"@types/istanbul-reports@^3.0.0": +"@types/istanbul-reports@^3.0.4": version "3.0.4" resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== @@ -1116,100 +1017,35 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== -"@types/mime@*": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.4.tgz#2198ac274de6017b44d941e00261d5bc6a0e0a45" - integrity sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw== - -"@types/mime@^1": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" - integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== - -"@types/minimatch@*": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" - integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== - -"@types/node-forge@^1.3.0": - version "1.3.11" - resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.11.tgz#0972ea538ddb0f4d9c2fa0ec5db5724773a604da" - integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== - dependencies: - "@types/node" "*" - "@types/node@*": - version "20.11.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.10.tgz#6c3de8974d65c362f82ee29db6b5adf4205462f9" - integrity sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg== + version "25.0.8" + resolved "https://registry.yarnpkg.com/@types/node/-/node-25.0.8.tgz#e54e00f94fe1db2497b3e42d292b8376a2678c8d" + integrity sha512-powIePYMmC3ibL0UJ2i2s0WIbq6cg6UyVFQxSCpaPxxzAaziRfimGivjdF943sSGV6RADVbk0Nvlm5P/FB44Zg== dependencies: - undici-types "~5.26.4" + undici-types "~7.16.0" -"@types/qs@*": - version "6.9.11" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.11.tgz#208d8a30bc507bd82e03ada29e4732ea46a6bbda" - integrity sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ== - -"@types/range-parser@*": - version "1.2.7" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" - integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== - -"@types/retry@0.12.0": - version "0.12.0" - resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" - integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== - -"@types/send@*": - version "0.17.4" - resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" - integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== - dependencies: - "@types/mime" "^1" - "@types/node" "*" - -"@types/serve-index@^1.9.1": - version "1.9.4" - resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898" - integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== - dependencies: - "@types/express" "*" - -"@types/serve-static@*", "@types/serve-static@^1.13.10": - version "1.15.5" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.5.tgz#15e67500ec40789a1e8c9defc2d32a896f05b033" - integrity sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ== - dependencies: - "@types/http-errors" "*" - "@types/mime" "*" - "@types/node" "*" - -"@types/sockjs@^0.3.33": - version "0.3.36" - resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535" - integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== - dependencies: - "@types/node" "*" - -"@types/ws@^8.5.5": - version "8.5.10" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787" - integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== - dependencies: - "@types/node" "*" +"@types/sarif@^2.1.7": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@types/sarif/-/sarif-2.1.7.tgz#dab4d16ba7568e9846c454a8764f33c5d98e5524" + integrity sha512-kRz0VEkJqWLf1LLVN4pT1cg1Z9wAuvI6L97V3m2f5B76Tg8d413ddvLBPTEHAZJlnn4XSvu0FkZtViCQGVyrXQ== "@types/yargs-parser@*": version "21.0.3" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== -"@types/yargs@^17.0.8": - version "17.0.32" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229" - integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog== +"@types/yargs@^17.0.33": + version "17.0.35" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.35.tgz#07013e46aa4d7d7d50a49e15604c1c5340d4eb24" + integrity sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg== dependencies: "@types/yargs-parser" "*" +"@ungap/structured-clone@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" + integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== + "@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1": version "1.14.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz#a9f6a07f2b03c95c8d38c4536a1fdfb521ff55b6" @@ -1331,20 +1167,20 @@ "@webassemblyjs/ast" "1.14.1" "@xtuc/long" "4.2.2" -"@webpack-cli/configtest@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.1.1.tgz#3b2f852e91dac6e3b85fb2a314fb8bef46d94646" - integrity sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw== +"@webpack-cli/configtest@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-3.0.1.tgz#76ac285b9658fa642ce238c276264589aa2b6b57" + integrity sha512-u8d0pJ5YFgneF/GuvEiDA61Tf1VDomHHYMjv/wc9XzYj7nopltpG96nXN5dJRstxZhcNpV1g+nT6CydO7pHbjA== -"@webpack-cli/info@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.2.tgz#cc3fbf22efeb88ff62310cf885c5b09f44ae0fdd" - integrity sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A== +"@webpack-cli/info@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-3.0.1.tgz#3cff37fabb7d4ecaab6a8a4757d3826cf5888c63" + integrity sha512-coEmDzc2u/ffMvuW9aCjoRzNSPDl/XLuhPdlFRpT9tZHmJ/039az33CE7uH+8s0uL1j5ZNtfdv0HkfaKRBGJsQ== -"@webpack-cli/serve@^2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.5.tgz#325db42395cd49fe6c14057f9a900e427df8810e" - integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ== +"@webpack-cli/serve@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-3.0.1.tgz#bd8b1f824d57e30faa19eb78e4c0951056f72f00" + integrity sha512-sbgw03xQaCLiT6gcY/6u3qBDn01CWw/nbaXl3gTdTFuJJ75Gffv3E3DBpgvY2fkkrdS1fpjaXNOmJlnbtKauKg== "@xtuc/ieee754@^1.2.0": version "1.2.0" @@ -1356,23 +1192,20 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" +acorn-import-phases@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz#16eb850ba99a056cb7cbfe872ffb8972e18c8bd7" + integrity sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ== acorn@^7.1.1: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.14.0, acorn@^8.8.2: - version "8.14.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" - integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== +acorn@^8.15.0: + version "8.15.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" + integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== adjust-sourcemap-loader@^4.0.0: version "4.0.0" @@ -1412,19 +1245,14 @@ ajv@^6.12.5: uri-js "^4.2.2" ajv@^8.0.0, ajv@^8.9.0: - version "8.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" - integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + version "8.17.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" + integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== dependencies: - fast-deep-equal "^3.1.1" + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" json-schema-traverse "^1.0.0" require-from-string "^2.0.2" - uri-js "^4.2.2" - -ansi-html-community@^0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" - integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== ansi-regex@^5.0.1: version "5.0.1" @@ -1445,86 +1273,46 @@ ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== - -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== - asap@~2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== assert-never@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/assert-never/-/assert-never-1.2.1.tgz#11f0e363bf146205fb08193b5c7b90f4d1cf44fe" - integrity sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw== - -assets-webpack-plugin@7.0.*: - version "7.0.0" - resolved "https://registry.yarnpkg.com/assets-webpack-plugin/-/assets-webpack-plugin-7.0.0.tgz#c61ed7466f35ff7a4d90d7070948736f471b8804" - integrity sha512-DMZ9r6HFxynWeONRMhSOFTvTrmit5dovdoUKdJgCG03M6CC7XiwNImPH+Ad1jaVrQ2n59e05lBhte52xPt4MSA== - dependencies: - camelcase "^6.0.0" - escape-string-regexp "^4.0.0" - lodash "^4.17.20" - -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + version "1.4.0" + resolved "https://registry.yarnpkg.com/assert-never/-/assert-never-1.4.0.tgz#b0d4988628c87f35eb94716cc54422a63927e175" + integrity sha512-5oJg84os6NMQNl27T9LnZkvvqzvAnHu03ShCnoj6bsJwS7L8AO4lf+C/XjK/nvzEqQB744moC6V128RucQd1jA== -babel-loader@^9.1.3: - version "9.1.3" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-9.1.3.tgz#3d0e01b4e69760cc694ee306fe16d358aa1c6f9a" - integrity sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw== +"babel-loader@^9.1.3 || ^10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-10.0.0.tgz#b9743714c0e1e084b3e4adef3cd5faee33089977" + integrity sha512-z8jt+EdS61AMw22nSfoNJAZ0vrtmhPRVi6ghL3rCeRZI8cdNYFiV5xeV3HbE7rlZZNmGH8BVccwWt8/ED0QOHA== dependencies: - find-cache-dir "^4.0.0" - schema-utils "^4.0.0" + find-up "^5.0.0" -babel-plugin-polyfill-corejs2@^0.4.10: - version "0.4.12" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz#ca55bbec8ab0edeeef3d7b8ffd75322e210879a9" - integrity sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og== +babel-plugin-polyfill-corejs2@^0.4.14: + version "0.4.14" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz#8101b82b769c568835611542488d463395c2ef8f" + integrity sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg== dependencies: - "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.6.3" + "@babel/compat-data" "^7.27.7" + "@babel/helper-define-polyfill-provider" "^0.6.5" semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz#4e4e182f1bb37c7ba62e2af81d8dd09df31344f6" - integrity sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ== +babel-plugin-polyfill-corejs3@^0.13.0: + version "0.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz#bb7f6aeef7addff17f7602a08a6d19a128c30164" + integrity sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A== dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.3" - core-js-compat "^3.40.0" + "@babel/helper-define-polyfill-provider" "^0.6.5" + core-js-compat "^3.43.0" -babel-plugin-polyfill-regenerator@^0.6.1: - version "0.6.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz#abeb1f3f1c762eace37587f42548b08b57789bc8" - integrity sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q== +babel-plugin-polyfill-regenerator@^0.6.5: + version "0.6.5" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz#32752e38ab6f6767b92650347bf26a31b16ae8c5" + integrity sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg== dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.3" + "@babel/helper-define-polyfill-provider" "^0.6.5" babel-walk@3.0.0-canary-5: version "3.0.0-canary-5" @@ -1533,60 +1321,29 @@ babel-walk@3.0.0-canary-5: dependencies: "@babel/types" "^7.9.6" -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +badgen@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/badgen/-/badgen-3.2.3.tgz#d050e3fa99e5929e9b93cab98d8fb612b5a8b2ef" + integrity sha512-svDuwkc63E/z0ky3drpUppB83s/nlgDciH9m+STwwQoWyq7yCgew1qEfJ+9axkKdNq7MskByptWUN9j1PGMwFA== -batch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== +baseline-browser-mapping@^2.9.0: + version "2.9.14" + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.9.14.tgz#3b6af0bc032445bca04de58caa9a87cfe921cbb3" + integrity sha512-B0xUquLkiGLgHhpPBqvl7GWegWBUNuujQ6kXd/r1U38ElPT6Ok8KZ8e+FpUGEc2ZoRQUzq/aUnaKFc/svWUGSg== big.js@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -blamer@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/blamer/-/blamer-1.0.6.tgz#653fd72ab396efe180bae65d24919a8eda841944" - integrity sha512-fv7QToPS87oD1m1bDDTf29zC/bVKJxj2Nqh1r/v4NhMtbnzDIbWOHBYIfxCjlmkVGu3FGOjKgdNG3SFm7TkvBQ== +blamer@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/blamer/-/blamer-1.0.7.tgz#b545bd27c6ba583ba3189707af6b4bf76f66520e" + integrity sha512-GbBStl/EVlSWkiJQBZps3H1iARBrC7vt++Jb/TTmCNu/jZ04VW7tSN1nScbFXBUy1AN+jzeL7Zep9sbQxLhXKA== dependencies: execa "^4.0.0" which "^2.0.2" -body-parser@1.20.3: - version "1.20.3" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6" - integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== - dependencies: - bytes "3.1.2" - content-type "~1.0.5" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.13.0" - raw-body "2.5.2" - type-is "~1.6.18" - unpipe "1.0.0" - -bonjour-service@^1.0.11: - version "1.2.1" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.2.1.tgz#eb41b3085183df3321da1264719fbada12478d02" - integrity sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw== - dependencies: - fast-deep-equal "^3.1.3" - multicast-dns "^7.2.5" - boolbase@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" @@ -1597,70 +1354,49 @@ bootstrap-less@^3.3.8: resolved "https://registry.yarnpkg.com/bootstrap-less/-/bootstrap-less-3.3.8.tgz#71f29dd5a7fffedfe89f1605bbadfe0a338dae53" integrity sha512-OooZ0uabOUyktvjgXpoJaGZfyZ0tQ2zij449tIZ2gQ6+TEDrnRxVlOXq+O8NwCRwI9/RA39VQfcelWQ8qPMhUw== -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^3.0.3, braces@~3.0.2: +braces@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: fill-range "^7.1.1" -browserslist@^4.0.0, browserslist@^4.22.2, browserslist@^4.24.0, browserslist@^4.24.4: - version "4.24.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.4.tgz#c6b2865a3f08bcb860a0e827389003b9fe686e4b" - integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A== +browserslist@^4.0.0, browserslist@^4.24.0, browserslist@^4.27.0, browserslist@^4.28.0, browserslist@^4.28.1: + version "4.28.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.1.tgz#7f534594628c53c63101079e27e40de490456a95" + integrity sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA== dependencies: - caniuse-lite "^1.0.30001688" - electron-to-chromium "^1.5.73" - node-releases "^2.0.19" - update-browserslist-db "^1.1.1" + baseline-browser-mapping "^2.9.0" + caniuse-lite "^1.0.30001759" + electron-to-chromium "^1.5.263" + node-releases "^2.0.27" + update-browserslist-db "^1.2.0" buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== - -bytes@3.1.2, bytes@^3.1.0: +bytes@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== - dependencies: - function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" - -call-bind@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" - integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== +call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== dependencies: - es-define-property "^1.0.0" es-errors "^1.3.0" function-bind "^1.1.2" - get-intrinsic "^1.2.4" - set-function-length "^1.2.1" -camelcase@^6.0.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== +call-bound@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a" + integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== + dependencies: + call-bind-apply-helpers "^1.0.2" + get-intrinsic "^1.3.0" caniuse-api@^3.0.0: version "3.0.0" @@ -1672,15 +1408,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0: - version "1.0.30001581" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz#0dfd4db9e94edbdca67d57348ebc070dece279f4" - integrity sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ== - -caniuse-lite@^1.0.30001688: - version "1.0.30001701" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001701.tgz#ad9c90301f7153cf6b3314d16cc30757285bf9e7" - integrity sha512-faRs/AW3jA9nTwmJBSO1PQ6L/EOgsB5HMQQq4iCu5zhPgVVgO/pZRHlmatwijZKetFw8/Pr4q6dEN8sJuq8qTw== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001759: + version "1.0.30001764" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001764.tgz#03206c56469f236103b90f9ae10bcb8b9e1f6005" + integrity sha512-9JGuzl2M+vPL+pz70gtMF9sHdMFbY9FJaQBi186cHKH3pSzDvzoUJUPV6fqiKIMyXbud9ZLg4F3Yza1vJ1+93g== chalk@^2.4.2: version "2.4.2" @@ -1691,7 +1422,7 @@ chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0: +chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -1706,42 +1437,20 @@ character-parser@^2.2.0: dependencies: is-regex "^1.0.3" -chokidar@^3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - chrome-trace-event@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" - integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== - -ci-info@^3.2.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" - integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + version "1.0.4" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" + integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== -clean-webpack-plugin@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/clean-webpack-plugin/-/clean-webpack-plugin-4.0.0.tgz#72947d4403d452f38ed61a9ff0ada8122aacd729" - integrity sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w== - dependencies: - del "^4.1.1" +ci-info@^4.2.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.3.1.tgz#355ad571920810b5623e11d40232f443f16f1daa" + integrity sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA== -cli-table3@^0.6.0: - version "0.6.3" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" - integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg== +cli-table3@^0.6.5: + version "0.6.5" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.5.tgz#013b91351762739c16a9567c21a04632e449bf2f" + integrity sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ== dependencies: string-width "^4.2.0" optionalDependencies: @@ -1780,25 +1489,30 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colord@^2.9.1: +colord@^2.9.3: version "2.9.3" resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== -colorette@^2.0.10, colorette@^2.0.14: +colorette@^2.0.14: version "2.0.20" resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== -colors@1.4.0: +colors@1.4.0, colors@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== -commander@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" - integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== +commander@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906" + integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== + +commander@^12.1.0: + version "12.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" + integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== commander@^2.20.0: version "2.20.3" @@ -1810,50 +1524,10 @@ commander@^5.0.0: resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== -commander@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - -common-path-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" - integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== - -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -connect-history-api-fallback@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" - integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== - consola@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/consola/-/consola-3.2.3.tgz#0741857aa88cfa0d6fd53f1cff0375136e98502f" - integrity sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ== + version "3.4.2" + resolved "https://registry.yarnpkg.com/consola/-/consola-3.4.2.tgz#5af110145397bb67afdab77013fdc34cae590ea7" + integrity sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA== constantinople@^4.0.1: version "4.0.1" @@ -1863,18 +1537,6 @@ constantinople@^4.0.1: "@babel/parser" "^7.6.0" "@babel/types" "^7.6.1" -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-type@~1.0.4, content-type@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" - integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== - convert-source-map@^1.7.0: version "1.9.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" @@ -1885,16 +1547,6 @@ convert-source-map@^2.0.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== - -cookie@0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" - integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== - copy-anything@^2.0.1: version "2.0.6" resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.6.tgz#092454ea9584a7b7ad5573062b2a87f5900fc480" @@ -1902,22 +1554,17 @@ copy-anything@^2.0.1: dependencies: is-what "^3.14.1" -core-js-compat@^3.40.0: - version "3.41.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.41.0.tgz#4cdfce95f39a8f27759b667cf693d96e5dda3d17" - integrity sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A== +core-js-compat@^3.43.0: + version "3.47.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.47.0.tgz#698224bbdbb6f2e3f39decdda4147b161e3772a3" + integrity sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ== dependencies: - browserslist "^4.24.4" + browserslist "^4.28.0" core-js@^3.42.0: - version "3.42.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.42.0.tgz#edbe91f78ac8cfb6df8d997e74d368a68082fe37" - integrity sha512-Sz4PP4ZA+Rq4II21qkNqOEDTDrCvcANId3xpIgB34NDkWc3UduWj2dqEtN9yZIq8Dk3HyPI33x9sqqU5C8sr0g== - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + version "3.47.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.47.0.tgz#436ef07650e191afeb84c24481b298bd60eb4a17" + integrity sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg== cross-spawn@^7.0.0, cross-spawn@^7.0.3: version "7.0.6" @@ -1928,36 +1575,36 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -css-declaration-sorter@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-7.1.1.tgz#9796bcc257b4647c39993bda8d431ce32b666f80" - integrity sha512-dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ== +css-declaration-sorter@^7.2.0: + version "7.3.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-7.3.1.tgz#acd204976d7ca5240b5579bfe6e73d4d088fd568" + integrity sha512-gz6x+KkgNCjxq3Var03pRYLhyNfwhkKF1g/yoLgDNtFvVu0/fOLV9C8fFEZRjACp/XQLumjAYo7JVjzH3wLbxA== -css-loader@^6.7.0: - version "6.9.1" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.9.1.tgz#9ec9a434368f2bdfeffbf8f6901a1ce773586c6b" - integrity sha512-OzABOh0+26JKFdMzlK6PY1u5Zx8+Ck7CVRlcGNZoY9qwJjdfu2VWFuprTIpPW+Av5TZTVViYWcFQaEEQURLknQ== +css-loader@^7.1.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-7.1.2.tgz#64671541c6efe06b0e22e750503106bdd86880f8" + integrity sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA== dependencies: icss-utils "^5.1.0" postcss "^8.4.33" - postcss-modules-extract-imports "^3.0.0" - postcss-modules-local-by-default "^4.0.4" - postcss-modules-scope "^3.1.1" + postcss-modules-extract-imports "^3.1.0" + postcss-modules-local-by-default "^4.0.5" + postcss-modules-scope "^3.2.0" postcss-modules-values "^4.0.0" postcss-value-parser "^4.2.0" semver "^7.5.4" -css-minimizer-webpack-plugin@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz#33effe662edb1a0bf08ad633c32fa75d0f7ec565" - integrity sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg== +css-minimizer-webpack-plugin@^7.0.0: + version "7.0.4" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-7.0.4.tgz#92d2643e3658e3f484a70382a5dba18e51997f2e" + integrity sha512-2iACis+P8qdLj1tHcShtztkGhCNIRUajJj7iX0IM9a5FA0wXGwjV8Nf6+HsBjBfb4LO8TTAVoetBbM54V6f3+Q== dependencies: - "@jridgewell/trace-mapping" "^0.3.18" - cssnano "^6.0.1" - jest-worker "^29.4.3" - postcss "^8.4.24" - schema-utils "^4.0.1" - serialize-javascript "^6.0.1" + "@jridgewell/trace-mapping" "^0.3.25" + cssnano "^7.0.4" + jest-worker "^30.0.5" + postcss "^8.4.40" + schema-utils "^4.2.0" + serialize-javascript "^6.0.2" css-select@^4.1.3: version "4.3.0" @@ -1971,9 +1618,9 @@ css-select@^4.1.3: nth-check "^2.0.1" css-select@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" - integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== + version "5.2.2" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.2.2.tgz#01b6e8d163637bb2dd6c982ca4ed65863682786e" + integrity sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw== dependencies: boolbase "^1.0.0" css-what "^6.1.0" @@ -1981,12 +1628,12 @@ css-select@^5.1.0: domutils "^3.0.1" nth-check "^2.0.1" -css-tree@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" - integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== +css-tree@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-3.1.0.tgz#7aabc035f4e66b5c86f54570d55e05b1346eb0fd" + integrity sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w== dependencies: - mdn-data "2.0.30" + mdn-data "2.12.2" source-map-js "^1.0.1" css-tree@~2.2.0: @@ -1998,62 +1645,63 @@ css-tree@~2.2.0: source-map-js "^1.0.1" css-what@^6.0.1, css-what@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" - integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + version "6.2.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.2.2.tgz#cdcc8f9b6977719fdfbd1de7aec24abf756b9dea" + integrity sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA== cssesc@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-6.0.3.tgz#b4ce755974f4dc8d3d09ac13bb6281cce3ced45e" - integrity sha512-4y3H370aZCkT9Ev8P4SO4bZbt+AExeKhh8wTbms/X7OLDo5E7AYUUy6YPxa/uF5Grf+AJwNcCnxKhZynJ6luBA== - dependencies: - css-declaration-sorter "^7.1.1" - cssnano-utils "^4.0.1" - postcss-calc "^9.0.1" - postcss-colormin "^6.0.2" - postcss-convert-values "^6.0.2" - postcss-discard-comments "^6.0.1" - postcss-discard-duplicates "^6.0.1" - postcss-discard-empty "^6.0.1" - postcss-discard-overridden "^6.0.1" - postcss-merge-longhand "^6.0.2" - postcss-merge-rules "^6.0.3" - postcss-minify-font-values "^6.0.1" - postcss-minify-gradients "^6.0.1" - postcss-minify-params "^6.0.2" - postcss-minify-selectors "^6.0.2" - postcss-normalize-charset "^6.0.1" - postcss-normalize-display-values "^6.0.1" - postcss-normalize-positions "^6.0.1" - postcss-normalize-repeat-style "^6.0.1" - postcss-normalize-string "^6.0.1" - postcss-normalize-timing-functions "^6.0.1" - postcss-normalize-unicode "^6.0.2" - postcss-normalize-url "^6.0.1" - postcss-normalize-whitespace "^6.0.1" - postcss-ordered-values "^6.0.1" - postcss-reduce-initial "^6.0.2" - postcss-reduce-transforms "^6.0.1" - postcss-svgo "^6.0.2" - postcss-unique-selectors "^6.0.2" - -cssnano-utils@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-4.0.1.tgz#fd18b42f95938bf55ab47967705355d6047bf1da" - integrity sha512-6qQuYDqsGoiXssZ3zct6dcMxiqfT6epy7x4R0TQJadd4LWO3sPR6JH6ZByOvVLoZ6EdwPGgd7+DR1EmX3tiXQQ== +cssnano-preset-default@^7.0.10: + version "7.0.10" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-7.0.10.tgz#4fb6ee962c0852a03084e8c7a4b60fb0e2db45e0" + integrity sha512-6ZBjW0Lf1K1Z+0OKUAUpEN62tSXmYChXWi2NAA0afxEVsj9a+MbcB1l5qel6BHJHmULai2fCGRthCeKSFbScpA== + dependencies: + browserslist "^4.27.0" + css-declaration-sorter "^7.2.0" + cssnano-utils "^5.0.1" + postcss-calc "^10.1.1" + postcss-colormin "^7.0.5" + postcss-convert-values "^7.0.8" + postcss-discard-comments "^7.0.5" + postcss-discard-duplicates "^7.0.2" + postcss-discard-empty "^7.0.1" + postcss-discard-overridden "^7.0.1" + postcss-merge-longhand "^7.0.5" + postcss-merge-rules "^7.0.7" + postcss-minify-font-values "^7.0.1" + postcss-minify-gradients "^7.0.1" + postcss-minify-params "^7.0.5" + postcss-minify-selectors "^7.0.5" + postcss-normalize-charset "^7.0.1" + postcss-normalize-display-values "^7.0.1" + postcss-normalize-positions "^7.0.1" + postcss-normalize-repeat-style "^7.0.1" + postcss-normalize-string "^7.0.1" + postcss-normalize-timing-functions "^7.0.1" + postcss-normalize-unicode "^7.0.5" + postcss-normalize-url "^7.0.1" + postcss-normalize-whitespace "^7.0.1" + postcss-ordered-values "^7.0.2" + postcss-reduce-initial "^7.0.5" + postcss-reduce-transforms "^7.0.1" + postcss-svgo "^7.1.0" + postcss-unique-selectors "^7.0.4" + +cssnano-utils@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-5.0.1.tgz#f529e9aa0d7930512ca45b9e2ddb8d6b9092eb30" + integrity sha512-ZIP71eQgG9JwjVZsTPSqhc6GHgEr53uJ7tK5///VfyWj6Xp2DBmixWHqJgPno+PqATzn48pL42ww9x5SSGmhZg== -cssnano@^6.0.1: - version "6.0.3" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-6.0.3.tgz#46db972da71aa159437287fb4c6bc9c5d3cc5d93" - integrity sha512-MRq4CIj8pnyZpcI2qs6wswoYoDD1t0aL28n+41c1Ukcpm56m1h6mCexIHBGjfZfnTqtGSSCP4/fB1ovxgjBOiw== +cssnano@^7.0.4: + version "7.1.2" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-7.1.2.tgz#a8a533a8f509d74b2d22e73d80ec1294f65fdc70" + integrity sha512-HYOPBsNvoiFeR1eghKD5C3ASm64v9YVyJB4Ivnl2gqKoQYvjjN/G0rztvKQq8OxocUtC6sjqY8jwYngIB4AByA== dependencies: - cssnano-preset-default "^6.0.3" - lilconfig "^3.0.0" + cssnano-preset-default "^7.0.10" + lilconfig "^3.1.3" csso@^5.0.5: version "5.0.5" @@ -2062,89 +1710,12 @@ csso@^5.0.5: dependencies: css-tree "~2.2.0" -debug@2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -default-gateway@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" - integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== - dependencies: - execa "^5.0.0" - -define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== +debug@^4.1.0, debug@^4.3.1, debug@^4.4.1: + version "4.4.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" + integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== dependencies: - get-intrinsic "^1.2.1" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - -define-data-property@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" - integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== - dependencies: - es-define-property "^1.0.0" - es-errors "^1.3.0" - gopd "^1.0.1" - -define-lazy-prop@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" - integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== - -del@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" - integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== - dependencies: - "@types/glob" "^7.1.1" - globby "^6.1.0" - is-path-cwd "^2.0.0" - is-path-in-cwd "^2.0.0" - p-map "^2.0.0" - pify "^4.0.1" - rimraf "^2.6.3" - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -detect-node@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" - integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== - -dns-packet@^5.2.2: - version "5.6.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" - integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== - dependencies: - "@leichtgewicht/ip-codec" "^2.0.1" + ms "^2.1.3" doctypes@^1.1.0: version "1.1.0" @@ -2205,23 +1776,27 @@ domutils@^2.5.2, domutils@^2.8.0: domhandler "^4.2.0" domutils@^3.0.1: - version "3.1.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" - integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== + version "3.2.2" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.2.2.tgz#edbfe2b668b0c1d97c24baf0f1062b132221bc78" + integrity sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw== dependencies: dom-serializer "^2.0.0" domelementtype "^2.3.0" domhandler "^5.0.3" -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== +dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== + dependencies: + call-bind-apply-helpers "^1.0.1" + es-errors "^1.3.0" + gopd "^1.2.0" -electron-to-chromium@^1.5.73: - version "1.5.109" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.109.tgz#905a573d2b4cbb31412a2de6267fb22cf45e097e" - integrity sha512-AidaH9JETVRr9DIPGfp1kAarm/W6hRJTPuCnkF+2MqhF4KaAgRIcBc8nvjk+YMXZhwfISof/7WG29eS4iGxQLQ== +electron-to-chromium@^1.5.263: + version "1.5.267" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz#5d84f2df8cdb6bfe7e873706bb21bd4bfb574dc7" + integrity sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw== emoji-regex@^8.0.0: version "8.0.0" @@ -2233,27 +1808,17 @@ emojis-list@^3.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - -encodeurl@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" - integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== - end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + version "1.4.5" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.5.tgz#7344d711dea40e0b74abc2ed49778743ccedb08c" + integrity sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg== dependencies: once "^1.4.0" -enhanced-resolve@^5.17.1: - version "5.17.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz#67bfbbcc2f81d511be77d686a90267ef7f898a15" - integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg== +enhanced-resolve@^5.17.4: + version "5.18.4" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz#c22d33055f3952035ce6a144ce092447c525f828" + integrity sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -2268,10 +1833,10 @@ entities@^4.2.0: resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== -envinfo@^7.7.3: - version "7.11.0" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.11.0.tgz#c3793f44284a55ff8c82faf1ffd91bc6478ea01f" - integrity sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg== +envinfo@^7.14.0: + version "7.21.0" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.21.0.tgz#04a251be79f92548541f37d13c8b6f22940c3bae" + integrity sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow== errno@^0.1.1: version "0.1.8" @@ -2287,43 +1852,38 @@ error-stack-parser@^2.1.4: dependencies: stackframe "^1.3.4" -es-define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" - integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== - dependencies: - get-intrinsic "^1.2.4" +es-define-property@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== es-errors@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== -es-module-lexer@^1.2.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.4.1.tgz#41ea21b43908fe6a287ffcbe4300f790555331f5" - integrity sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w== +es-module-lexer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-2.0.0.tgz#f657cd7a9448dcdda9c070a3cb75e5dc1e85f5b1" + integrity sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw== + +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" + integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== + dependencies: + es-errors "^1.3.0" escalade@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== - escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - eslint-scope@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" @@ -2354,15 +1914,10 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== - -eventemitter3@^4.0.0, eventemitter3@^4.0.4: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== +eventemitter3@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== events@^3.2.0: version "3.3.0" @@ -2384,98 +1939,44 @@ execa@^4.0.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -express@^4.17.3: - version "4.20.0" - resolved "https://registry.yarnpkg.com/express/-/express-4.20.0.tgz#f1d08e591fcec770c07be4767af8eb9bcfd67c48" - integrity sha512-pLdae7I6QqShF5PnNTCVn4hI91Dx0Grkn2+IAsMTgMIKuQVte2dN9PeGSSAME2FR8anOhVA62QDIUaWVfEXVLw== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.3" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.6.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~2.0.0" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.2.0" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.3" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.10" - proxy-addr "~2.0.7" - qs "6.11.0" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.19.0" - serve-static "1.16.0" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.2.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== +fast-glob@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" + integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" glob-parent "^5.1.2" merge2 "^1.3.0" - micromatch "^4.0.4" + micromatch "^4.0.8" fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== +fast-uri@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.0.tgz#66eecff6c764c0df9b762e62ca7edcfb53b4edfa" + integrity sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA== + fastest-levenshtein@^1.0.12, fastest-levenshtein@^1.0.16: version "1.0.16" resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== fastq@^1.6.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.0.tgz#ca5e1a90b5e68f97fc8b61330d5819b82f5fab03" - integrity sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w== + version "1.20.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.20.1.tgz#ca750a10dc925bc8b18839fd203e3ef4b3ced675" + integrity sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw== dependencies: reusify "^1.0.4" -faye-websocket@^0.11.3: - version "0.11.4" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" - integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== - dependencies: - websocket-driver ">=0.5.1" - file-loader@^6.0.0: version "6.2.0" resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" @@ -2491,27 +1992,6 @@ fill-range@^7.1.1: dependencies: to-regex-range "^5.0.1" -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" - -find-cache-dir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-4.0.0.tgz#a30ee0448f81a3990708f6453633c733e2f6eec2" - integrity sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg== - dependencies: - common-path-prefix "^3.0.0" - pkg-dir "^7.0.0" - find-up@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -2520,64 +2000,33 @@ find-up@^4.0.0: locate-path "^5.0.0" path-exists "^4.0.0" -find-up@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" - integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: - locate-path "^7.1.0" - path-exists "^5.0.0" + locate-path "^6.0.0" + path-exists "^4.0.0" flat@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -follow-redirects@^1.0.0: - version "1.15.6" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" - integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== - font-awesome@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133" integrity sha512-U6kGnykA/6bFmg1M/oT9EkFeIYv7JlX3bozwQJWiiLz6L0w3F5vBVPxHlwyX/vtNq1ckcpRKOB9f2Qal/VtFpg== -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== - -fs-extra@^9.0.0, fs-extra@^9.0.1, fs-extra@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== +fs-extra@^11.1.1, fs-extra@^11.2.0: + version "11.3.3" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.3.3.tgz#a27da23b72524e81ac6c3815cc0179b8c74c59ee" + integrity sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg== dependencies: - at-least-node "^1.0.0" graceful-fs "^4.2.0" jsonfile "^6.0.1" universalify "^2.0.0" -fs-monkey@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.5.tgz#fe450175f0db0d7ea758102e1d84096acb925788" - integrity sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - function-bind@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" @@ -2588,31 +2037,29 @@ gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== - dependencies: - function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - -get-intrinsic@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" - integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== +get-intrinsic@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== dependencies: + call-bind-apply-helpers "^1.0.2" + es-define-property "^1.0.1" es-errors "^1.3.0" + es-object-atoms "^1.1.1" function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" + get-proto "^1.0.1" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.1.0" -get-port@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" - integrity sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg== +get-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== + dependencies: + dunder-proto "^1.0.1" + es-object-atoms "^1.0.0" get-stream@^5.0.0: version "5.2.0" @@ -2621,17 +2068,12 @@ get-stream@^5.0.0: dependencies: pump "^3.0.0" -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - gitignore-to-glob@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/gitignore-to-glob/-/gitignore-to-glob-0.3.0.tgz#59f32ab3d9b66ce50299c3ed24cb0ef42a094ceb" integrity sha512-mk74BdnK7lIwDHnotHddx1wsjMOFIThpLY3cPNniJ/2fA/tlLzHnFxIdR+4sLOu5KGgQJdij4kjJ2RoUNnCNMA== -glob-parent@^5.1.2, glob-parent@~5.1.2: +glob-parent@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -2643,42 +2085,12 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@^7.0.3, glob@^7.1.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw== - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" +gopd@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -2688,11 +2100,6 @@ growly@^1.3.0: resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" integrity sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw== -handle-thing@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" - integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== - has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -2703,59 +2110,25 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" - integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== - dependencies: - get-intrinsic "^1.2.2" +has-symbols@^1.0.3, has-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== -has-property-descriptors@^1.0.2: +has-tostringtag@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" - integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: - es-define-property "^1.0.0" - -has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== - -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" + has-symbols "^1.0.3" -hasown@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" - integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== +hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: function-bind "^1.1.2" -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -html-entities@^2.3.2: - version "2.4.0" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.4.0.tgz#edd0cee70402584c8c76cc2c0556db09d1f45061" - integrity sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ== - htmlparser2@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" @@ -2766,73 +2139,17 @@ htmlparser2@^6.1.0: domutils "^2.5.2" entities "^2.0.0" -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== - -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-parser-js@>=0.5.1: - version "0.5.8" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" - integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== - -http-proxy-middleware@^2.0.3: - version "2.0.9" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz#e9e63d68afaa4eee3d147f39149ab84c0c2815ef" - integrity sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q== - dependencies: - "@types/http-proxy" "^1.17.8" - http-proxy "^1.18.1" - is-glob "^4.0.1" - is-plain-obj "^3.0.0" - micromatch "^4.0.2" - -http-proxy@^1.18.1: - version "1.18.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - human-signals@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== +iconv-lite@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: - safer-buffer ">= 2.1.2 < 3" + safer-buffer ">= 2.1.2 < 3.0.0" icss-utils@^5.0.0, icss-utils@^5.1.0: version "5.1.0" @@ -2845,61 +2162,26 @@ image-size@~0.5.0: integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + version "3.2.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260" + integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== dependencies: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== - interpret@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -ipaddr.js@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f" - integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== +is-core-module@^2.16.1: + version "2.16.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" + integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== dependencies: - binary-extensions "^2.0.0" + hasown "^2.0.2" -is-core-module@^2.13.0: - version "2.13.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" - integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== - dependencies: - hasown "^2.0.0" - -is-docker@^2.0.0, is-docker@^2.1.1: +is-docker@^2.0.0: version "2.2.1" resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== @@ -2922,7 +2204,7 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-glob@^4.0.1, is-glob@~4.0.1: +is-glob@^4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -2934,30 +2216,6 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-path-cwd@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== - -is-path-in-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" - integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== - dependencies: - is-path-inside "^2.1.0" - -is-path-inside@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" - integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== - dependencies: - path-is-inside "^1.0.2" - -is-plain-obj@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" - integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== - is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -2971,12 +2229,14 @@ is-promise@^2.0.0: integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== is-regex@^1.0.3: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.2.1.tgz#76d70a3ed10ef9be48eb577887d74205bf0cad22" + integrity sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g== dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" + call-bound "^1.0.2" + gopd "^1.2.0" + has-tostringtag "^1.0.2" + hasown "^2.0.2" is-stream@^2.0.0: version "2.0.1" @@ -2995,11 +2255,6 @@ is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -3010,17 +2265,22 @@ isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== -jest-util@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" - integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== +jest-regex-util@30.0.1: + version "30.0.1" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-30.0.1.tgz#f17c1de3958b67dfe485354f5a10093298f2a49b" + integrity sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA== + +jest-util@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-30.2.0.tgz#5142adbcad6f4e53c2776c067a4db3c14f913705" + integrity sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA== dependencies: - "@jest/types" "^29.6.3" + "@jest/types" "30.2.0" "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" + chalk "^4.1.2" + ci-info "^4.2.0" + graceful-fs "^4.2.11" + picomatch "^4.0.2" jest-worker@^27.4.5: version "27.5.1" @@ -3031,15 +2291,16 @@ jest-worker@^27.4.5: merge-stream "^2.0.0" supports-color "^8.0.0" -jest-worker@^29.4.3: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" - integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== +jest-worker@^30.0.5: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-30.2.0.tgz#fd5c2a36ff6058ec8f74366ec89538cc99539d26" + integrity sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g== dependencies: "@types/node" "*" - jest-util "^29.7.0" + "@ungap/structured-clone" "^1.3.0" + jest-util "30.2.0" merge-stream "^2.0.0" - supports-color "^8.0.0" + supports-color "^8.1.1" jquery@^3.5.1: version "3.7.1" @@ -3056,35 +2317,36 @@ js-tokens@^4.0.0: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -jscpd@^3.4.5: - version "3.5.10" - resolved "https://registry.yarnpkg.com/jscpd/-/jscpd-3.5.10.tgz#d9d9a3089e4da6cf147938f250980e480cce298d" - integrity sha512-lsFBSqtmGocMtF8NuCh867VRhjeSvPlGit7FYA9a9bX3GFoV65djHnWMbIWfHLb/6wCCwllmXaHuMgeMuhqo3Q== +jscpd-sarif-reporter@4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/jscpd-sarif-reporter/-/jscpd-sarif-reporter-4.0.5.tgz#ea8014d9305a18125e447e236e9a2f21f4b3e01c" + integrity sha512-cD1MtUdpomUPM5C0YD0vKZmdj+Gyr0KD5Bk47yGMrPCtwtgsK+7v59OzBIUjYOL8AuxNAt6hvPFo0PH+PYJh0Q== dependencies: - "@jscpd/core" "^3.5.4" - "@jscpd/finder" "^3.5.10" - "@jscpd/html-reporter" "^3.5.10" - "@jscpd/tokenizer" "^3.5.4" - colors "1.4.0" + colors "^1.4.0" + fs-extra "^11.2.0" + node-sarif-builder "^3.1.0" + +jscpd@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/jscpd/-/jscpd-4.0.7.tgz#a2e97c7c7baec62964836a177fa3f5f71184383f" + integrity sha512-ftw3OKgJUmAoS48TqeNOPRQbBdzzapKPF7L8auMKAp04kdOtoUuMonjVN0mruzb0zWObsh6CIWM78fzeeU29AA== + dependencies: + "@jscpd/badge-reporter" "4.0.3" + "@jscpd/core" "4.0.3" + "@jscpd/finder" "4.0.3" + "@jscpd/html-reporter" "4.0.3" + "@jscpd/tokenizer" "4.0.3" + colors "^1.4.0" commander "^5.0.0" - fs-extra "^9.1.0" + fs-extra "^11.2.0" gitignore-to-glob "^0.3.0" + jscpd-sarif-reporter "4.0.5" -jsesc@^3.0.2: +jsesc@^3.0.2, jsesc@~3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== - -jsesc@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" - integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== - json-parse-even-better-errors@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" @@ -3106,9 +2368,9 @@ json5@^2.1.2, json5@^2.2.3: integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + version "6.2.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.2.0.tgz#7c265bd1b65de6977478300087c99f1c84383f62" + integrity sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg== dependencies: universalify "^2.0.0" optionalDependencies: @@ -3127,44 +2389,37 @@ kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -launch-editor@^2.6.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.1.tgz#f259c9ef95cbc9425620bbbd14b468fcdb4ffe3c" - integrity sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw== - dependencies: - picocolors "^1.0.0" - shell-quote "^1.8.1" - -less-loader@^11.1: - version "11.1.4" - resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-11.1.4.tgz#e8a070844efaefbe59b978acaf57b9d3e868cf08" - integrity sha512-6/GrYaB6QcW6Vj+/9ZPgKKs6G10YZai/l/eJ4SLwbzqNTBsAqt5hSLVF47TgsiBxV1P6eAU0GYRH3YRuQU9V3A== +less-loader@^12.3.0: + version "12.3.0" + resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-12.3.0.tgz#d4a00361568be86a97da3df4f16954b0d4c15340" + integrity sha512-0M6+uYulvYIWs52y0LqN4+QM9TqWAohYSNTo4htE8Z7Cn3G/qQMEmktfHmyJT23k+20kU9zHH2wrfFXkxNLtVw== -less@^3.12.2: - version "3.13.1" - resolved "https://registry.yarnpkg.com/less/-/less-3.13.1.tgz#0ebc91d2a0e9c0c6735b83d496b0ab0583077909" - integrity sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw== +less@^4.5.1: + version "4.5.1" + resolved "https://registry.yarnpkg.com/less/-/less-4.5.1.tgz#739266532249a3de232e8b60ffb1b27ad5ec6ad8" + integrity sha512-UKgI3/KON4u6ngSsnDADsUERqhZknsVZbnuzlRZXLQCmfC/MDld42fTydUE9B+Mla1AL6SJ/Pp6SlEFi/AVGfw== dependencies: copy-anything "^2.0.1" - tslib "^1.10.0" + parse-node-version "^1.0.1" + tslib "^2.3.0" optionalDependencies: errno "^0.1.1" graceful-fs "^4.1.2" image-size "~0.5.0" make-dir "^2.1.0" mime "^1.4.1" - native-request "^1.0.5" + needle "^3.1.0" source-map "~0.6.0" -lilconfig@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.0.0.tgz#f8067feb033b5b74dab4602a5f5029420be749bc" - integrity sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g== +lilconfig@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.3.tgz#a1bcfd6257f9585bf5ae14ceeebb7b559025e4c4" + integrity sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw== -loader-runner@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" - integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== +loader-runner@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.1.tgz#6c76ed29b0ccce9af379208299f07f876de737e3" + integrity sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q== loader-utils@^2.0.0: version "2.0.4" @@ -3182,12 +2437,12 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -locate-path@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" - integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: - p-locate "^6.0.0" + p-locate "^5.0.0" lodash.debounce@^4.0.8: version "4.0.8" @@ -3216,13 +2471,6 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - make-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" @@ -3238,32 +2486,20 @@ markdown-table@^2.0.0: dependencies: repeat-string "^1.0.0" +math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== + mdn-data@2.0.28: version "2.0.28" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== -mdn-data@2.0.30: - version "2.0.30" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" - integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== - -memfs@^3.4.3: - version "3.6.0" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" - integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== - dependencies: - fs-monkey "^1.0.4" - -merge-descriptors@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5" - integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ== +mdn-data@2.12.2: + version "2.12.2" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.12.2.tgz#9ae6c41a9e65adf61318b32bff7b64fbfb13f8cf" + integrity sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA== merge-stream@^2.0.0: version "2.0.0" @@ -3275,12 +2511,7 @@ merge2@^1.3.0: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== - -micromatch@^4.0.2, micromatch@^4.0.4: +micromatch@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== @@ -3288,19 +2519,19 @@ micromatch@^4.0.2, micromatch@^4.0.4: braces "^3.0.3" picomatch "^2.3.1" -mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": +mime-db@1.52.0: version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.27: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" -mime@1.6.0, mime@^1.4.1: +mime@^1.4.1: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== @@ -3311,77 +2542,41 @@ mimic-fn@^2.1.0: integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== mini-css-extract-plugin@^2.6.0: - version "2.7.7" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.7.tgz#4acf02f362c641c38fb913bfcb7ca2fc4a7cf339" - integrity sha512-+0n11YGyRavUR3IlaOzJ0/4Il1avMvJ1VJfhWfCn24ITQXhRr1gghbhhrda6tgtNcpZaWKdSuwKq20Jb7fnlyw== + version "2.9.4" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.4.tgz#cafa1a42f8c71357f49cd1566810d74ff1cb0200" + integrity sha512-ZWYT7ln73Hptxqxk2DxPU9MmapXRhxkJD6tkSR04dnQxm8BGu2hzgKLugK5yySD97u/8yy7Ma7E76k9ZdvtjkQ== dependencies: schema-utils "^4.0.0" - -minimalistic-assert@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimatch@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" + tapable "^2.2.1" moment@^2.29.2: version "2.30.1" resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3: +ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multicast-dns@^7.2.5: - version "7.2.5" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" - integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== - dependencies: - dns-packet "^5.2.2" - thunky "^1.0.2" - -nanoid@^3.3.7: - version "3.3.8" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf" - integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w== - -native-request@^1.0.5: - version "1.1.0" - resolved "https://registry.yarnpkg.com/native-request/-/native-request-1.1.0.tgz#acdb30fe2eefa3e1bc8c54b3a6852e9c5c0d3cb0" - integrity sha512-uZ5rQaeRn15XmpgE0xoPL8YWqcX90VtCFglYwAgkvKM5e8fog+vePLAhHxuuv/gRkrQxIeh5U3q9sMNUrENqWw== +nanoid@^3.3.11: + version "3.3.11" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" + integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== +needle@^3.1.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/needle/-/needle-3.3.1.tgz#63f75aec580c2e77e209f3f324e2cdf3d29bd049" + integrity sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q== + dependencies: + iconv-lite "^0.6.3" + sax "^1.2.4" neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -node-forge@^1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" - integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== - node-notifier@^9.0.0: version "9.0.1" resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-9.0.1.tgz#cea837f4c5e733936c7b9005e6545cea825d1af4" @@ -3394,17 +2589,20 @@ node-notifier@^9.0.0: uuid "^8.3.0" which "^2.0.2" -node-releases@^2.0.19: - version "2.0.19" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314" - integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== +node-releases@^2.0.27: + version "2.0.27" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.27.tgz#eedca519205cf20f650f61d56b070db111231e4e" + integrity sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA== -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== +node-sarif-builder@^3.1.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/node-sarif-builder/-/node-sarif-builder-3.4.0.tgz#9c1ac026919f5977e1014f0e26d4f69f0f45becd" + integrity sha512-tGnJW6OKRii9u/b2WiUViTJS+h7Apxx17qsMUjsUeNDiMMX5ZFf8F8Fcz7PAQ6omvOxHZtvDTmOYKJQwmfpjeg== + dependencies: + "@types/sarif" "^2.1.7" + fs-extra "^11.1.1" -npm-run-path@^4.0.0, npm-run-path@^4.0.1: +npm-run-path@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== @@ -3418,61 +2616,25 @@ nth-check@^2.0.1: dependencies: boolbase "^1.0.0" -object-assign@^4.0.1, object-assign@^4.1.1: +object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.13.1: - version "1.13.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" - integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== - -object-inspect@^1.9.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" - integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== - -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== - -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" -onetime@^5.1.0, onetime@^5.1.2: +onetime@^5.1.0: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" -open@^8.0.9: - version "8.4.2" - resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" - integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== - dependencies: - define-lazy-prop "^2.0.0" - is-docker "^2.1.1" - is-wsl "^2.2.0" - p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -3480,12 +2642,12 @@ p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-limit@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" - integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: - yocto-queue "^1.0.0" + yocto-queue "^0.1.0" p-locate@^4.1.0: version "4.1.0" @@ -3494,56 +2656,28 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" -p-locate@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" - integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== - dependencies: - p-limit "^4.0.0" - -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== - -p-retry@^4.5.0: - version "4.6.2" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" - integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: - "@types/retry" "0.12.0" - retry "^0.13.1" + p-limit "^3.0.2" p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== +parse-node-version@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" + integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -path-exists@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" - integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== - path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" @@ -3554,48 +2688,26 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-to-regexp@0.1.10: - version "0.1.10" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.10.tgz#67e9108c5c0551b9e5326064387de4763c4d5f8b" - integrity sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picocolors@^1.1.1: +picocolors@^1.1.0, picocolors@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: +picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== +picomatch@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042" + integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== pify@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== - pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" @@ -3603,129 +2715,125 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" -pkg-dir@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-7.0.0.tgz#8f0c08d6df4476756c5ff29b3282d0bab7517d11" - integrity sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA== - dependencies: - find-up "^6.3.0" - -postcss-calc@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-9.0.1.tgz#a744fd592438a93d6de0f1434c572670361eb6c6" - integrity sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ== +postcss-calc@^10.1.1: + version "10.1.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-10.1.1.tgz#52b385f2e628239686eb6e3a16207a43f36064ca" + integrity sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw== dependencies: - postcss-selector-parser "^6.0.11" + postcss-selector-parser "^7.0.0" postcss-value-parser "^4.2.0" -postcss-colormin@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-6.0.2.tgz#2af9ce753937b08e058dbc6879e4aedfab42806b" - integrity sha512-TXKOxs9LWcdYo5cgmcSHPkyrLAh86hX1ijmyy6J8SbOhyv6ua053M3ZAM/0j44UsnQNIWdl8gb5L7xX2htKeLw== +postcss-colormin@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-7.0.5.tgz#0c7526289ab3f0daf96a376fd7430fae7258d5cf" + integrity sha512-ekIBP/nwzRWhEMmIxHHbXHcMdzd1HIUzBECaj5KEdLz9DVP2HzT065sEhvOx1dkLjYW7jyD0CngThx6bpFi2fA== dependencies: - browserslist "^4.22.2" + browserslist "^4.27.0" caniuse-api "^3.0.0" - colord "^2.9.1" + colord "^2.9.3" postcss-value-parser "^4.2.0" -postcss-convert-values@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-6.0.2.tgz#c4a7509aeb1cc7ac3f6948fcbffc2bf8cac7c56a" - integrity sha512-aeBmaTnGQ+NUSVQT8aY0sKyAD/BaLJenEKZ03YK0JnDE1w1Rr8XShoxdal2V2H26xTJKr3v5haByOhJuyT4UYw== +postcss-convert-values@^7.0.8: + version "7.0.8" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-7.0.8.tgz#0c599dc29891d47d7b4d6db399c402cf3ba8efc3" + integrity sha512-+XNKuPfkHTCEo499VzLMYn94TiL3r9YqRE3Ty+jP7UX4qjewUONey1t7CG21lrlTLN07GtGM8MqFVp86D4uKJg== dependencies: - browserslist "^4.22.2" + browserslist "^4.27.0" postcss-value-parser "^4.2.0" -postcss-discard-comments@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-6.0.1.tgz#46176212bd9c3e5f48aa4b8b4868786726c41d36" - integrity sha512-f1KYNPtqYLUeZGCHQPKzzFtsHaRuECe6jLakf/RjSRqvF5XHLZnM2+fXLhb8Qh/HBFHs3M4cSLb1k3B899RYIg== +postcss-discard-comments@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-7.0.5.tgz#0a95aa4d229a021bc441861d4773d57145ee15dd" + integrity sha512-IR2Eja8WfYgN5n32vEGSctVQ1+JARfu4UH8M7bgGh1bC+xI/obsPJXaBpQF7MAByvgwZinhpHpdrmXtvVVlKcQ== + dependencies: + postcss-selector-parser "^7.1.0" -postcss-discard-duplicates@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.1.tgz#112b1a95948e69b3484fdd43584dda6930977939" - integrity sha512-1hvUs76HLYR8zkScbwyJ8oJEugfPV+WchpnA+26fpJ7Smzs51CzGBHC32RS03psuX/2l0l0UKh2StzNxOrKCYg== +postcss-discard-duplicates@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.2.tgz#9cf3e659d4f94b046eef6f93679490c0250a8e4e" + integrity sha512-eTonaQvPZ/3i1ASDHOKkYwAybiM45zFIc7KXils4mQmHLqIswXD9XNOKEVxtTFnsmwYzF66u4LMgSr0abDlh5w== -postcss-discard-empty@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-6.0.1.tgz#b34cb45ec891246da4506b53e352390fdef126c4" - integrity sha512-yitcmKwmVWtNsrrRqGJ7/C0YRy53i0mjexBDQ9zYxDwTWVBgbU4+C9jIZLmQlTDT9zhml+u0OMFJh8+31krmOg== +postcss-discard-empty@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-7.0.1.tgz#b6c57e8b5c69023169abea30dceb93f98a2ffd9f" + integrity sha512-cFrJKZvcg/uxB6Ijr4l6qmn3pXQBna9zyrPC+sK0zjbkDUZew+6xDltSF7OeB7rAtzaaMVYSdbod+sZOCWnMOg== -postcss-discard-overridden@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-6.0.1.tgz#c63c559237758d74bc505452393a64dda9b19ef4" - integrity sha512-qs0ehZMMZpSESbRkw1+inkf51kak6OOzNRaoLd/U7Fatp0aN2HQ1rxGOrJvYcRAN9VpX8kUF13R2ofn8OlvFVA== +postcss-discard-overridden@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-7.0.1.tgz#bd9c9bc5e4548d3b6e67e7f8d64f2c9d745ae2a0" + integrity sha512-7c3MMjjSZ/qYrx3uc1940GSOzN1Iqjtlqe8uoSg+qdVPYyRb0TILSqqmtlSFuE4mTDECwsm397Ya7iXGzfF7lg== -postcss-merge-longhand@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-6.0.2.tgz#cd4e83014851da59545e9a906b245615550f4064" - integrity sha512-+yfVB7gEM8SrCo9w2lCApKIEzrTKl5yS1F4yGhV3kSim6JzbfLGJyhR1B6X+6vOT0U33Mgx7iv4X9MVWuaSAfw== +postcss-merge-longhand@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-7.0.5.tgz#e1b126e92f583815482e8b1e82c47d2435a20421" + integrity sha512-Kpu5v4Ys6QI59FxmxtNB/iHUVDn9Y9sYw66D6+SZoIk4QTz1prC4aYkhIESu+ieG1iylod1f8MILMs1Em3mmIw== dependencies: postcss-value-parser "^4.2.0" - stylehacks "^6.0.2" + stylehacks "^7.0.5" -postcss-merge-rules@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-6.0.3.tgz#08fcf714faaad75b1980ecd961b080ae2f8ddeb3" - integrity sha512-yfkDqSHGohy8sGYIJwBmIGDv4K4/WrJPX355XrxQb/CSsT4Kc/RxDi6akqn5s9bap85AWgv21ArcUWwWdGNSHA== +postcss-merge-rules@^7.0.7: + version "7.0.7" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-7.0.7.tgz#f49537e5029ce0e655c2f31fdb205f14575c7334" + integrity sha512-njWJrd/Ms6XViwowaaCc+/vqhPG3SmXn725AGrnl+BgTuRPEacjiLEaGq16J6XirMJbtKkTwnt67SS+e2WGoew== dependencies: - browserslist "^4.22.2" + browserslist "^4.27.0" caniuse-api "^3.0.0" - cssnano-utils "^4.0.1" - postcss-selector-parser "^6.0.15" + cssnano-utils "^5.0.1" + postcss-selector-parser "^7.1.0" -postcss-minify-font-values@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-6.0.1.tgz#788eb930168be90225f3937f0b70aa19d8b532b2" - integrity sha512-tIwmF1zUPoN6xOtA/2FgVk1ZKrLcCvE0dpZLtzyyte0j9zUeB8RTbCqrHZGjJlxOvNWKMYtunLrrl7HPOiR46w== +postcss-minify-font-values@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-7.0.1.tgz#6fb4770131b31fd5a2014bd84e32f386a3406664" + integrity sha512-2m1uiuJeTplll+tq4ENOQSzB8LRnSUChBv7oSyFLsJRtUgAAJGP6LLz0/8lkinTgxrmJSPOEhgY1bMXOQ4ZXhQ== dependencies: postcss-value-parser "^4.2.0" -postcss-minify-gradients@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-6.0.1.tgz#4faf1880b483dc37016658aa186b42194ff9b5bc" - integrity sha512-M1RJWVjd6IOLPl1hYiOd5HQHgpp6cvJVLrieQYS9y07Yo8itAr6jaekzJphaJFR0tcg4kRewCk3kna9uHBxn/w== +postcss-minify-gradients@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-7.0.1.tgz#933cb642dd00df397237c17194f37dcbe4cad739" + integrity sha512-X9JjaysZJwlqNkJbUDgOclyG3jZEpAMOfof6PUZjPnPrePnPG62pS17CjdM32uT1Uq1jFvNSff9l7kNbmMSL2A== dependencies: - colord "^2.9.1" - cssnano-utils "^4.0.1" + colord "^2.9.3" + cssnano-utils "^5.0.1" postcss-value-parser "^4.2.0" -postcss-minify-params@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-6.0.2.tgz#bd64af642fa5610281b8a9461598bbb91f92ae05" - integrity sha512-zwQtbrPEBDj+ApELZ6QylLf2/c5zmASoOuA4DzolyVGdV38iR2I5QRMsZcHkcdkZzxpN8RS4cN7LPskOkTwTZw== +postcss-minify-params@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-7.0.5.tgz#4a0d15e312252e41d0c8504227d43538e3f607a2" + integrity sha512-FGK9ky02h6Ighn3UihsyeAH5XmLEE2MSGH5Tc4tXMFtEDx7B+zTG6hD/+/cT+fbF7PbYojsmmWjyTwFwW1JKQQ== dependencies: - browserslist "^4.22.2" - cssnano-utils "^4.0.1" + browserslist "^4.27.0" + cssnano-utils "^5.0.1" postcss-value-parser "^4.2.0" -postcss-minify-selectors@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-6.0.2.tgz#62065b38d3453ddc6627ba50e4f4a2154b031aa0" - integrity sha512-0b+m+w7OAvZejPQdN2GjsXLv5o0jqYHX3aoV0e7RBKPCsB7TYG5KKWBFhGnB/iP3213Ts8c5H4wLPLMm7z28Sg== +postcss-minify-selectors@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-7.0.5.tgz#d8c89eeeb208705ab4127a464d1f54a3bc22cae3" + integrity sha512-x2/IvofHcdIrAm9Q+p06ZD1h6FPcQ32WtCRVodJLDR+WMn8EVHI1kvLxZuGKz/9EY5nAmI6lIQIrpo4tBy5+ug== dependencies: - postcss-selector-parser "^6.0.15" + cssesc "^3.0.0" + postcss-selector-parser "^7.1.0" -postcss-modules-extract-imports@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" - integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== +postcss-modules-extract-imports@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz#b4497cb85a9c0c4b5aabeb759bb25e8d89f15002" + integrity sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q== -postcss-modules-local-by-default@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.4.tgz#7cbed92abd312b94aaea85b68226d3dec39a14e6" - integrity sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q== +postcss-modules-local-by-default@^4.0.5: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz#d150f43837831dae25e4085596e84f6f5d6ec368" + integrity sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw== dependencies: icss-utils "^5.0.0" - postcss-selector-parser "^6.0.2" + postcss-selector-parser "^7.0.0" postcss-value-parser "^4.1.0" -postcss-modules-scope@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.1.1.tgz#32cfab55e84887c079a19bbb215e721d683ef134" - integrity sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA== +postcss-modules-scope@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz#1bbccddcb398f1d7a511e0a2d1d047718af4078c" + integrity sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA== dependencies: - postcss-selector-parser "^6.0.4" + postcss-selector-parser "^7.0.0" postcss-modules-values@^4.0.0: version "4.0.0" @@ -3734,127 +2842,127 @@ postcss-modules-values@^4.0.0: dependencies: icss-utils "^5.0.0" -postcss-normalize-charset@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-6.0.1.tgz#5f70e1eb8bbdbcfcbed060ef70f179e8fef57d0c" - integrity sha512-aW5LbMNRZ+oDV57PF9K+WI1Z8MPnF+A8qbajg/T8PP126YrGX1f9IQx21GI2OlGz7XFJi/fNi0GTbY948XJtXg== +postcss-normalize-charset@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-7.0.1.tgz#bccc3f7c5f4440883608eea8b444c8f41ce55ff6" + integrity sha512-sn413ofhSQHlZFae//m9FTOfkmiZ+YQXsbosqOWRiVQncU2BA3daX3n0VF3cG6rGLSFVc5Di/yns0dFfh8NFgQ== -postcss-normalize-display-values@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.1.tgz#ff9aa30bbf1283294bfd9cc8b6fb81ff060a7f2d" - integrity sha512-mc3vxp2bEuCb4LgCcmG1y6lKJu1Co8T+rKHrcbShJwUmKJiEl761qb/QQCfFwlrvSeET3jksolCR/RZuMURudw== +postcss-normalize-display-values@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.1.tgz#feb40277d89a7f677b67a84cac999f0306e38235" + integrity sha512-E5nnB26XjSYz/mGITm6JgiDpAbVuAkzXwLzRZtts19jHDUBFxZ0BkXAehy0uimrOjYJbocby4FVswA/5noOxrQ== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-positions@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-6.0.1.tgz#41ffdc72994f024c6cd6e91dbfb40ab9abe6fe90" - integrity sha512-HRsq8u/0unKNvm0cvwxcOUEcakFXqZ41fv3FOdPn916XFUrympjr+03oaLkuZENz3HE9RrQE9yU0Xv43ThWjQg== +postcss-normalize-positions@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-7.0.1.tgz#c771c0d33034455205f060b999d8557c2308d22c" + integrity sha512-pB/SzrIP2l50ZIYu+yQZyMNmnAcwyYb9R1fVWPRxm4zcUFCY2ign7rcntGFuMXDdd9L2pPNUgoODDk91PzRZuQ== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-repeat-style@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.1.tgz#55dc54b6f80305b280a379899a6626e0a07b04a8" - integrity sha512-Gbb2nmCy6tTiA7Sh2MBs3fj9W8swonk6lw+dFFeQT68B0Pzwp1kvisJQkdV6rbbMSd9brMlS8I8ts52tAGWmGQ== +postcss-normalize-repeat-style@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.1.tgz#05fe4d838eedbd996436c5cab78feef9bb1ae57b" + integrity sha512-NsSQJ8zj8TIDiF0ig44Byo3Jk9e4gNt9x2VIlJudnQQ5DhWAHJPF4Tr1ITwyHio2BUi/I6Iv0HRO7beHYOloYQ== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-string@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-6.0.1.tgz#7605e0fb4ec7bf2709709991d13a949e4419db1d" - integrity sha512-5Fhx/+xzALJD9EI26Aq23hXwmv97Zfy2VFrt5PLT8lAhnBIZvmaT5pQk+NuJ/GWj/QWaKSKbnoKDGLbV6qnhXg== +postcss-normalize-string@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-7.0.1.tgz#0f111e7b5dfb6de6ab19f09d9e1c16fabeee232f" + integrity sha512-QByrI7hAhsoze992kpbMlJSbZ8FuCEc1OT9EFbZ6HldXNpsdpZr+YXC5di3UEv0+jeZlHbZcoCADgb7a+lPmmQ== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-timing-functions@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.1.tgz#ef937b7ca2fd62ed0b46645ea5728b842a3600db" - integrity sha512-4zcczzHqmCU7L5dqTB9rzeqPWRMc0K2HoR+Bfl+FSMbqGBUcP5LRfgcH4BdRtLuzVQK1/FHdFoGT3F7rkEnY+g== +postcss-normalize-timing-functions@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.1.tgz#7b645a36f113fec49d95d56386c9980316c71216" + integrity sha512-bHifyuuSNdKKsnNJ0s8fmfLMlvsQwYVxIoUBnowIVl2ZAdrkYQNGVB4RxjfpvkMjipqvbz0u7feBZybkl/6NJg== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-unicode@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.2.tgz#361026744ff11baebaec771b60c2a5f36f274fd0" - integrity sha512-Ff2VdAYCTGyMUwpevTZPZ4w0+mPjbZzLLyoLh/RMpqUqeQKZ+xMm31hkxBavDcGKcxm6ACzGk0nBfZ8LZkStKA== +postcss-normalize-unicode@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.5.tgz#d47a3cc40529d7eeb18d7f7a8a215c38c54455cd" + integrity sha512-X6BBwiRxVaFHrb2WyBMddIeB5HBjJcAaUHyhLrM2FsxSq5TFqcHSsK7Zu1otag+o0ZphQGJewGH1tAyrD0zX1Q== dependencies: - browserslist "^4.22.2" + browserslist "^4.27.0" postcss-value-parser "^4.2.0" -postcss-normalize-url@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-6.0.1.tgz#eae58cb4f5f9a4fa5bbbf6d4222dff534ad46186" - integrity sha512-jEXL15tXSvbjm0yzUV7FBiEXwhIa9H88JOXDGQzmcWoB4mSjZIsmtto066s2iW9FYuIrIF4k04HA2BKAOpbsaQ== +postcss-normalize-url@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-7.0.1.tgz#d6471a22b6747ce93d7038c16eb9f1ba8b307e25" + integrity sha512-sUcD2cWtyK1AOL/82Fwy1aIVm/wwj5SdZkgZ3QiUzSzQQofrbq15jWJ3BA7Z+yVRwamCjJgZJN0I9IS7c6tgeQ== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-whitespace@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.1.tgz#b5933750b938814c028d3d2b2e5c0199e0037b53" - integrity sha512-76i3NpWf6bB8UHlVuLRxG4zW2YykF9CTEcq/9LGAiz2qBuX5cBStadkk0jSkg9a9TCIXbMQz7yzrygKoCW9JuA== +postcss-normalize-whitespace@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.1.tgz#ab8e9ff1f3213f3f3851c0a7d0e4ce4716777cea" + integrity sha512-vsbgFHMFQrJBJKrUFJNZ2pgBeBkC2IvvoHjz1to0/0Xk7sII24T0qFOiJzG6Fu3zJoq/0yI4rKWi7WhApW+EFA== dependencies: postcss-value-parser "^4.2.0" -postcss-ordered-values@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-6.0.1.tgz#553e735d009065b362da93340e57f43d5f2d0fbc" - integrity sha512-XXbb1O/MW9HdEhnBxitZpPFbIvDgbo9NK4c/5bOfiKpnIGZDoL2xd7/e6jW5DYLsWxBbs+1nZEnVgnjnlFViaA== +postcss-ordered-values@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-7.0.2.tgz#0e803fbb9601e254270481772252de9a8c905f48" + integrity sha512-AMJjt1ECBffF7CEON/Y0rekRLS6KsePU6PRP08UqYW4UGFRnTXNrByUzYK1h8AC7UWTZdQ9O3Oq9kFIhm0SFEw== dependencies: - cssnano-utils "^4.0.1" + cssnano-utils "^5.0.1" postcss-value-parser "^4.2.0" -postcss-reduce-initial@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-6.0.2.tgz#763d25902406c872264041df69f182eb15a5d9be" - integrity sha512-YGKalhNlCLcjcLvjU5nF8FyeCTkCO5UtvJEt0hrPZVCTtRLSOH4z00T1UntQPj4dUmIYZgMj8qK77JbSX95hSw== +postcss-reduce-initial@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-7.0.5.tgz#cf74bb747dfa003cd3d5372081f6157e6d8e1545" + integrity sha512-RHagHLidG8hTZcnr4FpyMB2jtgd/OcyAazjMhoy5qmWJOx1uxKh4ntk0Pb46ajKM0rkf32lRH4C8c9qQiPR6IA== dependencies: - browserslist "^4.22.2" + browserslist "^4.27.0" caniuse-api "^3.0.0" -postcss-reduce-transforms@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.1.tgz#7bf59d7c6e7066e3b18ef17237d2344bd3da6d75" - integrity sha512-fUbV81OkUe75JM+VYO1gr/IoA2b/dRiH6HvMwhrIBSUrxq3jNZQZitSnugcTLDi1KkQh1eR/zi+iyxviUNBkcQ== +postcss-reduce-transforms@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.1.tgz#f87111264b0dfa07e1f708d7e6401578707be5d6" + integrity sha512-MhyEbfrm+Mlp/36hvZ9mT9DaO7dbncU0CvWI8V93LRkY6IYlu38OPg3FObnuKTUxJ4qA8HpurdQOo5CyqqO76g== dependencies: postcss-value-parser "^4.2.0" -postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.15, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: - version "6.0.15" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535" - integrity sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw== +postcss-selector-parser@^7.0.0, postcss-selector-parser@^7.1.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz#e75d2e0d843f620e5df69076166f4e16f891cb9f" + integrity sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-svgo@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-6.0.2.tgz#dbc9d03e7f346bc0d82443078602a951e0214836" - integrity sha512-IH5R9SjkTkh0kfFOQDImyy1+mTCb+E830+9SV1O+AaDcoHTvfsvt6WwJeo7KwcHbFnevZVCsXhDmjFiGVuwqFQ== +postcss-svgo@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-7.1.0.tgz#7eb6764a643ac2699bf56eef6d2676d428ed4542" + integrity sha512-KnAlfmhtoLz6IuU3Sij2ycusNs4jPW+QoFE5kuuUOK8awR6tMxZQrs5Ey3BUz7nFCzT3eqyFgqkyrHiaU2xx3w== dependencies: postcss-value-parser "^4.2.0" - svgo "^3.2.0" + svgo "^4.0.0" -postcss-unique-selectors@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-6.0.2.tgz#09a34a5a31a649d3e9bca5962af0616f39d071d2" - integrity sha512-8IZGQ94nechdG7Y9Sh9FlIY2b4uS8/k8kdKRX040XHsS3B6d1HrJAkXrBSsSu4SuARruSsUjW3nlSw8BHkaAYQ== +postcss-unique-selectors@^7.0.4: + version "7.0.4" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-7.0.4.tgz#625ad1c808bdf322fab6c027ae8d4f2637140995" + integrity sha512-pmlZjsmEAG7cHd7uK3ZiNSW6otSZ13RHuZ/4cDN/bVglS5EpF2r2oxY99SuOHa8m7AWoBCelTS3JPpzsIs8skQ== dependencies: - postcss-selector-parser "^6.0.15" + postcss-selector-parser "^7.1.0" postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.2.14, postcss@^8.4.24, postcss@^8.4.33: - version "8.4.33" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742" - integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg== +postcss@^8.2.14, postcss@^8.4.33, postcss@^8.4.40: + version "8.5.6" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.6.tgz#2825006615a619b4f62a9e7426cc120b349a8f3c" + integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg== dependencies: - nanoid "^3.3.7" - picocolors "^1.0.0" - source-map-js "^1.0.2" + nanoid "^3.3.11" + picocolors "^1.1.1" + source-map-js "^1.2.1" pretty-error@^4.0.0: version "4.0.0" @@ -3864,11 +2972,6 @@ pretty-error@^4.0.0: lodash "^4.17.20" renderkid "^3.0.0" -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - promise@^7.0.1: version "7.3.1" resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" @@ -3876,14 +2979,6 @@ promise@^7.0.1: dependencies: asap "~2.0.3" -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" @@ -3912,12 +3007,7 @@ pug-code-gen@^3.0.3: void-elements "^3.1.0" with "^7.0.0" -pug-error@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pug-error/-/pug-error-2.0.0.tgz#5c62173cb09c34de2a2ce04f17b8adfec74d8ca5" - integrity sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ== - -pug-error@^2.1.0: +pug-error@^2.0.0, pug-error@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/pug-error/-/pug-error-2.1.0.tgz#17ea37b587b6443d4b8f148374ec27b54b406e55" integrity sha512-lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg== @@ -3983,7 +3073,7 @@ pug-walk@^2.0.0: resolved "https://registry.yarnpkg.com/pug-walk/-/pug-walk-2.0.0.tgz#417aabc29232bb4499b5b5069a2b2d2a24d5f5fe" integrity sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ== -pug@^3.0.1, pug@^3.0.2: +pug@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/pug/-/pug-3.0.3.tgz#e18324a314cd022883b1e0372b8af3a1a99f7597" integrity sha512-uBi6kmc9f3SZ3PXxqcHiUZLmIXgfgWooKWXcwSGwQd2Zi5Rb0bT14+8CJjJgI8AB+nndLaNgHGrcc6bPIB665g== @@ -3998,9 +3088,9 @@ pug@^3.0.1, pug@^3.0.2: pug-strip-comments "^2.0.0" pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + version "3.0.3" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.3.tgz#151d979f1a29668dc0025ec589a455b53282268d" + integrity sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA== dependencies: end-of-stream "^1.1.0" once "^1.3.1" @@ -4010,20 +3100,6 @@ punycode@^2.1.0: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== -qs@6.11.0: - version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== - dependencies: - side-channel "^1.0.4" - -qs@6.13.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" - integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== - dependencies: - side-channel "^1.0.6" - queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -4036,50 +3112,6 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" -range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" - integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -readable-stream@^2.0.1: - version "2.3.8" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.0.6: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - rechoir@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" @@ -4087,17 +3119,10 @@ rechoir@^0.8.0: dependencies: resolve "^1.20.0" -regenerate-unicode-properties@^10.1.0: - version "10.1.1" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" - integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== - dependencies: - regenerate "^1.4.2" - -regenerate-unicode-properties@^10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz#626e39df8c372338ea9b8028d1f99dc3fd9c3db0" - integrity sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA== +regenerate-unicode-properties@^10.2.2: + version "10.2.2" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz#aa113812ba899b630658c7623466be71e1f86f66" + integrity sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g== dependencies: regenerate "^1.4.2" @@ -4112,52 +3137,33 @@ regenerator-runtime@^0.14.1: integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== regex-parser@^2.2.11: - version "2.3.0" - resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.3.0.tgz#4bb61461b1a19b8b913f3960364bb57887f920ee" - integrity sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg== - -regexpu-core@^5.3.1: - version "5.3.2" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" - integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== - dependencies: - "@babel/regjsgen" "^0.8.0" - regenerate "^1.4.2" - regenerate-unicode-properties "^10.1.0" - regjsparser "^0.9.1" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.1.0" + version "2.3.1" + resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.3.1.tgz#ee3f70e50bdd81a221d505242cb9a9c275a2ad91" + integrity sha512-yXLRqatcCuKtVHsWrNg0JL3l1zGfdXeEvDa0bdu4tCDQw0RpMDZsqbkyRTUnKMR0tXF627V2oEWjBEaEdqTwtQ== -regexpu-core@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.2.0.tgz#0e5190d79e542bf294955dccabae04d3c7d53826" - integrity sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA== +regexpu-core@^6.3.1: + version "6.4.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.4.0.tgz#3580ce0c4faedef599eccb146612436b62a176e5" + integrity sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA== dependencies: regenerate "^1.4.2" - regenerate-unicode-properties "^10.2.0" + regenerate-unicode-properties "^10.2.2" regjsgen "^0.8.0" - regjsparser "^0.12.0" + regjsparser "^0.13.0" unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.1.0" + unicode-match-property-value-ecmascript "^2.2.1" regjsgen@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.8.0.tgz#df23ff26e0c5b300a6470cad160a9d090c3a37ab" integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== -regjsparser@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.12.0.tgz#0e846df6c6530586429377de56e0475583b088dc" - integrity sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ== - dependencies: - jsesc "~3.0.2" - -regjsparser@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" - integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== +regjsparser@^0.13.0: + version "0.13.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.13.0.tgz#01f8351335cf7898d43686bc74d2dd71c847ecc0" + integrity sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q== dependencies: - jsesc "~0.5.0" + jsesc "~3.1.0" renderkid@^3.0.0: version "3.0.0" @@ -4185,11 +3191,6 @@ require-from-string@^2.0.2: resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== - resolve-cwd@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" @@ -4213,38 +3214,19 @@ resolve-url-loader@^5.0.0: postcss "^8.2.14" source-map "0.6.1" -resolve@^1.14.2, resolve@^1.15.1, resolve@^1.20.0: - version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== +resolve@^1.15.1, resolve@^1.20.0, resolve@^1.22.10: + version "1.22.11" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.11.tgz#aad857ce1ffb8bfa9b0b1ac29f1156383f68c262" + integrity sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ== dependencies: - is-core-module "^2.13.0" + is-core-module "^2.16.1" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -retry@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" - integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== - reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.0, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" + version "1.1.0" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f" + integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== run-parallel@^1.1.9: version "1.2.0" @@ -4253,21 +3235,21 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: +safe-buffer@^5.1.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -"safer-buffer@>= 2.1.2 < 3": +"safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== +sax@^1.2.4, sax@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.4.tgz#f29c2bba80ce5b86f4343b4c2be9f2b96627cf8b" + integrity sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw== + schema-utils@^3.0.0: version "3.3.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" @@ -4277,29 +3259,16 @@ schema-utils@^3.0.0: ajv "^6.12.5" ajv-keywords "^3.5.2" -schema-utils@^4.0.0, schema-utils@^4.0.1, schema-utils@^4.3.0, schema-utils@^4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.2.tgz#0c10878bf4a73fd2b1dfd14b9462b26788c806ae" - integrity sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ== +schema-utils@^4.0.0, schema-utils@^4.2.0, schema-utils@^4.3.0, schema-utils@^4.3.3: + version "4.3.3" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.3.tgz#5b1850912fa31df90716963d45d9121fdfc09f46" + integrity sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA== dependencies: "@types/json-schema" "^7.0.9" ajv "^8.9.0" ajv-formats "^2.1.1" ajv-keywords "^5.1.0" -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== - -selfsigned@^2.1.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" - integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== - dependencies: - "@types/node-forge" "^1.3.0" - node-forge "^1" - semver@^5.6.0: version "5.7.2" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" @@ -4311,113 +3280,17 @@ semver@^6.3.1: integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.3.2, semver@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - -send@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" - range-parser "~1.2.1" - statuses "2.0.1" - -send@0.19.0: - version "0.19.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8" - integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" - range-parser "~1.2.1" - statuses "2.0.1" - -serialize-javascript@^6.0.1, serialize-javascript@^6.0.2: + version "7.7.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz#4b5f4143d007633a8dc671cd0a6ef9147b8bb946" + integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q== + +serialize-javascript@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== dependencies: randombytes "^2.1.0" -serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.16.0: - version "1.16.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.0.tgz#2bf4ed49f8af311b519c46f272bf6ac3baf38a92" - integrity sha512-pDLK8zwl2eKaYrs8mrPZBJua4hMplRWJ1tIFksVC3FtBEBnl8dxgeHtsaMS8DhS9i4fLObaon6ABoc4/hQGdPA== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.18.0" - -set-function-length@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1" - integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w== - dependencies: - define-data-property "^1.1.1" - function-bind "^1.1.2" - get-intrinsic "^1.2.2" - gopd "^1.0.1" - has-property-descriptors "^1.0.1" - -set-function-length@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" - integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== - dependencies: - define-data-property "^1.1.4" - es-errors "^1.3.0" - function-bind "^1.1.2" - get-intrinsic "^1.2.4" - gopd "^1.0.1" - has-property-descriptors "^1.0.2" - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - shallow-clone@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" @@ -4437,53 +3310,25 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shell-quote@^1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" - integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== - shellwords@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -side-channel@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" - integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== - dependencies: - call-bind "^1.0.7" - es-errors "^1.3.0" - get-intrinsic "^1.2.4" - object-inspect "^1.13.1" - -signal-exit@^3.0.2, signal-exit@^3.0.3: +signal-exit@^3.0.2: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -sockjs@^0.3.24: - version "0.3.24" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" - integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== - dependencies: - faye-websocket "^0.11.3" - uuid "^8.3.2" - websocket-driver "^0.7.4" +source-list-map@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== -source-map-js@^1.0.1, source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== +source-map-js@^1.0.1, source-map-js@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" + integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== source-map-support@~0.5.20: version "0.5.21" @@ -4493,54 +3338,21 @@ source-map-support@~0.5.20: buffer-from "^1.0.0" source-map "^0.6.0" -source-map@0.6.1, source-map@^0.6.0, source-map@~0.6.0: +source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -spark-md5@^3.0.1: +spark-md5@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/spark-md5/-/spark-md5-3.0.2.tgz#7952c4a30784347abcee73268e473b9c0167e3fc" integrity sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw== -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== - dependencies: - debug "^4.1.0" - detect-node "^2.0.4" - hpack.js "^2.1.6" - obuf "^1.1.2" - readable-stream "^3.0.6" - wbuf "^1.7.3" - -spdy@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" - integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" - stackframe@^1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310" integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -"statuses@>= 1.4.0 < 2": - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== - string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -4550,20 +3362,6 @@ string-width@^4.2.0, string-width@^4.2.3: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -4576,18 +3374,18 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -style-loader@^3.3.0: - version "3.3.4" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.4.tgz#f30f786c36db03a45cbd55b6a70d930c479090e7" - integrity sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w== +"style-loader@^3.3.0 || ^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-4.0.0.tgz#0ea96e468f43c69600011e0589cb05c44f3b17a5" + integrity sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA== -stylehacks@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-6.0.2.tgz#5bf2654561752547d4548765f35c9a49659b3742" - integrity sha512-00zvJGnCu64EpMjX8b5iCZ3us2Ptyw8+toEkb92VdmkEaRaSGBNKAoK6aWZckhXxmQP8zWiTaFaiMGIU8Ve8sg== +stylehacks@^7.0.5: + version "7.0.7" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-7.0.7.tgz#12b0dd1eceee4d564aae6da0632804ef0004a5be" + integrity sha512-bJkD0JkEtbRrMFtwgpJyBbFIwfDDONQ1Ov3sDLZQP8HuJ73kBOyx66H4bOcAbVWmnfLdvQ0AJwXxOMkpujcO6g== dependencies: - browserslist "^4.22.2" - postcss-selector-parser "^6.0.15" + browserslist "^4.27.0" + postcss-selector-parser "^7.1.0" supports-color@^5.3.0: version "5.5.0" @@ -4603,7 +3401,7 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-color@^8.0.0: +supports-color@^8.0.0, supports-color@^8.1.1: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== @@ -4615,35 +3413,28 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -svgo@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.2.0.tgz#7a5dff2938d8c6096e00295c2390e8e652fa805d" - integrity sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ== +svgo@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-4.0.0.tgz#17e0fa2eaccf429e0ec0d2179169abde9ba8ad3d" + integrity sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw== dependencies: - "@trysound/sax" "0.2.0" - commander "^7.2.0" + commander "^11.1.0" css-select "^5.1.0" - css-tree "^2.3.1" + css-tree "^3.0.1" css-what "^6.1.0" csso "^5.0.5" - picocolors "^1.0.0" - -sync-rpc@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/sync-rpc/-/sync-rpc-1.3.6.tgz#b2e8b2550a12ccbc71df8644810529deb68665a7" - integrity sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw== - dependencies: - get-port "^3.1.0" + picocolors "^1.1.1" + sax "^1.4.1" -tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" - integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== +tapable@^2.0.0, tapable@^2.2.0, tapable@^2.2.1, tapable@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.3.0.tgz#7e3ea6d5ca31ba8e078b560f0d83ce9a14aa8be6" + integrity sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg== -terser-webpack-plugin@^5.3.0, terser-webpack-plugin@^5.3.11: - version "5.3.12" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.12.tgz#d9518c80493081bace668aa8613b22e4a838810c" - integrity sha512-jDLYqo7oF8tJIttjXO6jBY5Hk8p3A8W4ttih7cCEq64fQFWmgJ4VqAQjKr7WwIDlmXKEc6QeoRb5ecjZ+2afcg== +terser-webpack-plugin@^5.3.0, terser-webpack-plugin@^5.3.16: + version "5.3.16" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz#741e448cc3f93d8026ebe4f7ef9e4afacfd56330" + integrity sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q== dependencies: "@jridgewell/trace-mapping" "^0.3.25" jest-worker "^27.4.5" @@ -4652,26 +3443,19 @@ terser-webpack-plugin@^5.3.0, terser-webpack-plugin@^5.3.11: terser "^5.31.1" terser@^5.31.1: - version "5.39.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.39.0.tgz#0e82033ed57b3ddf1f96708d123cca717d86ca3a" - integrity sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw== + version "5.44.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.44.1.tgz#e391e92175c299b8c284ad6ded609e37303b0a9c" + integrity sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw== dependencies: "@jridgewell/source-map" "^0.3.3" - acorn "^8.8.2" + acorn "^8.15.0" commander "^2.20.0" source-map-support "~0.5.20" -thunky@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" - integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== - -tmp@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" - integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== - dependencies: - rimraf "^3.0.0" +tmp@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.5.tgz#b06bcd23f0f3c8357b426891726d16015abfd8f8" + integrity sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow== to-regex-range@^5.0.1: version "5.0.1" @@ -4680,38 +3464,25 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - token-stream@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-1.0.0.tgz#cc200eab2613f4166d27ff9afc7ca56d49df6eb4" integrity sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg== -tslib@^1.10.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" +tslib@^2.3.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== -undici-types@~5.26.4: - version "5.26.5" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" - integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== +undici-types@~7.16.0: + version "7.16.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" + integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" - integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + version "2.0.1" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz#cb3173fe47ca743e228216e4a3ddc4c84d628cc2" + integrity sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg== unicode-match-property-ecmascript@^2.0.0: version "2.0.0" @@ -4721,30 +3492,25 @@ unicode-match-property-ecmascript@^2.0.0: unicode-canonical-property-names-ecmascript "^2.0.0" unicode-property-aliases-ecmascript "^2.0.0" -unicode-match-property-value-ecmascript@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" - integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== +unicode-match-property-value-ecmascript@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz#65a7adfad8574c219890e219285ce4c64ed67eaa" + integrity sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg== unicode-property-aliases-ecmascript@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" - integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + version "2.2.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz#301d4f8a43d2b75c97adfad87c9dd5350c9475d1" + integrity sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ== universalify@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== - -update-browserslist-db@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz#348377dd245216f9e7060ff50b15a1b740b75420" - integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw== +update-browserslist-db@^1.2.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz#64d76db58713136acbeb4c49114366cc6cc2e80d" + integrity sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w== dependencies: escalade "^3.2.0" picocolors "^1.1.1" @@ -4756,7 +3522,7 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: +util-deprecate@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== @@ -4766,115 +3532,59 @@ utila@~0.4: resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== - -uuid@^8.3.0, uuid@^8.3.2: +uuid@^8.3.0: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== - void-elements@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" integrity sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w== -watchpack@^2.4.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.2.tgz#2feeaed67412e7c33184e5a79ca738fbd38564da" - integrity sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw== +watchpack@^2.4.4: + version "2.5.1" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.5.1.tgz#dd38b601f669e0cbf567cb802e75cead82cde102" + integrity sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== - dependencies: - minimalistic-assert "^1.0.0" - -webpack-cli@^5.0.0: - version "5.1.4" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.1.4.tgz#c8e046ba7eaae4911d7e71e2b25b776fcc35759b" - integrity sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg== +webpack-cli@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-6.0.1.tgz#a1ce25da5ba077151afd73adfa12e208e5089207" + integrity sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw== dependencies: - "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^2.1.1" - "@webpack-cli/info" "^2.0.2" - "@webpack-cli/serve" "^2.0.5" + "@discoveryjs/json-ext" "^0.6.1" + "@webpack-cli/configtest" "^3.0.1" + "@webpack-cli/info" "^3.0.1" + "@webpack-cli/serve" "^3.0.1" colorette "^2.0.14" - commander "^10.0.1" + commander "^12.1.0" cross-spawn "^7.0.3" - envinfo "^7.7.3" + envinfo "^7.14.0" fastest-levenshtein "^1.0.12" import-local "^3.0.2" interpret "^3.1.1" rechoir "^0.8.0" - webpack-merge "^5.7.3" + webpack-merge "^6.0.1" -webpack-dev-middleware@^5.3.1: - version "5.3.4" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz#eb7b39281cbce10e104eb2b8bf2b63fce49a3517" - integrity sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q== +webpack-manifest-plugin@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-5.0.1.tgz#8d401fec7fa587cba5af561eb60e39d6a8050e8a" + integrity sha512-xTlX7dC3hrASixA2inuWFMz6qHsNi6MT3Uiqw621sJjRTShtpMjbDYhPPZBwWUKdIYKIjSq9em6+uzWayf38aQ== dependencies: - colorette "^2.0.10" - memfs "^3.4.3" - mime-types "^2.1.31" - range-parser "^1.2.1" - schema-utils "^4.0.0" + tapable "^2.0.0" + webpack-sources "^2.2.0" -webpack-dev-server@^4.8.0: - version "4.15.1" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz#8944b29c12760b3a45bdaa70799b17cb91b03df7" - integrity sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA== - dependencies: - "@types/bonjour" "^3.5.9" - "@types/connect-history-api-fallback" "^1.3.5" - "@types/express" "^4.17.13" - "@types/serve-index" "^1.9.1" - "@types/serve-static" "^1.13.10" - "@types/sockjs" "^0.3.33" - "@types/ws" "^8.5.5" - ansi-html-community "^0.0.8" - bonjour-service "^1.0.11" - chokidar "^3.5.3" - colorette "^2.0.10" - compression "^1.7.4" - connect-history-api-fallback "^2.0.0" - default-gateway "^6.0.3" - express "^4.17.3" - graceful-fs "^4.2.6" - html-entities "^2.3.2" - http-proxy-middleware "^2.0.3" - ipaddr.js "^2.0.1" - launch-editor "^2.6.0" - open "^8.0.9" - p-retry "^4.5.0" - rimraf "^3.0.2" - schema-utils "^4.0.0" - selfsigned "^2.1.1" - serve-index "^1.9.1" - sockjs "^0.3.24" - spdy "^4.0.2" - webpack-dev-middleware "^5.3.1" - ws "^8.13.0" - -webpack-merge@^5.7.3: - version "5.10.0" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.10.0.tgz#a3ad5d773241e9c682803abf628d4cd62b8a4177" - integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== +webpack-merge@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-6.0.1.tgz#50c776868e080574725abc5869bd6e4ef0a16c6a" + integrity sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg== dependencies: clone-deep "^4.0.1" flat "^5.0.2" - wildcard "^2.0.0" + wildcard "^2.0.1" webpack-notifier@^1.15.0: version "1.15.0" @@ -4884,54 +3594,49 @@ webpack-notifier@^1.15.0: node-notifier "^9.0.0" strip-ansi "^6.0.0" -webpack-sources@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" - integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== +webpack-sources@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.3.1.tgz#570de0af163949fe272233c2cefe1b56f74511fd" + integrity sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA== + dependencies: + source-list-map "^2.0.1" + source-map "^0.6.1" + +webpack-sources@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.3.3.tgz#d4bf7f9909675d7a070ff14d0ef2a4f3c982c723" + integrity sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg== webpack@^5.99.9: - version "5.99.9" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.99.9.tgz#d7de799ec17d0cce3c83b70744b4aedb537d8247" - integrity sha512-brOPwM3JnmOa+7kd3NsmOUOwbDAj8FT9xDsG3IW0MgbN9yZV7Oi/s/+MNQ/EcSMqw7qfoRyXPoeEWT8zLVdVGg== + version "5.104.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.104.1.tgz#94bd41eb5dbf06e93be165ba8be41b8260d4fb1a" + integrity sha512-Qphch25abbMNtekmEGJmeRUhLDbe+QfiWTiqpKYkpCOWY64v9eyl+KRRLmqOFA2AvKPpc9DC6+u2n76tQLBoaA== dependencies: "@types/eslint-scope" "^3.7.7" - "@types/estree" "^1.0.6" + "@types/estree" "^1.0.8" "@types/json-schema" "^7.0.15" "@webassemblyjs/ast" "^1.14.1" "@webassemblyjs/wasm-edit" "^1.14.1" "@webassemblyjs/wasm-parser" "^1.14.1" - acorn "^8.14.0" - browserslist "^4.24.0" + acorn "^8.15.0" + acorn-import-phases "^1.0.3" + browserslist "^4.28.1" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.17.1" - es-module-lexer "^1.2.1" + enhanced-resolve "^5.17.4" + es-module-lexer "^2.0.0" eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" graceful-fs "^4.2.11" json-parse-even-better-errors "^2.3.1" - loader-runner "^4.2.0" + loader-runner "^4.3.1" mime-types "^2.1.27" neo-async "^2.6.2" - schema-utils "^4.3.2" - tapable "^2.1.1" - terser-webpack-plugin "^5.3.11" - watchpack "^2.4.1" - webpack-sources "^3.2.3" - -websocket-driver@>=0.5.1, websocket-driver@^0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== - dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + schema-utils "^4.3.3" + tapable "^2.3.0" + terser-webpack-plugin "^5.3.16" + watchpack "^2.4.4" + webpack-sources "^3.3.3" which@^2.0.1, which@^2.0.2: version "2.0.2" @@ -4940,7 +3645,7 @@ which@^2.0.1, which@^2.0.2: dependencies: isexe "^2.0.0" -wildcard@^2.0.0: +wildcard@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== @@ -4960,27 +3665,17 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -ws@^8.13.0: - version "8.17.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" - integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== - yallist@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - yargs-parser@^21.0.0: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yocto-queue@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" - integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From c41fb5719dab573ead7a05c5514579648231c06b Mon Sep 17 00:00:00 2001 From: Johan Kromhout Date: Thu, 15 Jan 2026 16:22:41 +0100 Subject: [PATCH 16/18] Use latest 6.0.0 release of surfnet/stepup-middleware-client-bundle --- composer.json | 2 +- composer.lock | 20 +++++++++----------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/composer.json b/composer.json index ae07b74d..4cdddedc 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,7 @@ "nelmio/security-bundle": "^3.7", "openconext/monitor-bundle": "^4.3.1", "surfnet/stepup-bundle": "^7.0.1", - "surfnet/stepup-middleware-client-bundle": "dev-feature/update_sf74#bf63618f1607fcc3aaf62a665ccdd6296f32ee64", + "surfnet/stepup-middleware-client-bundle": "^6.0", "surfnet/stepup-saml-bundle": "^7.0.1", "symfony/asset": "7.4.*", "symfony/expression-language": "7.4.*", diff --git a/composer.lock b/composer.lock index 3be68435..42569eb7 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "e3a88893ab4694054b09aee1df9ab4c4", + "content-hash": "5ad6d4fe768e00c47f386c27e2419805", "packages": [ { "name": "beberlei/assert", @@ -2287,16 +2287,16 @@ }, { "name": "surfnet/stepup-middleware-client-bundle", - "version": "dev-feature/update_sf74", + "version": "6.0.0", "source": { "type": "git", "url": "https://github.com/OpenConext/Stepup-Middleware-clientbundle.git", - "reference": "bf63618f1607fcc3aaf62a665ccdd6296f32ee64" + "reference": "2617692014d49b14f0621542807574ddb781438e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/OpenConext/Stepup-Middleware-clientbundle/zipball/bf63618f1607fcc3aaf62a665ccdd6296f32ee64", - "reference": "bf63618f1607fcc3aaf62a665ccdd6296f32ee64", + "url": "https://api.github.com/repos/OpenConext/Stepup-Middleware-clientbundle/zipball/2617692014d49b14f0621542807574ddb781438e", + "reference": "2617692014d49b14f0621542807574ddb781438e", "shasum": "" }, "require": { @@ -2339,12 +2339,12 @@ "license": [ "Apache-2.0" ], - "description": "Symfony 5|6 bundle for consuming the Step-up Middleware API.", + "description": "Symfony bundle for consuming the Step-up Middleware API.", "support": { "issues": "https://github.com/OpenConext/Stepup-Middleware-clientbundle/issues", - "source": "https://github.com/OpenConext/Stepup-Middleware-clientbundle/tree/feature/update_sf74" + "source": "https://github.com/OpenConext/Stepup-Middleware-clientbundle/tree/6.0.0" }, - "time": "2026-01-13T13:19:59+00:00" + "time": "2026-01-15T15:18:26+00:00" }, { "name": "surfnet/stepup-saml-bundle", @@ -10470,9 +10470,7 @@ ], "aliases": [], "minimum-stability": "stable", - "stability-flags": { - "surfnet/stepup-middleware-client-bundle": 20 - }, + "stability-flags": {}, "prefer-stable": false, "prefer-lowest": false, "platform": { From 0935bad4fa3119d534d7a3966692fe1b34514e12 Mon Sep 17 00:00:00 2001 From: Johan Kromhout Date: Tue, 20 Jan 2026 16:13:31 +0100 Subject: [PATCH 17/18] Update component_info to match SF 7 --- component_info | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/component_info b/component_info index a2d51630..209cf793 100644 --- a/component_info +++ b/component_info @@ -1,5 +1,5 @@ PHP_VERSION=82 -SYMFONY_VERSION=6 +SYMFONY_VERSION=7 ENCORE=yes ASSETIC=no NODE_VERSION=20 From 9492f74be34a87dae76b12d3231b8e4823991cf2 Mon Sep 17 00:00:00 2001 From: Johan Kromhout Date: Wed, 21 Jan 2026 09:12:20 +0100 Subject: [PATCH 18/18] Rework - Drop unused DateTime - Small refactorings & improvements --- ci/qa/phpstan-baseline.php | 12 +++++++ ci/qa/phpstan.neon | 1 - .../Controller/RaLocationController.php | 6 ++-- .../Controller/RaManagementController.php | 4 +-- .../Controller/RecoveryTokenController.php | 4 +-- .../Controller/SecondFactorController.php | 4 +-- .../Controller/Traits/OrderFromRequest.php | 29 +++++++++++++---- .../StepupRa/RaBundle/DateTime/DateTime.php | 32 ------------------- .../Security/AuthenticatedIdentity.php | 2 +- .../Traits/OrderFromRequestTest.php | 29 +++++++++-------- .../TestDouble/Factory/GuzzleApiFactory.php | 17 +++------- .../StepupRa/RaBundle/Value/DateTime.php | 4 +-- 12 files changed, 66 insertions(+), 78 deletions(-) delete mode 100755 src/Surfnet/StepupRa/RaBundle/DateTime/DateTime.php diff --git a/ci/qa/phpstan-baseline.php b/ci/qa/phpstan-baseline.php index 9ecd1d1c..93fae1de 100644 --- a/ci/qa/phpstan-baseline.php +++ b/ci/qa/phpstan-baseline.php @@ -715,6 +715,12 @@ 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaCandidateService.php', ]; +$ignoreErrors[] = [ + 'message' => '#^Left side of && is always true\\.$#', + 'identifier' => 'booleanAnd.leftAlwaysTrue', + 'count' => 2, + 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Service/RaListingService.php', +]; $ignoreErrors[] = [ 'message' => '#^Parameter \\#1 \\$raInstitution of method Surfnet\\\\StepupMiddlewareClient\\\\Identity\\\\Dto\\\\RaListingSearchQuery\\:\\:setRaInstitution\\(\\) expects string, string\\|null given\\.$#', 'identifier' => 'argument.type', @@ -847,6 +853,12 @@ 'count' => 1, 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Twig/Extensions/Extension/SecondFactorType.php', ]; +$ignoreErrors[] = [ + 'message' => '#^Call to function is_int\\(\\) with int will always evaluate to true\\.$#', + 'identifier' => 'function.alreadyNarrowedType', + 'count' => 1, + 'path' => __DIR__ . '/../../src/Surfnet/StepupRa/RaBundle/Value/TimeFrame.php', +]; $ignoreErrors[] = [ 'message' => '#^Class Surfnet\\\\StepupRa\\\\RaBundle\\\\VettingProcedure has an uninitialized property \\$authorityId\\. Give it default value or assign it in the constructor\\.$#', 'identifier' => 'property.uninitialized', diff --git a/ci/qa/phpstan.neon b/ci/qa/phpstan.neon index e4c429ac..5e257db0 100644 --- a/ci/qa/phpstan.neon +++ b/ci/qa/phpstan.neon @@ -4,7 +4,6 @@ includes: rules: parameters: - treatPhpDocTypesAsCertain: false checkUninitializedProperties: true level: 9 paths: diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php b/src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php index 3e7289b4..9671cf65 100755 --- a/src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php +++ b/src/Surfnet/StepupRa/RaBundle/Controller/RaLocationController.php @@ -66,7 +66,7 @@ public function __construct( #[IsGranted('ROLE_RA')] public function manage(Request $request): Response { - $institutionParameter = $request->query->has('institution') ? $request->query->get('institution') : $request->request->get('institution'); + $institutionParameter = $request->query->get('institution') ?? $request->request->get('institution'); $identity = $this->getUser()->getIdentity(); $this->logger->notice('Starting search for locations'); @@ -101,8 +101,8 @@ public function manage(Request $request): Response $command = new SearchRaLocationsCommand(); $command->institution = $institution; - $command->orderBy = $this->getString($request, 'orderBy'); - $command->orderDirection = $this->getString($request, 'orderDirection'); + $command->orderBy = $this->getOrderBy($request); + $command->orderDirection = $this->getOrderDirection($request); $locations = $this->raLocationService->search($command); diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php b/src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php index 033efee4..beb28a95 100755 --- a/src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php +++ b/src/Surfnet/StepupRa/RaBundle/Controller/RaManagementController.php @@ -135,8 +135,8 @@ public function raCandidateSearch(Request $request): Response $command->actorInstitution = $institution; $command->raInstitution = null; $command->pageNumber = $request->query->has('p') ? $request->query->getInt('p') : $request->request->getInt('p', 1); - $command->orderBy = $this->getString($request, 'orderBy'); - $command->orderDirection = $this->getString($request, 'orderDirection'); + $command->orderBy = $this->getOrderBy($request); + $command->orderDirection = $this->getOrderDirection($request); $raCandidateList = $this->raCandidateService->search($command); diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/RecoveryTokenController.php b/src/Surfnet/StepupRa/RaBundle/Controller/RecoveryTokenController.php index 1157ab5b..a1f91510 100755 --- a/src/Surfnet/StepupRa/RaBundle/Controller/RecoveryTokenController.php +++ b/src/Surfnet/StepupRa/RaBundle/Controller/RecoveryTokenController.php @@ -58,8 +58,8 @@ public function search(Request $request): Response $command = new SearchRecoveryTokensCommand(); $command->actorId = $identity->id; $command->pageNumber = $request->query->has('p') ? $request->query->getInt('p') : $request->request->getInt('p', 1); - $command->orderBy = $this->getString($request, 'orderBy'); - $command->orderDirection = $this->getString($request, 'orderDirection'); + $command->orderBy = $this->getOrderBy($request); + $command->orderDirection = $this->getOrderDirection($request); // Huh, why do we load the recovery tokens at this point? // This is just to get the filter options for the available institutions of the search results. diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php b/src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php index e52f7f1d..6b5e890b 100755 --- a/src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php +++ b/src/Surfnet/StepupRa/RaBundle/Controller/SecondFactorController.php @@ -73,8 +73,8 @@ public function search(Request $request): Response $command = new SearchRaSecondFactorsCommand(); $command->actorId = $identity->id; $command->pageNumber = $request->query->has('p') ? $request->query->getInt('p') : $request->request->getInt('p', 1); - $command->orderBy = $this->getString($request, 'orderBy'); - $command->orderDirection = $this->getString($request, 'orderDirection'); + $command->orderBy = $this->getOrderBy($request); + $command->orderDirection = $this->getOrderDirection($request); $secondFactors = $this->secondFactorService->search($command); diff --git a/src/Surfnet/StepupRa/RaBundle/Controller/Traits/OrderFromRequest.php b/src/Surfnet/StepupRa/RaBundle/Controller/Traits/OrderFromRequest.php index 69a105b3..e67fa17f 100644 --- a/src/Surfnet/StepupRa/RaBundle/Controller/Traits/OrderFromRequest.php +++ b/src/Surfnet/StepupRa/RaBundle/Controller/Traits/OrderFromRequest.php @@ -24,17 +24,32 @@ trait OrderFromRequest { /** - * Convenience method to read get / post params as string, with default null. - * This is a commonly used pattern in the RA controllers + * Convenience method to read orderBy from both get & post params as string, with default null. */ - private function getString(Request $request, string $paramName): null|string + public function getOrderBy(Request $request): null|string { - if ($request->query->has($paramName)) { - return $request->query->getString($paramName); + if ($request->query->has('orderBy')) { + return $request->query->getString('orderBy'); } - if ($request->request->has($paramName)) { - return $request->request->getString($paramName); + if ($request->request->has('orderBy')) { + return $request->request->getString('orderBy'); + } + + return null; + } + + /** + * Convenience method to read orderDirection from both get & post params as string, with default null. + */ + public function getOrderDirection(Request $request): null|string + { + if ($request->query->has('orderDirection')) { + return $request->query->getString('orderDirection'); + } + + if ($request->request->has('orderDirection')) { + return $request->request->getString('orderDirection'); } return null; diff --git a/src/Surfnet/StepupRa/RaBundle/DateTime/DateTime.php b/src/Surfnet/StepupRa/RaBundle/DateTime/DateTime.php deleted file mode 100755 index 1df421a1..00000000 --- a/src/Surfnet/StepupRa/RaBundle/DateTime/DateTime.php +++ /dev/null @@ -1,32 +0,0 @@ -originalIdentity->nameId); $identifier = end($parts); - if ($identifier === false || $identifier === '') { + if ($identifier === '') { throw new LogicException('Cannot determine user identifier from nameId'); } diff --git a/src/Surfnet/StepupRa/RaBundle/Tests/Controller/Traits/OrderFromRequestTest.php b/src/Surfnet/StepupRa/RaBundle/Tests/Controller/Traits/OrderFromRequestTest.php index 83308c84..97b7fa27 100644 --- a/src/Surfnet/StepupRa/RaBundle/Tests/Controller/Traits/OrderFromRequestTest.php +++ b/src/Surfnet/StepupRa/RaBundle/Tests/Controller/Traits/OrderFromRequestTest.php @@ -31,11 +31,6 @@ protected function setUp(): void { $this->traitObject = new class { use OrderFromRequest; - - public function getStringPublic(Request $request, string $paramName): null|string - { - return $this->getString($request, $paramName); - } }; } @@ -43,7 +38,7 @@ public function getStringPublic(Request $request, string $paramName): null|strin public function it_returns_value_from_query_parameter(): void { $request = new Request(['orderBy' => 'name']); - $result = $this->traitObject->getStringPublic($request, 'orderBy'); + $result = $this->traitObject->getOrderBy($request); $this->assertSame('name', $result); } @@ -52,7 +47,7 @@ public function it_returns_value_from_query_parameter(): void public function it_returns_value_from_request_parameter(): void { $request = new Request([], ['orderBy' => 'date']); - $result = $this->traitObject->getStringPublic($request, 'orderBy'); + $result = $this->traitObject->getOrderBy($request); $this->assertSame('date', $result); } @@ -61,7 +56,7 @@ public function it_returns_value_from_request_parameter(): void public function it_returns_null_when_parameter_not_found(): void { $request = new Request(); - $result = $this->traitObject->getStringPublic($request, 'orderBy'); + $result = $this->traitObject->getOrderBy($request); $this->assertNull($result); } @@ -71,7 +66,7 @@ public function it_prioritizes_query_parameter_over_request_parameter(): void { $request = new Request(['orderBy' => 'query_value'], ['orderBy' => 'request_value']); - $result = $this->traitObject->getStringPublic($request, 'orderBy'); + $result = $this->traitObject->getOrderBy($request); $this->assertSame('query_value', $result); } @@ -80,7 +75,7 @@ public function it_prioritizes_query_parameter_over_request_parameter(): void public function it_handles_empty_string_values(): void { $request = new Request(['orderBy' => '']); - $result = $this->traitObject->getStringPublic($request, 'orderBy'); + $result = $this->traitObject->getOrderBy($request); $this->assertSame('', $result); } @@ -88,10 +83,18 @@ public function it_handles_empty_string_values(): void #[Test] public function it_handles_numeric_string_values(): void { - $request = new Request(['page' => '42']); - $result = $this->traitObject->getStringPublic($request, 'page'); + $request = new Request(['orderBy' => '42']); + $result = $this->traitObject->getOrderBy($request); $this->assertSame('42', $result); } -} + #[Test] + public function it_returns_order_direction_from_query_parameter(): void + { + $request = new Request(['orderDirection' => 'asc']); + $result = $this->traitObject->getOrderDirection($request); + + $this->assertSame('asc', $result); + } +} diff --git a/src/Surfnet/StepupRa/RaBundle/Tests/TestDouble/Factory/GuzzleApiFactory.php b/src/Surfnet/StepupRa/RaBundle/Tests/TestDouble/Factory/GuzzleApiFactory.php index fc36bad1..41aa29ce 100755 --- a/src/Surfnet/StepupRa/RaBundle/Tests/TestDouble/Factory/GuzzleApiFactory.php +++ b/src/Surfnet/StepupRa/RaBundle/Tests/TestDouble/Factory/GuzzleApiFactory.php @@ -28,13 +28,9 @@ class GuzzleApiFactory { /** - * @param $apiUri - * @param $username - * @param $password - * * @see \Surfnet\StepupMiddlewareClientBundle\DependencyInjection\SurfnetStepupMiddlewareClientExtension::configureMiddlewareReadApiClient */ - public static function createApiGuzzleClient($apiUri, $username, $password): Client + public static function createApiGuzzleClient(mixed $apiUri, mixed $username, mixed $password): Client { $arguments = [ 'base_uri' => $apiUri, @@ -53,11 +49,9 @@ public static function createApiGuzzleClient($apiUri, $username, $password): Cli } /** - * @param $apiUri - * * @see \Surfnet\StepupMiddlewareClientBundle\DependencyInjection\SurfnetStepupMiddlewareClientExtension::configureMiddlewareCommandApiUrl */ - public static function createCommandGuzzleClient($apiUri): Client + public static function createCommandGuzzleClient(mixed $apiUri): Client { return new Client( [ @@ -67,12 +61,9 @@ public static function createCommandGuzzleClient($apiUri): Client ); } - /** - * @param string $uri - */ - private static function makeCookieJar($uri): CookieJar + private static function makeCookieJar(mixed $uri): CookieJar { - $cookieDomain = parse_url($uri, PHP_URL_HOST); + $cookieDomain = parse_url((string) $uri, PHP_URL_HOST); return CookieJar::fromArray( [ diff --git a/src/Surfnet/StepupRa/RaBundle/Value/DateTime.php b/src/Surfnet/StepupRa/RaBundle/Value/DateTime.php index 0ec98b4b..b98263a1 100755 --- a/src/Surfnet/StepupRa/RaBundle/Value/DateTime.php +++ b/src/Surfnet/StepupRa/RaBundle/Value/DateTime.php @@ -36,7 +36,7 @@ class DateTime implements Stringable final public const FORMAT = DATE_ATOM; /** - * Allows for mocking of time. + * Allows for mocking of time via reflection * * @phpstan-ignore-next-line property.unusedType */ @@ -46,7 +46,7 @@ class DateTime implements Stringable public static function now(): DateTime { - return self::$now ?? new self(new CoreDateTime); + return self::$now ?: new self(new CoreDateTime); } /**