From e572dcee614d2fd8908439041504ce2e135cc37e Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Fri, 12 Jun 2026 16:11:20 +0200 Subject: [PATCH 1/4] fix: Drop PHP 8.2 in Nextcloud 35 Signed-off-by: Joas Schilling --- composer.json | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/composer.json b/composer.json index 1d2836d98..764d70df1 100644 --- a/composer.json +++ b/composer.json @@ -9,7 +9,7 @@ "optimize-autoloader": true, "classmap-authoritative": true, "platform": { - "php": "8.2.0" + "php": "8.3.0" }, "sort-packages": true, "allow-plugins": { @@ -71,20 +71,15 @@ "wapmorgan/mp3info": "^0.1.1", "web-auth/webauthn-lib": "^4.9.1" }, - "replace": { - "symfony/polyfill-php80": "*", + "replace": { + "symfony/polyfill-php80": "*", "symfony/polyfill-php81": "*", "symfony/polyfill-php82": "*", "symfony/polyfill-ctype": "*", "symfony/polyfill-mbstring": "*" - }, + }, "scripts": { - "lint": [ - "@lint-8.2-or-earlier", - "@lint-8.3-or-later" - ], - "lint-8.2-or-earlier": "[ $(php -r \"echo PHP_VERSION_ID;\") -ge 80300 ] || find . -type f -name '*.php' -not -name '.*.php' -print0 | xargs -0 -n1 -P$(nproc) php -l", - "lint-8.3-or-later": "[ $(php -r \"echo PHP_VERSION_ID;\") -lt 80300 ] || find . -type f -name '*.php' -not -name '.*.php' -print0 | xargs -0 -n200 -P$(nproc) php -l", + "lint": "find . -type f -name '*.php' -not -name '.*.php' -print0 | xargs -0 -n200 -P$(nproc) php -l", "pre-autoload-dump": "Aws\\Script\\Composer\\Composer::removeUnusedServices" }, "extra": { From 45a5702739ca651b974109a11807b0336abc8918 Mon Sep 17 00:00:00 2001 From: Ferdinand Thiessen Date: Fri, 12 Jun 2026 16:43:30 +0200 Subject: [PATCH 2/4] fix: remove useless polyfills and block installing them We use PHP >= 8.3 so polyfills for 8.2 and 8.3 should be blocked. This also requires to update some dependencies which require PHP <= 8.2. | Production Changes | From | To | Compare | |------------------------|---------|---------|-----------------------------------------------------------------------| | lcobucci/clock | 3.0.0 | 3.5.0 | [...](https://github.com/lcobucci/clock/compare/3.0.0...3.5.0) | | symfony/polyfill-php83 | v1.33.0 | REMOVED | | | web-auth/webauthn-lib | 4.9.1 | 4.9.3 | [...](https://github.com/web-auth/webauthn-lib/compare/4.9.1...4.9.3) | Signed-off-by: Ferdinand Thiessen --- composer.json | 5 +- composer.lock | 130 +++--------- composer/autoload_classmap.php | 12 -- composer/autoload_files.php | 1 - composer/autoload_psr4.php | 1 - composer/autoload_static.php | 18 -- composer/installed.json | 135 +++--------- composer/installed.php | 21 +- composer/platform_check.php | 4 +- lcobucci/clock/src/FrozenClock.php | 20 ++ lcobucci/clock/src/SystemClock.php | 5 +- symfony/polyfill-php83/LICENSE | 19 -- symfony/polyfill-php83/Php83.php | 197 ------------------ .../Resources/stubs/DateError.php | 16 -- .../Resources/stubs/DateException.php | 16 -- .../stubs/DateInvalidOperationException.php | 16 -- .../stubs/DateInvalidTimeZoneException.php | 16 -- .../DateMalformedIntervalStringException.php | 16 -- .../DateMalformedPeriodStringException.php | 16 -- .../stubs/DateMalformedStringException.php | 16 -- .../Resources/stubs/DateObjectError.php | 16 -- .../Resources/stubs/DateRangeError.php | 16 -- .../Resources/stubs/Override.php | 20 -- .../Resources/stubs/SQLite3Exception.php | 16 -- symfony/polyfill-php83/bootstrap.php | 50 ----- symfony/polyfill-php83/bootstrap81.php | 22 -- .../AndroidKeyAttestationStatementSupport.php | 1 + ...idSafetyNetAttestationStatementSupport.php | 1 + .../AttestationStatement.php | 1 + .../AttestationStatementSupportManager.php | 1 + .../FidoU2FAttestationStatementSupport.php | 1 + .../TPMAttestationStatementSupport.php | 1 + .../AuthenticationExtensions.php | 1 + .../ExtensionOutputError.php | 2 +- ...uthenticatorAssertionResponseValidator.php | 3 +- ...henticatorAttestationResponseValidator.php | 1 + .../src/CeremonyStep/CheckAlgorithm.php | 3 +- .../CeremonyStep/CheckMetadataStatement.php | 1 + .../src/CeremonyStep/CheckSignature.php | 2 +- .../WebauthnAuthenticationCollector.php | 1 + .../webauthn-lib/src/CollectedClientData.php | 1 + .../AttestationObjectDenormalizer.php | 10 +- .../AttestationStatementDenormalizer.php | 10 +- .../AuthenticationExtensionsDenormalizer.php | 10 +- ...enticatorAssertionResponseDenormalizer.php | 10 +- ...ticatorAttestationResponseDenormalizer.php | 10 +- .../AuthenticatorDataDenormalizer.php | 10 +- .../AuthenticatorResponseDenormalizer.php | 10 +- .../CollectedClientDataDenormalizer.php | 10 +- .../ExtensionDescriptorDenormalizer.php | 10 +- .../PublicKeyCredentialDenormalizer.php | 10 +- ...PublicKeyCredentialOptionsDenormalizer.php | 10 +- ...licKeyCredentialParametersDenormalizer.php | 10 +- .../PublicKeyCredentialSourceDenormalizer.php | 10 +- ...licKeyCredentialUserEntityDenormalizer.php | 10 +- .../Denormalizer/TrustPathDenormalizer.php | 10 +- .../WebauthnSerializerFactory.php | 1 + ...AssertionResponseValidationFailedEvent.php | 1 + ...ertionResponseValidationSucceededEvent.php | 1 + ...testationResponseValidationFailedEvent.php | 1 + ...tationResponseValidationSucceededEvent.php | 1 + .../PhpCertificateChainValidator.php | 1 + .../src/MetadataService/Psr18HttpClient.php | 4 +- .../Service/MetadataBLOBPayload.php | 1 + .../DisplayPNGCharacteristicsDescriptor.php | 1 + .../Statement/EcdaaTrustAnchor.php | 1 + .../Statement/MetadataStatement.php | 1 + .../Statement/PatternAccuracyDescriptor.php | 1 + .../Statement/RgbPaletteEntry.php | 1 + .../Statement/StatusReport.php | 2 + .../VerificationMethodDescriptor.php | 1 + .../src/MetadataService/Statement/Version.php | 1 + .../webauthn-lib/src/PublicKeyCredential.php | 1 + .../src/PublicKeyCredentialLoader.php | 1 + .../src/PublicKeyCredentialSource.php | 1 + web-auth/webauthn-lib/src/StringStream.php | 1 + .../src/TokenBinding/TokenBinding.php | 1 + 77 files changed, 232 insertions(+), 784 deletions(-) delete mode 100644 symfony/polyfill-php83/LICENSE delete mode 100644 symfony/polyfill-php83/Php83.php delete mode 100644 symfony/polyfill-php83/Resources/stubs/DateError.php delete mode 100644 symfony/polyfill-php83/Resources/stubs/DateException.php delete mode 100644 symfony/polyfill-php83/Resources/stubs/DateInvalidOperationException.php delete mode 100644 symfony/polyfill-php83/Resources/stubs/DateInvalidTimeZoneException.php delete mode 100644 symfony/polyfill-php83/Resources/stubs/DateMalformedIntervalStringException.php delete mode 100644 symfony/polyfill-php83/Resources/stubs/DateMalformedPeriodStringException.php delete mode 100644 symfony/polyfill-php83/Resources/stubs/DateMalformedStringException.php delete mode 100644 symfony/polyfill-php83/Resources/stubs/DateObjectError.php delete mode 100644 symfony/polyfill-php83/Resources/stubs/DateRangeError.php delete mode 100644 symfony/polyfill-php83/Resources/stubs/Override.php delete mode 100644 symfony/polyfill-php83/Resources/stubs/SQLite3Exception.php delete mode 100644 symfony/polyfill-php83/bootstrap.php delete mode 100644 symfony/polyfill-php83/bootstrap81.php diff --git a/composer.json b/composer.json index 764d70df1..3d3a91b99 100644 --- a/composer.json +++ b/composer.json @@ -61,10 +61,8 @@ "symfony/http-foundation": "^6.4.29", "symfony/mailer": "^6.4", "symfony/polyfill-intl-normalizer": "^1.33.0", - "symfony/polyfill-php82": "^1.32.0", - "symfony/polyfill-php83": "^1.33.0", "symfony/polyfill-php84": "^1.33.0", - "symfony/polyfill-php85": "^1.33", + "symfony/polyfill-php85": "^1.33.0", "symfony/process": "^6.4.33", "symfony/routing": "^6.4.12", "symfony/translation": "^6.4.4", @@ -75,6 +73,7 @@ "symfony/polyfill-php80": "*", "symfony/polyfill-php81": "*", "symfony/polyfill-php82": "*", + "symfony/polyfill-php83": "*", "symfony/polyfill-ctype": "*", "symfony/polyfill-mbstring": "*" }, diff --git a/composer.lock b/composer.lock index 25d56dbd6..ae08cddea 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": "373469defdd82e4689fa2aebe17c6aaf", + "content-hash": "b428b66dda3b3049960ce06ee7b8a839", "packages": [ { "name": "aws/aws-crt-php", @@ -1833,34 +1833,34 @@ }, { "name": "lcobucci/clock", - "version": "3.0.0", + "version": "3.5.0", "source": { "type": "git", "url": "https://github.com/lcobucci/clock.git", - "reference": "039ef98c6b57b101d10bd11d8fdfda12cbd996dc" + "reference": "a3139d9e97d47826f27e6a17bb63f13621f86058" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/lcobucci/clock/zipball/039ef98c6b57b101d10bd11d8fdfda12cbd996dc", - "reference": "039ef98c6b57b101d10bd11d8fdfda12cbd996dc", + "url": "https://api.github.com/repos/lcobucci/clock/zipball/a3139d9e97d47826f27e6a17bb63f13621f86058", + "reference": "a3139d9e97d47826f27e6a17bb63f13621f86058", "shasum": "" }, "require": { - "php": "~8.1.0 || ~8.2.0", + "php": "~8.3.0 || ~8.4.0 || ~8.5.0", "psr/clock": "^1.0" }, "provide": { "psr/clock-implementation": "1.0" }, "require-dev": { - "infection/infection": "^0.26", - "lcobucci/coding-standard": "^9.0", - "phpstan/extension-installer": "^1.2", - "phpstan/phpstan": "^1.9.4", - "phpstan/phpstan-deprecation-rules": "^1.1.1", - "phpstan/phpstan-phpunit": "^1.3.2", - "phpstan/phpstan-strict-rules": "^1.4.4", - "phpunit/phpunit": "^9.5.27" + "infection/infection": "^0.31", + "lcobucci/coding-standard": "^11.2.0", + "phpstan/extension-installer": "^1.3.1", + "phpstan/phpstan": "^2.0.0", + "phpstan/phpstan-deprecation-rules": "^2.0.0", + "phpstan/phpstan-phpunit": "^2.0.0", + "phpstan/phpstan-strict-rules": "^2.0.0", + "phpunit/phpunit": "^12.0.0" }, "type": "library", "autoload": { @@ -1881,7 +1881,7 @@ "description": "Yet another clock abstraction", "support": { "issues": "https://github.com/lcobucci/clock/issues", - "source": "https://github.com/lcobucci/clock/tree/3.0.0" + "source": "https://github.com/lcobucci/clock/tree/3.5.0" }, "funding": [ { @@ -1893,7 +1893,7 @@ "type": "patreon" } ], - "time": "2022-12-19T15:00:24+00:00" + "time": "2025-10-27T09:03:17+00:00" }, { "name": "marc-mabe/php-enum", @@ -5366,86 +5366,6 @@ ], "time": "2026-05-25T13:48:31+00:00" }, - { - "name": "symfony/polyfill-php83", - "version": "v1.33.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/17f6f9a6b1735c0f163024d959f700cfbc5155e5", - "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php83\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.33.0" - }, - "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-07-08T02:45:35+00:00" - }, { "name": "symfony/polyfill-php84", "version": "v1.33.0", @@ -6399,16 +6319,16 @@ }, { "name": "web-auth/webauthn-lib", - "version": "4.9.1", + "version": "4.9.3", "source": { "type": "git", "url": "https://github.com/web-auth/webauthn-lib.git", - "reference": "fd7a0943c663b325e92ad562c2bcc943e77beeac" + "reference": "129fbaccd22163429a39bf85e320fb9eddad035c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/web-auth/webauthn-lib/zipball/fd7a0943c663b325e92ad562c2bcc943e77beeac", - "reference": "fd7a0943c663b325e92ad562c2bcc943e77beeac", + "url": "https://api.github.com/repos/web-auth/webauthn-lib/zipball/129fbaccd22163429a39bf85e320fb9eddad035c", + "reference": "129fbaccd22163429a39bf85e320fb9eddad035c", "shasum": "" }, "require": { @@ -6442,8 +6362,8 @@ "type": "library", "extra": { "thanks": { - "name": "web-auth/webauthn-framework", - "url": "https://github.com/web-auth/webauthn-framework" + "url": "https://github.com/web-auth/webauthn-framework", + "name": "web-auth/webauthn-framework" } }, "autoload": { @@ -6473,7 +6393,7 @@ "webauthn" ], "support": { - "source": "https://github.com/web-auth/webauthn-lib/tree/4.9.1" + "source": "https://github.com/web-auth/webauthn-lib/tree/4.9.3" }, "funding": [ { @@ -6485,7 +6405,7 @@ "type": "patreon" } ], - "time": "2024-07-16T18:36:36+00:00" + "time": "2026-02-05T12:48:16+00:00" } ], "packages-dev": [], @@ -6501,7 +6421,7 @@ }, "platform-dev": {}, "platform-overrides": { - "php": "8.2.0" + "php": "8.3.0" }, "plugin-api-version": "2.9.0" } diff --git a/composer/autoload_classmap.php b/composer/autoload_classmap.php index 7c64335b4..b15ab905d 100644 --- a/composer/autoload_classmap.php +++ b/composer/autoload_classmap.php @@ -514,15 +514,6 @@ 'Cose\\Key\\OkpKey' => $vendorDir . '/web-auth/cose-lib/src/Key/OkpKey.php', 'Cose\\Key\\RsaKey' => $vendorDir . '/web-auth/cose-lib/src/Key/RsaKey.php', 'Cose\\Key\\SymmetricKey' => $vendorDir . '/web-auth/cose-lib/src/Key/SymmetricKey.php', - 'DateError' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateError.php', - 'DateException' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateException.php', - 'DateInvalidOperationException' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateInvalidOperationException.php', - 'DateInvalidTimeZoneException' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateInvalidTimeZoneException.php', - 'DateMalformedIntervalStringException' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateMalformedIntervalStringException.php', - 'DateMalformedPeriodStringException' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateMalformedPeriodStringException.php', - 'DateMalformedStringException' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateMalformedStringException.php', - 'DateObjectError' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateObjectError.php', - 'DateRangeError' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateRangeError.php', 'Deprecated' => $vendorDir . '/symfony/polyfill-php84/Resources/stubs/Deprecated.php', 'Doctrine\\Common\\EventArgs' => $vendorDir . '/doctrine/event-manager/src/EventArgs.php', 'Doctrine\\Common\\EventManager' => $vendorDir . '/doctrine/event-manager/src/EventManager.php', @@ -1590,7 +1581,6 @@ 'OpenStack\\ObjectStore\\v1\\Params' => $vendorDir . '/php-opencloud/openstack/src/ObjectStore/v1/Params.php', 'OpenStack\\ObjectStore\\v1\\Service' => $vendorDir . '/php-opencloud/openstack/src/ObjectStore/v1/Service.php', 'OpenStack\\OpenStack' => $vendorDir . '/php-opencloud/openstack/src/OpenStack.php', - 'Override' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/Override.php', 'PEAR' => $vendorDir . '/pear/pear-core-minimal/src/PEAR.php', 'PEAR_Error' => $vendorDir . '/pear/pear-core-minimal/src/PEAR.php', 'PEAR_ErrorStack' => $vendorDir . '/pear/pear-core-minimal/src/PEAR/ErrorStack.php', @@ -1675,7 +1665,6 @@ 'Punic\\Territory' => $vendorDir . '/punic/punic/src/Territory.php', 'Punic\\Unit' => $vendorDir . '/punic/punic/src/Unit.php', 'ReflectionConstant' => $vendorDir . '/symfony/polyfill-php84/Resources/stubs/ReflectionConstant.php', - 'SQLite3Exception' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/SQLite3Exception.php', 'Sabre\\CalDAV\\Backend\\AbstractBackend' => $vendorDir . '/sabre/dav/lib/CalDAV/Backend/AbstractBackend.php', 'Sabre\\CalDAV\\Backend\\BackendInterface' => $vendorDir . '/sabre/dav/lib/CalDAV/Backend/BackendInterface.php', 'Sabre\\CalDAV\\Backend\\NotificationSupport' => $vendorDir . '/sabre/dav/lib/CalDAV/Backend/NotificationSupport.php', @@ -3012,7 +3001,6 @@ 'Symfony\\Polyfill\\Intl\\Idn\\Resources\\unidata\\DisallowedRanges' => $vendorDir . '/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php', 'Symfony\\Polyfill\\Intl\\Idn\\Resources\\unidata\\Regex' => $vendorDir . '/symfony/polyfill-intl-idn/Resources/unidata/Regex.php', 'Symfony\\Polyfill\\Intl\\Normalizer\\Normalizer' => $vendorDir . '/symfony/polyfill-intl-normalizer/Normalizer.php', - 'Symfony\\Polyfill\\Php83\\Php83' => $vendorDir . '/symfony/polyfill-php83/Php83.php', 'Symfony\\Polyfill\\Php84\\Php84' => $vendorDir . '/symfony/polyfill-php84/Php84.php', 'Symfony\\Polyfill\\Php85\\Php85' => $vendorDir . '/symfony/polyfill-php85/Php85.php', 'Symfony\\Polyfill\\Uuid\\Uuid' => $vendorDir . '/symfony/polyfill-uuid/Uuid.php', diff --git a/composer/autoload_files.php b/composer/autoload_files.php index b75903312..4978fe644 100644 --- a/composer/autoload_files.php +++ b/composer/autoload_files.php @@ -22,7 +22,6 @@ '09f6b20656683369174dd6fa83b7e5fb' => $vendorDir . '/symfony/polyfill-uuid/bootstrap.php', 'b6b991a57620e2fb6b2f66f03fe9ddc2' => $vendorDir . '/symfony/string/Resources/functions.php', 'b067bc7112e384b61c701452d53a14a8' => $vendorDir . '/mtdowling/jmespath.php/src/JmesPath.php', - '662a729f963d39afe703c9d9b7ab4a8c' => $vendorDir . '/symfony/polyfill-php83/bootstrap.php', '8a9dc1de0ca7e01f3e08231539562f61' => $vendorDir . '/aws/aws-sdk-php/src/functions.php', 'decc78cc4436b1292c6c0d151b19445c' => $vendorDir . '/phpseclib/phpseclib/phpseclib/bootstrap.php', '9d2b9fc6db0f153a0a149fefb182415e' => $vendorDir . '/symfony/polyfill-php84/bootstrap.php', diff --git a/composer/autoload_psr4.php b/composer/autoload_psr4.php index b62e3714a..2f3abd4d4 100644 --- a/composer/autoload_psr4.php +++ b/composer/autoload_psr4.php @@ -20,7 +20,6 @@ 'Symfony\\Polyfill\\Uuid\\' => array($vendorDir . '/symfony/polyfill-uuid'), 'Symfony\\Polyfill\\Php85\\' => array($vendorDir . '/symfony/polyfill-php85'), 'Symfony\\Polyfill\\Php84\\' => array($vendorDir . '/symfony/polyfill-php84'), - 'Symfony\\Polyfill\\Php83\\' => array($vendorDir . '/symfony/polyfill-php83'), 'Symfony\\Polyfill\\Intl\\Normalizer\\' => array($vendorDir . '/symfony/polyfill-intl-normalizer'), 'Symfony\\Polyfill\\Intl\\Idn\\' => array($vendorDir . '/symfony/polyfill-intl-idn'), 'Symfony\\Polyfill\\Intl\\Grapheme\\' => array($vendorDir . '/symfony/polyfill-intl-grapheme'), diff --git a/composer/autoload_static.php b/composer/autoload_static.php index 92a56b8b6..96251c1f6 100644 --- a/composer/autoload_static.php +++ b/composer/autoload_static.php @@ -23,7 +23,6 @@ class ComposerStaticInit2f23f73bc0cc116b4b1eee1521aa8652 '09f6b20656683369174dd6fa83b7e5fb' => __DIR__ . '/..' . '/symfony/polyfill-uuid/bootstrap.php', 'b6b991a57620e2fb6b2f66f03fe9ddc2' => __DIR__ . '/..' . '/symfony/string/Resources/functions.php', 'b067bc7112e384b61c701452d53a14a8' => __DIR__ . '/..' . '/mtdowling/jmespath.php/src/JmesPath.php', - '662a729f963d39afe703c9d9b7ab4a8c' => __DIR__ . '/..' . '/symfony/polyfill-php83/bootstrap.php', '8a9dc1de0ca7e01f3e08231539562f61' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/functions.php', 'decc78cc4436b1292c6c0d151b19445c' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/bootstrap.php', '9d2b9fc6db0f153a0a149fefb182415e' => __DIR__ . '/..' . '/symfony/polyfill-php84/bootstrap.php', @@ -78,7 +77,6 @@ class ComposerStaticInit2f23f73bc0cc116b4b1eee1521aa8652 'Symfony\\Polyfill\\Uuid\\' => 22, 'Symfony\\Polyfill\\Php85\\' => 23, 'Symfony\\Polyfill\\Php84\\' => 23, - 'Symfony\\Polyfill\\Php83\\' => 23, 'Symfony\\Polyfill\\Intl\\Normalizer\\' => 33, 'Symfony\\Polyfill\\Intl\\Idn\\' => 26, 'Symfony\\Polyfill\\Intl\\Grapheme\\' => 31, @@ -252,10 +250,6 @@ class ComposerStaticInit2f23f73bc0cc116b4b1eee1521aa8652 array ( 0 => __DIR__ . '/..' . '/symfony/polyfill-php84', ), - 'Symfony\\Polyfill\\Php83\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-php83', - ), 'Symfony\\Polyfill\\Intl\\Normalizer\\' => array ( 0 => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer', @@ -1064,15 +1058,6 @@ class ComposerStaticInit2f23f73bc0cc116b4b1eee1521aa8652 'Cose\\Key\\OkpKey' => __DIR__ . '/..' . '/web-auth/cose-lib/src/Key/OkpKey.php', 'Cose\\Key\\RsaKey' => __DIR__ . '/..' . '/web-auth/cose-lib/src/Key/RsaKey.php', 'Cose\\Key\\SymmetricKey' => __DIR__ . '/..' . '/web-auth/cose-lib/src/Key/SymmetricKey.php', - 'DateError' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateError.php', - 'DateException' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateException.php', - 'DateInvalidOperationException' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateInvalidOperationException.php', - 'DateInvalidTimeZoneException' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateInvalidTimeZoneException.php', - 'DateMalformedIntervalStringException' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateMalformedIntervalStringException.php', - 'DateMalformedPeriodStringException' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateMalformedPeriodStringException.php', - 'DateMalformedStringException' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateMalformedStringException.php', - 'DateObjectError' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateObjectError.php', - 'DateRangeError' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateRangeError.php', 'Deprecated' => __DIR__ . '/..' . '/symfony/polyfill-php84/Resources/stubs/Deprecated.php', 'Doctrine\\Common\\EventArgs' => __DIR__ . '/..' . '/doctrine/event-manager/src/EventArgs.php', 'Doctrine\\Common\\EventManager' => __DIR__ . '/..' . '/doctrine/event-manager/src/EventManager.php', @@ -2140,7 +2125,6 @@ class ComposerStaticInit2f23f73bc0cc116b4b1eee1521aa8652 'OpenStack\\ObjectStore\\v1\\Params' => __DIR__ . '/..' . '/php-opencloud/openstack/src/ObjectStore/v1/Params.php', 'OpenStack\\ObjectStore\\v1\\Service' => __DIR__ . '/..' . '/php-opencloud/openstack/src/ObjectStore/v1/Service.php', 'OpenStack\\OpenStack' => __DIR__ . '/..' . '/php-opencloud/openstack/src/OpenStack.php', - 'Override' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/Override.php', 'PEAR' => __DIR__ . '/..' . '/pear/pear-core-minimal/src/PEAR.php', 'PEAR_Error' => __DIR__ . '/..' . '/pear/pear-core-minimal/src/PEAR.php', 'PEAR_ErrorStack' => __DIR__ . '/..' . '/pear/pear-core-minimal/src/PEAR/ErrorStack.php', @@ -2225,7 +2209,6 @@ class ComposerStaticInit2f23f73bc0cc116b4b1eee1521aa8652 'Punic\\Territory' => __DIR__ . '/..' . '/punic/punic/src/Territory.php', 'Punic\\Unit' => __DIR__ . '/..' . '/punic/punic/src/Unit.php', 'ReflectionConstant' => __DIR__ . '/..' . '/symfony/polyfill-php84/Resources/stubs/ReflectionConstant.php', - 'SQLite3Exception' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/SQLite3Exception.php', 'Sabre\\CalDAV\\Backend\\AbstractBackend' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Backend/AbstractBackend.php', 'Sabre\\CalDAV\\Backend\\BackendInterface' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Backend/BackendInterface.php', 'Sabre\\CalDAV\\Backend\\NotificationSupport' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Backend/NotificationSupport.php', @@ -3562,7 +3545,6 @@ class ComposerStaticInit2f23f73bc0cc116b4b1eee1521aa8652 'Symfony\\Polyfill\\Intl\\Idn\\Resources\\unidata\\DisallowedRanges' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php', 'Symfony\\Polyfill\\Intl\\Idn\\Resources\\unidata\\Regex' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/Resources/unidata/Regex.php', 'Symfony\\Polyfill\\Intl\\Normalizer\\Normalizer' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/Normalizer.php', - 'Symfony\\Polyfill\\Php83\\Php83' => __DIR__ . '/..' . '/symfony/polyfill-php83/Php83.php', 'Symfony\\Polyfill\\Php84\\Php84' => __DIR__ . '/..' . '/symfony/polyfill-php84/Php84.php', 'Symfony\\Polyfill\\Php85\\Php85' => __DIR__ . '/..' . '/symfony/polyfill-php85/Php85.php', 'Symfony\\Polyfill\\Uuid\\Uuid' => __DIR__ . '/..' . '/symfony/polyfill-uuid/Uuid.php', diff --git a/composer/installed.json b/composer/installed.json index 972a7506a..427585b6d 100644 --- a/composer/installed.json +++ b/composer/installed.json @@ -1905,37 +1905,37 @@ }, { "name": "lcobucci/clock", - "version": "3.0.0", - "version_normalized": "3.0.0.0", + "version": "3.5.0", + "version_normalized": "3.5.0.0", "source": { "type": "git", "url": "https://github.com/lcobucci/clock.git", - "reference": "039ef98c6b57b101d10bd11d8fdfda12cbd996dc" + "reference": "a3139d9e97d47826f27e6a17bb63f13621f86058" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/lcobucci/clock/zipball/039ef98c6b57b101d10bd11d8fdfda12cbd996dc", - "reference": "039ef98c6b57b101d10bd11d8fdfda12cbd996dc", + "url": "https://api.github.com/repos/lcobucci/clock/zipball/a3139d9e97d47826f27e6a17bb63f13621f86058", + "reference": "a3139d9e97d47826f27e6a17bb63f13621f86058", "shasum": "" }, "require": { - "php": "~8.1.0 || ~8.2.0", + "php": "~8.3.0 || ~8.4.0 || ~8.5.0", "psr/clock": "^1.0" }, "provide": { "psr/clock-implementation": "1.0" }, "require-dev": { - "infection/infection": "^0.26", - "lcobucci/coding-standard": "^9.0", - "phpstan/extension-installer": "^1.2", - "phpstan/phpstan": "^1.9.4", - "phpstan/phpstan-deprecation-rules": "^1.1.1", - "phpstan/phpstan-phpunit": "^1.3.2", - "phpstan/phpstan-strict-rules": "^1.4.4", - "phpunit/phpunit": "^9.5.27" - }, - "time": "2022-12-19T15:00:24+00:00", + "infection/infection": "^0.31", + "lcobucci/coding-standard": "^11.2.0", + "phpstan/extension-installer": "^1.3.1", + "phpstan/phpstan": "^2.0.0", + "phpstan/phpstan-deprecation-rules": "^2.0.0", + "phpstan/phpstan-phpunit": "^2.0.0", + "phpstan/phpstan-strict-rules": "^2.0.0", + "phpunit/phpunit": "^12.0.0" + }, + "time": "2025-10-27T09:03:17+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -1956,7 +1956,7 @@ "description": "Yet another clock abstraction", "support": { "issues": "https://github.com/lcobucci/clock/issues", - "source": "https://github.com/lcobucci/clock/tree/3.0.0" + "source": "https://github.com/lcobucci/clock/tree/3.5.0" }, "funding": [ { @@ -5603,89 +5603,6 @@ ], "install-path": "../symfony/polyfill-intl-normalizer" }, - { - "name": "symfony/polyfill-php83", - "version": "v1.33.0", - "version_normalized": "1.33.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/17f6f9a6b1735c0f163024d959f700cfbc5155e5", - "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "time": "2025-07-08T02:45:35+00:00", - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php83\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.33.0" - }, - "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" - } - ], - "install-path": "../symfony/polyfill-php83" - }, { "name": "symfony/polyfill-php84", "version": "v1.33.0", @@ -6681,17 +6598,17 @@ }, { "name": "web-auth/webauthn-lib", - "version": "4.9.1", - "version_normalized": "4.9.1.0", + "version": "4.9.3", + "version_normalized": "4.9.3.0", "source": { "type": "git", "url": "https://github.com/web-auth/webauthn-lib.git", - "reference": "fd7a0943c663b325e92ad562c2bcc943e77beeac" + "reference": "129fbaccd22163429a39bf85e320fb9eddad035c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/web-auth/webauthn-lib/zipball/fd7a0943c663b325e92ad562c2bcc943e77beeac", - "reference": "fd7a0943c663b325e92ad562c2bcc943e77beeac", + "url": "https://api.github.com/repos/web-auth/webauthn-lib/zipball/129fbaccd22163429a39bf85e320fb9eddad035c", + "reference": "129fbaccd22163429a39bf85e320fb9eddad035c", "shasum": "" }, "require": { @@ -6722,12 +6639,12 @@ "symfony/serializer": "As of 4.5.x, the symfony/serializer component will become mandatory for converting objects such as the Metadata Statement", "web-token/jwt-library": "Mandatory for fetching Metadata Statement from distant sources" }, - "time": "2024-07-16T18:36:36+00:00", + "time": "2026-02-05T12:48:16+00:00", "type": "library", "extra": { "thanks": { - "name": "web-auth/webauthn-framework", - "url": "https://github.com/web-auth/webauthn-framework" + "url": "https://github.com/web-auth/webauthn-framework", + "name": "web-auth/webauthn-framework" } }, "installation-source": "dist", @@ -6758,7 +6675,7 @@ "webauthn" ], "support": { - "source": "https://github.com/web-auth/webauthn-lib/tree/4.9.1" + "source": "https://github.com/web-auth/webauthn-lib/tree/4.9.3" }, "funding": [ { diff --git a/composer/installed.php b/composer/installed.php index 1fd0c2bdc..a1ee9a412 100644 --- a/composer/installed.php +++ b/composer/installed.php @@ -245,9 +245,9 @@ 'dev_requirement' => false, ), 'lcobucci/clock' => array( - 'pretty_version' => '3.0.0', - 'version' => '3.0.0.0', - 'reference' => '039ef98c6b57b101d10bd11d8fdfda12cbd996dc', + 'pretty_version' => '3.5.0', + 'version' => '3.5.0.0', + 'reference' => 'a3139d9e97d47826f27e6a17bb63f13621f86058', 'type' => 'library', 'install_path' => __DIR__ . '/../lcobucci/clock', 'aliases' => array(), @@ -824,13 +824,10 @@ ), ), 'symfony/polyfill-php83' => array( - 'pretty_version' => 'v1.33.0', - 'version' => '1.33.0.0', - 'reference' => '17f6f9a6b1735c0f163024d959f700cfbc5155e5', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/polyfill-php83', - 'aliases' => array(), 'dev_requirement' => false, + 'replaced' => array( + 0 => '*', + ), ), 'symfony/polyfill-php84' => array( 'pretty_version' => 'v1.33.0', @@ -947,9 +944,9 @@ 'dev_requirement' => false, ), 'web-auth/webauthn-lib' => array( - 'pretty_version' => '4.9.1', - 'version' => '4.9.1.0', - 'reference' => 'fd7a0943c663b325e92ad562c2bcc943e77beeac', + 'pretty_version' => '4.9.3', + 'version' => '4.9.3.0', + 'reference' => '129fbaccd22163429a39bf85e320fb9eddad035c', 'type' => 'library', 'install_path' => __DIR__ . '/../web-auth/webauthn-lib', 'aliases' => array(), diff --git a/composer/platform_check.php b/composer/platform_check.php index 14bf88da3..af033b949 100644 --- a/composer/platform_check.php +++ b/composer/platform_check.php @@ -4,8 +4,8 @@ $issues = array(); -if (!(PHP_VERSION_ID >= 80200)) { - $issues[] = 'Your Composer dependencies require a PHP version ">= 8.2.0". You are running ' . PHP_VERSION . '.'; +if (!(PHP_VERSION_ID >= 80300)) { + $issues[] = 'Your Composer dependencies require a PHP version ">= 8.3.0". You are running ' . PHP_VERSION . '.'; } if ($issues) { diff --git a/lcobucci/clock/src/FrozenClock.php b/lcobucci/clock/src/FrozenClock.php index 0aad70162..85cbdf411 100644 --- a/lcobucci/clock/src/FrozenClock.php +++ b/lcobucci/clock/src/FrozenClock.php @@ -3,9 +3,12 @@ namespace Lcobucci\Clock; +use DateMalformedStringException; use DateTimeImmutable; use DateTimeZone; +use function date_default_timezone_get; + final class FrozenClock implements Clock { public function __construct(private DateTimeImmutable $now) @@ -17,11 +20,28 @@ public static function fromUTC(): self return new self(new DateTimeImmutable('now', new DateTimeZone('UTC'))); } + public static function fromSystemTimezone(): self + { + return new self(new DateTimeImmutable('now', new DateTimeZone(date_default_timezone_get()))); + } + public function setTo(DateTimeImmutable $now): void { $this->now = $now; } + /** + * Adjusts the current time by a given modifier. + * + * @param non-empty-string $modifier @see https://www.php.net/manual/en/datetime.formats.php + * + * @throws DateMalformedStringException When an invalid date/time string is passed. + */ + public function adjustTime(string $modifier): void + { + $this->now = $this->now->modify($modifier); + } + public function now(): DateTimeImmutable { return $this->now; diff --git a/lcobucci/clock/src/SystemClock.php b/lcobucci/clock/src/SystemClock.php index 69de81f81..36ccb774b 100644 --- a/lcobucci/clock/src/SystemClock.php +++ b/lcobucci/clock/src/SystemClock.php @@ -8,9 +8,10 @@ use function date_default_timezone_get; -final class SystemClock implements Clock +/** @immutable */ +final readonly class SystemClock implements Clock { - public function __construct(private readonly DateTimeZone $timezone) + public function __construct(private DateTimeZone $timezone) { } diff --git a/symfony/polyfill-php83/LICENSE b/symfony/polyfill-php83/LICENSE deleted file mode 100644 index 733c826eb..000000000 --- a/symfony/polyfill-php83/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2022-present Fabien Potencier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/symfony/polyfill-php83/Php83.php b/symfony/polyfill-php83/Php83.php deleted file mode 100644 index 8b7ee4c70..000000000 --- a/symfony/polyfill-php83/Php83.php +++ /dev/null @@ -1,197 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Polyfill\Php83; - -/** - * @author Ion Bazan - * @author Pierre Ambroise - * - * @internal - */ -final class Php83 -{ - private const JSON_MAX_DEPTH = 0x7FFFFFFF; // see https://www.php.net/manual/en/function.json-decode.php - - public static function json_validate(string $json, int $depth = 512, int $flags = 0): bool - { - if (0 !== $flags && \defined('JSON_INVALID_UTF8_IGNORE') && \JSON_INVALID_UTF8_IGNORE !== $flags) { - throw new \ValueError('json_validate(): Argument #3 ($flags) must be a valid flag (allowed flags: JSON_INVALID_UTF8_IGNORE)'); - } - - if ($depth <= 0) { - throw new \ValueError('json_validate(): Argument #2 ($depth) must be greater than 0'); - } - - if ($depth > self::JSON_MAX_DEPTH) { - throw new \ValueError(sprintf('json_validate(): Argument #2 ($depth) must be less than %d', self::JSON_MAX_DEPTH)); - } - - json_decode($json, true, $depth, $flags); - - return \JSON_ERROR_NONE === json_last_error(); - } - - public static function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = \STR_PAD_RIGHT, ?string $encoding = null): string - { - if (!\in_array($pad_type, [\STR_PAD_RIGHT, \STR_PAD_LEFT, \STR_PAD_BOTH], true)) { - throw new \ValueError('mb_str_pad(): Argument #4 ($pad_type) must be STR_PAD_LEFT, STR_PAD_RIGHT, or STR_PAD_BOTH'); - } - - if (null === $encoding) { - $encoding = mb_internal_encoding(); - } - - try { - $validEncoding = @mb_check_encoding('', $encoding); - } catch (\ValueError $e) { - throw new \ValueError(sprintf('mb_str_pad(): Argument #5 ($encoding) must be a valid encoding, "%s" given', $encoding)); - } - - // BC for PHP 7.3 and lower - if (!$validEncoding) { - throw new \ValueError(sprintf('mb_str_pad(): Argument #5 ($encoding) must be a valid encoding, "%s" given', $encoding)); - } - - if (mb_strlen($pad_string, $encoding) <= 0) { - throw new \ValueError('mb_str_pad(): Argument #3 ($pad_string) must be a non-empty string'); - } - - $paddingRequired = $length - mb_strlen($string, $encoding); - - if ($paddingRequired < 1) { - return $string; - } - - switch ($pad_type) { - case \STR_PAD_LEFT: - return mb_substr(str_repeat($pad_string, $paddingRequired), 0, $paddingRequired, $encoding).$string; - case \STR_PAD_RIGHT: - return $string.mb_substr(str_repeat($pad_string, $paddingRequired), 0, $paddingRequired, $encoding); - default: - $leftPaddingLength = floor($paddingRequired / 2); - $rightPaddingLength = $paddingRequired - $leftPaddingLength; - - return mb_substr(str_repeat($pad_string, $leftPaddingLength), 0, $leftPaddingLength, $encoding).$string.mb_substr(str_repeat($pad_string, $rightPaddingLength), 0, $rightPaddingLength, $encoding); - } - } - - public static function str_increment(string $string): string - { - if ('' === $string) { - throw new \ValueError('str_increment(): Argument #1 ($string) cannot be empty'); - } - - if (!preg_match('/^[a-zA-Z0-9]+$/', $string)) { - throw new \ValueError('str_increment(): Argument #1 ($string) must be composed only of alphanumeric ASCII characters'); - } - - if (is_numeric($string)) { - $offset = stripos($string, 'e'); - if (false !== $offset) { - $char = $string[$offset]; - ++$char; - $string[$offset] = $char; - ++$string; - - switch ($string[$offset]) { - case 'f': - $string[$offset] = 'e'; - break; - case 'F': - $string[$offset] = 'E'; - break; - case 'g': - $string[$offset] = 'f'; - break; - case 'G': - $string[$offset] = 'F'; - break; - } - - return $string; - } - } - - return ++$string; - } - - public static function str_decrement(string $string): string - { - if ('' === $string) { - throw new \ValueError('str_decrement(): Argument #1 ($string) cannot be empty'); - } - - if (!preg_match('/^[a-zA-Z0-9]+$/', $string)) { - throw new \ValueError('str_decrement(): Argument #1 ($string) must be composed only of alphanumeric ASCII characters'); - } - - if (preg_match('/\A(?:0[aA0]?|[aA])\z/', $string)) { - throw new \ValueError(sprintf('str_decrement(): Argument #1 ($string) "%s" is out of decrement range', $string)); - } - - if (!\in_array(substr($string, -1), ['A', 'a', '0'], true)) { - return implode('', \array_slice(str_split($string), 0, -1)).\chr(\ord(substr($string, -1)) - 1); - } - - $carry = ''; - $decremented = ''; - - for ($i = \strlen($string) - 1; $i >= 0; --$i) { - $char = $string[$i]; - - switch ($char) { - case 'A': - if ('' !== $carry) { - $decremented = $carry.$decremented; - $carry = ''; - } - $carry = 'Z'; - - break; - case 'a': - if ('' !== $carry) { - $decremented = $carry.$decremented; - $carry = ''; - } - $carry = 'z'; - - break; - case '0': - if ('' !== $carry) { - $decremented = $carry.$decremented; - $carry = ''; - } - $carry = '9'; - - break; - case '1': - if ('' !== $carry) { - $decremented = $carry.$decremented; - $carry = ''; - } - - break; - default: - if ('' !== $carry) { - $decremented = $carry.$decremented; - $carry = ''; - } - - if (!\in_array($char, ['A', 'a', '0'], true)) { - $decremented = \chr(\ord($char) - 1).$decremented; - } - } - } - - return $decremented; - } -} diff --git a/symfony/polyfill-php83/Resources/stubs/DateError.php b/symfony/polyfill-php83/Resources/stubs/DateError.php deleted file mode 100644 index 6e7ed8c86..000000000 --- a/symfony/polyfill-php83/Resources/stubs/DateError.php +++ /dev/null @@ -1,16 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -if (\PHP_VERSION_ID < 80300) { - class DateError extends Error - { - } -} diff --git a/symfony/polyfill-php83/Resources/stubs/DateException.php b/symfony/polyfill-php83/Resources/stubs/DateException.php deleted file mode 100644 index 041710af5..000000000 --- a/symfony/polyfill-php83/Resources/stubs/DateException.php +++ /dev/null @@ -1,16 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -if (\PHP_VERSION_ID < 80300) { - class DateException extends Exception - { - } -} diff --git a/symfony/polyfill-php83/Resources/stubs/DateInvalidOperationException.php b/symfony/polyfill-php83/Resources/stubs/DateInvalidOperationException.php deleted file mode 100644 index e2e9dfc95..000000000 --- a/symfony/polyfill-php83/Resources/stubs/DateInvalidOperationException.php +++ /dev/null @@ -1,16 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -if (\PHP_VERSION_ID < 80300) { - class DateInvalidOperationException extends DateException - { - } -} diff --git a/symfony/polyfill-php83/Resources/stubs/DateInvalidTimeZoneException.php b/symfony/polyfill-php83/Resources/stubs/DateInvalidTimeZoneException.php deleted file mode 100644 index 75bcd267a..000000000 --- a/symfony/polyfill-php83/Resources/stubs/DateInvalidTimeZoneException.php +++ /dev/null @@ -1,16 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -if (\PHP_VERSION_ID < 80300) { - class DateInvalidTimeZoneException extends DateException - { - } -} diff --git a/symfony/polyfill-php83/Resources/stubs/DateMalformedIntervalStringException.php b/symfony/polyfill-php83/Resources/stubs/DateMalformedIntervalStringException.php deleted file mode 100644 index af91b8e4d..000000000 --- a/symfony/polyfill-php83/Resources/stubs/DateMalformedIntervalStringException.php +++ /dev/null @@ -1,16 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -if (\PHP_VERSION_ID < 80300) { - class DateMalformedIntervalStringException extends DateException - { - } -} diff --git a/symfony/polyfill-php83/Resources/stubs/DateMalformedPeriodStringException.php b/symfony/polyfill-php83/Resources/stubs/DateMalformedPeriodStringException.php deleted file mode 100644 index 9b6d2764e..000000000 --- a/symfony/polyfill-php83/Resources/stubs/DateMalformedPeriodStringException.php +++ /dev/null @@ -1,16 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -if (\PHP_VERSION_ID < 80300) { - class DateMalformedPeriodStringException extends DateException - { - } -} diff --git a/symfony/polyfill-php83/Resources/stubs/DateMalformedStringException.php b/symfony/polyfill-php83/Resources/stubs/DateMalformedStringException.php deleted file mode 100644 index 7ad04849f..000000000 --- a/symfony/polyfill-php83/Resources/stubs/DateMalformedStringException.php +++ /dev/null @@ -1,16 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -if (\PHP_VERSION_ID < 80300) { - class DateMalformedStringException extends DateException - { - } -} diff --git a/symfony/polyfill-php83/Resources/stubs/DateObjectError.php b/symfony/polyfill-php83/Resources/stubs/DateObjectError.php deleted file mode 100644 index 11f0edc68..000000000 --- a/symfony/polyfill-php83/Resources/stubs/DateObjectError.php +++ /dev/null @@ -1,16 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -if (\PHP_VERSION_ID < 80300) { - class DateObjectError extends DateError - { - } -} diff --git a/symfony/polyfill-php83/Resources/stubs/DateRangeError.php b/symfony/polyfill-php83/Resources/stubs/DateRangeError.php deleted file mode 100644 index 98e67036e..000000000 --- a/symfony/polyfill-php83/Resources/stubs/DateRangeError.php +++ /dev/null @@ -1,16 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -if (\PHP_VERSION_ID < 80300) { - class DateRangeError extends DateError - { - } -} diff --git a/symfony/polyfill-php83/Resources/stubs/Override.php b/symfony/polyfill-php83/Resources/stubs/Override.php deleted file mode 100644 index d3e6b3e1d..000000000 --- a/symfony/polyfill-php83/Resources/stubs/Override.php +++ /dev/null @@ -1,20 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -if (\PHP_VERSION_ID < 80300) { - #[Attribute(Attribute::TARGET_METHOD)] - final class Override - { - public function __construct() - { - } - } -} diff --git a/symfony/polyfill-php83/Resources/stubs/SQLite3Exception.php b/symfony/polyfill-php83/Resources/stubs/SQLite3Exception.php deleted file mode 100644 index ecb7c98e0..000000000 --- a/symfony/polyfill-php83/Resources/stubs/SQLite3Exception.php +++ /dev/null @@ -1,16 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -if (\PHP_VERSION_ID < 80300) { - class SQLite3Exception extends Exception - { - } -} diff --git a/symfony/polyfill-php83/bootstrap.php b/symfony/polyfill-php83/bootstrap.php deleted file mode 100644 index a92799cb3..000000000 --- a/symfony/polyfill-php83/bootstrap.php +++ /dev/null @@ -1,50 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -use Symfony\Polyfill\Php83 as p; - -if (\PHP_VERSION_ID >= 80300) { - return; -} - -if (!function_exists('json_validate')) { - function json_validate(string $json, int $depth = 512, int $flags = 0): bool { return p\Php83::json_validate($json, $depth, $flags); } -} - -if (extension_loaded('mbstring')) { - if (!function_exists('mb_str_pad')) { - function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = STR_PAD_RIGHT, ?string $encoding = null): string { return p\Php83::mb_str_pad($string, $length, $pad_string, $pad_type, $encoding); } - } -} - -if (!function_exists('stream_context_set_options')) { - function stream_context_set_options($context, array $options): bool { return stream_context_set_option($context, $options); } -} - -if (!function_exists('str_increment')) { - function str_increment(string $string): string { return p\Php83::str_increment($string); } -} - -if (!function_exists('str_decrement')) { - function str_decrement(string $string): string { return p\Php83::str_decrement($string); } -} - -if (\PHP_VERSION_ID >= 80100) { - return require __DIR__.'/bootstrap81.php'; -} - -if (!function_exists('ldap_exop_sync') && function_exists('ldap_exop')) { - function ldap_exop_sync($ldap, string $request_oid, ?string $request_data = null, ?array $controls = null, &$response_data = null, &$response_oid = null): bool { return ldap_exop($ldap, $request_oid, $request_data, $controls, $response_data, $response_oid); } -} - -if (!function_exists('ldap_connect_wallet') && function_exists('ldap_connect')) { - function ldap_connect_wallet(?string $uri, string $wallet, string $password, int $auth_mode = \GSLC_SSL_NO_AUTH) { return ldap_connect($uri, $wallet, $password, $auth_mode); } -} diff --git a/symfony/polyfill-php83/bootstrap81.php b/symfony/polyfill-php83/bootstrap81.php deleted file mode 100644 index 68395b439..000000000 --- a/symfony/polyfill-php83/bootstrap81.php +++ /dev/null @@ -1,22 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -if (\PHP_VERSION_ID >= 80300) { - return; -} - -if (!function_exists('ldap_exop_sync') && function_exists('ldap_exop')) { - function ldap_exop_sync(\LDAP\Connection $ldap, string $request_oid, ?string $request_data = null, ?array $controls = null, &$response_data = null, &$response_oid = null): bool { return ldap_exop($ldap, $request_oid, $request_data, $controls, $response_data, $response_oid); } -} - -if (!function_exists('ldap_connect_wallet') && function_exists('ldap_connect')) { - function ldap_connect_wallet(?string $uri, string $wallet, #[\SensitiveParameter] string $password, int $auth_mode = \GSLC_SSL_NO_AUTH): \LDAP\Connection|false { return ldap_connect($uri, $wallet, $password, $auth_mode); } -} diff --git a/web-auth/webauthn-lib/src/AttestationStatement/AndroidKeyAttestationStatementSupport.php b/web-auth/webauthn-lib/src/AttestationStatement/AndroidKeyAttestationStatementSupport.php index eb54b7b40..002423545 100644 --- a/web-auth/webauthn-lib/src/AttestationStatement/AndroidKeyAttestationStatementSupport.php +++ b/web-auth/webauthn-lib/src/AttestationStatement/AndroidKeyAttestationStatementSupport.php @@ -29,6 +29,7 @@ use function is_array; use function openssl_pkey_get_public; use function openssl_verify; +use function sprintf; final class AndroidKeyAttestationStatementSupport implements AttestationStatementSupport, CanDispatchEvents { diff --git a/web-auth/webauthn-lib/src/AttestationStatement/AndroidSafetyNetAttestationStatementSupport.php b/web-auth/webauthn-lib/src/AttestationStatement/AndroidSafetyNetAttestationStatementSupport.php index cd87757c3..d852ce517 100644 --- a/web-auth/webauthn-lib/src/AttestationStatement/AndroidSafetyNetAttestationStatementSupport.php +++ b/web-auth/webauthn-lib/src/AttestationStatement/AndroidSafetyNetAttestationStatementSupport.php @@ -41,6 +41,7 @@ use function is_array; use function is_int; use function is_string; +use function sprintf; use const JSON_THROW_ON_ERROR; /** diff --git a/web-auth/webauthn-lib/src/AttestationStatement/AttestationStatement.php b/web-auth/webauthn-lib/src/AttestationStatement/AttestationStatement.php index 5285de2eb..8f45491c0 100644 --- a/web-auth/webauthn-lib/src/AttestationStatement/AttestationStatement.php +++ b/web-auth/webauthn-lib/src/AttestationStatement/AttestationStatement.php @@ -9,6 +9,7 @@ use Webauthn\TrustPath\TrustPath; use Webauthn\TrustPath\TrustPathLoader; use function array_key_exists; +use function sprintf; class AttestationStatement implements JsonSerializable { diff --git a/web-auth/webauthn-lib/src/AttestationStatement/AttestationStatementSupportManager.php b/web-auth/webauthn-lib/src/AttestationStatement/AttestationStatementSupportManager.php index 089028810..7687d8d35 100644 --- a/web-auth/webauthn-lib/src/AttestationStatement/AttestationStatementSupportManager.php +++ b/web-auth/webauthn-lib/src/AttestationStatement/AttestationStatementSupportManager.php @@ -6,6 +6,7 @@ use Webauthn\Exception\InvalidDataException; use function array_key_exists; +use function sprintf; class AttestationStatementSupportManager { diff --git a/web-auth/webauthn-lib/src/AttestationStatement/FidoU2FAttestationStatementSupport.php b/web-auth/webauthn-lib/src/AttestationStatement/FidoU2FAttestationStatementSupport.php index db4bf3a12..c0d812b2f 100644 --- a/web-auth/webauthn-lib/src/AttestationStatement/FidoU2FAttestationStatementSupport.php +++ b/web-auth/webauthn-lib/src/AttestationStatement/FidoU2FAttestationStatementSupport.php @@ -24,6 +24,7 @@ use function is_array; use function openssl_pkey_get_public; use function openssl_verify; +use function sprintf; use const OPENSSL_ALGO_SHA256; final class FidoU2FAttestationStatementSupport implements AttestationStatementSupport, CanDispatchEvents diff --git a/web-auth/webauthn-lib/src/AttestationStatement/TPMAttestationStatementSupport.php b/web-auth/webauthn-lib/src/AttestationStatement/TPMAttestationStatementSupport.php index 71a60ca61..7f027ef83 100644 --- a/web-auth/webauthn-lib/src/AttestationStatement/TPMAttestationStatementSupport.php +++ b/web-auth/webauthn-lib/src/AttestationStatement/TPMAttestationStatementSupport.php @@ -36,6 +36,7 @@ use function is_array; use function is_int; use function openssl_verify; +use function sprintf; use function unpack; final class TPMAttestationStatementSupport implements AttestationStatementSupport, CanDispatchEvents diff --git a/web-auth/webauthn-lib/src/AuthenticationExtensions/AuthenticationExtensions.php b/web-auth/webauthn-lib/src/AuthenticationExtensions/AuthenticationExtensions.php index 2ef2bc65e..5315524e9 100644 --- a/web-auth/webauthn-lib/src/AuthenticationExtensions/AuthenticationExtensions.php +++ b/web-auth/webauthn-lib/src/AuthenticationExtensions/AuthenticationExtensions.php @@ -14,6 +14,7 @@ use function array_key_exists; use function count; use function is_string; +use function sprintf; use const COUNT_NORMAL; /** diff --git a/web-auth/webauthn-lib/src/AuthenticationExtensions/ExtensionOutputError.php b/web-auth/webauthn-lib/src/AuthenticationExtensions/ExtensionOutputError.php index 9adcc706f..9310befa5 100644 --- a/web-auth/webauthn-lib/src/AuthenticationExtensions/ExtensionOutputError.php +++ b/web-auth/webauthn-lib/src/AuthenticationExtensions/ExtensionOutputError.php @@ -13,7 +13,7 @@ public function __construct( public readonly AuthenticationExtension $authenticationExtension, string $message = '', int $code = 0, - Throwable $previous = null + ?Throwable $previous = null ) { parent::__construct($message, $code, $previous); } diff --git a/web-auth/webauthn-lib/src/AuthenticatorAssertionResponseValidator.php b/web-auth/webauthn-lib/src/AuthenticatorAssertionResponseValidator.php index fa433b211..ff1ff9be9 100644 --- a/web-auth/webauthn-lib/src/AuthenticatorAssertionResponseValidator.php +++ b/web-auth/webauthn-lib/src/AuthenticatorAssertionResponseValidator.php @@ -22,6 +22,7 @@ use Webauthn\MetadataService\CanLogData; use Webauthn\TokenBinding\TokenBindingHandler; use function is_string; +use function sprintf; class AuthenticatorAssertionResponseValidator implements CanLogData, CanDispatchEvents { @@ -79,7 +80,7 @@ public function __construct( trigger_deprecation( 'web-auth/webauthn-lib', '4.8.0', - 'The parameter "$ceremonyStepManager" will mandatory in 5.0.0. Please set a CeremonyStepManager object instead and set null for $algorithmManager and $extensionOutputCheckerHandler.' + 'The parameter "$ceremonyStepManager" will become mandatory in 5.0.0. Please set a CeremonyStepManager object instead and set null for $algorithmManager and $extensionOutputCheckerHandler.' ); } $this->logger = new NullLogger(); diff --git a/web-auth/webauthn-lib/src/AuthenticatorAttestationResponseValidator.php b/web-auth/webauthn-lib/src/AuthenticatorAttestationResponseValidator.php index 97d43402e..71fc82f6b 100644 --- a/web-auth/webauthn-lib/src/AuthenticatorAttestationResponseValidator.php +++ b/web-auth/webauthn-lib/src/AuthenticatorAttestationResponseValidator.php @@ -24,6 +24,7 @@ use Webauthn\MetadataService\StatusReportRepository; use Webauthn\TokenBinding\TokenBindingHandler; use function is_string; +use function sprintf; class AuthenticatorAttestationResponseValidator implements CanLogData, CanDispatchEvents { diff --git a/web-auth/webauthn-lib/src/CeremonyStep/CheckAlgorithm.php b/web-auth/webauthn-lib/src/CeremonyStep/CheckAlgorithm.php index 9b5e39b22..74a221e14 100644 --- a/web-auth/webauthn-lib/src/CeremonyStep/CheckAlgorithm.php +++ b/web-auth/webauthn-lib/src/CeremonyStep/CheckAlgorithm.php @@ -19,6 +19,7 @@ use function count; use function in_array; use function is_array; +use function sprintf; class CheckAlgorithm implements CeremonyStep { @@ -33,7 +34,7 @@ public function process( return; } $credentialPublicKey = $publicKeyCredentialSource->getAttestedCredentialData() -->credentialPublicKey; + ->credentialPublicKey; $credentialPublicKey !== null || throw AuthenticatorResponseVerificationException::create( 'No public key available.' ); diff --git a/web-auth/webauthn-lib/src/CeremonyStep/CheckMetadataStatement.php b/web-auth/webauthn-lib/src/CeremonyStep/CheckMetadataStatement.php index ce482a4a7..59c23c754 100644 --- a/web-auth/webauthn-lib/src/CeremonyStep/CheckMetadataStatement.php +++ b/web-auth/webauthn-lib/src/CeremonyStep/CheckMetadataStatement.php @@ -22,6 +22,7 @@ use Webauthn\TrustPath\CertificateTrustPath; use function count; use function in_array; +use function sprintf; final class CheckMetadataStatement implements CeremonyStep, CanLogData { diff --git a/web-auth/webauthn-lib/src/CeremonyStep/CheckSignature.php b/web-auth/webauthn-lib/src/CeremonyStep/CheckSignature.php index a89fef324..20454dc83 100644 --- a/web-auth/webauthn-lib/src/CeremonyStep/CheckSignature.php +++ b/web-auth/webauthn-lib/src/CeremonyStep/CheckSignature.php @@ -43,7 +43,7 @@ public function process( return; } $credentialPublicKey = $publicKeyCredentialSource->getAttestedCredentialData() -->credentialPublicKey; + ->credentialPublicKey; $credentialPublicKey !== null || throw AuthenticatorResponseVerificationException::create( 'No public key available.' ); diff --git a/web-auth/webauthn-lib/src/ClientDataCollector/WebauthnAuthenticationCollector.php b/web-auth/webauthn-lib/src/ClientDataCollector/WebauthnAuthenticationCollector.php index 1a316e258..ea97fdf1e 100644 --- a/web-auth/webauthn-lib/src/ClientDataCollector/WebauthnAuthenticationCollector.php +++ b/web-auth/webauthn-lib/src/ClientDataCollector/WebauthnAuthenticationCollector.php @@ -9,6 +9,7 @@ use Webauthn\Exception\AuthenticatorResponseVerificationException; use Webauthn\PublicKeyCredentialOptions; use function in_array; +use function sprintf; final class WebauthnAuthenticationCollector implements ClientDataCollector { diff --git a/web-auth/webauthn-lib/src/CollectedClientData.php b/web-auth/webauthn-lib/src/CollectedClientData.php index 3731207bb..f7c14b531 100644 --- a/web-auth/webauthn-lib/src/CollectedClientData.php +++ b/web-auth/webauthn-lib/src/CollectedClientData.php @@ -10,6 +10,7 @@ use function array_key_exists; use function is_array; use function is_string; +use function sprintf; use const JSON_THROW_ON_ERROR; class CollectedClientData diff --git a/web-auth/webauthn-lib/src/Denormalizer/AttestationObjectDenormalizer.php b/web-auth/webauthn-lib/src/Denormalizer/AttestationObjectDenormalizer.php index dfd4519b7..eae463088 100644 --- a/web-auth/webauthn-lib/src/Denormalizer/AttestationObjectDenormalizer.php +++ b/web-auth/webauthn-lib/src/Denormalizer/AttestationObjectDenormalizer.php @@ -19,7 +19,7 @@ final class AttestationObjectDenormalizer implements DenormalizerInterface, Deno { use DenormalizerAwareTrait; - public function denormalize(mixed $data, string $type, string $format = null, array $context = []): mixed + public function denormalize(mixed $data, string $type, ?string $format = null, array $context = []): mixed { $stream = new StringStream($data); $parsed = Decoder::create()->decode($stream); @@ -46,8 +46,12 @@ public function denormalize(mixed $data, string $type, string $format = null, ar ); } - public function supportsDenormalization(mixed $data, string $type, string $format = null, array $context = []): bool - { + public function supportsDenormalization( + mixed $data, + string $type, + ?string $format = null, + array $context = [] + ): bool { return $type === AttestationObject::class; } diff --git a/web-auth/webauthn-lib/src/Denormalizer/AttestationStatementDenormalizer.php b/web-auth/webauthn-lib/src/Denormalizer/AttestationStatementDenormalizer.php index fea020bce..fc3d0be0a 100644 --- a/web-auth/webauthn-lib/src/Denormalizer/AttestationStatementDenormalizer.php +++ b/web-auth/webauthn-lib/src/Denormalizer/AttestationStatementDenormalizer.php @@ -15,15 +15,19 @@ public function __construct( ) { } - public function denormalize(mixed $data, string $type, string $format = null, array $context = []): mixed + public function denormalize(mixed $data, string $type, ?string $format = null, array $context = []): mixed { $attestationStatementSupport = $this->attestationStatementSupportManager->get($data['fmt']); return $attestationStatementSupport->load($data); } - public function supportsDenormalization(mixed $data, string $type, string $format = null, array $context = []): bool - { + public function supportsDenormalization( + mixed $data, + string $type, + ?string $format = null, + array $context = [] + ): bool { return $type === AttestationStatement::class; } diff --git a/web-auth/webauthn-lib/src/Denormalizer/AuthenticationExtensionsDenormalizer.php b/web-auth/webauthn-lib/src/Denormalizer/AuthenticationExtensionsDenormalizer.php index e5bacefda..9c2e80a5d 100644 --- a/web-auth/webauthn-lib/src/Denormalizer/AuthenticationExtensionsDenormalizer.php +++ b/web-auth/webauthn-lib/src/Denormalizer/AuthenticationExtensionsDenormalizer.php @@ -17,7 +17,7 @@ final class AuthenticationExtensionsDenormalizer implements DenormalizerInterface, NormalizerInterface { - public function denormalize(mixed $data, string $type, string $format = null, array $context = []): mixed + public function denormalize(mixed $data, string $type, ?string $format = null, array $context = []): mixed { if ($data instanceof AuthenticationExtensions) { return AuthenticationExtensions::create($data->extensions); @@ -33,8 +33,12 @@ public function denormalize(mixed $data, string $type, string $format = null, ar return AuthenticationExtensions::create($data); } - public function supportsDenormalization(mixed $data, string $type, string $format = null, array $context = []): bool - { + public function supportsDenormalization( + mixed $data, + string $type, + ?string $format = null, + array $context = [] + ): bool { return in_array( $type, [ diff --git a/web-auth/webauthn-lib/src/Denormalizer/AuthenticatorAssertionResponseDenormalizer.php b/web-auth/webauthn-lib/src/Denormalizer/AuthenticatorAssertionResponseDenormalizer.php index 613331c7a..fd8927ff2 100644 --- a/web-auth/webauthn-lib/src/Denormalizer/AuthenticatorAssertionResponseDenormalizer.php +++ b/web-auth/webauthn-lib/src/Denormalizer/AuthenticatorAssertionResponseDenormalizer.php @@ -18,7 +18,7 @@ final class AuthenticatorAssertionResponseDenormalizer implements DenormalizerIn { use DenormalizerAwareTrait; - public function denormalize(mixed $data, string $type, string $format = null, array $context = []): mixed + public function denormalize(mixed $data, string $type, ?string $format = null, array $context = []): mixed { $data['authenticatorData'] = Base64::decode($data['authenticatorData']); $data['signature'] = Base64::decode($data['signature']); @@ -42,8 +42,12 @@ public function denormalize(mixed $data, string $type, string $format = null, ar ); } - public function supportsDenormalization(mixed $data, string $type, string $format = null, array $context = []): bool - { + public function supportsDenormalization( + mixed $data, + string $type, + ?string $format = null, + array $context = [] + ): bool { return $type === AuthenticatorAssertionResponse::class; } diff --git a/web-auth/webauthn-lib/src/Denormalizer/AuthenticatorAttestationResponseDenormalizer.php b/web-auth/webauthn-lib/src/Denormalizer/AuthenticatorAttestationResponseDenormalizer.php index 5f6569dc7..a634fb6a9 100644 --- a/web-auth/webauthn-lib/src/Denormalizer/AuthenticatorAttestationResponseDenormalizer.php +++ b/web-auth/webauthn-lib/src/Denormalizer/AuthenticatorAttestationResponseDenormalizer.php @@ -17,7 +17,7 @@ final class AuthenticatorAttestationResponseDenormalizer implements Denormalizer { use DenormalizerAwareTrait; - public function denormalize(mixed $data, string $type, string $format = null, array $context = []): mixed + public function denormalize(mixed $data, string $type, ?string $format = null, array $context = []): mixed { $data['clientDataJSON'] = Base64UrlSafe::decodeNoPadding($data['clientDataJSON']); $data['attestationObject'] = Base64::decode($data['attestationObject']); @@ -42,8 +42,12 @@ public function denormalize(mixed $data, string $type, string $format = null, ar ); } - public function supportsDenormalization(mixed $data, string $type, string $format = null, array $context = []): bool - { + public function supportsDenormalization( + mixed $data, + string $type, + ?string $format = null, + array $context = [] + ): bool { return $type === AuthenticatorAttestationResponse::class; } diff --git a/web-auth/webauthn-lib/src/Denormalizer/AuthenticatorDataDenormalizer.php b/web-auth/webauthn-lib/src/Denormalizer/AuthenticatorDataDenormalizer.php index f13450d0d..12aa21e06 100644 --- a/web-auth/webauthn-lib/src/Denormalizer/AuthenticatorDataDenormalizer.php +++ b/web-auth/webauthn-lib/src/Denormalizer/AuthenticatorDataDenormalizer.php @@ -35,7 +35,7 @@ public function __construct() $this->decoder = Decoder::create(); } - public function denormalize(mixed $data, string $type, string $format = null, array $context = []): mixed + public function denormalize(mixed $data, string $type, ?string $format = null, array $context = []): mixed { $authData = $this->fixIncorrectEdDSAKey($data); $authDataStream = new StringStream($authData); @@ -87,8 +87,12 @@ public function denormalize(mixed $data, string $type, string $format = null, ar ); } - public function supportsDenormalization(mixed $data, string $type, string $format = null, array $context = []): bool - { + public function supportsDenormalization( + mixed $data, + string $type, + ?string $format = null, + array $context = [] + ): bool { return $type === AuthenticatorData::class; } diff --git a/web-auth/webauthn-lib/src/Denormalizer/AuthenticatorResponseDenormalizer.php b/web-auth/webauthn-lib/src/Denormalizer/AuthenticatorResponseDenormalizer.php index 6a47309d5..63d152def 100644 --- a/web-auth/webauthn-lib/src/Denormalizer/AuthenticatorResponseDenormalizer.php +++ b/web-auth/webauthn-lib/src/Denormalizer/AuthenticatorResponseDenormalizer.php @@ -17,7 +17,7 @@ final class AuthenticatorResponseDenormalizer implements DenormalizerInterface, { use DenormalizerAwareTrait; - public function denormalize(mixed $data, string $type, string $format = null, array $context = []): mixed + public function denormalize(mixed $data, string $type, ?string $format = null, array $context = []): mixed { $realType = match (true) { array_key_exists('attestationObject', $data) => AuthenticatorAttestationResponse::class, @@ -28,8 +28,12 @@ public function denormalize(mixed $data, string $type, string $format = null, ar return $this->denormalizer->denormalize($data, $realType, $format, $context); } - public function supportsDenormalization(mixed $data, string $type, string $format = null, array $context = []): bool - { + public function supportsDenormalization( + mixed $data, + string $type, + ?string $format = null, + array $context = [] + ): bool { return $type === AuthenticatorResponse::class; } diff --git a/web-auth/webauthn-lib/src/Denormalizer/CollectedClientDataDenormalizer.php b/web-auth/webauthn-lib/src/Denormalizer/CollectedClientDataDenormalizer.php index e9e5264cd..fec3a7481 100644 --- a/web-auth/webauthn-lib/src/Denormalizer/CollectedClientDataDenormalizer.php +++ b/web-auth/webauthn-lib/src/Denormalizer/CollectedClientDataDenormalizer.php @@ -14,13 +14,17 @@ final class CollectedClientDataDenormalizer implements DenormalizerInterface, De { use DenormalizerAwareTrait; - public function denormalize(mixed $data, string $type, string $format = null, array $context = []): mixed + public function denormalize(mixed $data, string $type, ?string $format = null, array $context = []): mixed { return CollectedClientData::create($data, json_decode($data, true, flags: JSON_THROW_ON_ERROR)); } - public function supportsDenormalization(mixed $data, string $type, string $format = null, array $context = []): bool - { + public function supportsDenormalization( + mixed $data, + string $type, + ?string $format = null, + array $context = [] + ): bool { return $type === CollectedClientData::class; } diff --git a/web-auth/webauthn-lib/src/Denormalizer/ExtensionDescriptorDenormalizer.php b/web-auth/webauthn-lib/src/Denormalizer/ExtensionDescriptorDenormalizer.php index 4109ffb44..d67afd910 100644 --- a/web-auth/webauthn-lib/src/Denormalizer/ExtensionDescriptorDenormalizer.php +++ b/web-auth/webauthn-lib/src/Denormalizer/ExtensionDescriptorDenormalizer.php @@ -19,7 +19,7 @@ class ExtensionDescriptorDenormalizer implements DenormalizerInterface, Denormal private const ALREADY_CALLED = 'EXTENSION_DESCRIPTOR_PREPROCESS_ALREADY_CALLED'; - public function denormalize(mixed $data, string $type, string $format = null, array $context = []): mixed + public function denormalize(mixed $data, string $type, ?string $format = null, array $context = []): mixed { if (array_key_exists('fail_if_unknown', $data)) { $data['failIfUnknown'] = $data['fail_if_unknown']; @@ -31,8 +31,12 @@ public function denormalize(mixed $data, string $type, string $format = null, ar return $this->denormalizer->denormalize($data, $type, $format, $context); } - public function supportsDenormalization(mixed $data, string $type, string $format = null, array $context = []): bool - { + public function supportsDenormalization( + mixed $data, + string $type, + ?string $format = null, + array $context = [] + ): bool { if ($context[self::ALREADY_CALLED] ?? false) { return false; } diff --git a/web-auth/webauthn-lib/src/Denormalizer/PublicKeyCredentialDenormalizer.php b/web-auth/webauthn-lib/src/Denormalizer/PublicKeyCredentialDenormalizer.php index 33899b707..ba5508927 100644 --- a/web-auth/webauthn-lib/src/Denormalizer/PublicKeyCredentialDenormalizer.php +++ b/web-auth/webauthn-lib/src/Denormalizer/PublicKeyCredentialDenormalizer.php @@ -18,7 +18,7 @@ final class PublicKeyCredentialDenormalizer implements DenormalizerInterface, De { use DenormalizerAwareTrait; - public function denormalize(mixed $data, string $type, string $format = null, array $context = []): mixed + public function denormalize(mixed $data, string $type, ?string $format = null, array $context = []): mixed { if (! array_key_exists('id', $data)) { return $data; @@ -36,8 +36,12 @@ public function denormalize(mixed $data, string $type, string $format = null, ar ); } - public function supportsDenormalization(mixed $data, string $type, string $format = null, array $context = []): bool - { + public function supportsDenormalization( + mixed $data, + string $type, + ?string $format = null, + array $context = [] + ): bool { return $type === PublicKeyCredential::class; } diff --git a/web-auth/webauthn-lib/src/Denormalizer/PublicKeyCredentialOptionsDenormalizer.php b/web-auth/webauthn-lib/src/Denormalizer/PublicKeyCredentialOptionsDenormalizer.php index 1b59091d5..326a37378 100644 --- a/web-auth/webauthn-lib/src/Denormalizer/PublicKeyCredentialOptionsDenormalizer.php +++ b/web-auth/webauthn-lib/src/Denormalizer/PublicKeyCredentialOptionsDenormalizer.php @@ -29,7 +29,7 @@ final class PublicKeyCredentialOptionsDenormalizer implements DenormalizerInterf use DenormalizerAwareTrait; use NormalizerAwareTrait; - public function denormalize(mixed $data, string $type, string $format = null, array $context = []): mixed + public function denormalize(mixed $data, string $type, ?string $format = null, array $context = []): mixed { if (array_key_exists('challenge', $data)) { $data['challenge'] = Base64UrlSafe::decodeNoPadding($data['challenge']); @@ -103,8 +103,12 @@ public function denormalize(mixed $data, string $type, string $format = null, ar throw new BadMethodCallException('Unsupported type'); } - public function supportsDenormalization(mixed $data, string $type, string $format = null, array $context = []): bool - { + public function supportsDenormalization( + mixed $data, + string $type, + ?string $format = null, + array $context = [] + ): bool { return in_array( $type, [PublicKeyCredentialCreationOptions::class, PublicKeyCredentialRequestOptions::class], diff --git a/web-auth/webauthn-lib/src/Denormalizer/PublicKeyCredentialParametersDenormalizer.php b/web-auth/webauthn-lib/src/Denormalizer/PublicKeyCredentialParametersDenormalizer.php index b5d640688..0114c3a6a 100644 --- a/web-auth/webauthn-lib/src/Denormalizer/PublicKeyCredentialParametersDenormalizer.php +++ b/web-auth/webauthn-lib/src/Denormalizer/PublicKeyCredentialParametersDenormalizer.php @@ -11,7 +11,7 @@ final class PublicKeyCredentialParametersDenormalizer implements DenormalizerInterface { - public function denormalize(mixed $data, string $type, string $format = null, array $context = []): mixed + public function denormalize(mixed $data, string $type, ?string $format = null, array $context = []): mixed { if (! array_key_exists('type', $data) || ! array_key_exists('alg', $data)) { throw new InvalidDataException($data, 'Missing type or alg'); @@ -20,8 +20,12 @@ public function denormalize(mixed $data, string $type, string $format = null, ar return PublicKeyCredentialParameters::create($data['type'], $data['alg']); } - public function supportsDenormalization(mixed $data, string $type, string $format = null, array $context = []): bool - { + public function supportsDenormalization( + mixed $data, + string $type, + ?string $format = null, + array $context = [] + ): bool { return $type === PublicKeyCredentialParameters::class; } diff --git a/web-auth/webauthn-lib/src/Denormalizer/PublicKeyCredentialSourceDenormalizer.php b/web-auth/webauthn-lib/src/Denormalizer/PublicKeyCredentialSourceDenormalizer.php index bf8a5ae3d..3a963afa6 100644 --- a/web-auth/webauthn-lib/src/Denormalizer/PublicKeyCredentialSourceDenormalizer.php +++ b/web-auth/webauthn-lib/src/Denormalizer/PublicKeyCredentialSourceDenormalizer.php @@ -24,7 +24,7 @@ final class PublicKeyCredentialSourceDenormalizer implements DenormalizerInterfa use NormalizerAwareTrait; use DenormalizerAwareTrait; - public function denormalize(mixed $data, string $type, string $format = null, array $context = []): mixed + public function denormalize(mixed $data, string $type, ?string $format = null, array $context = []): mixed { $keys = ['publicKeyCredentialId', 'credentialPublicKey', 'userHandle']; foreach ($keys as $key) { @@ -49,8 +49,12 @@ public function denormalize(mixed $data, string $type, string $format = null, ar ); } - public function supportsDenormalization(mixed $data, string $type, string $format = null, array $context = []): bool - { + public function supportsDenormalization( + mixed $data, + string $type, + ?string $format = null, + array $context = [] + ): bool { return $type === PublicKeyCredentialSource::class; } diff --git a/web-auth/webauthn-lib/src/Denormalizer/PublicKeyCredentialUserEntityDenormalizer.php b/web-auth/webauthn-lib/src/Denormalizer/PublicKeyCredentialUserEntityDenormalizer.php index 275b2548a..0ac7f5d12 100644 --- a/web-auth/webauthn-lib/src/Denormalizer/PublicKeyCredentialUserEntityDenormalizer.php +++ b/web-auth/webauthn-lib/src/Denormalizer/PublicKeyCredentialUserEntityDenormalizer.php @@ -14,7 +14,7 @@ final class PublicKeyCredentialUserEntityDenormalizer implements DenormalizerInterface, NormalizerInterface { - public function denormalize(mixed $data, string $type, string $format = null, array $context = []): mixed + public function denormalize(mixed $data, string $type, ?string $format = null, array $context = []): mixed { if (! array_key_exists('id', $data)) { return $data; @@ -29,8 +29,12 @@ public function denormalize(mixed $data, string $type, string $format = null, ar ); } - public function supportsDenormalization(mixed $data, string $type, string $format = null, array $context = []): bool - { + public function supportsDenormalization( + mixed $data, + string $type, + ?string $format = null, + array $context = [] + ): bool { return $type === PublicKeyCredentialUserEntity::class; } diff --git a/web-auth/webauthn-lib/src/Denormalizer/TrustPathDenormalizer.php b/web-auth/webauthn-lib/src/Denormalizer/TrustPathDenormalizer.php index 741dbcd83..4a565ed88 100644 --- a/web-auth/webauthn-lib/src/Denormalizer/TrustPathDenormalizer.php +++ b/web-auth/webauthn-lib/src/Denormalizer/TrustPathDenormalizer.php @@ -16,7 +16,7 @@ final class TrustPathDenormalizer implements DenormalizerInterface, NormalizerInterface { - public function denormalize(mixed $data, string $type, string $format = null, array $context = []): mixed + public function denormalize(mixed $data, string $type, ?string $format = null, array $context = []): mixed { return match (true) { array_key_exists('ecdaaKeyId', $data) => new EcdaaKeyIdTrustPath($data), @@ -26,8 +26,12 @@ public function denormalize(mixed $data, string $type, string $format = null, ar }; } - public function supportsDenormalization(mixed $data, string $type, string $format = null, array $context = []): bool - { + public function supportsDenormalization( + mixed $data, + string $type, + ?string $format = null, + array $context = [] + ): bool { return $type === TrustPath::class; } diff --git a/web-auth/webauthn-lib/src/Denormalizer/WebauthnSerializerFactory.php b/web-auth/webauthn-lib/src/Denormalizer/WebauthnSerializerFactory.php index be9f7ce26..f7dc10915 100644 --- a/web-auth/webauthn-lib/src/Denormalizer/WebauthnSerializerFactory.php +++ b/web-auth/webauthn-lib/src/Denormalizer/WebauthnSerializerFactory.php @@ -15,6 +15,7 @@ use Symfony\Component\Serializer\Serializer; use Symfony\Component\Serializer\SerializerInterface; use Webauthn\AttestationStatement\AttestationStatementSupportManager; +use function sprintf; final class WebauthnSerializerFactory { diff --git a/web-auth/webauthn-lib/src/Event/AuthenticatorAssertionResponseValidationFailedEvent.php b/web-auth/webauthn-lib/src/Event/AuthenticatorAssertionResponseValidationFailedEvent.php index fb542c43a..f46b6d7de 100644 --- a/web-auth/webauthn-lib/src/Event/AuthenticatorAssertionResponseValidationFailedEvent.php +++ b/web-auth/webauthn-lib/src/Event/AuthenticatorAssertionResponseValidationFailedEvent.php @@ -9,6 +9,7 @@ use Webauthn\AuthenticatorAssertionResponse; use Webauthn\PublicKeyCredentialRequestOptions; use Webauthn\PublicKeyCredentialSource; +use function sprintf; class AuthenticatorAssertionResponseValidationFailedEvent { diff --git a/web-auth/webauthn-lib/src/Event/AuthenticatorAssertionResponseValidationSucceededEvent.php b/web-auth/webauthn-lib/src/Event/AuthenticatorAssertionResponseValidationSucceededEvent.php index 88442b171..75925582a 100644 --- a/web-auth/webauthn-lib/src/Event/AuthenticatorAssertionResponseValidationSucceededEvent.php +++ b/web-auth/webauthn-lib/src/Event/AuthenticatorAssertionResponseValidationSucceededEvent.php @@ -8,6 +8,7 @@ use Webauthn\AuthenticatorAssertionResponse; use Webauthn\PublicKeyCredentialRequestOptions; use Webauthn\PublicKeyCredentialSource; +use function sprintf; class AuthenticatorAssertionResponseValidationSucceededEvent { diff --git a/web-auth/webauthn-lib/src/Event/AuthenticatorAttestationResponseValidationFailedEvent.php b/web-auth/webauthn-lib/src/Event/AuthenticatorAttestationResponseValidationFailedEvent.php index 59f7403b9..3c8168d5c 100644 --- a/web-auth/webauthn-lib/src/Event/AuthenticatorAttestationResponseValidationFailedEvent.php +++ b/web-auth/webauthn-lib/src/Event/AuthenticatorAttestationResponseValidationFailedEvent.php @@ -8,6 +8,7 @@ use Throwable; use Webauthn\AuthenticatorAttestationResponse; use Webauthn\PublicKeyCredentialCreationOptions; +use function sprintf; class AuthenticatorAttestationResponseValidationFailedEvent { diff --git a/web-auth/webauthn-lib/src/Event/AuthenticatorAttestationResponseValidationSucceededEvent.php b/web-auth/webauthn-lib/src/Event/AuthenticatorAttestationResponseValidationSucceededEvent.php index 59cca9516..6145464ec 100644 --- a/web-auth/webauthn-lib/src/Event/AuthenticatorAttestationResponseValidationSucceededEvent.php +++ b/web-auth/webauthn-lib/src/Event/AuthenticatorAttestationResponseValidationSucceededEvent.php @@ -8,6 +8,7 @@ use Webauthn\AuthenticatorAttestationResponse; use Webauthn\PublicKeyCredentialCreationOptions; use Webauthn\PublicKeyCredentialSource; +use function sprintf; class AuthenticatorAttestationResponseValidationSucceededEvent { diff --git a/web-auth/webauthn-lib/src/MetadataService/CertificateChain/PhpCertificateChainValidator.php b/web-auth/webauthn-lib/src/MetadataService/CertificateChain/PhpCertificateChainValidator.php index b7a676d1b..ff50e7e7d 100644 --- a/web-auth/webauthn-lib/src/MetadataService/CertificateChain/PhpCertificateChainValidator.php +++ b/web-auth/webauthn-lib/src/MetadataService/CertificateChain/PhpCertificateChainValidator.php @@ -29,6 +29,7 @@ use function count; use function in_array; use function parse_url; +use function sprintf; use const PHP_EOL; use const PHP_URL_SCHEME; diff --git a/web-auth/webauthn-lib/src/MetadataService/Psr18HttpClient.php b/web-auth/webauthn-lib/src/MetadataService/Psr18HttpClient.php index 1f0b6f718..c296bb1f8 100644 --- a/web-auth/webauthn-lib/src/MetadataService/Psr18HttpClient.php +++ b/web-auth/webauthn-lib/src/MetadataService/Psr18HttpClient.php @@ -54,7 +54,7 @@ public function request(string $method, string $url, array $options = []): Respo /** * @param ResponseInterface|iterable $responses */ - public function stream(iterable|ResponseInterface $responses, float $timeout = null): ResponseStreamInterface + public function stream(iterable|ResponseInterface $responses, ?float $timeout = null): ResponseStreamInterface { throw new LogicException('Not implemented'); } @@ -119,7 +119,7 @@ public function cancel(): void // noop } - public function getInfo(string $type = null): mixed + public function getInfo(?string $type = null): mixed { return null; } diff --git a/web-auth/webauthn-lib/src/MetadataService/Service/MetadataBLOBPayload.php b/web-auth/webauthn-lib/src/MetadataService/Service/MetadataBLOBPayload.php index 0bd5df806..97df91c57 100644 --- a/web-auth/webauthn-lib/src/MetadataService/Service/MetadataBLOBPayload.php +++ b/web-auth/webauthn-lib/src/MetadataService/Service/MetadataBLOBPayload.php @@ -11,6 +11,7 @@ use function is_array; use function is_int; use function is_string; +use function sprintf; class MetadataBLOBPayload implements JsonSerializable { diff --git a/web-auth/webauthn-lib/src/MetadataService/Statement/DisplayPNGCharacteristicsDescriptor.php b/web-auth/webauthn-lib/src/MetadataService/Statement/DisplayPNGCharacteristicsDescriptor.php index f69703038..e0c8603b3 100644 --- a/web-auth/webauthn-lib/src/MetadataService/Statement/DisplayPNGCharacteristicsDescriptor.php +++ b/web-auth/webauthn-lib/src/MetadataService/Statement/DisplayPNGCharacteristicsDescriptor.php @@ -8,6 +8,7 @@ use Webauthn\Exception\MetadataStatementLoadingException; use Webauthn\MetadataService\ValueFilter; use function array_key_exists; +use function sprintf; class DisplayPNGCharacteristicsDescriptor implements JsonSerializable { diff --git a/web-auth/webauthn-lib/src/MetadataService/Statement/EcdaaTrustAnchor.php b/web-auth/webauthn-lib/src/MetadataService/Statement/EcdaaTrustAnchor.php index c55171b32..2d565d314 100644 --- a/web-auth/webauthn-lib/src/MetadataService/Statement/EcdaaTrustAnchor.php +++ b/web-auth/webauthn-lib/src/MetadataService/Statement/EcdaaTrustAnchor.php @@ -9,6 +9,7 @@ use Webauthn\Exception\MetadataStatementLoadingException; use Webauthn\MetadataService\ValueFilter; use function array_key_exists; +use function sprintf; /** * @deprecated since 4.2.0 and will be removed in 5.0.0. The ECDAA Trust Anchor does no longer exist in Webauthn specification. diff --git a/web-auth/webauthn-lib/src/MetadataService/Statement/MetadataStatement.php b/web-auth/webauthn-lib/src/MetadataService/Statement/MetadataStatement.php index 899430eaf..5f6afd509 100644 --- a/web-auth/webauthn-lib/src/MetadataService/Statement/MetadataStatement.php +++ b/web-auth/webauthn-lib/src/MetadataService/Statement/MetadataStatement.php @@ -11,6 +11,7 @@ use function array_key_exists; use function is_array; use function is_string; +use function sprintf; use const JSON_THROW_ON_ERROR; class MetadataStatement implements JsonSerializable diff --git a/web-auth/webauthn-lib/src/MetadataService/Statement/PatternAccuracyDescriptor.php b/web-auth/webauthn-lib/src/MetadataService/Statement/PatternAccuracyDescriptor.php index f065bbeec..8ceed8b8d 100644 --- a/web-auth/webauthn-lib/src/MetadataService/Statement/PatternAccuracyDescriptor.php +++ b/web-auth/webauthn-lib/src/MetadataService/Statement/PatternAccuracyDescriptor.php @@ -8,6 +8,7 @@ use Webauthn\MetadataService\ValueFilter; use function array_key_exists; use function is_int; +use function sprintf; class PatternAccuracyDescriptor extends AbstractDescriptor { diff --git a/web-auth/webauthn-lib/src/MetadataService/Statement/RgbPaletteEntry.php b/web-auth/webauthn-lib/src/MetadataService/Statement/RgbPaletteEntry.php index ca850789a..73061b44a 100644 --- a/web-auth/webauthn-lib/src/MetadataService/Statement/RgbPaletteEntry.php +++ b/web-auth/webauthn-lib/src/MetadataService/Statement/RgbPaletteEntry.php @@ -8,6 +8,7 @@ use Webauthn\Exception\MetadataStatementLoadingException; use function array_key_exists; use function is_int; +use function sprintf; class RgbPaletteEntry implements JsonSerializable { diff --git a/web-auth/webauthn-lib/src/MetadataService/Statement/StatusReport.php b/web-auth/webauthn-lib/src/MetadataService/Statement/StatusReport.php index c1fba596d..0ab13517a 100644 --- a/web-auth/webauthn-lib/src/MetadataService/Statement/StatusReport.php +++ b/web-auth/webauthn-lib/src/MetadataService/Statement/StatusReport.php @@ -10,6 +10,7 @@ use function array_key_exists; use function in_array; use function is_string; +use function sprintf; class StatusReport implements JsonSerializable { @@ -62,6 +63,7 @@ public function isCompromised(): bool AuthenticatorStatus::USER_KEY_PHYSICAL_COMPROMISE, AuthenticatorStatus::USER_KEY_REMOTE_COMPROMISE, AuthenticatorStatus::USER_VERIFICATION_BYPASS, + AuthenticatorStatus::REVOKED, ], true); } diff --git a/web-auth/webauthn-lib/src/MetadataService/Statement/VerificationMethodDescriptor.php b/web-auth/webauthn-lib/src/MetadataService/Statement/VerificationMethodDescriptor.php index fe700f833..89184644f 100644 --- a/web-auth/webauthn-lib/src/MetadataService/Statement/VerificationMethodDescriptor.php +++ b/web-auth/webauthn-lib/src/MetadataService/Statement/VerificationMethodDescriptor.php @@ -9,6 +9,7 @@ use Webauthn\MetadataService\ValueFilter; use function array_key_exists; use function is_array; +use function sprintf; class VerificationMethodDescriptor implements JsonSerializable { diff --git a/web-auth/webauthn-lib/src/MetadataService/Statement/Version.php b/web-auth/webauthn-lib/src/MetadataService/Statement/Version.php index 1a0f77153..56b7b0faf 100644 --- a/web-auth/webauthn-lib/src/MetadataService/Statement/Version.php +++ b/web-auth/webauthn-lib/src/MetadataService/Statement/Version.php @@ -9,6 +9,7 @@ use Webauthn\MetadataService\ValueFilter; use function array_key_exists; use function is_int; +use function sprintf; class Version implements JsonSerializable { diff --git a/web-auth/webauthn-lib/src/PublicKeyCredential.php b/web-auth/webauthn-lib/src/PublicKeyCredential.php index 8e09ad656..b4930f803 100644 --- a/web-auth/webauthn-lib/src/PublicKeyCredential.php +++ b/web-auth/webauthn-lib/src/PublicKeyCredential.php @@ -5,6 +5,7 @@ namespace Webauthn; use Stringable; +use function sprintf; use const E_USER_DEPRECATED; use const JSON_THROW_ON_ERROR; diff --git a/web-auth/webauthn-lib/src/PublicKeyCredentialLoader.php b/web-auth/webauthn-lib/src/PublicKeyCredentialLoader.php index 88b2a9c17..8c28d5389 100644 --- a/web-auth/webauthn-lib/src/PublicKeyCredentialLoader.php +++ b/web-auth/webauthn-lib/src/PublicKeyCredentialLoader.php @@ -17,6 +17,7 @@ use function array_key_exists; use function is_array; use function is_string; +use function sprintf; use const JSON_THROW_ON_ERROR; /** diff --git a/web-auth/webauthn-lib/src/PublicKeyCredentialSource.php b/web-auth/webauthn-lib/src/PublicKeyCredentialSource.php index 2aef84ef0..fe1ab1808 100644 --- a/web-auth/webauthn-lib/src/PublicKeyCredentialSource.php +++ b/web-auth/webauthn-lib/src/PublicKeyCredentialSource.php @@ -13,6 +13,7 @@ use Webauthn\TrustPath\TrustPathLoader; use function array_key_exists; use function in_array; +use function sprintf; /** * @see https://www.w3.org/TR/webauthn/#iface-pkcredential diff --git a/web-auth/webauthn-lib/src/StringStream.php b/web-auth/webauthn-lib/src/StringStream.php index 06784e7c8..44f718515 100644 --- a/web-auth/webauthn-lib/src/StringStream.php +++ b/web-auth/webauthn-lib/src/StringStream.php @@ -11,6 +11,7 @@ use function fread; use function fwrite; use function rewind; +use function sprintf; final class StringStream implements Stream { diff --git a/web-auth/webauthn-lib/src/TokenBinding/TokenBinding.php b/web-auth/webauthn-lib/src/TokenBinding/TokenBinding.php index cffc6ded5..26a2cb7b4 100644 --- a/web-auth/webauthn-lib/src/TokenBinding/TokenBinding.php +++ b/web-auth/webauthn-lib/src/TokenBinding/TokenBinding.php @@ -8,6 +8,7 @@ use Webauthn\Exception\InvalidDataException; use function array_key_exists; use function in_array; +use function sprintf; /** * @deprecated Since 4.3.0 and will be removed in 5.0.0 From 51dacd358f4d1691bbad2fdedd507ef0cfad9e48 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Fri, 12 Jun 2026 16:11:20 +0200 Subject: [PATCH 3/4] fix: Drop PHP 8.2 in Nextcloud 35 [skip ci] Signed-off-by: Joas Schilling --- composer.json | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/composer.json b/composer.json index 1d2836d98..764d70df1 100644 --- a/composer.json +++ b/composer.json @@ -9,7 +9,7 @@ "optimize-autoloader": true, "classmap-authoritative": true, "platform": { - "php": "8.2.0" + "php": "8.3.0" }, "sort-packages": true, "allow-plugins": { @@ -71,20 +71,15 @@ "wapmorgan/mp3info": "^0.1.1", "web-auth/webauthn-lib": "^4.9.1" }, - "replace": { - "symfony/polyfill-php80": "*", + "replace": { + "symfony/polyfill-php80": "*", "symfony/polyfill-php81": "*", "symfony/polyfill-php82": "*", "symfony/polyfill-ctype": "*", "symfony/polyfill-mbstring": "*" - }, + }, "scripts": { - "lint": [ - "@lint-8.2-or-earlier", - "@lint-8.3-or-later" - ], - "lint-8.2-or-earlier": "[ $(php -r \"echo PHP_VERSION_ID;\") -ge 80300 ] || find . -type f -name '*.php' -not -name '.*.php' -print0 | xargs -0 -n1 -P$(nproc) php -l", - "lint-8.3-or-later": "[ $(php -r \"echo PHP_VERSION_ID;\") -lt 80300 ] || find . -type f -name '*.php' -not -name '.*.php' -print0 | xargs -0 -n200 -P$(nproc) php -l", + "lint": "find . -type f -name '*.php' -not -name '.*.php' -print0 | xargs -0 -n200 -P$(nproc) php -l", "pre-autoload-dump": "Aws\\Script\\Composer\\Composer::removeUnusedServices" }, "extra": { From 59102992068b3f8c5d542641c84d71f7c835c60c Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Mon, 15 Jun 2026 09:37:18 +0200 Subject: [PATCH 4/4] fix: Require PHP 8.3 in composer deps Signed-off-by: Joas Schilling --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 3d3a91b99..68cf5d893 100644 --- a/composer.json +++ b/composer.json @@ -17,7 +17,7 @@ } }, "require": { - "php": "^8.2", + "php": "^8.3", "ext-ctype": "*", "ext-mbstring": "*", "aws/aws-sdk-php": "^3.376",