diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php index c3fd1cf5..0f6dc03e 100644 --- a/lib/AppInfo/Application.php +++ b/lib/AppInfo/Application.php @@ -73,9 +73,9 @@ public function boot(IBootContext $context): void { } }); - $context->injectFn([$this, 'registerNotifier']); - $context->injectFn([$this, 'createNotificationOnFirstLogin']); - $context->injectFn([$this, 'registerFrontend']); + $context->injectFn($this->registerNotifier(...)); + $context->injectFn($this->createNotificationOnFirstLogin(...)); + $context->injectFn($this->registerFrontend(...)); } public function registerFrontend(IRequest $request, IAppConfig $appConfig, IUserSession $userSession): void { @@ -123,7 +123,7 @@ public function registerFrontend(IRequest $request, IAppConfig $appConfig, IUser public function addStorageWrapper(): void { Filesystem::addStorageWrapper( - 'terms_of_service', [$this, 'addStorageWrapperCallback'], -10 + 'terms_of_service', $this->addStorageWrapperCallback(...), -10 ); } @@ -139,12 +139,12 @@ public function addStorageWrapperCallback(string $mountPoint, IStorage $storage) [ 'storage' => $storage, 'mountPoint' => $mountPoint, - 'request' => \OC::$server->get(IRequest::class), - 'checker' => \OC::$server->get(Checker::class), + 'request' => \OCP\Server::get(IRequest::class), + 'checker' => \OCP\Server::get(Checker::class), ] ); } catch (ContainerExceptionInterface $e) { - \OC::$server->get(LoggerInterface::class)->error( + \OCP\Server::get(LoggerInterface::class)->error( $e->getMessage(), ['exception' => $e] ); diff --git a/lib/BackgroundJobs/CreateNotifications.php b/lib/BackgroundJobs/CreateNotifications.php index b1a20ced..a822b6ac 100644 --- a/lib/BackgroundJobs/CreateNotifications.php +++ b/lib/BackgroundJobs/CreateNotifications.php @@ -63,7 +63,7 @@ protected function run($argument): void { $this->notificationsManager->defer(); $this->currentBatch = 0; - $this->userManager->callForSeenUsers(\Closure::fromCallable([$this, 'callForSeenUsers'])); + $this->userManager->callForSeenUsers($this->callForSeenUsers(...)); $this->notificationsManager->flush(); } diff --git a/lib/Checker.php b/lib/Checker.php index 6279a797..be8c528c 100644 --- a/lib/Checker.php +++ b/lib/Checker.php @@ -22,16 +22,16 @@ class Checker { private array $termsCache = []; public function __construct( - private IRequest $request, - private IUserSession $userSession, - private ISession $session, - private SignatoryMapper $signatoryMapper, - private TermsMapper $termsMapper, - private CountryDetector $countryDetector, - private IAppConfig $appConfig, - private \OCP\IAppConfig $globalAppConfig, - private LoggerInterface $logger, - private IURLGenerator $url, + private readonly IRequest $request, + private readonly IUserSession $userSession, + private readonly ISession $session, + private readonly SignatoryMapper $signatoryMapper, + private readonly TermsMapper $termsMapper, + private readonly CountryDetector $countryDetector, + private readonly IAppConfig $appConfig, + private readonly \OCP\IAppConfig $globalAppConfig, + private readonly LoggerInterface $logger, + private readonly IURLGenerator $url, ) { } diff --git a/lib/Controller/SigningController.php b/lib/Controller/SigningController.php index 6d1e390c..42a4b2bf 100644 --- a/lib/Controller/SigningController.php +++ b/lib/Controller/SigningController.php @@ -30,13 +30,13 @@ class SigningController extends OCSController { public function __construct( string $appName, - private ?string $userId, + private readonly ?string $userId, IRequest $request, - private SignatoryMapper $signatoryMapper, - private IManager $notificationsManager, - private IAppConfig $appConfig, - private ISession $session, - private IEventDispatcher $eventDispatcher, + private readonly SignatoryMapper $signatoryMapper, + private readonly IManager $notificationsManager, + private readonly IAppConfig $appConfig, + private readonly ISession $session, + private readonly IEventDispatcher $eventDispatcher, protected IJobList $jobList, ) { parent::__construct($appName, $request); diff --git a/lib/Controller/TermsController.php b/lib/Controller/TermsController.php index 14c07640..5aac6a75 100644 --- a/lib/Controller/TermsController.php +++ b/lib/Controller/TermsController.php @@ -36,14 +36,14 @@ class TermsController extends OCSController { public function __construct( string $appName, IRequest $request, - private TermsMapper $termsMapper, - private SignatoryMapper $signatoryMapper, - private CountryMapper $countryMapper, - private LanguageMapper $languageMapper, - private CountryDetector $countryDetector, - private Checker $checker, - private IAppConfig $appConfig, - private IEventDispatcher $eventDispatcher, + private readonly TermsMapper $termsMapper, + private readonly SignatoryMapper $signatoryMapper, + private readonly CountryMapper $countryMapper, + private readonly LanguageMapper $languageMapper, + private readonly CountryDetector $countryDetector, + private readonly Checker $checker, + private readonly IAppConfig $appConfig, + private readonly IEventDispatcher $eventDispatcher, protected IJobList $jobList, ) { parent::__construct($appName, $request); diff --git a/lib/CountryDetector.php b/lib/CountryDetector.php index 49b48fbf..0af81211 100644 --- a/lib/CountryDetector.php +++ b/lib/CountryDetector.php @@ -13,8 +13,8 @@ class CountryDetector { public function __construct( - private IRequest $request, - private CountryMapper $countryMapper, + private readonly IRequest $request, + private readonly CountryMapper $countryMapper, ) { } diff --git a/lib/Dav/CheckPlugin.php b/lib/Dav/CheckPlugin.php index 70e0da16..35cfae5e 100644 --- a/lib/Dav/CheckPlugin.php +++ b/lib/Dav/CheckPlugin.php @@ -27,16 +27,16 @@ class CheckPlugin extends ServerPlugin { */ public function initialize(Server $server): void { $this->server = $server; - $server->on('method:PROPFIND', [$this, 'checkToS']); - $server->on('method:PROPPATCH', [$this, 'checkToS']); - $server->on('method:GET', [$this, 'checkToS']); - $server->on('method:POST', [$this, 'checkToS']); - $server->on('method:PUT', [$this, 'checkToS']); - $server->on('method:DELETE', [$this, 'checkToS']); - $server->on('method:MKCOL', [$this, 'checkToS']); - $server->on('method:MOVE', [$this, 'checkToS']); - $server->on('method:COPY', [$this, 'checkToS']); - $server->on('method:REPORT', [$this, 'checkToS']); + $server->on('method:PROPFIND', $this->checkToS(...)); + $server->on('method:PROPPATCH', $this->checkToS(...)); + $server->on('method:GET', $this->checkToS(...)); + $server->on('method:POST', $this->checkToS(...)); + $server->on('method:PUT', $this->checkToS(...)); + $server->on('method:DELETE', $this->checkToS(...)); + $server->on('method:MKCOL', $this->checkToS(...)); + $server->on('method:MOVE', $this->checkToS(...)); + $server->on('method:COPY', $this->checkToS(...)); + $server->on('method:REPORT', $this->checkToS(...)); } /** diff --git a/lib/Events/SignaturesResetEvent.php b/lib/Events/SignaturesResetEvent.php index 5f096b53..a9139efc 100644 --- a/lib/Events/SignaturesResetEvent.php +++ b/lib/Events/SignaturesResetEvent.php @@ -14,6 +14,4 @@ * @package OCA\Terms_Of_Service\Events */ class SignaturesResetEvent extends Event { - public function __construct() { - } } diff --git a/lib/Events/TermsCreatedEvent.php b/lib/Events/TermsCreatedEvent.php index 20f7cfe3..cd530ff8 100644 --- a/lib/Events/TermsCreatedEvent.php +++ b/lib/Events/TermsCreatedEvent.php @@ -14,6 +14,4 @@ * @package OCA\Terms_Of_Service\Events */ class TermsCreatedEvent extends Event { - public function __construct() { - } } diff --git a/lib/Filesystem/CacheWrapper.php b/lib/Filesystem/CacheWrapper.php index 5901bad0..07b12b8f 100644 --- a/lib/Filesystem/CacheWrapper.php +++ b/lib/Filesystem/CacheWrapper.php @@ -9,34 +9,30 @@ use OC\Files\Cache\Wrapper\CacheWrapper as Wrapper; use OCP\Constants; use OCP\Files\Cache\ICache; -use OCP\Files\Storage\IStorage; +use OCP\Files\Cache\ICacheEntry; +use Override; class CacheWrapper extends Wrapper { - protected int $mask; - public function __construct( ICache $cache, - protected IStorage $storage, - private Helper $helper, + private readonly Helper $helper, ) { parent::__construct($cache); - - $this->mask = Constants::PERMISSION_ALL; - $this->mask &= ~Constants::PERMISSION_READ; - $this->mask &= ~Constants::PERMISSION_CREATE; - $this->mask &= ~Constants::PERMISSION_UPDATE; - $this->mask &= ~Constants::PERMISSION_DELETE; } - public const PERMISSION_CREATE = 4; - public const PERMISSION_READ = 1; - public const PERMISSION_UPDATE = 2; - public const PERMISSION_DELETE = 8; - - protected function formatCacheEntry($entry) { - if (isset($entry['path'], $entry['permissions']) + /** + * @param ICacheEntry|false $entry + */ + #[Override] + protected function formatCacheEntry($entry): ICacheEntry|false { + if ($entry !== false && isset($entry['path'], $entry['permissions']) && !$this->helper->verifyAccess($entry['path'])) { - $entry['permissions'] &= $this->mask; + $mask = Constants::PERMISSION_ALL + & ~Constants::PERMISSION_READ + & ~Constants::PERMISSION_CREATE + & ~Constants::PERMISSION_UPDATE + & ~Constants::PERMISSION_DELETE; + $entry['permissions'] &= $mask; } return $entry; } diff --git a/lib/Filesystem/Helper.php b/lib/Filesystem/Helper.php index f436bafd..4ed99f11 100644 --- a/lib/Filesystem/Helper.php +++ b/lib/Filesystem/Helper.php @@ -16,8 +16,8 @@ class Helper { public function __construct( - private Checker $checker, - private string $mountPoint, + private readonly Checker $checker, + private readonly string $mountPoint, ) { } diff --git a/lib/Filesystem/StorageWrapper.php b/lib/Filesystem/StorageWrapper.php index 90383562..1f5e6ff8 100644 --- a/lib/Filesystem/StorageWrapper.php +++ b/lib/Filesystem/StorageWrapper.php @@ -13,7 +13,7 @@ class StorageWrapper extends Wrapper { public string $mountPoint; - private Helper $helper; + private readonly Helper $helper; public function __construct($parameters) { parent::__construct($parameters); @@ -82,6 +82,6 @@ public function getCache($path = '', $storage = null): ICache { $storage = $this; } $cache = $this->storage->getCache($path, $storage); - return new CacheWrapper($cache, $storage, $this->helper); + return new CacheWrapper($cache, $this->helper); } } diff --git a/lib/Listener/RegistrationIntegration.php b/lib/Listener/RegistrationIntegration.php index 520b8f25..43ee90c3 100644 --- a/lib/Listener/RegistrationIntegration.php +++ b/lib/Listener/RegistrationIntegration.php @@ -27,10 +27,10 @@ class RegistrationIntegration implements IEventListener { public function __construct( - private SignatoryMapper $signatoryMapper, - private TermsMapper $termsMapper, - private CountryDetector $countryDetector, - private IRequest $request, + private readonly SignatoryMapper $signatoryMapper, + private readonly TermsMapper $termsMapper, + private readonly CountryDetector $countryDetector, + private readonly IRequest $request, ) { } diff --git a/lib/Listener/UserDeletedListener.php b/lib/Listener/UserDeletedListener.php index 4532118d..77375c0e 100644 --- a/lib/Listener/UserDeletedListener.php +++ b/lib/Listener/UserDeletedListener.php @@ -19,7 +19,7 @@ class UserDeletedListener implements IEventListener { public function __construct( - private SignatoryMapper $signatoryMapper, + private readonly SignatoryMapper $signatoryMapper, ) { } diff --git a/lib/Notifications/Notifier.php b/lib/Notifications/Notifier.php index 39b1670b..07d6a963 100644 --- a/lib/Notifications/Notifier.php +++ b/lib/Notifications/Notifier.php @@ -17,10 +17,10 @@ class Notifier implements INotifier { public function __construct( - private IFactory $l10nFactory, - private IURLGenerator $url, - private IManager $notificationManager, - private \OCA\TermsOfService\Checker $checker, + private readonly IFactory $l10nFactory, + private readonly IURLGenerator $url, + private readonly IManager $notificationManager, + private readonly \OCA\TermsOfService\Checker $checker, ) { } diff --git a/lib/PublicCapabilities.php b/lib/PublicCapabilities.php index 823d02d6..88847383 100644 --- a/lib/PublicCapabilities.php +++ b/lib/PublicCapabilities.php @@ -14,7 +14,7 @@ class PublicCapabilities implements IPublicCapability { public function __construct( - private IAppConfig $config, + private readonly IAppConfig $config, ) { } diff --git a/lib/Settings/AdminSection.php b/lib/Settings/AdminSection.php index d2f95913..f067fb95 100644 --- a/lib/Settings/AdminSection.php +++ b/lib/Settings/AdminSection.php @@ -16,8 +16,8 @@ class AdminSection implements IIconSection { public function __construct( - private IL10N $l, - private IURLGenerator $url, + private readonly IL10N $l, + private readonly IURLGenerator $url, ) { } diff --git a/rector.php b/rector.php index fea8baaa..e5ac7659 100644 --- a/rector.php +++ b/rector.php @@ -5,8 +5,11 @@ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ + +use Nextcloud\Rector\Set\NextcloudSets; use Rector\Config\RectorConfig; use Rector\Php80\Rector\Class_\ClassPropertyAssignToConstructorPromotionRector; +use Rector\PHPUnit\Set\PHPUnitSetList; return RectorConfig::configure() ->withPaths([ @@ -16,8 +19,13 @@ ->withSkip([ __DIR__ . '/tests/stubs', ]) + ->withSets([ + NextcloudSets::NEXTCLOUD_27, + PHPUnitSetList::PHPUNIT_120 + ]) ->withPreparedSets( deadCode: true, + phpunitCodeQuality: true, typeDeclarations: true, )->withPhpSets( php81: true, diff --git a/tests/DeleteTermsCommandTest.php b/tests/DeleteTermsCommandTest.php index 0e53252a..0fcd8efe 100644 --- a/tests/DeleteTermsCommandTest.php +++ b/tests/DeleteTermsCommandTest.php @@ -1,10 +1,11 @@ with($terms); $result = $this->command->run($this->inputInterface, $this->outputInterface); - $this->assertSame($result, Command::SUCCESS); + $this->assertSame(Command::SUCCESS, $result); } public function testFallsBackToGlobalCountry(): void { @@ -120,7 +121,7 @@ public function testFallsBackToGlobalCountry(): void { ->with($terms); $result = $this->command->run($this->inputInterface, $this->outputInterface); - $this->assertSame($result, Command::SUCCESS); + $this->assertSame(Command::SUCCESS, $result); } public function testRejectsInvalidCountry(): void { @@ -152,7 +153,7 @@ public function testRejectsInvalidCountry(): void { ->method('deleteTerm'); $result = $this->command->run($this->inputInterface, $this->outputInterface); - $this->assertSame($result, Command::FAILURE); + $this->assertSame(Command::FAILURE, $result); } public function testRejectsInvalidLanguage(): void { @@ -184,7 +185,7 @@ public function testRejectsInvalidLanguage(): void { ->method('deleteTerm'); $result = $this->command->run($this->inputInterface, $this->outputInterface); - $this->assertSame($result, Command::FAILURE); + $this->assertSame(Command::FAILURE, $result); } public function testFailsForNonExistingTerms(): void { @@ -217,6 +218,6 @@ public function testFailsForNonExistingTerms(): void { ->method('deleteTerm'); $result = $this->command->run($this->inputInterface, $this->outputInterface); - $this->assertSame($result, Command::FAILURE); + $this->assertSame(Command::FAILURE, $result); } } diff --git a/tests/SetTermsCommandTest.php b/tests/SetTermsCommandTest.php index 6206014a..bba58ef7 100644 --- a/tests/SetTermsCommandTest.php +++ b/tests/SetTermsCommandTest.php @@ -1,10 +1,11 @@ with($terms); $result = $this->command->run($this->inputInterface, $this->outputInterface); - $this->assertSame($result, Command::SUCCESS); + $this->assertSame(Command::SUCCESS, $result); } public function testCreatesNewTerms(): void { @@ -111,7 +112,7 @@ public function testCreatesNewTerms(): void { ->method('insert'); $result = $this->command->run($this->inputInterface, $this->outputInterface); - $this->assertSame($result, Command::SUCCESS); + $this->assertSame(Command::SUCCESS, $result); } public function testFallsBackToGlobalCountry(): void { @@ -146,7 +147,7 @@ public function testFallsBackToGlobalCountry(): void { ->with($terms); $result = $this->command->run($this->inputInterface, $this->outputInterface); - $this->assertSame($result, Command::SUCCESS); + $this->assertSame(Command::SUCCESS, $result); } public function testRejectsInvalidCountry(): void { @@ -173,7 +174,7 @@ public function testRejectsInvalidCountry(): void { ->with('invalid', 'en'); $result = $this->command->run($this->inputInterface, $this->outputInterface); - $this->assertSame($result, Command::FAILURE); + $this->assertSame(Command::FAILURE, $result); } public function testRejectsInvalidLanguage(): void { @@ -200,7 +201,7 @@ public function testRejectsInvalidLanguage(): void { ->with('us', 'invalid'); $result = $this->command->run($this->inputInterface, $this->outputInterface); - $this->assertSame($result, Command::FAILURE); + $this->assertSame(Command::FAILURE, $result); } public function testRejectsInvalidBody(): void { @@ -227,6 +228,6 @@ public function testRejectsInvalidBody(): void { ->with('us', 'en'); $result = $this->command->run($this->inputInterface, $this->outputInterface); - $this->assertSame($result, Command::FAILURE); + $this->assertSame(Command::FAILURE, $result); } } diff --git a/vendor-bin/rector/composer.json b/vendor-bin/rector/composer.json index a424692c..d822521f 100644 --- a/vendor-bin/rector/composer.json +++ b/vendor-bin/rector/composer.json @@ -1,6 +1,7 @@ { "require-dev": { - "rector/rector": "^2.0" + "rector/rector": "2.2.8", + "nextcloud/rector": "^0.4.1" }, "config": { "platform": { diff --git a/vendor-bin/rector/composer.lock b/vendor-bin/rector/composer.lock index 2aa3f9b8..ebf5e5b1 100644 --- a/vendor-bin/rector/composer.lock +++ b/vendor-bin/rector/composer.lock @@ -4,21 +4,129 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "57211dc5c619d183df6361f5d7d57fe5", + "content-hash": "56638863acbb45c1c8b1e60d14bc1b69", "packages": [], "packages-dev": [ { - "name": "phpstan/phpstan", - "version": "2.1.25", + "name": "nextcloud/ocp", + "version": "v32.0.1", + "source": { + "type": "git", + "url": "https://github.com/nextcloud-deps/ocp.git", + "reference": "30c298deccb6d52cf55e56a2a379edabe27421fd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/30c298deccb6d52cf55e56a2a379edabe27421fd", + "reference": "30c298deccb6d52cf55e56a2a379edabe27421fd", + "shasum": "" + }, + "require": { + "php": "~8.1 || ~8.2 || ~8.3 || ~8.4", + "psr/clock": "^1.0", + "psr/container": "^2.0.2", + "psr/event-dispatcher": "^1.0", + "psr/log": "^3.0.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-stable32": "32.0.0-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "AGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Christoph Wurst", + "email": "christoph@winzerhof-wurst.at" + }, + { + "name": "Joas Schilling", + "email": "coding@schilljs.com" + } + ], + "description": "Composer package containing Nextcloud's public OCP API and the unstable NCU API", + "support": { + "issues": "https://github.com/nextcloud-deps/ocp/issues", + "source": "https://github.com/nextcloud-deps/ocp/tree/v32.0.1" + }, + "time": "2025-10-17T00:48:59+00:00" + }, + { + "name": "nextcloud/rector", + "version": "v0.4.1", "source": { "type": "git", - "url": "https://github.com/phpstan/phpstan.git", - "reference": "4087d28bd252895874e174d65e26b2c202ed893a" + "url": "https://github.com/nextcloud-libraries/rector.git", + "reference": "9c5c78cc323537ec6dba5b3cd9c422ff9524d8cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/4087d28bd252895874e174d65e26b2c202ed893a", - "reference": "4087d28bd252895874e174d65e26b2c202ed893a", + "url": "https://api.github.com/repos/nextcloud-libraries/rector/zipball/9c5c78cc323537ec6dba5b3cd9c422ff9524d8cf", + "reference": "9c5c78cc323537ec6dba5b3cd9c422ff9524d8cf", + "shasum": "" + }, + "require": { + "nextcloud/ocp": ">=27", + "php": "^8.1", + "rector/rector": "^2.0.4", + "webmozart/assert": "^1.11" + }, + "require-dev": { + "phpunit/phpunit": "^10.5", + "ramsey/devtools": "^2.0" + }, + "type": "library", + "extra": { + "captainhook": { + "force-install": true + }, + "ramsey/devtools": { + "memory-limit": "-1", + "command-prefix": "dev" + }, + "ramsey/conventional-commits": { + "configFile": "conventional-commits.json" + } + }, + "autoload": { + "psr-4": { + "OCP\\": "vendor/nextcloud/ocp/OCP", + "Nextcloud\\Rector\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "AGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Christoph Wurst", + "email": "christoph@winzerhof-wurst.at", + "homepage": "https://wuc.me" + } + ], + "description": "Rector upgrade rules for Nextcloud", + "keywords": [ + "nextcloud", + "refactoring" + ], + "support": { + "issues": "https://github.com/nextcloud-libraries/rector/issues", + "source": "https://github.com/nextcloud-libraries/rector/tree/v0.4.1" + }, + "time": "2025-03-31T15:27:10+00:00" + }, + { + "name": "phpstan/phpstan", + "version": "2.1.32", + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e126cad1e30a99b137b8ed75a85a676450ebb227", + "reference": "e126cad1e30a99b137b8ed75a85a676450ebb227", "shasum": "" }, "require": { @@ -63,25 +171,226 @@ "type": "github" } ], - "time": "2025-09-12T14:26:42+00:00" + "time": "2025-11-11T15:18:17+00:00" + }, + { + "name": "psr/clock", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/clock.git", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Psr\\Clock\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for reading the clock.", + "homepage": "https://github.com/php-fig/clock", + "keywords": [ + "clock", + "now", + "psr", + "psr-20", + "time" + ], + "support": { + "issues": "https://github.com/php-fig/clock/issues", + "source": "https://github.com/php-fig/clock/tree/1.0.0" + }, + "time": "2022-11-25T14:36:26+00:00" + }, + { + "name": "psr/container", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "psr/event-dispatcher", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\EventDispatcher\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Standard interfaces for event handling.", + "keywords": [ + "events", + "psr", + "psr-14" + ], + "support": { + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + }, + "time": "2019-01-08T18:20:26+00:00" + }, + { + "name": "psr/log", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.2" + }, + "time": "2024-09-11T13:17:53+00:00" }, { "name": "rector/rector", - "version": "2.1.7", + "version": "2.2.8", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "c34cc07c4698f007a20dc5c99ff820089ae413ce" + "reference": "303aa811649ccd1d32e51e62d5c85949d01b5f1b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/c34cc07c4698f007a20dc5c99ff820089ae413ce", - "reference": "c34cc07c4698f007a20dc5c99ff820089ae413ce", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/303aa811649ccd1d32e51e62d5c85949d01b5f1b", + "reference": "303aa811649ccd1d32e51e62d5c85949d01b5f1b", "shasum": "" }, "require": { "php": "^7.4|^8.0", - "phpstan/phpstan": "^2.1.18" + "phpstan/phpstan": "^2.1.32" }, "conflict": { "rector/rector-doctrine": "*", @@ -115,7 +424,7 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/2.1.7" + "source": "https://github.com/rectorphp/rector/tree/2.2.8" }, "funding": [ { @@ -123,7 +432,65 @@ "type": "github" } ], - "time": "2025-09-10T11:13:58+00:00" + "time": "2025-11-12T18:38:00+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.12.1", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "9be6926d8b485f55b9229203f962b51ed377ba68" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/9be6926d8b485f55b9229203f962b51ed377ba68", + "reference": "9be6926d8b485f55b9229203f962b51ed377ba68", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-date": "*", + "ext-filter": "*", + "php": "^7.2 || ^8.0" + }, + "suggest": { + "ext-intl": "", + "ext-simplexml": "", + "ext-spl": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.12.1" + }, + "time": "2025-10-29T15:56:20+00:00" } ], "aliases": [], @@ -133,5 +500,8 @@ "prefer-lowest": false, "platform": {}, "platform-dev": {}, + "platform-overrides": { + "php": "8.1" + }, "plugin-api-version": "2.6.0" }