diff --git a/.github/workflows/lint-php.yml b/.github/workflows/lint-php.yml
index 90d733d6..a777bd3f 100644
--- a/.github/workflows/lint-php.yml
+++ b/.github/workflows/lint-php.yml
@@ -19,7 +19,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- php-versions: ['8.1', '8.2', '8.3']
+ php-versions: ['8.2', '8.3', '8.4']
name: php-lint
diff --git a/.github/workflows/phpunit-mysql.yml b/.github/workflows/phpunit-mysql.yml
index 0ff76c91..681e44fc 100644
--- a/.github/workflows/phpunit-mysql.yml
+++ b/.github/workflows/phpunit-mysql.yml
@@ -38,7 +38,7 @@ jobs:
strategy:
matrix:
- php-versions: ['8.1']
+ php-versions: ['8.2']
server-versions: ['master']
services:
diff --git a/.github/workflows/phpunit-pgsql.yml b/.github/workflows/phpunit-pgsql.yml
index 0b949ccd..f47b8bf9 100644
--- a/.github/workflows/phpunit-pgsql.yml
+++ b/.github/workflows/phpunit-pgsql.yml
@@ -38,7 +38,7 @@ jobs:
strategy:
matrix:
- php-versions: ['8.1']
+ php-versions: ['8.2']
server-versions: ['master']
services:
diff --git a/.github/workflows/phpunit-sqlite.yml b/.github/workflows/phpunit-sqlite.yml
index 798ef4f3..10a5ddf5 100644
--- a/.github/workflows/phpunit-sqlite.yml
+++ b/.github/workflows/phpunit-sqlite.yml
@@ -38,8 +38,8 @@ jobs:
strategy:
matrix:
- php-versions: ['8.1']
- server-versions: ['master', 'stable30']
+ php-versions: ['8.2']
+ server-versions: ['master', 'stable32']
steps:
- name: Set app env
@@ -89,6 +89,7 @@ jobs:
mkdir data
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
./occ app:enable --force ${{ env.APP_NAME }}
+ ./occ app:disable files_external
- name: Check PHPUnit script is defined
id: check_phpunit
diff --git a/.github/workflows/psalm.yml b/.github/workflows/psalm.yml
index f5f002b4..cb1a4c8f 100644
--- a/.github/workflows/psalm.yml
+++ b/.github/workflows/psalm.yml
@@ -38,8 +38,8 @@ jobs:
# do not stop on another job's failure
fail-fast: false
matrix:
- ocp-version: ['^29', '^30', '^31', 'dev-master']
- php-version: ['8.1', '8.2', '8.3']
+ ocp-version: ['^32', 'dev-master']
+ php-version: ['8.2', '8.3', '8.4']
name: Psalm check on PHP ${{ matrix.php-version }} and OCP ${{ matrix.ocp-version }}
diff --git a/appinfo/info.xml b/appinfo/info.xml
index 5fe9138e..17074ef8 100644
--- a/appinfo/info.xml
+++ b/appinfo/info.xml
@@ -23,7 +23,7 @@
https://github.com/nextcloud/integration_github/issues
https://github.com/nextcloud/integration_github/raw/main/img/screenshot1.jpg
-
+
OCA\Github\BackgroundJob\CheckGithubNotificationsJob
diff --git a/composer.lock b/composer.lock
index 8d91538f..61150ef3 100644
--- a/composer.lock
+++ b/composer.lock
@@ -140,16 +140,16 @@
},
{
"name": "league/commonmark",
- "version": "2.6.2",
+ "version": "2.7.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/commonmark.git",
- "reference": "06c3b0bf2540338094575612f4a1778d0d2d5e94"
+ "reference": "10732241927d3971d28e7ea7b5712721fa2296ca"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/06c3b0bf2540338094575612f4a1778d0d2d5e94",
- "reference": "06c3b0bf2540338094575612f4a1778d0d2d5e94",
+ "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/10732241927d3971d28e7ea7b5712721fa2296ca",
+ "reference": "10732241927d3971d28e7ea7b5712721fa2296ca",
"shasum": ""
},
"require": {
@@ -178,7 +178,7 @@
"symfony/process": "^5.4 | ^6.0 | ^7.0",
"symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 | ^7.0",
"unleashedtech/php-coding-standard": "^3.1.1",
- "vimeo/psalm": "^4.24.0 || ^5.0.0"
+ "vimeo/psalm": "^4.24.0 || ^5.0.0 || ^6.0.0"
},
"suggest": {
"symfony/yaml": "v2.3+ required if using the Front Matter extension"
@@ -186,7 +186,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.7-dev"
+ "dev-main": "2.8-dev"
}
},
"autoload": {
@@ -243,7 +243,7 @@
"type": "tidelift"
}
],
- "time": "2025-04-18T21:09:27+00:00"
+ "time": "2025-07-20T12:47:49+00:00"
},
{
"name": "league/config",
@@ -391,29 +391,29 @@
},
{
"name": "nette/utils",
- "version": "v4.0.6",
+ "version": "v4.0.8",
"source": {
"type": "git",
"url": "https://github.com/nette/utils.git",
- "reference": "ce708655043c7050eb050df361c5e313cf708309"
+ "reference": "c930ca4e3cf4f17dcfb03037703679d2396d2ede"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/utils/zipball/ce708655043c7050eb050df361c5e313cf708309",
- "reference": "ce708655043c7050eb050df361c5e313cf708309",
+ "url": "https://api.github.com/repos/nette/utils/zipball/c930ca4e3cf4f17dcfb03037703679d2396d2ede",
+ "reference": "c930ca4e3cf4f17dcfb03037703679d2396d2ede",
"shasum": ""
},
"require": {
- "php": "8.0 - 8.4"
+ "php": "8.0 - 8.5"
},
"conflict": {
"nette/finder": "<3",
"nette/schema": "<1.2.2"
},
"require-dev": {
- "jetbrains/phpstorm-attributes": "dev-master",
+ "jetbrains/phpstorm-attributes": "^1.2",
"nette/tester": "^2.5",
- "phpstan/phpstan": "^1.0",
+ "phpstan/phpstan-nette": "^2.0@stable",
"tracy/tracy": "^2.9"
},
"suggest": {
@@ -431,6 +431,9 @@
}
},
"autoload": {
+ "psr-4": {
+ "Nette\\": "src"
+ },
"classmap": [
"src/"
]
@@ -471,9 +474,9 @@
],
"support": {
"issues": "https://github.com/nette/utils/issues",
- "source": "https://github.com/nette/utils/tree/v4.0.6"
+ "source": "https://github.com/nette/utils/tree/v4.0.8"
},
- "time": "2025-03-30T21:06:30+00:00"
+ "time": "2025-08-06T21:43:34+00:00"
},
{
"name": "psr/event-dispatcher",
@@ -527,16 +530,16 @@
},
{
"name": "symfony/deprecation-contracts",
- "version": "v3.5.1",
+ "version": "v3.6.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6"
+ "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
- "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62",
+ "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62",
"shasum": ""
},
"require": {
@@ -549,7 +552,7 @@
"name": "symfony/contracts"
},
"branch-alias": {
- "dev-main": "3.5-dev"
+ "dev-main": "3.6-dev"
}
},
"autoload": {
@@ -574,7 +577,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0"
},
"funding": [
{
@@ -590,20 +593,20 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:20:29+00:00"
+ "time": "2024-09-25T14:21:43+00:00"
},
{
"name": "symfony/polyfill-php80",
- "version": "v1.31.0",
+ "version": "v1.33.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8"
+ "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
- "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608",
+ "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608",
"shasum": ""
},
"require": {
@@ -654,7 +657,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0"
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.33.0"
},
"funding": [
{
@@ -665,12 +668,16 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2024-09-09T11:45:10+00:00"
+ "time": "2025-01-02T08:10:11+00:00"
}
],
"packages-dev": [
@@ -680,12 +687,12 @@
"source": {
"type": "git",
"url": "https://github.com/nextcloud-deps/ocp.git",
- "reference": "c99b7f918ce947f6f2f5c9e61f68845c70a17680"
+ "reference": "6101c4313b00e7f20d06395b093c4e0f97e2d837"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/c99b7f918ce947f6f2f5c9e61f68845c70a17680",
- "reference": "c99b7f918ce947f6f2f5c9e61f68845c70a17680",
+ "url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/6101c4313b00e7f20d06395b093c4e0f97e2d837",
+ "reference": "6101c4313b00e7f20d06395b093c4e0f97e2d837",
"shasum": ""
},
"require": {
@@ -699,7 +706,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "32.0.0-dev"
+ "dev-master": "33.0.0-dev"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -721,7 +728,7 @@
"issues": "https://github.com/nextcloud-deps/ocp/issues",
"source": "https://github.com/nextcloud-deps/ocp/tree/master"
},
- "time": "2025-04-30T00:50:52+00:00"
+ "time": "2025-10-01T00:54:58+00:00"
},
{
"name": "psr/clock",
diff --git a/lib/Controller/ConfigController.php b/lib/Controller/ConfigController.php
index 3e3bf02b..48e49c55 100644
--- a/lib/Controller/ConfigController.php
+++ b/lib/Controller/ConfigController.php
@@ -197,8 +197,8 @@ public function oauthRedirect(string $code, string $state): RedirectResponse {
$this->config->deleteUserValue($this->userId, Application::APP_ID, 'oauth_origin');
if ($oauthOrigin === 'settings') {
return new RedirectResponse(
- $this->urlGenerator->linkToRoute('settings.PersonalSettings.index', ['section' => 'connected-accounts']) .
- '?githubToken=success'
+ $this->urlGenerator->linkToRoute('settings.PersonalSettings.index', ['section' => 'connected-accounts'])
+ . '?githubToken=success'
);
} elseif ($oauthOrigin === 'dashboard') {
return new RedirectResponse(
@@ -206,8 +206,8 @@ public function oauthRedirect(string $code, string $state): RedirectResponse {
);
}
return new RedirectResponse(
- $this->urlGenerator->linkToRoute('settings.PersonalSettings.index', ['section' => 'connected-accounts']) .
- '?githubToken=success'
+ $this->urlGenerator->linkToRoute('settings.PersonalSettings.index', ['section' => 'connected-accounts'])
+ . '?githubToken=success'
);
}
}
@@ -217,8 +217,8 @@ public function oauthRedirect(string $code, string $state): RedirectResponse {
$result = $this->l->t('Error during OAuth exchanges');
}
return new RedirectResponse(
- $this->urlGenerator->linkToRoute('settings.PersonalSettings.index', ['section' => 'connected-accounts']) .
- '?githubToken=error&message=' . urlencode($result)
+ $this->urlGenerator->linkToRoute('settings.PersonalSettings.index', ['section' => 'connected-accounts'])
+ . '?githubToken=error&message=' . urlencode($result)
);
}
diff --git a/lib/Search/GithubSearchIssuesProvider.php b/lib/Search/GithubSearchIssuesProvider.php
index 5e84ee73..57e53ce9 100644
--- a/lib/Search/GithubSearchIssuesProvider.php
+++ b/lib/Search/GithubSearchIssuesProvider.php
@@ -16,12 +16,13 @@
use OCP\IL10N;
use OCP\IURLGenerator;
use OCP\IUser;
+use OCP\Search\IExternalProvider;
use OCP\Search\IProvider;
use OCP\Search\ISearchQuery;
use OCP\Search\SearchResult;
use OCP\Search\SearchResultEntry;
-class GithubSearchIssuesProvider implements IProvider {
+class GithubSearchIssuesProvider implements IProvider, IExternalProvider {
public function __construct(
private IAppManager $appManager,
@@ -157,4 +158,8 @@ protected function getThumbnailUrl(array $entry): string {
$userName = $entry['project_owner_login'] ?? '';
return $this->urlGenerator->linkToRoute('integration_github.githubAPI.getAvatar', ['githubLogin' => $userName]);
}
+
+ public function isExternalProvider(): bool {
+ return true;
+ }
}
diff --git a/lib/Search/GithubSearchReposProvider.php b/lib/Search/GithubSearchReposProvider.php
index acd23d45..0588d6cb 100644
--- a/lib/Search/GithubSearchReposProvider.php
+++ b/lib/Search/GithubSearchReposProvider.php
@@ -16,12 +16,13 @@
use OCP\IL10N;
use OCP\IURLGenerator;
use OCP\IUser;
+use OCP\Search\IExternalProvider;
use OCP\Search\IProvider;
use OCP\Search\ISearchQuery;
use OCP\Search\SearchResult;
use OCP\Search\SearchResultEntry;
-class GithubSearchReposProvider implements IProvider {
+class GithubSearchReposProvider implements IProvider, IExternalProvider {
public function __construct(
private IAppManager $appManager,
@@ -142,4 +143,8 @@ protected function getThumbnailUrl(array $entry): string {
$userName = $entry['owner']['login'] ?? '';
return $this->urlGenerator->linkToRoute('integration_github.githubAPI.getAvatar', ['githubLogin' => $userName]);
}
+
+ public function isExternalProvider(): bool {
+ return true;
+ }
}
diff --git a/lib/Service/GithubAPIService.php b/lib/Service/GithubAPIService.php
index 2cc22fad..12fc98b0 100644
--- a/lib/Service/GithubAPIService.php
+++ b/lib/Service/GithubAPIService.php
@@ -140,12 +140,16 @@ private function getItemLink(array $notification): string {
$url = $notification['subject']['url'] ?? '';
$url = str_replace('api.github.com', 'github.com', $url);
$url = str_replace('/repos/', '/', $url);
- return preg_replace('/\/[0-9]+/', '', $url);
+ /** @var string $result */
+ $result = preg_replace('/\/[0-9]+/', '', $url);
+ return $result;
} elseif ($subjectType !== 'Discussion') {
$url = $notification['subject']['url'] ?? '';
$url = str_replace('api.github.com', 'github.com', $url);
$url = str_replace('/repos/', '/', $url);
- return str_replace('/pulls/', '/pull/', $url);
+ /** @var string $result */
+ $result = str_replace('/pulls/', '/pull/', $url);
+ return $result;
}
// this is a discussion
$repoFullName = $notification['repository']['full_name'] ?? '';
diff --git a/psalm.xml b/psalm.xml
index 645fe616..3f802a0d 100644
--- a/psalm.xml
+++ b/psalm.xml
@@ -5,7 +5,10 @@
findUnusedBaselineEntry="true"
findUnusedCode="false"
resolveFromConfigFile="true"
- phpVersion="8.0"
+ ensureOverrideAttribute="false"
+ strictBinaryOperands="false"
+ findUnusedIssueHandlerSuppression="false"
+ phpVersion="8.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="https://getpsalm.org/schema/config"
xsi:schemaLocation="https://getpsalm.org/schema/config vendor-bin/psalm/vendor/vimeo/psalm/config.xsd">
diff --git a/tests/bootstrap.php b/tests/bootstrap.php
index 1066c4cc..af06a654 100644
--- a/tests/bootstrap.php
+++ b/tests/bootstrap.php
@@ -1,6 +1,9 @@
loadApp(Application::APP_ID);
OC_Hook::clear();
diff --git a/vendor-bin/php-cs-fixer/composer.json b/vendor-bin/php-cs-fixer/composer.json
index 205d07ce..b917408e 100644
--- a/vendor-bin/php-cs-fixer/composer.json
+++ b/vendor-bin/php-cs-fixer/composer.json
@@ -1,10 +1,10 @@
{
"require-dev": {
- "nextcloud/coding-standard": "^1.2"
+ "nextcloud/coding-standard": "^1.4"
},
"config": {
"platform": {
- "php": "8.0"
+ "php": "8.1"
}
}
}
diff --git a/vendor-bin/php-cs-fixer/composer.lock b/vendor-bin/php-cs-fixer/composer.lock
index b9dbd091..93ec0b4e 100644
--- a/vendor-bin/php-cs-fixer/composer.lock
+++ b/vendor-bin/php-cs-fixer/composer.lock
@@ -4,31 +4,31 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "57f0b005c2f492f7a709fab9c13ec316",
+ "content-hash": "406b69913abd251f0ae684859546f9e6",
"packages": [],
"packages-dev": [
{
"name": "kubawerlos/php-cs-fixer-custom-fixers",
- "version": "v3.24.0",
+ "version": "v3.35.1",
"source": {
"type": "git",
"url": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers.git",
- "reference": "93222100a91399314c3726857e249e76c4a7d760"
+ "reference": "2a35f80ae24ca77443a7af1599c3a3db1b6bd395"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/kubawerlos/php-cs-fixer-custom-fixers/zipball/93222100a91399314c3726857e249e76c4a7d760",
- "reference": "93222100a91399314c3726857e249e76c4a7d760",
+ "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.61.1",
+ "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,27 +49,33 @@
"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.24.0"
+ "source": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers/tree/v3.35.1"
},
- "time": "2025-03-22T16:51:39+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/kubawerlos",
+ "type": "github"
+ }
+ ],
+ "time": "2025-09-28T18:43:35+00:00"
},
{
"name": "nextcloud/coding-standard",
- "version": "v1.3.2",
+ "version": "v1.4.0",
"source": {
"type": "git",
"url": "https://github.com/nextcloud/coding-standard.git",
- "reference": "9c719c4747fa26efc12f2e8b21c14a9a75c6ba6d"
+ "reference": "8e06808c1423e9208d63d1bd205b9a38bd400011"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nextcloud/coding-standard/zipball/9c719c4747fa26efc12f2e8b21c14a9a75c6ba6d",
- "reference": "9c719c4747fa26efc12f2e8b21c14a9a75c6ba6d",
+ "url": "https://api.github.com/repos/nextcloud/coding-standard/zipball/8e06808c1423e9208d63d1bd205b9a38bd400011",
+ "reference": "8e06808c1423e9208d63d1bd205b9a38bd400011",
"shasum": ""
},
"require": {
"kubawerlos/php-cs-fixer-custom-fixers": "^3.22",
- "php": "^7.3|^8.0",
+ "php": "^8.0",
"php-cs-fixer/shim": "^3.17"
},
"type": "library",
@@ -89,24 +95,27 @@
}
],
"description": "Nextcloud coding standards for the php cs fixer",
+ "keywords": [
+ "dev"
+ ],
"support": {
"issues": "https://github.com/nextcloud/coding-standard/issues",
- "source": "https://github.com/nextcloud/coding-standard/tree/v1.3.2"
+ "source": "https://github.com/nextcloud/coding-standard/tree/v1.4.0"
},
- "time": "2024-10-14T16:49:05+00:00"
+ "time": "2025-06-19T12:27:27+00:00"
},
{
"name": "php-cs-fixer/shim",
- "version": "v3.75.0",
+ "version": "v3.88.2",
"source": {
"type": "git",
"url": "https://github.com/PHP-CS-Fixer/shim.git",
- "reference": "eea219a577085bd13ff0cb644a422c20798316c7"
+ "reference": "b70300670e5a37dd3a9cb0f188e186c8c206f70f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHP-CS-Fixer/shim/zipball/eea219a577085bd13ff0cb644a422c20798316c7",
- "reference": "eea219a577085bd13ff0cb644a422c20798316c7",
+ "url": "https://api.github.com/repos/PHP-CS-Fixer/shim/zipball/b70300670e5a37dd3a9cb0f188e186c8c206f70f",
+ "reference": "b70300670e5a37dd3a9cb0f188e186c8c206f70f",
"shasum": ""
},
"require": {
@@ -143,20 +152,20 @@
"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.75.0"
+ "source": "https://github.com/PHP-CS-Fixer/shim/tree/v3.88.2"
},
- "time": "2025-03-31T18:45:02+00:00"
+ "time": "2025-09-27T00:25:01+00:00"
}
],
"aliases": [],
"minimum-stability": "stable",
- "stability-flags": [],
+ "stability-flags": {},
"prefer-stable": false,
"prefer-lowest": false,
- "platform": [],
- "platform-dev": [],
+ "platform": {},
+ "platform-dev": {},
"platform-overrides": {
- "php": "8.0"
+ "php": "8.1"
},
"plugin-api-version": "2.6.0"
}
diff --git a/vendor-bin/phpunit/composer.json b/vendor-bin/phpunit/composer.json
index a5139bec..5c187cf8 100644
--- a/vendor-bin/phpunit/composer.json
+++ b/vendor-bin/phpunit/composer.json
@@ -4,7 +4,7 @@
},
"config": {
"platform": {
- "php": "8.0"
+ "php": "8.1"
}
}
}
diff --git a/vendor-bin/phpunit/composer.lock b/vendor-bin/phpunit/composer.lock
index 649a1c54..591d9d69 100644
--- a/vendor-bin/phpunit/composer.lock
+++ b/vendor-bin/phpunit/composer.lock
@@ -4,35 +4,35 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "9e3777a432ca79447f42fda133792e1d",
+ "content-hash": "b523683a3040ceca734f58b161c7f6d6",
"packages": [],
"packages-dev": [
{
"name": "doctrine/instantiator",
- "version": "1.5.0",
+ "version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/instantiator.git",
- "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b"
+ "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b",
- "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b",
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
+ "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
"shasum": ""
},
"require": {
- "php": "^7.1 || ^8.0"
+ "php": "^8.1"
},
"require-dev": {
- "doctrine/coding-standard": "^9 || ^11",
+ "doctrine/coding-standard": "^11",
"ext-pdo": "*",
"ext-phar": "*",
- "phpbench/phpbench": "^0.16 || ^1",
- "phpstan/phpstan": "^1.4",
- "phpstan/phpstan-phpunit": "^1",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "vimeo/psalm": "^4.30 || ^5.4"
+ "phpbench/phpbench": "^1.2",
+ "phpstan/phpstan": "^1.9.4",
+ "phpstan/phpstan-phpunit": "^1.3",
+ "phpunit/phpunit": "^9.5.27",
+ "vimeo/psalm": "^5.4"
},
"type": "library",
"autoload": {
@@ -59,7 +59,7 @@
],
"support": {
"issues": "https://github.com/doctrine/instantiator/issues",
- "source": "https://github.com/doctrine/instantiator/tree/1.5.0"
+ "source": "https://github.com/doctrine/instantiator/tree/2.0.0"
},
"funding": [
{
@@ -75,20 +75,20 @@
"type": "tidelift"
}
],
- "time": "2022-12-30T00:15:36+00:00"
+ "time": "2022-12-30T00:23:10+00:00"
},
{
"name": "myclabs/deep-copy",
- "version": "1.13.1",
+ "version": "1.13.4",
"source": {
"type": "git",
"url": "https://github.com/myclabs/DeepCopy.git",
- "reference": "1720ddd719e16cf0db4eb1c6eca108031636d46c"
+ "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/1720ddd719e16cf0db4eb1c6eca108031636d46c",
- "reference": "1720ddd719e16cf0db4eb1c6eca108031636d46c",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a",
+ "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a",
"shasum": ""
},
"require": {
@@ -127,7 +127,7 @@
],
"support": {
"issues": "https://github.com/myclabs/DeepCopy/issues",
- "source": "https://github.com/myclabs/DeepCopy/tree/1.13.1"
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4"
},
"funding": [
{
@@ -135,20 +135,20 @@
"type": "tidelift"
}
],
- "time": "2025-04-29T12:36:36+00:00"
+ "time": "2025-08-01T08:46:24+00:00"
},
{
"name": "nikic/php-parser",
- "version": "v5.4.0",
+ "version": "v5.6.1",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "447a020a1f875a434d62f2a401f53b82a396e494"
+ "reference": "f103601b29efebd7ff4a1ca7b3eeea9e3336a2a2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/447a020a1f875a434d62f2a401f53b82a396e494",
- "reference": "447a020a1f875a434d62f2a401f53b82a396e494",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f103601b29efebd7ff4a1ca7b3eeea9e3336a2a2",
+ "reference": "f103601b29efebd7ff4a1ca7b3eeea9e3336a2a2",
"shasum": ""
},
"require": {
@@ -167,7 +167,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "5.0-dev"
+ "dev-master": "5.x-dev"
}
},
"autoload": {
@@ -191,9 +191,9 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v5.4.0"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v5.6.1"
},
- "time": "2024-12-30T11:07:19+00:00"
+ "time": "2025-08-13T20:13:15+00:00"
},
{
"name": "phar-io/manifest",
@@ -634,16 +634,16 @@
},
{
"name": "phpunit/phpunit",
- "version": "9.6.22",
+ "version": "9.6.29",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "f80235cb4d3caa59ae09be3adf1ded27521d1a9c"
+ "reference": "9ecfec57835a5581bc888ea7e13b51eb55ab9dd3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f80235cb4d3caa59ae09be3adf1ded27521d1a9c",
- "reference": "f80235cb4d3caa59ae09be3adf1ded27521d1a9c",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9ecfec57835a5581bc888ea7e13b51eb55ab9dd3",
+ "reference": "9ecfec57835a5581bc888ea7e13b51eb55ab9dd3",
"shasum": ""
},
"require": {
@@ -654,7 +654,7 @@
"ext-mbstring": "*",
"ext-xml": "*",
"ext-xmlwriter": "*",
- "myclabs/deep-copy": "^1.12.1",
+ "myclabs/deep-copy": "^1.13.4",
"phar-io/manifest": "^2.0.4",
"phar-io/version": "^3.2.1",
"php": ">=7.3",
@@ -665,11 +665,11 @@
"phpunit/php-timer": "^5.0.3",
"sebastian/cli-parser": "^1.0.2",
"sebastian/code-unit": "^1.0.8",
- "sebastian/comparator": "^4.0.8",
+ "sebastian/comparator": "^4.0.9",
"sebastian/diff": "^4.0.6",
"sebastian/environment": "^5.1.5",
- "sebastian/exporter": "^4.0.6",
- "sebastian/global-state": "^5.0.7",
+ "sebastian/exporter": "^4.0.8",
+ "sebastian/global-state": "^5.0.8",
"sebastian/object-enumerator": "^4.0.4",
"sebastian/resource-operations": "^3.0.4",
"sebastian/type": "^3.2.1",
@@ -717,7 +717,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.22"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.29"
},
"funding": [
{
@@ -728,12 +728,20 @@
"url": "https://github.com/sebastianbergmann",
"type": "github"
},
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
"type": "tidelift"
}
],
- "time": "2024-12-05T13:48:26+00:00"
+ "time": "2025-09-24T06:29:11+00:00"
},
{
"name": "sebastian/cli-parser",
@@ -904,16 +912,16 @@
},
{
"name": "sebastian/comparator",
- "version": "4.0.8",
+ "version": "4.0.9",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "fa0f136dd2334583309d32b62544682ee972b51a"
+ "reference": "67a2df3a62639eab2cc5906065e9805d4fd5dfc5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a",
- "reference": "fa0f136dd2334583309d32b62544682ee972b51a",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/67a2df3a62639eab2cc5906065e9805d4fd5dfc5",
+ "reference": "67a2df3a62639eab2cc5906065e9805d4fd5dfc5",
"shasum": ""
},
"require": {
@@ -966,15 +974,27 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/comparator/issues",
- "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8"
+ "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.9"
},
"funding": [
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/sebastian/comparator",
+ "type": "tidelift"
}
],
- "time": "2022-09-14T12:41:17+00:00"
+ "time": "2025-08-10T06:51:50+00:00"
},
{
"name": "sebastian/complexity",
@@ -1164,16 +1184,16 @@
},
{
"name": "sebastian/exporter",
- "version": "4.0.6",
+ "version": "4.0.8",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72"
+ "reference": "14c6ba52f95a36c3d27c835d65efc7123c446e8c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72",
- "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/14c6ba52f95a36c3d27c835d65efc7123c446e8c",
+ "reference": "14c6ba52f95a36c3d27c835d65efc7123c446e8c",
"shasum": ""
},
"require": {
@@ -1229,28 +1249,40 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
- "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6"
+ "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.8"
},
"funding": [
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter",
+ "type": "tidelift"
}
],
- "time": "2024-03-02T06:33:00+00:00"
+ "time": "2025-09-24T06:03:27+00:00"
},
{
"name": "sebastian/global-state",
- "version": "5.0.7",
+ "version": "5.0.8",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9"
+ "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9",
- "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/b6781316bdcd28260904e7cc18ec983d0d2ef4f6",
+ "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6",
"shasum": ""
},
"require": {
@@ -1293,15 +1325,27 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/global-state/issues",
- "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.7"
+ "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.8"
},
"funding": [
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/sebastian/global-state",
+ "type": "tidelift"
}
],
- "time": "2024-03-02T06:35:11+00:00"
+ "time": "2025-08-10T07:10:35+00:00"
},
{
"name": "sebastian/lines-of-code",
@@ -1474,16 +1518,16 @@
},
{
"name": "sebastian/recursion-context",
- "version": "4.0.5",
+ "version": "4.0.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1"
+ "reference": "539c6691e0623af6dc6f9c20384c120f963465a0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
- "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/539c6691e0623af6dc6f9c20384c120f963465a0",
+ "reference": "539c6691e0623af6dc6f9c20384c120f963465a0",
"shasum": ""
},
"require": {
@@ -1525,15 +1569,27 @@
"homepage": "https://github.com/sebastianbergmann/recursion-context",
"support": {
"issues": "https://github.com/sebastianbergmann/recursion-context/issues",
- "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5"
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.6"
},
"funding": [
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context",
+ "type": "tidelift"
}
],
- "time": "2023-02-03T06:07:39+00:00"
+ "time": "2025-08-10T06:57:39+00:00"
},
{
"name": "sebastian/resource-operations",
@@ -1751,13 +1807,13 @@
],
"aliases": [],
"minimum-stability": "stable",
- "stability-flags": [],
+ "stability-flags": {},
"prefer-stable": false,
"prefer-lowest": false,
- "platform": [],
- "platform-dev": [],
+ "platform": {},
+ "platform-dev": {},
"platform-overrides": {
- "php": "8.0"
+ "php": "8.1"
},
"plugin-api-version": "2.6.0"
}
diff --git a/vendor-bin/psalm/composer.json b/vendor-bin/psalm/composer.json
index 8952478c..37c2a438 100644
--- a/vendor-bin/psalm/composer.json
+++ b/vendor-bin/psalm/composer.json
@@ -1,10 +1,10 @@
{
"require-dev": {
- "psalm/phar": "^5.22"
+ "psalm/phar": "^6"
},
"config": {
"platform": {
- "php": "8.0"
+ "php": "8.2"
}
}
}
diff --git a/vendor-bin/psalm/composer.lock b/vendor-bin/psalm/composer.lock
index 12e04f72..f37357fc 100644
--- a/vendor-bin/psalm/composer.lock
+++ b/vendor-bin/psalm/composer.lock
@@ -4,25 +4,25 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "3495ee8f47f7d906767ccc17bf8f2358",
+ "content-hash": "1df3ef8d00f43f869fcb085cc780d6f5",
"packages": [],
"packages-dev": [
{
"name": "psalm/phar",
- "version": "5.26.1",
+ "version": "6.13.1",
"source": {
"type": "git",
"url": "https://github.com/psalm/phar.git",
- "reference": "8a38e7ad04499a0ccd2c506fd1da6fc01fff4547"
+ "reference": "e143bcacd037f1cbc5a738b76d846841e787a62f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/psalm/phar/zipball/8a38e7ad04499a0ccd2c506fd1da6fc01fff4547",
- "reference": "8a38e7ad04499a0ccd2c506fd1da6fc01fff4547",
+ "url": "https://api.github.com/repos/psalm/phar/zipball/e143bcacd037f1cbc5a738b76d846841e787a62f",
+ "reference": "e143bcacd037f1cbc5a738b76d846841e787a62f",
"shasum": ""
},
"require": {
- "php": "^7.1 || ^8.0"
+ "php": "^8.2"
},
"conflict": {
"vimeo/psalm": "*"
@@ -38,20 +38,20 @@
"description": "Composer-based Psalm Phar",
"support": {
"issues": "https://github.com/psalm/phar/issues",
- "source": "https://github.com/psalm/phar/tree/5.26.1"
+ "source": "https://github.com/psalm/phar/tree/6.13.1"
},
- "time": "2024-09-09T16:22:43+00:00"
+ "time": "2025-08-07T12:36:48+00:00"
}
],
"aliases": [],
"minimum-stability": "stable",
- "stability-flags": [],
+ "stability-flags": {},
"prefer-stable": false,
"prefer-lowest": false,
- "platform": [],
- "platform-dev": [],
+ "platform": {},
+ "platform-dev": {},
"platform-overrides": {
- "php": "8.0"
+ "php": "8.2"
},
"plugin-api-version": "2.6.0"
}