diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml
index 7b837bd73..952391e93 100644
--- a/.github/workflows/integration.yml
+++ b/.github/workflows/integration.yml
@@ -43,7 +43,7 @@ jobs:
matrix:
php-versions: [ "8.1", "8.2", "8.3", "8.4" ]
databases: [ "mysql" ]
- server-versions: [ "stable30", "stable31", "stable32", "stable33", "master" ]
+ server-versions: [ "stable32", "stable33", "master" ]
exclude:
- server-versions: "master"
php-versions: "8.1"
@@ -51,17 +51,17 @@ jobs:
- server-versions: "stable33"
php-versions: "8.1"
databases: "mysql"
- - server-versions: "stable30"
+ - server-versions: "stable33"
php-versions: "8.2"
databases: "mysql"
- - server-versions: "stable30"
- php-versions: "8.4"
+ - server-versions: "stable33"
+ php-versions: "8.3"
databases: "mysql"
include:
- - server-versions: "stable30"
+ - server-versions: "stable32"
php-versions: "8.3"
databases: "sqlite"
- - server-versions: "stable30"
+ - server-versions: "stable32"
php-versions: "8.3"
databases: "pgsql"
- server-versions: "master"
diff --git a/appinfo/info.xml b/appinfo/info.xml
index 042d3c3c6..b7d0a437d 100644
--- a/appinfo/info.xml
+++ b/appinfo/info.xml
@@ -20,7 +20,7 @@ The following providers are supported and tested at the moment:
* Any other provider that authenticates using the environment variable
While theoretically any other authentication provider implementing either one of those standards is compatible, we like to note that they are not part of any internal test matrix.]]>
- 7.1.3
+ 8.0.0-dev.0
agpl
Lukas Reschke
User_SAML
@@ -37,7 +37,7 @@ While theoretically any other authentication provider implementing either one of
https://raw.githubusercontent.com/nextcloud/user_saml/master/screenshots/1.png
https://raw.githubusercontent.com/nextcloud/user_saml/master/screenshots/2.png
-
+
OCA\User_SAML\Jobs\CleanSessionData
diff --git a/lib/Command/UserAdd.php b/lib/Command/UserAdd.php
index 050bb1ae4..4b59f3f4a 100644
--- a/lib/Command/UserAdd.php
+++ b/lib/Command/UserAdd.php
@@ -20,7 +20,7 @@ class UserAdd extends Base {
public function __construct(
protected IUserManager $userManager,
protected UserBackend $backend,
- private LoggerInterface $logger,
+ private readonly LoggerInterface $logger,
) {
parent::__construct();
}
diff --git a/lib/Controller/SAMLController.php b/lib/Controller/SAMLController.php
index dd48473e7..b1d481eb0 100644
--- a/lib/Controller/SAMLController.php
+++ b/lib/Controller/SAMLController.php
@@ -126,14 +126,14 @@ protected function assertGroupMemberships(): void {
$settings = $this->samlSettings->get($this->session->get('user_saml.Idp') ?? 1);
$rejectGroupsString = $settings['saml-user-filter-reject_groups'] ?? '';
- $rejectGroups = array_map('trim', explode(',', $rejectGroupsString));
+ $rejectGroups = array_map(trim(...), explode(',', $rejectGroupsString));
if (!empty(array_intersect($groups, $rejectGroups))) {
throw new UserFilterViolationException('User is member of a rejection group.');
}
$requireGroupsString = trim($settings['saml-user-filter-require_groups'] ?? '');
- $requireGroups = array_map('trim', explode(',', $requireGroupsString));
+ $requireGroups = array_map(trim(...), explode(',', $requireGroupsString));
if (!empty($requireGroupsString) && empty(array_intersect($groups, $requireGroups))) {
throw new UserFilterViolationException('User is not member of a required group.');
}
@@ -159,7 +159,7 @@ public function login(int $idp = 1): Http\RedirectResponse|Http\TemplateResponse
$settings = $this->samlSettings->getOneLoginSettingsArray($idp);
$auth = new Auth($settings);
$passthroughParamsString = trim($settings['idp']['passthroughParameters'] ?? '') ;
- $passthroughParams = array_map('trim', explode(',', $passthroughParamsString));
+ $passthroughParams = array_map(trim(...), explode(',', $passthroughParamsString));
$passthroughValues = [];
foreach ($passthroughParams as $passthroughParam) {
diff --git a/lib/Controller/SettingsController.php b/lib/Controller/SettingsController.php
index ba777fa0c..e0a30997e 100644
--- a/lib/Controller/SettingsController.php
+++ b/lib/Controller/SettingsController.php
@@ -61,12 +61,12 @@ public function getSamlProviderSettings(int $providerId): array {
}
foreach ($content as $setting => $details) {
/* use security as category instead of security-* */
- if (str_starts_with($category, 'security-')) {
+ if (str_starts_with((string)$category, 'security-')) {
$category = 'security';
}
// make sure we properly fetch the attribute mapping
// as this is the only category that has the saml- prefix on config keys
- if (str_starts_with($category, 'attribute-mapping')) {
+ if (str_starts_with((string)$category, 'attribute-mapping')) {
$category = 'attribute-mapping';
$key = 'saml-attribute-mapping' . '-' . $setting;
} elseif ($category === 'name-id-formats') {
diff --git a/lib/Db/SessionData.php b/lib/Db/SessionData.php
index d19a7af5a..b7763aca9 100644
--- a/lib/Db/SessionData.php
+++ b/lib/Db/SessionData.php
@@ -35,7 +35,7 @@ public function setData(SessionDataModel $input): void {
}
public function getData(): SessionDataModel {
- $deserialized = json_decode($this->data, true);
+ $deserialized = json_decode((string)$this->data, true);
return SessionDataModel::fromInputArray($deserialized);
}
}
diff --git a/lib/Jobs/MigrateGroups.php b/lib/Jobs/MigrateGroups.php
index 4246cfa00..ba2f75300 100644
--- a/lib/Jobs/MigrateGroups.php
+++ b/lib/Jobs/MigrateGroups.php
@@ -58,7 +58,7 @@ protected function run($argument) {
}
protected function migrateGroups(array $toMigrate): array {
- return array_filter($toMigrate, fn ($gid) => $this->migrateGroup($gid));
+ return array_filter($toMigrate, $this->migrateGroup(...));
}
protected function migrateGroup(string $gid): bool {
diff --git a/lib/Migration/Version5000Date20211025124248.php b/lib/Migration/Version5000Date20211025124248.php
index 7d061b880..4fa36d393 100644
--- a/lib/Migration/Version5000Date20211025124248.php
+++ b/lib/Migration/Version5000Date20211025124248.php
@@ -223,7 +223,7 @@ protected function fetchPrefixes(): array {
if ($prefixes === false) {
return [1]; // 1 is the default value for providerIds
}
- return array_map('intval', explode(',', (string)$prefixes));
+ return array_map(intval(...), explode(',', (string)$prefixes));
}
protected function deletePrefixes(): void {
diff --git a/lib/SAMLSettings.php b/lib/SAMLSettings.php
index 8f409bfd7..2d8a1133b 100644
--- a/lib/SAMLSettings.php
+++ b/lib/SAMLSettings.php
@@ -197,9 +197,7 @@ public function get(int $id): array {
* @throws InvalidArgumentException
*/
public function set(int $id, array $settings): void {
- $settings = array_filter($settings, static function (string $configKey): bool {
- return in_array($configKey, self::IDP_CONFIG_KEYS, true);
- }, ARRAY_FILTER_USE_KEY);
+ $settings = array_filter($settings, static fn (string $configKey): bool => in_array($configKey, self::IDP_CONFIG_KEYS, true), ARRAY_FILTER_USE_KEY);
$this->mapper->set($id, $settings);
}
diff --git a/lib/Service/SessionService.php b/lib/Service/SessionService.php
index 4bad14cc2..b73a1fc0a 100644
--- a/lib/Service/SessionService.php
+++ b/lib/Service/SessionService.php
@@ -47,7 +47,7 @@ public function restoreSession(string $oldSessionId): void {
$this->storeSessionDataInDatabase();
$this->logger->debug('SAML session successfully restored');
// we do not delete the old session automatically to avoid race conditions
- } catch (DoesNotExistException|MultipleObjectsReturnedException|Exception $e) {
+ } catch (DoesNotExistException|MultipleObjectsReturnedException|Exception) {
return;
}
}
diff --git a/lib/UserData.php b/lib/UserData.php
index 170790b2f..c341d9ff3 100644
--- a/lib/UserData.php
+++ b/lib/UserData.php
@@ -67,7 +67,7 @@ public function getGroups(): array {
return is_array($this->attributes[$mapping])
? $this->attributes[$mapping]
- : array_map('trim', explode(',', (string)$this->attributes[$mapping]));
+ : array_map(trim(...), explode(',', (string)$this->attributes[$mapping]));
}
protected function extractSamlUserId(): string {
diff --git a/lib/UserResolver.php b/lib/UserResolver.php
index bd38595b5..5703d0a09 100644
--- a/lib/UserResolver.php
+++ b/lib/UserResolver.php
@@ -119,9 +119,9 @@ protected function sanitizeUserIdCandidate(string $rawUidCandidate): ?string {
// Remove accents
$sanitized = preg_replace('#&([A-Za-z])(?:acute|cedil|caron|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $sanitized);
// Remove ligatures
- $sanitized = preg_replace('#&([A-Za-z]{2})(?:lig);#', '\1', $sanitized);
+ $sanitized = preg_replace('#&([A-Za-z]{2})(?:lig);#', '\1', (string)$sanitized);
// Remove unknown leftover entities
- $sanitized = preg_replace('#&[^;]+;#', '', $sanitized);
+ $sanitized = preg_replace('#&[^;]+;#', '', (string)$sanitized);
// Replacements
$sanitized = str_replace(' ', '_', $sanitized);
diff --git a/tests/integration/features/bootstrap/FeatureContext.php b/tests/integration/features/bootstrap/FeatureContext.php
index ec58532e0..746778eba 100644
--- a/tests/integration/features/bootstrap/FeatureContext.php
+++ b/tests/integration/features/bootstrap/FeatureContext.php
@@ -423,7 +423,7 @@ public function theUserValueShouldBe(string $key, string $value): void {
if (is_array($actualValue)) {
// transform array to string, ensuring values are in the same order
$value = explode(',', $value);
- $value = array_map('trim', $value);
+ $value = array_map(trim(...), $value);
sort($value);
$value = implode(',', $value);
@@ -469,8 +469,8 @@ public function theGroupHasExactlyTheMembers(string $group, string $memberList):
throw new UnexpectedValueException(sprintf('Expected 200 status code but got %d', $responseArray['meta']['statusCode']));
}
- $expectedMembers = array_map('trim', explode(',', $memberList));
- $actualMembers = array_map('trim', $responseArray['data']['users']);
+ $expectedMembers = array_map(trim(...), explode(',', $memberList));
+ $actualMembers = array_map(trim(...), $responseArray['data']['users']);
sort($expectedMembers);
sort($actualMembers);
@@ -563,7 +563,7 @@ public function theUserIsPartOfTheseGroups(string $userId, string $groups) {
);
$groupsActual = json_decode(trim($response), true)['groups'];
- $groupsExpected = array_map('trim', explode(',', $groups));
+ $groupsExpected = array_map(trim(...), explode(',', $groups));
foreach ($groupsExpected as $expectedGroup) {
if (!in_array($expectedGroup, $groupsActual)) {
diff --git a/vendor-bin/cs-fixer/composer.lock b/vendor-bin/cs-fixer/composer.lock
index b4d881184..a8be2f78b 100644
--- a/vendor-bin/cs-fixer/composer.lock
+++ b/vendor-bin/cs-fixer/composer.lock
@@ -9,26 +9,26 @@
"packages-dev": [
{
"name": "kubawerlos/php-cs-fixer-custom-fixers",
- "version": "v3.31.1",
+ "version": "v3.35.1",
"source": {
"type": "git",
"url": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers.git",
- "reference": "207182775ff9121dafc1c8c3b28e9d3f2f567fe1"
+ "reference": "2a35f80ae24ca77443a7af1599c3a3db1b6bd395"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/kubawerlos/php-cs-fixer-custom-fixers/zipball/207182775ff9121dafc1c8c3b28e9d3f2f567fe1",
- "reference": "207182775ff9121dafc1c8c3b28e9d3f2f567fe1",
+ "url": "https://api.github.com/repos/kubawerlos/php-cs-fixer-custom-fixers/zipball/2a35f80ae24ca77443a7af1599c3a3db1b6bd395",
+ "reference": "2a35f80ae24ca77443a7af1599c3a3db1b6bd395",
"shasum": ""
},
"require": {
"ext-filter": "*",
"ext-tokenizer": "*",
- "friendsofphp/php-cs-fixer": "^3.84",
+ "friendsofphp/php-cs-fixer": "^3.87",
"php": "^7.4 || ^8.0"
},
"require-dev": {
- "phpunit/phpunit": "^9.6.22 || 10.5.45 || ^11.5.7"
+ "phpunit/phpunit": "^9.6.24 || ^10.5.51 || ^11.5.32"
},
"type": "library",
"autoload": {
@@ -49,7 +49,7 @@
"description": "A set of custom fixers for PHP CS Fixer",
"support": {
"issues": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers/issues",
- "source": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers/tree/v3.31.1"
+ "source": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers/tree/v3.35.1"
},
"funding": [
{
@@ -57,7 +57,7 @@
"type": "github"
}
],
- "time": "2025-07-21T18:19:38+00:00"
+ "time": "2025-09-28T18:43:35+00:00"
},
{
"name": "nextcloud/coding-standard",
@@ -106,16 +106,16 @@
},
{
"name": "php-cs-fixer/shim",
- "version": "v3.84.0",
+ "version": "v3.93.0",
"source": {
"type": "git",
"url": "https://github.com/PHP-CS-Fixer/shim.git",
- "reference": "8208dabb176cbc03a76df5a908220dfb75c0af9a"
+ "reference": "a5666a80c1a02c6b9a63660d023e55ffddbe742e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHP-CS-Fixer/shim/zipball/8208dabb176cbc03a76df5a908220dfb75c0af9a",
- "reference": "8208dabb176cbc03a76df5a908220dfb75c0af9a",
+ "url": "https://api.github.com/repos/PHP-CS-Fixer/shim/zipball/a5666a80c1a02c6b9a63660d023e55ffddbe742e",
+ "reference": "a5666a80c1a02c6b9a63660d023e55ffddbe742e",
"shasum": ""
},
"require": {
@@ -152,9 +152,9 @@
"description": "A tool to automatically fix PHP code style",
"support": {
"issues": "https://github.com/PHP-CS-Fixer/shim/issues",
- "source": "https://github.com/PHP-CS-Fixer/shim/tree/v3.84.0"
+ "source": "https://github.com/PHP-CS-Fixer/shim/tree/v3.93.0"
},
- "time": "2025-07-15T18:22:22+00:00"
+ "time": "2026-01-23T17:33:44+00:00"
}
],
"aliases": [],
@@ -167,5 +167,5 @@
"platform-overrides": {
"php": "8.1.32"
},
- "plugin-api-version": "2.6.0"
+ "plugin-api-version": "2.9.0"
}
diff --git a/vendor-bin/psalm/composer.json b/vendor-bin/psalm/composer.json
index 8373bac9c..52adbb7cc 100644
--- a/vendor-bin/psalm/composer.json
+++ b/vendor-bin/psalm/composer.json
@@ -1,6 +1,6 @@
{
"require-dev": {
- "nextcloud/ocp": "dev-stable30",
+ "nextcloud/ocp": "dev-stable32",
"vimeo/psalm": "^6.14",
"sabre/dav": "4.7.0"
},
diff --git a/vendor-bin/psalm/composer.lock b/vendor-bin/psalm/composer.lock
index b7f5778c3..5ddbb26ad 100644
--- a/vendor-bin/psalm/composer.lock
+++ b/vendor-bin/psalm/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": "6c4a4f56f6d1bec0dc8b633575727189",
+ "content-hash": "088ee6b15faa67e457e1427955f8625c",
"packages": [],
"packages-dev": [
{
@@ -1628,29 +1628,29 @@
},
{
"name": "nextcloud/ocp",
- "version": "dev-stable30",
+ "version": "dev-stable32",
"source": {
"type": "git",
"url": "https://github.com/nextcloud-deps/ocp.git",
- "reference": "d93fc10fea3db4b4896e37db312fae685cff54c4"
+ "reference": "f49cc367ee1a0216b7783b1b7a7f23dace6dd7c5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/d93fc10fea3db4b4896e37db312fae685cff54c4",
- "reference": "d93fc10fea3db4b4896e37db312fae685cff54c4",
+ "url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/f49cc367ee1a0216b7783b1b7a7f23dace6dd7c5",
+ "reference": "f49cc367ee1a0216b7783b1b7a7f23dace6dd7c5",
"shasum": ""
},
"require": {
- "php": "~8.0 || ~8.1 || ~8.2 || ~8.3",
+ "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": "^2.0.0"
+ "psr/log": "^3.0.2"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-stable30": "30.0.0-dev"
+ "dev-stable32": "32.0.0-dev"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1661,14 +1661,18 @@
{
"name": "Christoph Wurst",
"email": "christoph@winzerhof-wurst.at"
+ },
+ {
+ "name": "Joas Schilling",
+ "email": "coding@schilljs.com"
}
],
- "description": "Composer package containing Nextcloud's public API (classes, interfaces)",
+ "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/stable30"
+ "source": "https://github.com/nextcloud-deps/ocp/tree/stable32"
},
- "time": "2025-12-02T00:53:40+00:00"
+ "time": "2026-01-21T00:58:32+00:00"
},
{
"name": "nikic/php-parser",
@@ -2211,16 +2215,16 @@
},
{
"name": "psr/log",
- "version": "2.0.0",
+ "version": "3.0.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
- "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376"
+ "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/ef29f6d262798707a9edd554e2b82517ef3a9376",
- "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
+ "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
"shasum": ""
},
"require": {
@@ -2229,7 +2233,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0.x-dev"
+ "dev-master": "3.x-dev"
}
},
"autoload": {
@@ -2255,9 +2259,9 @@
"psr-3"
],
"support": {
- "source": "https://github.com/php-fig/log/tree/2.0.0"
+ "source": "https://github.com/php-fig/log/tree/3.0.2"
},
- "time": "2021-07-14T16:41:46+00:00"
+ "time": "2024-09-11T13:17:53+00:00"
},
{
"name": "revolt/event-loop",
@@ -3926,5 +3930,5 @@
"platform-overrides": {
"php": "8.1.32"
},
- "plugin-api-version": "2.6.0"
+ "plugin-api-version": "2.9.0"
}
diff --git a/vendor-bin/rector/composer.lock b/vendor-bin/rector/composer.lock
index 4a771dca3..9bf4fafa2 100644
--- a/vendor-bin/rector/composer.lock
+++ b/vendor-bin/rector/composer.lock
@@ -9,16 +9,16 @@
"packages-dev": [
{
"name": "nextcloud/ocp",
- "version": "v31.0.4",
+ "version": "v32.0.5",
"source": {
"type": "git",
"url": "https://github.com/nextcloud-deps/ocp.git",
- "reference": "1fb984268039921920ade298ef5a58e8fe3de7da"
+ "reference": "a79703d9f38e964b003ae1cc805b6531d142fa93"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/1fb984268039921920ade298ef5a58e8fe3de7da",
- "reference": "1fb984268039921920ade298ef5a58e8fe3de7da",
+ "url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/a79703d9f38e964b003ae1cc805b6531d142fa93",
+ "reference": "a79703d9f38e964b003ae1cc805b6531d142fa93",
"shasum": ""
},
"require": {
@@ -31,7 +31,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-stable31": "31.0.0-dev"
+ "dev-stable32": "32.0.0-dev"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -51,9 +51,9 @@
"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/v31.0.4"
+ "source": "https://github.com/nextcloud-deps/ocp/tree/v32.0.5"
},
- "time": "2025-04-15T00:50:16+00:00"
+ "time": "2026-01-09T00:57:52+00:00"
},
{
"name": "nextcloud/rector",
@@ -122,16 +122,11 @@
},
{
"name": "phpstan/phpstan",
- "version": "2.1.13",
- "source": {
- "type": "git",
- "url": "https://github.com/phpstan/phpstan.git",
- "reference": "e55e03e6d4ac49cd1240907e5b08e5cd378572a9"
- },
+ "version": "2.1.37",
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e55e03e6d4ac49cd1240907e5b08e5cd378572a9",
- "reference": "e55e03e6d4ac49cd1240907e5b08e5cd378572a9",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/28cd424c5ea984128c95cfa7ea658808e8954e49",
+ "reference": "28cd424c5ea984128c95cfa7ea658808e8954e49",
"shasum": ""
},
"require": {
@@ -176,7 +171,7 @@
"type": "github"
}
],
- "time": "2025-04-27T12:28:25+00:00"
+ "time": "2026-01-24T08:21:55+00:00"
},
{
"name": "psr/clock",
@@ -381,21 +376,21 @@
},
{
"name": "rector/rector",
- "version": "2.0.14",
+ "version": "2.3.4",
"source": {
"type": "git",
"url": "https://github.com/rectorphp/rector.git",
- "reference": "63923bc9383c1212476c41d8cebf58a425e6f98d"
+ "reference": "9227d7a24b0f23ae941057509364f948d5da9ab2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/rectorphp/rector/zipball/63923bc9383c1212476c41d8cebf58a425e6f98d",
- "reference": "63923bc9383c1212476c41d8cebf58a425e6f98d",
+ "url": "https://api.github.com/repos/rectorphp/rector/zipball/9227d7a24b0f23ae941057509364f948d5da9ab2",
+ "reference": "9227d7a24b0f23ae941057509364f948d5da9ab2",
"shasum": ""
},
"require": {
"php": "^7.4|^8.0",
- "phpstan/phpstan": "^2.1.12"
+ "phpstan/phpstan": "^2.1.36"
},
"conflict": {
"rector/rector-doctrine": "*",
@@ -420,6 +415,7 @@
"MIT"
],
"description": "Instant Upgrade and Automated Refactoring of any PHP code",
+ "homepage": "https://getrector.com/",
"keywords": [
"automation",
"dev",
@@ -428,7 +424,7 @@
],
"support": {
"issues": "https://github.com/rectorphp/rector/issues",
- "source": "https://github.com/rectorphp/rector/tree/2.0.14"
+ "source": "https://github.com/rectorphp/rector/tree/2.3.4"
},
"funding": [
{
@@ -436,32 +432,32 @@
"type": "github"
}
],
- "time": "2025-04-28T00:03:14+00:00"
+ "time": "2026-01-21T14:49:03+00:00"
},
{
"name": "webmozart/assert",
- "version": "1.11.0",
+ "version": "1.12.1",
"source": {
"type": "git",
"url": "https://github.com/webmozarts/assert.git",
- "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991"
+ "reference": "9be6926d8b485f55b9229203f962b51ed377ba68"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991",
- "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991",
+ "url": "https://api.github.com/repos/webmozarts/assert/zipball/9be6926d8b485f55b9229203f962b51ed377ba68",
+ "reference": "9be6926d8b485f55b9229203f962b51ed377ba68",
"shasum": ""
},
"require": {
"ext-ctype": "*",
+ "ext-date": "*",
+ "ext-filter": "*",
"php": "^7.2 || ^8.0"
},
- "conflict": {
- "phpstan/phpstan": "<0.12.20",
- "vimeo/psalm": "<4.6.1 || 4.6.2"
- },
- "require-dev": {
- "phpunit/phpunit": "^8.5.13"
+ "suggest": {
+ "ext-intl": "",
+ "ext-simplexml": "",
+ "ext-spl": ""
},
"type": "library",
"extra": {
@@ -492,9 +488,9 @@
],
"support": {
"issues": "https://github.com/webmozarts/assert/issues",
- "source": "https://github.com/webmozarts/assert/tree/1.11.0"
+ "source": "https://github.com/webmozarts/assert/tree/1.12.1"
},
- "time": "2022-06-03T18:03:27+00:00"
+ "time": "2025-10-29T15:56:20+00:00"
}
],
"aliases": [],
@@ -504,5 +500,5 @@
"prefer-lowest": false,
"platform": {},
"platform-dev": {},
- "plugin-api-version": "2.6.0"
+ "plugin-api-version": "2.9.0"
}