From 767f3b93f45bf3830a3756aaef0c8d08bf310766 Mon Sep 17 00:00:00 2001
From: Jim Mullen
Date: Thu, 16 Jan 2025 08:12:12 -0500
Subject: [PATCH 01/14] Updated version release number to 1.5.3
---
docs/api/classes/IU-PHPCap-Version.html | 4 ++--
src/Version.php | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/api/classes/IU-PHPCap-Version.html b/docs/api/classes/IU-PHPCap-Version.html
index d4c4313..0e3f81c 100644
--- a/docs/api/classes/IU-PHPCap-Version.html
+++ b/docs/api/classes/IU-PHPCap-Version.html
@@ -134,7 +134,7 @@
RELEASE_NUMBER
- = "1.5.2"
+ = "1.5.3"
@@ -166,7 +166,7 @@
public
mixed
RELEASE_NUMBER
- = "1.5.2"
+ = "1.5.3"
diff --git a/src/Version.php b/src/Version.php
index e796414..029d35b 100644
--- a/src/Version.php
+++ b/src/Version.php
@@ -14,5 +14,5 @@ class Version
# This release number should be updated each time a release is made.
# This value will be logged to indicate which version of the
# software is being used.
- const RELEASE_NUMBER = "1.5.2";
+ const RELEASE_NUMBER = "1.5.3";
}
From a7e1be819f71703a4266c50b03ad8e1d7feda610 Mon Sep 17 00:00:00 2001
From: Jim Mullen
Date: Fri, 17 Jan 2025 08:03:22 -0500
Subject: [PATCH 02/14] Fixed phpdoc comment return type
---
docs/api/classes/IU-PHPCap-RedCapApiConnection.html | 10 ++++------
.../IU-PHPCap-RedCapApiConnectionInterface.html | 12 +++++-------
src/RedCapApiConnectionInterface.php | 2 --
3 files changed, 9 insertions(+), 15 deletions(-)
diff --git a/docs/api/classes/IU-PHPCap-RedCapApiConnection.html b/docs/api/classes/IU-PHPCap-RedCapApiConnection.html
index aab8560..303a6f9 100644
--- a/docs/api/classes/IU-PHPCap-RedCapApiConnection.html
+++ b/docs/api/classes/IU-PHPCap-RedCapApiConnection.html
@@ -266,7 +266,7 @@
setConnectionTimeoutInSeconds()
- : int
+ : mixed
Sets the timeout for time to make a connection in seconds.
@@ -1016,7 +1016,7 @@
public
- setConnectionTimeoutInSeconds(mixed $connectionTimeoutInSeconds) : int
+ setConnectionTimeoutInSeconds(mixed $connectionTimeoutInSeconds) : mixed
Parameters
@@ -1034,11 +1034,9 @@ Parameters
Return values
- int
+ mixed
—
- connection timeout in seconds.
-
-
+
setConnectionTimeoutInSeconds()
- : int
+ : mixed
Sets the timeout for time to make a connection in seconds.
@@ -706,7 +706,7 @@
RedCapApiConnectionInterface.php
:
- 147
+ 145
@@ -714,7 +714,7 @@
public
- setConnectionTimeoutInSeconds(mixed $connectionTimeoutInSeconds) : int
+ setConnectionTimeoutInSeconds(mixed $connectionTimeoutInSeconds) : mixed
Parameters
@@ -732,11 +732,9 @@ Parameters
Return values
- int
+ mixed
—
- connection timeout in seconds.
-
-
+
Date: Thu, 11 Dec 2025 16:38:18 -0500
Subject: [PATCH 03/14] Updated development dependencies
---
composer.json | 70 +--
composer.lock | 783 ++++++++++++++++---------------
phpunit.xml | 10 +-
tests/unit/RedCapProjectTest.php | 8 +-
tests/unit/RedCapTest.php | 83 ++--
5 files changed, 511 insertions(+), 443 deletions(-)
diff --git a/composer.json b/composer.json
index 36140b6..13d3376 100644
--- a/composer.json
+++ b/composer.json
@@ -1,37 +1,37 @@
{
- "name" : "iu-redcap/phpcap",
- "license" : "BSD-3-Clause",
- "description" : "PHP library for accessing the REDCap API",
- "keywords" : [
- "REDCap"
- ],
- "require" : {
- "php" : ">=5.6.0",
- "ext-curl" : "*",
- "ext-openssl" : "*"
- },
- "require-dev" : {
- "phpunit/phpunit" : "11.4.4",
- "squizlabs/php_codesniffer" : "3.11.1",
- "erusev/parsedown" : "1.7.4",
- "smalot/pdfparser" : "2.11.0",
- "phpstan/phpstan": "2.1.0"
- },
- "autoload" : {
- "psr-4" : {
- "IU\\PHPCap\\" : "src/"
- }
- },
- "autoload-dev" : {
- "psr-4" : {
- "IU\\PHPCap\\" : [
- "tests/unit",
- "tests/integration",
- "tests/util"
- ]
- },
- "files" : [
- "tests/integration/SystemFunctions.php"
- ]
- }
+ "name" : "iu-redcap/phpcap",
+ "license" : "BSD-3-Clause",
+ "description" : "PHP library for accessing the REDCap API",
+ "keywords" : [
+ "REDCap"
+ ],
+ "require" : {
+ "php" : ">=5.6.0",
+ "ext-curl" : "*",
+ "ext-openssl" : "*"
+ },
+ "require-dev" : {
+ "phpunit/phpunit" : "12.5.3",
+ "squizlabs/php_codesniffer" : "4.0.1",
+ "erusev/parsedown" : "1.7.4",
+ "smalot/pdfparser" : "2.12.2",
+ "phpstan/phpstan": "2.1.33"
+ },
+ "autoload" : {
+ "psr-4" : {
+ "IU\\PHPCap\\" : "src/"
+ }
+ },
+ "autoload-dev" : {
+ "psr-4" : {
+ "IU\\PHPCap\\" : [
+ "tests/unit",
+ "tests/integration",
+ "tests/util"
+ ]
+ },
+ "files" : [
+ "tests/integration/SystemFunctions.php"
+ ]
+ }
}
diff --git a/composer.lock b/composer.lock
index 1a45f67..1d49791 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": "29399119790f9fe0a6512bd57ae15029",
+ "content-hash": "5b0aa5425157145857b7c2263b648349",
"packages": [],
"packages-dev": [
{
@@ -59,16 +59,16 @@
},
{
"name": "myclabs/deep-copy",
- "version": "1.12.1",
+ "version": "1.13.4",
"source": {
"type": "git",
"url": "https://github.com/myclabs/DeepCopy.git",
- "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845"
+ "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/123267b2c49fbf30d78a7b2d333f6be754b94845",
- "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a",
+ "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a",
"shasum": ""
},
"require": {
@@ -107,7 +107,7 @@
],
"support": {
"issues": "https://github.com/myclabs/DeepCopy/issues",
- "source": "https://github.com/myclabs/DeepCopy/tree/1.12.1"
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4"
},
"funding": [
{
@@ -115,20 +115,20 @@
"type": "tidelift"
}
],
- "time": "2024-11-08T17:47:46+00:00"
+ "time": "2025-08-01T08:46:24+00:00"
},
{
"name": "nikic/php-parser",
- "version": "v5.4.0",
+ "version": "v5.7.0",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "447a020a1f875a434d62f2a401f53b82a396e494"
+ "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82"
},
"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/dca41cd15c2ac9d055ad70dbfd011130757d1f82",
+ "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82",
"shasum": ""
},
"require": {
@@ -147,7 +147,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "5.0-dev"
+ "dev-master": "5.x-dev"
}
},
"autoload": {
@@ -171,9 +171,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.7.0"
},
- "time": "2024-12-30T11:07:19+00:00"
+ "time": "2025-12-06T11:56:16+00:00"
},
{
"name": "phar-io/manifest",
@@ -295,16 +295,11 @@
},
{
"name": "phpstan/phpstan",
- "version": "2.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpstan/phpstan.git",
- "reference": "2392d360fdf54ea253aa6c68cad1d4ba2e54e927"
- },
+ "version": "2.1.33",
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/2392d360fdf54ea253aa6c68cad1d4ba2e54e927",
- "reference": "2392d360fdf54ea253aa6c68cad1d4ba2e54e927",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/9e800e6bee7d5bd02784d4c6069b48032d16224f",
+ "reference": "9e800e6bee7d5bd02784d4c6069b48032d16224f",
"shasum": ""
},
"require": {
@@ -349,39 +344,38 @@
"type": "github"
}
],
- "time": "2024-12-31T07:30:03+00:00"
+ "time": "2025-12-05T10:24:31+00:00"
},
{
"name": "phpunit/php-code-coverage",
- "version": "11.0.8",
+ "version": "12.5.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "418c59fd080954f8c4aa5631d9502ecda2387118"
+ "reference": "c467c59a4f6e04b942be422844e7a6352fa01b57"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/418c59fd080954f8c4aa5631d9502ecda2387118",
- "reference": "418c59fd080954f8c4aa5631d9502ecda2387118",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c467c59a4f6e04b942be422844e7a6352fa01b57",
+ "reference": "c467c59a4f6e04b942be422844e7a6352fa01b57",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-libxml": "*",
"ext-xmlwriter": "*",
- "nikic/php-parser": "^5.3.1",
- "php": ">=8.2",
- "phpunit/php-file-iterator": "^5.1.0",
- "phpunit/php-text-template": "^4.0.1",
- "sebastian/code-unit-reverse-lookup": "^4.0.1",
- "sebastian/complexity": "^4.0.1",
- "sebastian/environment": "^7.2.0",
- "sebastian/lines-of-code": "^3.0.1",
- "sebastian/version": "^5.0.2",
- "theseer/tokenizer": "^1.2.3"
+ "nikic/php-parser": "^5.7.0",
+ "php": ">=8.3",
+ "phpunit/php-file-iterator": "^6.0",
+ "phpunit/php-text-template": "^5.0",
+ "sebastian/complexity": "^5.0",
+ "sebastian/environment": "^8.0.3",
+ "sebastian/lines-of-code": "^4.0",
+ "sebastian/version": "^6.0",
+ "theseer/tokenizer": "^2.0"
},
"require-dev": {
- "phpunit/phpunit": "^11.5.0"
+ "phpunit/phpunit": "^12.5.1"
},
"suggest": {
"ext-pcov": "PHP extension that provides line coverage",
@@ -390,7 +384,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "11.0.x-dev"
+ "dev-main": "12.5.x-dev"
}
},
"autoload": {
@@ -419,40 +413,52 @@
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
"security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.8"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.5.1"
},
"funding": [
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpunit/php-code-coverage",
+ "type": "tidelift"
}
],
- "time": "2024-12-11T12:34:27+00:00"
+ "time": "2025-12-08T07:17:58+00:00"
},
{
"name": "phpunit/php-file-iterator",
- "version": "5.1.0",
+ "version": "6.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6"
+ "reference": "961bc913d42fe24a257bfff826a5068079ac7782"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/118cfaaa8bc5aef3287bf315b6060b1174754af6",
- "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/961bc913d42fe24a257bfff826a5068079ac7782",
+ "reference": "961bc913d42fe24a257bfff826a5068079ac7782",
"shasum": ""
},
"require": {
- "php": ">=8.2"
+ "php": ">=8.3"
},
"require-dev": {
- "phpunit/phpunit": "^11.0"
+ "phpunit/phpunit": "^12.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "5.0-dev"
+ "dev-main": "6.0-dev"
}
},
"autoload": {
@@ -480,7 +486,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
"security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy",
- "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.0"
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/6.0.0"
},
"funding": [
{
@@ -488,28 +494,28 @@
"type": "github"
}
],
- "time": "2024-08-27T05:02:59+00:00"
+ "time": "2025-02-07T04:58:37+00:00"
},
{
"name": "phpunit/php-invoker",
- "version": "5.0.1",
+ "version": "6.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-invoker.git",
- "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2"
+ "reference": "12b54e689b07a25a9b41e57736dfab6ec9ae5406"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/c1ca3814734c07492b3d4c5f794f4b0995333da2",
- "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/12b54e689b07a25a9b41e57736dfab6ec9ae5406",
+ "reference": "12b54e689b07a25a9b41e57736dfab6ec9ae5406",
"shasum": ""
},
"require": {
- "php": ">=8.2"
+ "php": ">=8.3"
},
"require-dev": {
"ext-pcntl": "*",
- "phpunit/phpunit": "^11.0"
+ "phpunit/phpunit": "^12.0"
},
"suggest": {
"ext-pcntl": "*"
@@ -517,7 +523,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "5.0-dev"
+ "dev-main": "6.0-dev"
}
},
"autoload": {
@@ -544,7 +550,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/php-invoker/issues",
"security": "https://github.com/sebastianbergmann/php-invoker/security/policy",
- "source": "https://github.com/sebastianbergmann/php-invoker/tree/5.0.1"
+ "source": "https://github.com/sebastianbergmann/php-invoker/tree/6.0.0"
},
"funding": [
{
@@ -552,32 +558,32 @@
"type": "github"
}
],
- "time": "2024-07-03T05:07:44+00:00"
+ "time": "2025-02-07T04:58:58+00:00"
},
{
"name": "phpunit/php-text-template",
- "version": "4.0.1",
+ "version": "5.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-text-template.git",
- "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964"
+ "reference": "e1367a453f0eda562eedb4f659e13aa900d66c53"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/3e0404dc6b300e6bf56415467ebcb3fe4f33e964",
- "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/e1367a453f0eda562eedb4f659e13aa900d66c53",
+ "reference": "e1367a453f0eda562eedb4f659e13aa900d66c53",
"shasum": ""
},
"require": {
- "php": ">=8.2"
+ "php": ">=8.3"
},
"require-dev": {
- "phpunit/phpunit": "^11.0"
+ "phpunit/phpunit": "^12.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "4.0-dev"
+ "dev-main": "5.0-dev"
}
},
"autoload": {
@@ -604,7 +610,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/php-text-template/issues",
"security": "https://github.com/sebastianbergmann/php-text-template/security/policy",
- "source": "https://github.com/sebastianbergmann/php-text-template/tree/4.0.1"
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/5.0.0"
},
"funding": [
{
@@ -612,32 +618,32 @@
"type": "github"
}
],
- "time": "2024-07-03T05:08:43+00:00"
+ "time": "2025-02-07T04:59:16+00:00"
},
{
"name": "phpunit/php-timer",
- "version": "7.0.1",
+ "version": "8.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3"
+ "reference": "f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3b415def83fbcb41f991d9ebf16ae4ad8b7837b3",
- "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc",
+ "reference": "f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc",
"shasum": ""
},
"require": {
- "php": ">=8.2"
+ "php": ">=8.3"
},
"require-dev": {
- "phpunit/phpunit": "^11.0"
+ "phpunit/phpunit": "^12.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "7.0-dev"
+ "dev-main": "8.0-dev"
}
},
"autoload": {
@@ -664,7 +670,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/php-timer/issues",
"security": "https://github.com/sebastianbergmann/php-timer/security/policy",
- "source": "https://github.com/sebastianbergmann/php-timer/tree/7.0.1"
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/8.0.0"
},
"funding": [
{
@@ -672,20 +678,20 @@
"type": "github"
}
],
- "time": "2024-07-03T05:09:35+00:00"
+ "time": "2025-02-07T04:59:38+00:00"
},
{
"name": "phpunit/phpunit",
- "version": "11.4.4",
+ "version": "12.5.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "f9ba7bd3c9f3ff54ec379d7a1c2e3f13fe0bbde4"
+ "reference": "6dc2e076d09960efbb0c1272aa9bc156fc80955e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f9ba7bd3c9f3ff54ec379d7a1c2e3f13fe0bbde4",
- "reference": "f9ba7bd3c9f3ff54ec379d7a1c2e3f13fe0bbde4",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/6dc2e076d09960efbb0c1272aa9bc156fc80955e",
+ "reference": "6dc2e076d09960efbb0c1272aa9bc156fc80955e",
"shasum": ""
},
"require": {
@@ -695,28 +701,25 @@
"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": ">=8.2",
- "phpunit/php-code-coverage": "^11.0.7",
- "phpunit/php-file-iterator": "^5.1.0",
- "phpunit/php-invoker": "^5.0.1",
- "phpunit/php-text-template": "^4.0.1",
- "phpunit/php-timer": "^7.0.1",
- "sebastian/cli-parser": "^3.0.2",
- "sebastian/code-unit": "^3.0.1",
- "sebastian/comparator": "^6.2.1",
- "sebastian/diff": "^6.0.2",
- "sebastian/environment": "^7.2.0",
- "sebastian/exporter": "^6.1.3",
- "sebastian/global-state": "^7.0.2",
- "sebastian/object-enumerator": "^6.0.1",
- "sebastian/type": "^5.1.0",
- "sebastian/version": "^5.0.2"
- },
- "suggest": {
- "ext-soap": "To be able to generate mocks based on WSDL files"
+ "php": ">=8.3",
+ "phpunit/php-code-coverage": "^12.5.1",
+ "phpunit/php-file-iterator": "^6.0.0",
+ "phpunit/php-invoker": "^6.0.0",
+ "phpunit/php-text-template": "^5.0.0",
+ "phpunit/php-timer": "^8.0.0",
+ "sebastian/cli-parser": "^4.2.0",
+ "sebastian/comparator": "^7.1.3",
+ "sebastian/diff": "^7.0.0",
+ "sebastian/environment": "^8.0.3",
+ "sebastian/exporter": "^7.0.2",
+ "sebastian/global-state": "^8.0.2",
+ "sebastian/object-enumerator": "^7.0.0",
+ "sebastian/type": "^6.0.3",
+ "sebastian/version": "^6.0.0",
+ "staabm/side-effects-detector": "^1.0.5"
},
"bin": [
"phpunit"
@@ -724,7 +727,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "11.4-dev"
+ "dev-main": "12.5-dev"
}
},
"autoload": {
@@ -756,7 +759,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/11.4.4"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.3"
},
"funding": [
{
@@ -767,37 +770,45 @@
"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-11-27T10:44:52+00:00"
+ "time": "2025-12-11T08:52:59+00:00"
},
{
"name": "sebastian/cli-parser",
- "version": "3.0.2",
+ "version": "4.2.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/cli-parser.git",
- "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180"
+ "reference": "90f41072d220e5c40df6e8635f5dafba2d9d4d04"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/15c5dd40dc4f38794d383bb95465193f5e0ae180",
- "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/90f41072d220e5c40df6e8635f5dafba2d9d4d04",
+ "reference": "90f41072d220e5c40df6e8635f5dafba2d9d4d04",
"shasum": ""
},
"require": {
- "php": ">=8.2"
+ "php": ">=8.3"
},
"require-dev": {
- "phpunit/phpunit": "^11.0"
+ "phpunit/phpunit": "^12.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.0-dev"
+ "dev-main": "4.2-dev"
}
},
"autoload": {
@@ -821,157 +832,59 @@
"support": {
"issues": "https://github.com/sebastianbergmann/cli-parser/issues",
"security": "https://github.com/sebastianbergmann/cli-parser/security/policy",
- "source": "https://github.com/sebastianbergmann/cli-parser/tree/3.0.2"
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/4.2.0"
},
"funding": [
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
- }
- ],
- "time": "2024-07-03T04:41:36+00:00"
- },
- {
- "name": "sebastian/code-unit",
- "version": "3.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/code-unit.git",
- "reference": "ee88b0cdbe74cf8dd3b54940ff17643c0d6543ca"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/ee88b0cdbe74cf8dd3b54940ff17643c0d6543ca",
- "reference": "ee88b0cdbe74cf8dd3b54940ff17643c0d6543ca",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2"
- },
- "require-dev": {
- "phpunit/phpunit": "^11.5"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "3.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Collection of value objects that represent the PHP code units",
- "homepage": "https://github.com/sebastianbergmann/code-unit",
- "support": {
- "issues": "https://github.com/sebastianbergmann/code-unit/issues",
- "security": "https://github.com/sebastianbergmann/code-unit/security/policy",
- "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.2"
- },
- "funding": [
+ },
{
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-12-12T09:59:06+00:00"
- },
- {
- "name": "sebastian/code-unit-reverse-lookup",
- "version": "4.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
- "reference": "183a9b2632194febd219bb9246eee421dad8d45e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/183a9b2632194febd219bb9246eee421dad8d45e",
- "reference": "183a9b2632194febd219bb9246eee421dad8d45e",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2"
- },
- "require-dev": {
- "phpunit/phpunit": "^11.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "4.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Looks up which function or method a line of code belongs to",
- "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
- "support": {
- "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
- "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy",
- "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/4.0.1"
- },
- "funding": [
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
{
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
+ "url": "https://tidelift.com/funding/github/packagist/sebastian/cli-parser",
+ "type": "tidelift"
}
],
- "time": "2024-07-03T04:45:54+00:00"
+ "time": "2025-09-14T09:36:45+00:00"
},
{
"name": "sebastian/comparator",
- "version": "6.2.1",
+ "version": "7.1.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "43d129d6a0f81c78bee378b46688293eb7ea3739"
+ "reference": "dc904b4bb3ab070865fa4068cd84f3da8b945148"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/43d129d6a0f81c78bee378b46688293eb7ea3739",
- "reference": "43d129d6a0f81c78bee378b46688293eb7ea3739",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/dc904b4bb3ab070865fa4068cd84f3da8b945148",
+ "reference": "dc904b4bb3ab070865fa4068cd84f3da8b945148",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-mbstring": "*",
- "php": ">=8.2",
- "sebastian/diff": "^6.0",
- "sebastian/exporter": "^6.0"
+ "php": ">=8.3",
+ "sebastian/diff": "^7.0",
+ "sebastian/exporter": "^7.0"
},
"require-dev": {
- "phpunit/phpunit": "^11.4"
+ "phpunit/phpunit": "^12.2"
+ },
+ "suggest": {
+ "ext-bcmath": "For comparing BcMath\\Number objects"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "6.2-dev"
+ "dev-main": "7.1-dev"
}
},
"autoload": {
@@ -1011,41 +924,53 @@
"support": {
"issues": "https://github.com/sebastianbergmann/comparator/issues",
"security": "https://github.com/sebastianbergmann/comparator/security/policy",
- "source": "https://github.com/sebastianbergmann/comparator/tree/6.2.1"
+ "source": "https://github.com/sebastianbergmann/comparator/tree/7.1.3"
},
"funding": [
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/sebastian/comparator",
+ "type": "tidelift"
}
],
- "time": "2024-10-31T05:30:08+00:00"
+ "time": "2025-08-20T11:27:00+00:00"
},
{
"name": "sebastian/complexity",
- "version": "4.0.1",
+ "version": "5.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/complexity.git",
- "reference": "ee41d384ab1906c68852636b6de493846e13e5a0"
+ "reference": "bad4316aba5303d0221f43f8cee37eb58d384bbb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/ee41d384ab1906c68852636b6de493846e13e5a0",
- "reference": "ee41d384ab1906c68852636b6de493846e13e5a0",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/bad4316aba5303d0221f43f8cee37eb58d384bbb",
+ "reference": "bad4316aba5303d0221f43f8cee37eb58d384bbb",
"shasum": ""
},
"require": {
"nikic/php-parser": "^5.0",
- "php": ">=8.2"
+ "php": ">=8.3"
},
"require-dev": {
- "phpunit/phpunit": "^11.0"
+ "phpunit/phpunit": "^12.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "4.0-dev"
+ "dev-main": "5.0-dev"
}
},
"autoload": {
@@ -1069,7 +994,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/complexity/issues",
"security": "https://github.com/sebastianbergmann/complexity/security/policy",
- "source": "https://github.com/sebastianbergmann/complexity/tree/4.0.1"
+ "source": "https://github.com/sebastianbergmann/complexity/tree/5.0.0"
},
"funding": [
{
@@ -1077,33 +1002,33 @@
"type": "github"
}
],
- "time": "2024-07-03T04:49:50+00:00"
+ "time": "2025-02-07T04:55:25+00:00"
},
{
"name": "sebastian/diff",
- "version": "6.0.2",
+ "version": "7.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544"
+ "reference": "7ab1ea946c012266ca32390913653d844ecd085f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544",
- "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7ab1ea946c012266ca32390913653d844ecd085f",
+ "reference": "7ab1ea946c012266ca32390913653d844ecd085f",
"shasum": ""
},
"require": {
- "php": ">=8.2"
+ "php": ">=8.3"
},
"require-dev": {
- "phpunit/phpunit": "^11.0",
- "symfony/process": "^4.2 || ^5"
+ "phpunit/phpunit": "^12.0",
+ "symfony/process": "^7.2"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "6.0-dev"
+ "dev-main": "7.0-dev"
}
},
"autoload": {
@@ -1136,7 +1061,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/diff/issues",
"security": "https://github.com/sebastianbergmann/diff/security/policy",
- "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2"
+ "source": "https://github.com/sebastianbergmann/diff/tree/7.0.0"
},
"funding": [
{
@@ -1144,27 +1069,27 @@
"type": "github"
}
],
- "time": "2024-07-03T04:53:05+00:00"
+ "time": "2025-02-07T04:55:46+00:00"
},
{
"name": "sebastian/environment",
- "version": "7.2.0",
+ "version": "8.0.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "855f3ae0ab316bbafe1ba4e16e9f3c078d24a0c5"
+ "reference": "24a711b5c916efc6d6e62aa65aa2ec98fef77f68"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/855f3ae0ab316bbafe1ba4e16e9f3c078d24a0c5",
- "reference": "855f3ae0ab316bbafe1ba4e16e9f3c078d24a0c5",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/24a711b5c916efc6d6e62aa65aa2ec98fef77f68",
+ "reference": "24a711b5c916efc6d6e62aa65aa2ec98fef77f68",
"shasum": ""
},
"require": {
- "php": ">=8.2"
+ "php": ">=8.3"
},
"require-dev": {
- "phpunit/phpunit": "^11.0"
+ "phpunit/phpunit": "^12.0"
},
"suggest": {
"ext-posix": "*"
@@ -1172,7 +1097,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "7.2-dev"
+ "dev-main": "8.0-dev"
}
},
"autoload": {
@@ -1200,42 +1125,54 @@
"support": {
"issues": "https://github.com/sebastianbergmann/environment/issues",
"security": "https://github.com/sebastianbergmann/environment/security/policy",
- "source": "https://github.com/sebastianbergmann/environment/tree/7.2.0"
+ "source": "https://github.com/sebastianbergmann/environment/tree/8.0.3"
},
"funding": [
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/sebastian/environment",
+ "type": "tidelift"
}
],
- "time": "2024-07-03T04:54:44+00:00"
+ "time": "2025-08-12T14:11:56+00:00"
},
{
"name": "sebastian/exporter",
- "version": "6.3.0",
+ "version": "7.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "3473f61172093b2da7de1fb5782e1f24cc036dc3"
+ "reference": "016951ae10980765e4e7aee491eb288c64e505b7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/3473f61172093b2da7de1fb5782e1f24cc036dc3",
- "reference": "3473f61172093b2da7de1fb5782e1f24cc036dc3",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/016951ae10980765e4e7aee491eb288c64e505b7",
+ "reference": "016951ae10980765e4e7aee491eb288c64e505b7",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
- "php": ">=8.2",
- "sebastian/recursion-context": "^6.0"
+ "php": ">=8.3",
+ "sebastian/recursion-context": "^7.0"
},
"require-dev": {
- "phpunit/phpunit": "^11.3"
+ "phpunit/phpunit": "^12.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "6.1-dev"
+ "dev-main": "7.0-dev"
}
},
"autoload": {
@@ -1278,43 +1215,55 @@
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
"security": "https://github.com/sebastianbergmann/exporter/security/policy",
- "source": "https://github.com/sebastianbergmann/exporter/tree/6.3.0"
+ "source": "https://github.com/sebastianbergmann/exporter/tree/7.0.2"
},
"funding": [
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter",
+ "type": "tidelift"
}
],
- "time": "2024-12-05T09:17:50+00:00"
+ "time": "2025-09-24T06:16:11+00:00"
},
{
"name": "sebastian/global-state",
- "version": "7.0.2",
+ "version": "8.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "3be331570a721f9a4b5917f4209773de17f747d7"
+ "reference": "ef1377171613d09edd25b7816f05be8313f9115d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/3be331570a721f9a4b5917f4209773de17f747d7",
- "reference": "3be331570a721f9a4b5917f4209773de17f747d7",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/ef1377171613d09edd25b7816f05be8313f9115d",
+ "reference": "ef1377171613d09edd25b7816f05be8313f9115d",
"shasum": ""
},
"require": {
- "php": ">=8.2",
- "sebastian/object-reflector": "^4.0",
- "sebastian/recursion-context": "^6.0"
+ "php": ">=8.3",
+ "sebastian/object-reflector": "^5.0",
+ "sebastian/recursion-context": "^7.0"
},
"require-dev": {
"ext-dom": "*",
- "phpunit/phpunit": "^11.0"
+ "phpunit/phpunit": "^12.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "7.0-dev"
+ "dev-main": "8.0-dev"
}
},
"autoload": {
@@ -1340,41 +1289,53 @@
"support": {
"issues": "https://github.com/sebastianbergmann/global-state/issues",
"security": "https://github.com/sebastianbergmann/global-state/security/policy",
- "source": "https://github.com/sebastianbergmann/global-state/tree/7.0.2"
+ "source": "https://github.com/sebastianbergmann/global-state/tree/8.0.2"
},
"funding": [
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/sebastian/global-state",
+ "type": "tidelift"
}
],
- "time": "2024-07-03T04:57:36+00:00"
+ "time": "2025-08-29T11:29:25+00:00"
},
{
"name": "sebastian/lines-of-code",
- "version": "3.0.1",
+ "version": "4.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/lines-of-code.git",
- "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a"
+ "reference": "97ffee3bcfb5805568d6af7f0f893678fc076d2f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d36ad0d782e5756913e42ad87cb2890f4ffe467a",
- "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/97ffee3bcfb5805568d6af7f0f893678fc076d2f",
+ "reference": "97ffee3bcfb5805568d6af7f0f893678fc076d2f",
"shasum": ""
},
"require": {
"nikic/php-parser": "^5.0",
- "php": ">=8.2"
+ "php": ">=8.3"
},
"require-dev": {
- "phpunit/phpunit": "^11.0"
+ "phpunit/phpunit": "^12.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.0-dev"
+ "dev-main": "4.0-dev"
}
},
"autoload": {
@@ -1398,7 +1359,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
"security": "https://github.com/sebastianbergmann/lines-of-code/security/policy",
- "source": "https://github.com/sebastianbergmann/lines-of-code/tree/3.0.1"
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/4.0.0"
},
"funding": [
{
@@ -1406,34 +1367,34 @@
"type": "github"
}
],
- "time": "2024-07-03T04:58:38+00:00"
+ "time": "2025-02-07T04:57:28+00:00"
},
{
"name": "sebastian/object-enumerator",
- "version": "6.0.1",
+ "version": "7.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-enumerator.git",
- "reference": "f5b498e631a74204185071eb41f33f38d64608aa"
+ "reference": "1effe8e9b8e068e9ae228e542d5d11b5d16db894"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f5b498e631a74204185071eb41f33f38d64608aa",
- "reference": "f5b498e631a74204185071eb41f33f38d64608aa",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1effe8e9b8e068e9ae228e542d5d11b5d16db894",
+ "reference": "1effe8e9b8e068e9ae228e542d5d11b5d16db894",
"shasum": ""
},
"require": {
- "php": ">=8.2",
- "sebastian/object-reflector": "^4.0",
- "sebastian/recursion-context": "^6.0"
+ "php": ">=8.3",
+ "sebastian/object-reflector": "^5.0",
+ "sebastian/recursion-context": "^7.0"
},
"require-dev": {
- "phpunit/phpunit": "^11.0"
+ "phpunit/phpunit": "^12.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "6.0-dev"
+ "dev-main": "7.0-dev"
}
},
"autoload": {
@@ -1456,7 +1417,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
"security": "https://github.com/sebastianbergmann/object-enumerator/security/policy",
- "source": "https://github.com/sebastianbergmann/object-enumerator/tree/6.0.1"
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/7.0.0"
},
"funding": [
{
@@ -1464,32 +1425,32 @@
"type": "github"
}
],
- "time": "2024-07-03T05:00:13+00:00"
+ "time": "2025-02-07T04:57:48+00:00"
},
{
"name": "sebastian/object-reflector",
- "version": "4.0.1",
+ "version": "5.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-reflector.git",
- "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9"
+ "reference": "4bfa827c969c98be1e527abd576533293c634f6a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/6e1a43b411b2ad34146dee7524cb13a068bb35f9",
- "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/4bfa827c969c98be1e527abd576533293c634f6a",
+ "reference": "4bfa827c969c98be1e527abd576533293c634f6a",
"shasum": ""
},
"require": {
- "php": ">=8.2"
+ "php": ">=8.3"
},
"require-dev": {
- "phpunit/phpunit": "^11.0"
+ "phpunit/phpunit": "^12.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "4.0-dev"
+ "dev-main": "5.0-dev"
}
},
"autoload": {
@@ -1512,7 +1473,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/object-reflector/issues",
"security": "https://github.com/sebastianbergmann/object-reflector/security/policy",
- "source": "https://github.com/sebastianbergmann/object-reflector/tree/4.0.1"
+ "source": "https://github.com/sebastianbergmann/object-reflector/tree/5.0.0"
},
"funding": [
{
@@ -1520,32 +1481,32 @@
"type": "github"
}
],
- "time": "2024-07-03T05:01:32+00:00"
+ "time": "2025-02-07T04:58:17+00:00"
},
{
"name": "sebastian/recursion-context",
- "version": "6.0.2",
+ "version": "7.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "694d156164372abbd149a4b85ccda2e4670c0e16"
+ "reference": "0b01998a7d5b1f122911a66bebcb8d46f0c82d8c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/694d156164372abbd149a4b85ccda2e4670c0e16",
- "reference": "694d156164372abbd149a4b85ccda2e4670c0e16",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/0b01998a7d5b1f122911a66bebcb8d46f0c82d8c",
+ "reference": "0b01998a7d5b1f122911a66bebcb8d46f0c82d8c",
"shasum": ""
},
"require": {
- "php": ">=8.2"
+ "php": ">=8.3"
},
"require-dev": {
- "phpunit/phpunit": "^11.0"
+ "phpunit/phpunit": "^12.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "6.0-dev"
+ "dev-main": "7.0-dev"
}
},
"autoload": {
@@ -1576,40 +1537,52 @@
"support": {
"issues": "https://github.com/sebastianbergmann/recursion-context/issues",
"security": "https://github.com/sebastianbergmann/recursion-context/security/policy",
- "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.2"
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/7.0.1"
},
"funding": [
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context",
+ "type": "tidelift"
}
],
- "time": "2024-07-03T05:10:34+00:00"
+ "time": "2025-08-13T04:44:59+00:00"
},
{
"name": "sebastian/type",
- "version": "5.1.0",
+ "version": "6.0.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/type.git",
- "reference": "461b9c5da241511a2a0e8f240814fb23ce5c0aac"
+ "reference": "e549163b9760b8f71f191651d22acf32d56d6d4d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/461b9c5da241511a2a0e8f240814fb23ce5c0aac",
- "reference": "461b9c5da241511a2a0e8f240814fb23ce5c0aac",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/e549163b9760b8f71f191651d22acf32d56d6d4d",
+ "reference": "e549163b9760b8f71f191651d22acf32d56d6d4d",
"shasum": ""
},
"require": {
- "php": ">=8.2"
+ "php": ">=8.3"
},
"require-dev": {
- "phpunit/phpunit": "^11.3"
+ "phpunit/phpunit": "^12.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "5.1-dev"
+ "dev-main": "6.0-dev"
}
},
"autoload": {
@@ -1633,37 +1606,49 @@
"support": {
"issues": "https://github.com/sebastianbergmann/type/issues",
"security": "https://github.com/sebastianbergmann/type/security/policy",
- "source": "https://github.com/sebastianbergmann/type/tree/5.1.0"
+ "source": "https://github.com/sebastianbergmann/type/tree/6.0.3"
},
"funding": [
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/sebastian/type",
+ "type": "tidelift"
}
],
- "time": "2024-09-17T13:12:04+00:00"
+ "time": "2025-08-09T06:57:12+00:00"
},
{
"name": "sebastian/version",
- "version": "5.0.2",
+ "version": "6.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/version.git",
- "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874"
+ "reference": "3e6ccf7657d4f0a59200564b08cead899313b53c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c687e3387b99f5b03b6caa64c74b63e2936ff874",
- "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/3e6ccf7657d4f0a59200564b08cead899313b53c",
+ "reference": "3e6ccf7657d4f0a59200564b08cead899313b53c",
"shasum": ""
},
"require": {
- "php": ">=8.2"
+ "php": ">=8.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "5.0-dev"
+ "dev-main": "6.0-dev"
}
},
"autoload": {
@@ -1687,7 +1672,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/version/issues",
"security": "https://github.com/sebastianbergmann/version/security/policy",
- "source": "https://github.com/sebastianbergmann/version/tree/5.0.2"
+ "source": "https://github.com/sebastianbergmann/version/tree/6.0.0"
},
"funding": [
{
@@ -1695,20 +1680,20 @@
"type": "github"
}
],
- "time": "2024-10-09T05:16:32+00:00"
+ "time": "2025-02-07T05:00:38+00:00"
},
{
"name": "smalot/pdfparser",
- "version": "v2.11.0",
+ "version": "v2.12.2",
"source": {
"type": "git",
"url": "https://github.com/smalot/pdfparser.git",
- "reference": "ac8e6678b0940e4b2ccd5caadd3fb18e68093be6"
+ "reference": "370b7e983fafecb787a9bcfd73baab8038212ad1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/smalot/pdfparser/zipball/ac8e6678b0940e4b2ccd5caadd3fb18e68093be6",
- "reference": "ac8e6678b0940e4b2ccd5caadd3fb18e68093be6",
+ "url": "https://api.github.com/repos/smalot/pdfparser/zipball/370b7e983fafecb787a9bcfd73baab8038212ad1",
+ "reference": "370b7e983fafecb787a9bcfd73baab8038212ad1",
"shasum": ""
},
"require": {
@@ -1744,43 +1729,38 @@
],
"support": {
"issues": "https://github.com/smalot/pdfparser/issues",
- "source": "https://github.com/smalot/pdfparser/tree/v2.11.0"
+ "source": "https://github.com/smalot/pdfparser/tree/v2.12.2"
},
- "time": "2024-08-16T06:48:03+00:00"
+ "time": "2025-09-04T08:49:09+00:00"
},
{
"name": "squizlabs/php_codesniffer",
- "version": "3.11.1",
+ "version": "4.0.1",
"source": {
"type": "git",
"url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git",
- "reference": "19473c30efe4f7b3cd42522d0b2e6e7f243c6f87"
+ "reference": "0525c73950de35ded110cffafb9892946d7771b5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/19473c30efe4f7b3cd42522d0b2e6e7f243c6f87",
- "reference": "19473c30efe4f7b3cd42522d0b2e6e7f243c6f87",
+ "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/0525c73950de35ded110cffafb9892946d7771b5",
+ "reference": "0525c73950de35ded110cffafb9892946d7771b5",
"shasum": ""
},
"require": {
"ext-simplexml": "*",
"ext-tokenizer": "*",
"ext-xmlwriter": "*",
- "php": ">=5.4.0"
+ "php": ">=7.2.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4"
+ "phpunit/phpunit": "^8.4.0 || ^9.3.4 || ^10.5.32 || 11.3.3 - 11.5.28 || ^11.5.31"
},
"bin": [
"bin/phpcbf",
"bin/phpcs"
],
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.x-dev"
- }
- },
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
@@ -1799,7 +1779,7 @@
"homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors"
}
],
- "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
+ "description": "PHP_CodeSniffer tokenizes PHP files and detects violations of a defined set of coding standards.",
"homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer",
"keywords": [
"phpcs",
@@ -1824,25 +1804,82 @@
{
"url": "https://opencollective.com/php_codesniffer",
"type": "open_collective"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/phpcsstandards",
+ "type": "thanks_dev"
}
],
- "time": "2024-11-16T12:02:36+00:00"
+ "time": "2025-11-10T16:43:36+00:00"
+ },
+ {
+ "name": "staabm/side-effects-detector",
+ "version": "1.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/staabm/side-effects-detector.git",
+ "reference": "d8334211a140ce329c13726d4a715adbddd0a163"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163",
+ "reference": "d8334211a140ce329c13726d4a715adbddd0a163",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/extension-installer": "^1.4.3",
+ "phpstan/phpstan": "^1.12.6",
+ "phpunit/phpunit": "^9.6.21",
+ "symfony/var-dumper": "^5.4.43",
+ "tomasvotruba/type-coverage": "1.0.0",
+ "tomasvotruba/unused-public": "1.0.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "lib/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A static analysis tool to detect side effects in PHP code",
+ "keywords": [
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/staabm/side-effects-detector/issues",
+ "source": "https://github.com/staabm/side-effects-detector/tree/1.0.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/staabm",
+ "type": "github"
+ }
+ ],
+ "time": "2024-10-20T05:08:20+00:00"
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.31.0",
+ "version": "v1.33.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341"
+ "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341",
- "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493",
+ "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493",
"shasum": ""
},
"require": {
+ "ext-iconv": "*",
"php": ">=7.2"
},
"provide": {
@@ -1890,7 +1927,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.33.0"
},
"funding": [
{
@@ -1901,32 +1938,36 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2024-09-09T11:45:10+00:00"
+ "time": "2024-12-23T08:48:59+00:00"
},
{
"name": "theseer/tokenizer",
- "version": "1.2.3",
+ "version": "2.0.1",
"source": {
"type": "git",
"url": "https://github.com/theseer/tokenizer.git",
- "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2"
+ "reference": "7989e43bf381af0eac72e4f0ca5bcbfa81658be4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
- "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/7989e43bf381af0eac72e4f0ca5bcbfa81658be4",
+ "reference": "7989e43bf381af0eac72e4f0ca5bcbfa81658be4",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-tokenizer": "*",
"ext-xmlwriter": "*",
- "php": "^7.2 || ^8.0"
+ "php": "^8.1"
},
"type": "library",
"autoload": {
@@ -1948,7 +1989,7 @@
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
"support": {
"issues": "https://github.com/theseer/tokenizer/issues",
- "source": "https://github.com/theseer/tokenizer/tree/1.2.3"
+ "source": "https://github.com/theseer/tokenizer/tree/2.0.1"
},
"funding": [
{
@@ -1956,7 +1997,7 @@
"type": "github"
}
],
- "time": "2024-03-03T12:36:25+00:00"
+ "time": "2025-12-08T11:19:18+00:00"
}
],
"aliases": [],
@@ -1970,5 +2011,5 @@
"ext-openssl": "*"
},
"platform-dev": [],
- "plugin-api-version": "2.2.0"
+ "plugin-api-version": "2.6.0"
}
diff --git a/phpunit.xml b/phpunit.xml
index 3e7f350..b21e8af 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -3,7 +3,15 @@
Copyright (C) 2019 The Trustees of Indiana University
SPDX-License-Identifier: BSD-3-Clause
================================================== -->
-
+
tests/unit/ErrorHandlerTest.php
diff --git a/tests/unit/RedCapProjectTest.php b/tests/unit/RedCapProjectTest.php
index b7f50c9..24ff4c4 100644
--- a/tests/unit/RedCapProjectTest.php
+++ b/tests/unit/RedCapProjectTest.php
@@ -20,9 +20,11 @@ public function setUp(): void
{
$this->apiUrl = 'https://redcap.somplace.edu/api/';
$this->apiToken = '12345678901234567890123456789012';
- $this->connection = $this->getMockBuilder(__NAMESPACE__.'\RedCapApiConnectionInterface')
- ->disableOriginalConstructor()
- ->getMock();
+
+ # $this->connection = $this->getMockBuilder(__NAMESPACE__.'\RedCapApiConnectionInterface')
+ # ->disableOriginalConstructor()
+ # ->getMock();
+ $this->connection = $this->createStub(__NAMESPACE__.'\RedCapApiConnectionInterface');
$this->redCapProject = new RedCapProject(
$this->apiUrl,
diff --git a/tests/unit/RedCapTest.php b/tests/unit/RedCapTest.php
index f3119be..cbd5abf 100644
--- a/tests/unit/RedCapTest.php
+++ b/tests/unit/RedCapTest.php
@@ -17,9 +17,13 @@ public function setUp(): void
{
$apiUrl = 'https://redcap.somplace.edu/api/';
$apiToken = '12345678901234567890123456789012';
- $connection = $this->getMockBuilder(__NAMESPACE__.'\RedCapApiConnectionInterface')
- ->disableOriginalConstructor()
- ->getMock();
+
+ # $connection = $this->getMockBuilder(__NAMESPACE__.'\RedCapApiConnectionInterface')
+ # ->disableOriginalConstructor()
+ # ->getMock();
+ $connection = $this->createStub(__NAMESPACE__.'\RedCapApiConnectionInterface')
+ ;
+
$this->redCap = new RedCap($apiUrl, null, null, null, null, $connection);
}
@@ -28,17 +32,19 @@ public function testCreateRedCap()
$apiUrl = 'https://redcap.somplace.edu/api/';
$apiToken = '12345678901234567890123456789012';
- $connection = $this->getMockBuilder(__NAMESPACE__.'\RedCapApiConnectionInterface')
- ->disableOriginalConstructor()
- ->getMock();
+ # $connection = $this->getMockBuilder(__NAMESPACE__.'\RedCapApiConnectionInterface')
+ # ->disableOriginalConstructor()
+ # ->getMock();
+ $connection = $this->createStub(__NAMESPACE__.'\RedCapApiConnectionInterface');
- $redCapProject = $this->getMockBuilder(__NAMESPACE__.'\RedCapProject')
- //->setMethods(['__construct'])
- ->setConstructorArgs(
- [$apiUrl, $apiToken, $sslVerify = null,
- $caCertificateFile = null, $errorHandler = null, $connection = null]
- )
- ->getMock();
+ # $redCapProject = $this->getMockBuilder(__NAMESPACE__.'\RedCapProject')
+ # //->setMethods(['__construct'])
+ # ->setConstructorArgs(
+ # [$apiUrl, $apiToken, $sslVerify = null,
+ # $caCertificateFile = null, $errorHandler = null, $connection = null]
+ # )
+ # ->getMock();
+ $redCapProject = $this->createStub(__NAMESPACE__.'\RedCapProject');
$redCap = new RedCap($apiUrl, null, null, null, null, $connection);
$this->assertNotNull($redCap, 'RedCap not null.');
@@ -287,11 +293,13 @@ public function testCreateRedCapWithInvalidConnection()
public function testCreateProject()
{
- $connection = $this->getMockBuilder(__NAMESPACE__.'\RedCapApiConnectionInterface')
- ->disableOriginalConstructor()
- ->getMock();
+ # $connection = $this->getMockBuilder(__NAMESPACE__.'\RedCapApiConnectionInterface')
+ # ->disableOriginalConstructor()
+ # ->getMock();
+ $connection = $this->createStub(__NAMESPACE__.'\RedCapApiConnectionInterface');
- $errorHandler = $this->getMockBuilder(__NAMESPACE__.'\ErrorHandlerInterface')->getMock();
+ # $errorHandler = $this->getMockBuilder(__NAMESPACE__.'\ErrorHandlerInterface')->getMock();
+ $errorHandler = $this->createStub(__NAMESPACE__.'\ErrorHandlerInterface');
$callback = function (
$apiUrl,
@@ -321,9 +329,10 @@ public function testCreateProject()
public function testCreateProjectWithJsonAndOdm()
{
- $connection = $this->getMockBuilder(__NAMESPACE__.'\RedCapApiConnectionInterface')
- ->disableOriginalConstructor()
- ->getMock();
+ # $connection = $this->getMockBuilder(__NAMESPACE__.'\RedCapApiConnectionInterface')
+ # ->disableOriginalConstructor()
+ # ->getMock();
+ $connection = $this->createStub(__NAMESPACE__.'\RedCapApiConnectionInterface');
$callback = function (
$apiUrl,
@@ -501,10 +510,13 @@ public function testCreateProjectWithInvalidOdmType()
public function testGetProject()
{
- $connection = $this->getMockBuilder(__NAMESPACE__.'\RedCapApiConnectionInterface')
- ->disableOriginalConstructor()
- ->getMock();
- $errorHandler = $this->getMockBuilder(__NAMESPACE__.'\ErrorHandlerInterface')->getMock();
+ # $connection = $this->getMockBuilder(__NAMESPACE__.'\RedCapApiConnectionInterface')
+ # ->disableOriginalConstructor()
+ # ->getMock();
+ $connection = $this->createStub(__NAMESPACE__.'\RedCapApiConnectionInterface');
+
+ # $errorHandler = $this->getMockBuilder(__NAMESPACE__.'\ErrorHandlerInterface')->getMock();
+ $errorHandler = $this->createStub(__NAMESPACE__.'\ErrorHandlerInterface');
$callback = function (
$apiUrl,
@@ -546,9 +558,11 @@ public function testGetProjectWithNullApiToken()
public function testGetProjectWithApiTokenWithInvalidType()
{
- $connection = $this->getMockBuilder(__NAMESPACE__.'\RedCapApiConnectionInterface')
- ->disableOriginalConstructor()
- ->getMock();
+ # $connection = $this->getMockBuilder(__NAMESPACE__.'\RedCapApiConnectionInterface')
+ # ->disableOriginalConstructor()
+ # ->getMock();
+ $connection = $this->createStub(__NAMESPACE__.'\RedCapApiConnectionInterface');
+
$apiUrl = 'https://redcap.somplace.edu/api';
$redCap = new RedCap($apiUrl, null, null, null, null, $connection);
@@ -566,9 +580,11 @@ public function testGetProjectWithApiTokenWithInvalidType()
public function testGetProjectWithApiTokenWithInvalidFormat()
{
- $connection = $this->getMockBuilder(__NAMESPACE__.'\RedCapApiConnectionInterface')
- ->disableOriginalConstructor()
- ->getMock();
+ # $connection = $this->getMockBuilder(__NAMESPACE__.'\RedCapApiConnectionInterface')
+ # ->disableOriginalConstructor()
+ # ->getMock();
+ $connection = $this->createStub(__NAMESPACE__.'\RedCapApiConnectionInterface');
+
$apiUrl = 'https://redcap.somplace.edu/api';
$redCap = new RedCap($apiUrl, null, null, null, null, $connection);
@@ -587,9 +603,10 @@ public function testGetProjectWithApiTokenWithInvalidFormat()
public function testGetProjectWithApiTokenWithInvalidLength()
{
- $connection = $this->getMockBuilder(__NAMESPACE__.'\RedCapApiConnectionInterface')
- ->disableOriginalConstructor()
- ->getMock();
+ # $connection = $this->getMockBuilder(__NAMESPACE__.'\RedCapApiConnectionInterface')
+ # ->disableOriginalConstructor()
+ # ->getMock();
+ $connection = $this->createStub(__NAMESPACE__.'\RedCapApiConnectionInterface');
$apiUrl = 'https://redcap.somplace.edu/api';
$redCap = new RedCap($apiUrl, null, null, null, null, $connection);
From b08757c9755e57773a25779da6cb655c8bb09ca9 Mon Sep 17 00:00:00 2001
From: Jim Mullen
Date: Tue, 27 Jan 2026 10:21:23 -0500
Subject: [PATCH 04/14] Updated the phpunit develop dependency to the latest
version
---
composer.json | 2 +-
composer.lock | 44 ++++++++++++++++++++++----------------------
2 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/composer.json b/composer.json
index 13d3376..842c280 100644
--- a/composer.json
+++ b/composer.json
@@ -11,7 +11,7 @@
"ext-openssl" : "*"
},
"require-dev" : {
- "phpunit/phpunit" : "12.5.3",
+ "phpunit/phpunit" : "12.5.8",
"squizlabs/php_codesniffer" : "4.0.1",
"erusev/parsedown" : "1.7.4",
"smalot/pdfparser" : "2.12.2",
diff --git a/composer.lock b/composer.lock
index 1d49791..14be3f2 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": "5b0aa5425157145857b7c2263b648349",
+ "content-hash": "0c82f6c77a41efd6df92c4fbb29811af",
"packages": [],
"packages-dev": [
{
@@ -348,16 +348,16 @@
},
{
"name": "phpunit/php-code-coverage",
- "version": "12.5.1",
+ "version": "12.5.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "c467c59a4f6e04b942be422844e7a6352fa01b57"
+ "reference": "4a9739b51cbcb355f6e95659612f92e282a7077b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c467c59a4f6e04b942be422844e7a6352fa01b57",
- "reference": "c467c59a4f6e04b942be422844e7a6352fa01b57",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/4a9739b51cbcb355f6e95659612f92e282a7077b",
+ "reference": "4a9739b51cbcb355f6e95659612f92e282a7077b",
"shasum": ""
},
"require": {
@@ -372,7 +372,7 @@
"sebastian/environment": "^8.0.3",
"sebastian/lines-of-code": "^4.0",
"sebastian/version": "^6.0",
- "theseer/tokenizer": "^2.0"
+ "theseer/tokenizer": "^2.0.1"
},
"require-dev": {
"phpunit/phpunit": "^12.5.1"
@@ -413,7 +413,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
"security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.5.1"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.5.2"
},
"funding": [
{
@@ -433,7 +433,7 @@
"type": "tidelift"
}
],
- "time": "2025-12-08T07:17:58+00:00"
+ "time": "2025-12-24T07:03:04+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -682,16 +682,16 @@
},
{
"name": "phpunit/phpunit",
- "version": "12.5.3",
+ "version": "12.5.8",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "6dc2e076d09960efbb0c1272aa9bc156fc80955e"
+ "reference": "37ddb96c14bfee10304825edbb7e66d341ec6889"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/6dc2e076d09960efbb0c1272aa9bc156fc80955e",
- "reference": "6dc2e076d09960efbb0c1272aa9bc156fc80955e",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/37ddb96c14bfee10304825edbb7e66d341ec6889",
+ "reference": "37ddb96c14bfee10304825edbb7e66d341ec6889",
"shasum": ""
},
"require": {
@@ -705,13 +705,13 @@
"phar-io/manifest": "^2.0.4",
"phar-io/version": "^3.2.1",
"php": ">=8.3",
- "phpunit/php-code-coverage": "^12.5.1",
+ "phpunit/php-code-coverage": "^12.5.2",
"phpunit/php-file-iterator": "^6.0.0",
"phpunit/php-invoker": "^6.0.0",
"phpunit/php-text-template": "^5.0.0",
"phpunit/php-timer": "^8.0.0",
"sebastian/cli-parser": "^4.2.0",
- "sebastian/comparator": "^7.1.3",
+ "sebastian/comparator": "^7.1.4",
"sebastian/diff": "^7.0.0",
"sebastian/environment": "^8.0.3",
"sebastian/exporter": "^7.0.2",
@@ -759,7 +759,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.3"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.8"
},
"funding": [
{
@@ -783,7 +783,7 @@
"type": "tidelift"
}
],
- "time": "2025-12-11T08:52:59+00:00"
+ "time": "2026-01-27T06:12:29+00:00"
},
{
"name": "sebastian/cli-parser",
@@ -856,16 +856,16 @@
},
{
"name": "sebastian/comparator",
- "version": "7.1.3",
+ "version": "7.1.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "dc904b4bb3ab070865fa4068cd84f3da8b945148"
+ "reference": "6a7de5df2e094f9a80b40a522391a7e6022df5f6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/dc904b4bb3ab070865fa4068cd84f3da8b945148",
- "reference": "dc904b4bb3ab070865fa4068cd84f3da8b945148",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/6a7de5df2e094f9a80b40a522391a7e6022df5f6",
+ "reference": "6a7de5df2e094f9a80b40a522391a7e6022df5f6",
"shasum": ""
},
"require": {
@@ -924,7 +924,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/comparator/issues",
"security": "https://github.com/sebastianbergmann/comparator/security/policy",
- "source": "https://github.com/sebastianbergmann/comparator/tree/7.1.3"
+ "source": "https://github.com/sebastianbergmann/comparator/tree/7.1.4"
},
"funding": [
{
@@ -944,7 +944,7 @@
"type": "tidelift"
}
],
- "time": "2025-08-20T11:27:00+00:00"
+ "time": "2026-01-24T09:28:48+00:00"
},
{
"name": "sebastian/complexity",
From f14934e3fe9fa9630d09bdb22af04f34333fda90 Mon Sep 17 00:00:00 2001
From: Jim Mullen
Date: Tue, 10 Mar 2026 11:04:57 -0400
Subject: [PATCH 05/14] Updated dependencies to their latest versions
---
composer.json | 8 +-
composer.lock | 563 +++++++++++++++++++++++++++++++-------------------
2 files changed, 349 insertions(+), 222 deletions(-)
diff --git a/composer.json b/composer.json
index 842c280..c0cf0ed 100644
--- a/composer.json
+++ b/composer.json
@@ -11,11 +11,11 @@
"ext-openssl" : "*"
},
"require-dev" : {
- "phpunit/phpunit" : "12.5.8",
+ "phpunit/phpunit" : "13.0.5",
"squizlabs/php_codesniffer" : "4.0.1",
- "erusev/parsedown" : "1.7.4",
- "smalot/pdfparser" : "2.12.2",
- "phpstan/phpstan": "2.1.33"
+ "erusev/parsedown" : "1.8.0",
+ "smalot/pdfparser" : "2.12.3",
+ "phpstan/phpstan": "2.1.40"
},
"autoload" : {
"psr-4" : {
diff --git a/composer.lock b/composer.lock
index 14be3f2..c385130 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,29 +4,29 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "0c82f6c77a41efd6df92c4fbb29811af",
+ "content-hash": "d7618001820c0d1fdd2d5020832b6c91",
"packages": [],
"packages-dev": [
{
"name": "erusev/parsedown",
- "version": "1.7.4",
+ "version": "1.8.0",
"source": {
"type": "git",
"url": "https://github.com/erusev/parsedown.git",
- "reference": "cb17b6477dfff935958ba01325f2e8a2bfa6dab3"
+ "reference": "96baaad00f71ba04d76e45b4620f54d3beabd6f7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/erusev/parsedown/zipball/cb17b6477dfff935958ba01325f2e8a2bfa6dab3",
- "reference": "cb17b6477dfff935958ba01325f2e8a2bfa6dab3",
+ "url": "https://api.github.com/repos/erusev/parsedown/zipball/96baaad00f71ba04d76e45b4620f54d3beabd6f7",
+ "reference": "96baaad00f71ba04d76e45b4620f54d3beabd6f7",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
- "php": ">=5.3.0"
+ "php": ">=7.1"
},
"require-dev": {
- "phpunit/phpunit": "^4.8.35"
+ "phpunit/phpunit": "^7.5|^8.5|^9.6"
},
"type": "library",
"autoload": {
@@ -53,9 +53,15 @@
],
"support": {
"issues": "https://github.com/erusev/parsedown/issues",
- "source": "https://github.com/erusev/parsedown/tree/1.7.x"
+ "source": "https://github.com/erusev/parsedown/tree/1.8.0"
},
- "time": "2019-12-30T22:54:17+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/erusev",
+ "type": "github"
+ }
+ ],
+ "time": "2026-02-16T11:41:01+00:00"
},
{
"name": "myclabs/deep-copy",
@@ -295,11 +301,11 @@
},
{
"name": "phpstan/phpstan",
- "version": "2.1.33",
+ "version": "2.1.40",
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/9e800e6bee7d5bd02784d4c6069b48032d16224f",
- "reference": "9e800e6bee7d5bd02784d4c6069b48032d16224f",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/9b2c7aeb83a75d8680ea5e7c9b7fca88052b766b",
+ "reference": "9b2c7aeb83a75d8680ea5e7c9b7fca88052b766b",
"shasum": ""
},
"require": {
@@ -344,20 +350,20 @@
"type": "github"
}
],
- "time": "2025-12-05T10:24:31+00:00"
+ "time": "2026-02-23T15:04:35+00:00"
},
{
"name": "phpunit/php-code-coverage",
- "version": "12.5.2",
+ "version": "13.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "4a9739b51cbcb355f6e95659612f92e282a7077b"
+ "reference": "a8b58fde2f4fbc69a064e1f80ff917607cf7737c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/4a9739b51cbcb355f6e95659612f92e282a7077b",
- "reference": "4a9739b51cbcb355f6e95659612f92e282a7077b",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/a8b58fde2f4fbc69a064e1f80ff917607cf7737c",
+ "reference": "a8b58fde2f4fbc69a064e1f80ff917607cf7737c",
"shasum": ""
},
"require": {
@@ -365,17 +371,17 @@
"ext-libxml": "*",
"ext-xmlwriter": "*",
"nikic/php-parser": "^5.7.0",
- "php": ">=8.3",
- "phpunit/php-file-iterator": "^6.0",
- "phpunit/php-text-template": "^5.0",
- "sebastian/complexity": "^5.0",
- "sebastian/environment": "^8.0.3",
- "sebastian/lines-of-code": "^4.0",
- "sebastian/version": "^6.0",
+ "php": ">=8.4",
+ "phpunit/php-file-iterator": "^7.0",
+ "phpunit/php-text-template": "^6.0",
+ "sebastian/complexity": "^6.0",
+ "sebastian/environment": "^9.0",
+ "sebastian/lines-of-code": "^5.0",
+ "sebastian/version": "^7.0",
"theseer/tokenizer": "^2.0.1"
},
"require-dev": {
- "phpunit/phpunit": "^12.5.1"
+ "phpunit/phpunit": "^13.0"
},
"suggest": {
"ext-pcov": "PHP extension that provides line coverage",
@@ -384,7 +390,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "12.5.x-dev"
+ "dev-main": "13.0.x-dev"
}
},
"autoload": {
@@ -413,7 +419,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
"security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.5.2"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/13.0.1"
},
"funding": [
{
@@ -433,32 +439,32 @@
"type": "tidelift"
}
],
- "time": "2025-12-24T07:03:04+00:00"
+ "time": "2026-02-06T06:05:15+00:00"
},
{
"name": "phpunit/php-file-iterator",
- "version": "6.0.0",
+ "version": "7.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "961bc913d42fe24a257bfff826a5068079ac7782"
+ "reference": "6e5aa1fb0a95b1703d83e721299ee18bb4e2de50"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/961bc913d42fe24a257bfff826a5068079ac7782",
- "reference": "961bc913d42fe24a257bfff826a5068079ac7782",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/6e5aa1fb0a95b1703d83e721299ee18bb4e2de50",
+ "reference": "6e5aa1fb0a95b1703d83e721299ee18bb4e2de50",
"shasum": ""
},
"require": {
- "php": ">=8.3"
+ "php": ">=8.4"
},
"require-dev": {
- "phpunit/phpunit": "^12.0"
+ "phpunit/phpunit": "^13.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "6.0-dev"
+ "dev-main": "7.0-dev"
}
},
"autoload": {
@@ -486,36 +492,48 @@
"support": {
"issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
"security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy",
- "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/6.0.0"
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/7.0.0"
},
"funding": [
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpunit/php-file-iterator",
+ "type": "tidelift"
}
],
- "time": "2025-02-07T04:58:37+00:00"
+ "time": "2026-02-06T04:33:26+00:00"
},
{
"name": "phpunit/php-invoker",
- "version": "6.0.0",
+ "version": "7.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-invoker.git",
- "reference": "12b54e689b07a25a9b41e57736dfab6ec9ae5406"
+ "reference": "42e5c5cae0c65df12d1b1a3ab52bf3f50f244d88"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/12b54e689b07a25a9b41e57736dfab6ec9ae5406",
- "reference": "12b54e689b07a25a9b41e57736dfab6ec9ae5406",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/42e5c5cae0c65df12d1b1a3ab52bf3f50f244d88",
+ "reference": "42e5c5cae0c65df12d1b1a3ab52bf3f50f244d88",
"shasum": ""
},
"require": {
- "php": ">=8.3"
+ "php": ">=8.4"
},
"require-dev": {
"ext-pcntl": "*",
- "phpunit/phpunit": "^12.0"
+ "phpunit/phpunit": "^13.0"
},
"suggest": {
"ext-pcntl": "*"
@@ -523,7 +541,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "6.0-dev"
+ "dev-main": "7.0-dev"
}
},
"autoload": {
@@ -550,40 +568,52 @@
"support": {
"issues": "https://github.com/sebastianbergmann/php-invoker/issues",
"security": "https://github.com/sebastianbergmann/php-invoker/security/policy",
- "source": "https://github.com/sebastianbergmann/php-invoker/tree/6.0.0"
+ "source": "https://github.com/sebastianbergmann/php-invoker/tree/7.0.0"
},
"funding": [
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpunit/php-invoker",
+ "type": "tidelift"
}
],
- "time": "2025-02-07T04:58:58+00:00"
+ "time": "2026-02-06T04:34:47+00:00"
},
{
"name": "phpunit/php-text-template",
- "version": "5.0.0",
+ "version": "6.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-text-template.git",
- "reference": "e1367a453f0eda562eedb4f659e13aa900d66c53"
+ "reference": "a47af19f93f76aa3368303d752aa5272ca3299f4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/e1367a453f0eda562eedb4f659e13aa900d66c53",
- "reference": "e1367a453f0eda562eedb4f659e13aa900d66c53",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/a47af19f93f76aa3368303d752aa5272ca3299f4",
+ "reference": "a47af19f93f76aa3368303d752aa5272ca3299f4",
"shasum": ""
},
"require": {
- "php": ">=8.3"
+ "php": ">=8.4"
},
"require-dev": {
- "phpunit/phpunit": "^12.0"
+ "phpunit/phpunit": "^13.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "5.0-dev"
+ "dev-main": "6.0-dev"
}
},
"autoload": {
@@ -610,40 +640,52 @@
"support": {
"issues": "https://github.com/sebastianbergmann/php-text-template/issues",
"security": "https://github.com/sebastianbergmann/php-text-template/security/policy",
- "source": "https://github.com/sebastianbergmann/php-text-template/tree/5.0.0"
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/6.0.0"
},
"funding": [
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpunit/php-text-template",
+ "type": "tidelift"
}
],
- "time": "2025-02-07T04:59:16+00:00"
+ "time": "2026-02-06T04:36:37+00:00"
},
{
"name": "phpunit/php-timer",
- "version": "8.0.0",
+ "version": "9.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc"
+ "reference": "a0e12065831f6ab0d83120dc61513eb8d9a966f6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc",
- "reference": "f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/a0e12065831f6ab0d83120dc61513eb8d9a966f6",
+ "reference": "a0e12065831f6ab0d83120dc61513eb8d9a966f6",
"shasum": ""
},
"require": {
- "php": ">=8.3"
+ "php": ">=8.4"
},
"require-dev": {
- "phpunit/phpunit": "^12.0"
+ "phpunit/phpunit": "^13.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "8.0-dev"
+ "dev-main": "9.0-dev"
}
},
"autoload": {
@@ -670,28 +712,40 @@
"support": {
"issues": "https://github.com/sebastianbergmann/php-timer/issues",
"security": "https://github.com/sebastianbergmann/php-timer/security/policy",
- "source": "https://github.com/sebastianbergmann/php-timer/tree/8.0.0"
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/9.0.0"
},
"funding": [
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpunit/php-timer",
+ "type": "tidelift"
}
],
- "time": "2025-02-07T04:59:38+00:00"
+ "time": "2026-02-06T04:37:53+00:00"
},
{
"name": "phpunit/phpunit",
- "version": "12.5.8",
+ "version": "13.0.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "37ddb96c14bfee10304825edbb7e66d341ec6889"
+ "reference": "d57826e8921a534680c613924bfd921ded8047f4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/37ddb96c14bfee10304825edbb7e66d341ec6889",
- "reference": "37ddb96c14bfee10304825edbb7e66d341ec6889",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d57826e8921a534680c613924bfd921ded8047f4",
+ "reference": "d57826e8921a534680c613924bfd921ded8047f4",
"shasum": ""
},
"require": {
@@ -704,21 +758,22 @@
"myclabs/deep-copy": "^1.13.4",
"phar-io/manifest": "^2.0.4",
"phar-io/version": "^3.2.1",
- "php": ">=8.3",
- "phpunit/php-code-coverage": "^12.5.2",
- "phpunit/php-file-iterator": "^6.0.0",
- "phpunit/php-invoker": "^6.0.0",
- "phpunit/php-text-template": "^5.0.0",
- "phpunit/php-timer": "^8.0.0",
- "sebastian/cli-parser": "^4.2.0",
- "sebastian/comparator": "^7.1.4",
- "sebastian/diff": "^7.0.0",
- "sebastian/environment": "^8.0.3",
- "sebastian/exporter": "^7.0.2",
- "sebastian/global-state": "^8.0.2",
- "sebastian/object-enumerator": "^7.0.0",
- "sebastian/type": "^6.0.3",
- "sebastian/version": "^6.0.0",
+ "php": ">=8.4.1",
+ "phpunit/php-code-coverage": "^13.0.1",
+ "phpunit/php-file-iterator": "^7.0.0",
+ "phpunit/php-invoker": "^7.0.0",
+ "phpunit/php-text-template": "^6.0.0",
+ "phpunit/php-timer": "^9.0.0",
+ "sebastian/cli-parser": "^5.0.0",
+ "sebastian/comparator": "^8.0.0",
+ "sebastian/diff": "^8.0.0",
+ "sebastian/environment": "^9.0.0",
+ "sebastian/exporter": "^8.0.0",
+ "sebastian/global-state": "^9.0.0",
+ "sebastian/object-enumerator": "^8.0.0",
+ "sebastian/recursion-context": "^8.0.0",
+ "sebastian/type": "^7.0.0",
+ "sebastian/version": "^7.0.0",
"staabm/side-effects-detector": "^1.0.5"
},
"bin": [
@@ -727,7 +782,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "12.5-dev"
+ "dev-main": "13.0-dev"
}
},
"autoload": {
@@ -759,7 +814,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.8"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/13.0.5"
},
"funding": [
{
@@ -783,32 +838,32 @@
"type": "tidelift"
}
],
- "time": "2026-01-27T06:12:29+00:00"
+ "time": "2026-02-18T12:40:03+00:00"
},
{
"name": "sebastian/cli-parser",
- "version": "4.2.0",
+ "version": "5.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/cli-parser.git",
- "reference": "90f41072d220e5c40df6e8635f5dafba2d9d4d04"
+ "reference": "48a4654fa5e48c1c81214e9930048a572d4b23ca"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/90f41072d220e5c40df6e8635f5dafba2d9d4d04",
- "reference": "90f41072d220e5c40df6e8635f5dafba2d9d4d04",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/48a4654fa5e48c1c81214e9930048a572d4b23ca",
+ "reference": "48a4654fa5e48c1c81214e9930048a572d4b23ca",
"shasum": ""
},
"require": {
- "php": ">=8.3"
+ "php": ">=8.4"
},
"require-dev": {
- "phpunit/phpunit": "^12.0"
+ "phpunit/phpunit": "^13.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "4.2-dev"
+ "dev-main": "5.0-dev"
}
},
"autoload": {
@@ -832,7 +887,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/cli-parser/issues",
"security": "https://github.com/sebastianbergmann/cli-parser/security/policy",
- "source": "https://github.com/sebastianbergmann/cli-parser/tree/4.2.0"
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/5.0.0"
},
"funding": [
{
@@ -852,31 +907,31 @@
"type": "tidelift"
}
],
- "time": "2025-09-14T09:36:45+00:00"
+ "time": "2026-02-06T04:39:44+00:00"
},
{
"name": "sebastian/comparator",
- "version": "7.1.4",
+ "version": "8.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "6a7de5df2e094f9a80b40a522391a7e6022df5f6"
+ "reference": "29b232ddc29c2b114c0358c69b3084e7c3da0d58"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/6a7de5df2e094f9a80b40a522391a7e6022df5f6",
- "reference": "6a7de5df2e094f9a80b40a522391a7e6022df5f6",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/29b232ddc29c2b114c0358c69b3084e7c3da0d58",
+ "reference": "29b232ddc29c2b114c0358c69b3084e7c3da0d58",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-mbstring": "*",
- "php": ">=8.3",
- "sebastian/diff": "^7.0",
- "sebastian/exporter": "^7.0"
+ "php": ">=8.4",
+ "sebastian/diff": "^8.0",
+ "sebastian/exporter": "^8.0"
},
"require-dev": {
- "phpunit/phpunit": "^12.2"
+ "phpunit/phpunit": "^13.0"
},
"suggest": {
"ext-bcmath": "For comparing BcMath\\Number objects"
@@ -884,7 +939,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "7.1-dev"
+ "dev-main": "8.0-dev"
}
},
"autoload": {
@@ -924,7 +979,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/comparator/issues",
"security": "https://github.com/sebastianbergmann/comparator/security/policy",
- "source": "https://github.com/sebastianbergmann/comparator/tree/7.1.4"
+ "source": "https://github.com/sebastianbergmann/comparator/tree/8.0.0"
},
"funding": [
{
@@ -944,33 +999,33 @@
"type": "tidelift"
}
],
- "time": "2026-01-24T09:28:48+00:00"
+ "time": "2026-02-06T04:40:39+00:00"
},
{
"name": "sebastian/complexity",
- "version": "5.0.0",
+ "version": "6.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/complexity.git",
- "reference": "bad4316aba5303d0221f43f8cee37eb58d384bbb"
+ "reference": "c5651c795c98093480df79350cb050813fc7a2f3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/bad4316aba5303d0221f43f8cee37eb58d384bbb",
- "reference": "bad4316aba5303d0221f43f8cee37eb58d384bbb",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/c5651c795c98093480df79350cb050813fc7a2f3",
+ "reference": "c5651c795c98093480df79350cb050813fc7a2f3",
"shasum": ""
},
"require": {
"nikic/php-parser": "^5.0",
- "php": ">=8.3"
+ "php": ">=8.4"
},
"require-dev": {
- "phpunit/phpunit": "^12.0"
+ "phpunit/phpunit": "^13.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "5.0-dev"
+ "dev-main": "6.0-dev"
}
},
"autoload": {
@@ -994,41 +1049,53 @@
"support": {
"issues": "https://github.com/sebastianbergmann/complexity/issues",
"security": "https://github.com/sebastianbergmann/complexity/security/policy",
- "source": "https://github.com/sebastianbergmann/complexity/tree/5.0.0"
+ "source": "https://github.com/sebastianbergmann/complexity/tree/6.0.0"
},
"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/complexity",
+ "type": "tidelift"
}
],
- "time": "2025-02-07T04:55:25+00:00"
+ "time": "2026-02-06T04:41:32+00:00"
},
{
"name": "sebastian/diff",
- "version": "7.0.0",
+ "version": "8.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "7ab1ea946c012266ca32390913653d844ecd085f"
+ "reference": "a2b6d09d7729ee87d605a439469f9dcc39be5ea3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7ab1ea946c012266ca32390913653d844ecd085f",
- "reference": "7ab1ea946c012266ca32390913653d844ecd085f",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/a2b6d09d7729ee87d605a439469f9dcc39be5ea3",
+ "reference": "a2b6d09d7729ee87d605a439469f9dcc39be5ea3",
"shasum": ""
},
"require": {
- "php": ">=8.3"
+ "php": ">=8.4"
},
"require-dev": {
- "phpunit/phpunit": "^12.0",
+ "phpunit/phpunit": "^13.0",
"symfony/process": "^7.2"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "7.0-dev"
+ "dev-main": "8.0-dev"
}
},
"autoload": {
@@ -1061,35 +1128,47 @@
"support": {
"issues": "https://github.com/sebastianbergmann/diff/issues",
"security": "https://github.com/sebastianbergmann/diff/security/policy",
- "source": "https://github.com/sebastianbergmann/diff/tree/7.0.0"
+ "source": "https://github.com/sebastianbergmann/diff/tree/8.0.0"
},
"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/diff",
+ "type": "tidelift"
}
],
- "time": "2025-02-07T04:55:46+00:00"
+ "time": "2026-02-06T04:42:27+00:00"
},
{
"name": "sebastian/environment",
- "version": "8.0.3",
+ "version": "9.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "24a711b5c916efc6d6e62aa65aa2ec98fef77f68"
+ "reference": "bb64d08145b021b67d5f253308a498b73ab0461e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/24a711b5c916efc6d6e62aa65aa2ec98fef77f68",
- "reference": "24a711b5c916efc6d6e62aa65aa2ec98fef77f68",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/bb64d08145b021b67d5f253308a498b73ab0461e",
+ "reference": "bb64d08145b021b67d5f253308a498b73ab0461e",
"shasum": ""
},
"require": {
- "php": ">=8.3"
+ "php": ">=8.4"
},
"require-dev": {
- "phpunit/phpunit": "^12.0"
+ "phpunit/phpunit": "^13.0"
},
"suggest": {
"ext-posix": "*"
@@ -1097,7 +1176,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "8.0-dev"
+ "dev-main": "9.0-dev"
}
},
"autoload": {
@@ -1125,7 +1204,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/environment/issues",
"security": "https://github.com/sebastianbergmann/environment/security/policy",
- "source": "https://github.com/sebastianbergmann/environment/tree/8.0.3"
+ "source": "https://github.com/sebastianbergmann/environment/tree/9.0.0"
},
"funding": [
{
@@ -1145,34 +1224,34 @@
"type": "tidelift"
}
],
- "time": "2025-08-12T14:11:56+00:00"
+ "time": "2026-02-06T04:43:29+00:00"
},
{
"name": "sebastian/exporter",
- "version": "7.0.2",
+ "version": "8.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "016951ae10980765e4e7aee491eb288c64e505b7"
+ "reference": "dc31f1f8e0186c8f0bb3e48fd4d51421d8905fea"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/016951ae10980765e4e7aee491eb288c64e505b7",
- "reference": "016951ae10980765e4e7aee491eb288c64e505b7",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/dc31f1f8e0186c8f0bb3e48fd4d51421d8905fea",
+ "reference": "dc31f1f8e0186c8f0bb3e48fd4d51421d8905fea",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
- "php": ">=8.3",
- "sebastian/recursion-context": "^7.0"
+ "php": ">=8.4",
+ "sebastian/recursion-context": "^8.0"
},
"require-dev": {
- "phpunit/phpunit": "^12.0"
+ "phpunit/phpunit": "^13.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "7.0-dev"
+ "dev-main": "8.0-dev"
}
},
"autoload": {
@@ -1215,7 +1294,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
"security": "https://github.com/sebastianbergmann/exporter/security/policy",
- "source": "https://github.com/sebastianbergmann/exporter/tree/7.0.2"
+ "source": "https://github.com/sebastianbergmann/exporter/tree/8.0.0"
},
"funding": [
{
@@ -1235,35 +1314,35 @@
"type": "tidelift"
}
],
- "time": "2025-09-24T06:16:11+00:00"
+ "time": "2026-02-06T04:44:28+00:00"
},
{
"name": "sebastian/global-state",
- "version": "8.0.2",
+ "version": "9.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "ef1377171613d09edd25b7816f05be8313f9115d"
+ "reference": "e52e3dc22441e6218c710afe72c3042f8fc41ea7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/ef1377171613d09edd25b7816f05be8313f9115d",
- "reference": "ef1377171613d09edd25b7816f05be8313f9115d",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e52e3dc22441e6218c710afe72c3042f8fc41ea7",
+ "reference": "e52e3dc22441e6218c710afe72c3042f8fc41ea7",
"shasum": ""
},
"require": {
- "php": ">=8.3",
- "sebastian/object-reflector": "^5.0",
- "sebastian/recursion-context": "^7.0"
+ "php": ">=8.4",
+ "sebastian/object-reflector": "^6.0",
+ "sebastian/recursion-context": "^8.0"
},
"require-dev": {
"ext-dom": "*",
- "phpunit/phpunit": "^12.0"
+ "phpunit/phpunit": "^13.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "8.0-dev"
+ "dev-main": "9.0-dev"
}
},
"autoload": {
@@ -1289,7 +1368,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/global-state/issues",
"security": "https://github.com/sebastianbergmann/global-state/security/policy",
- "source": "https://github.com/sebastianbergmann/global-state/tree/8.0.2"
+ "source": "https://github.com/sebastianbergmann/global-state/tree/9.0.0"
},
"funding": [
{
@@ -1309,33 +1388,33 @@
"type": "tidelift"
}
],
- "time": "2025-08-29T11:29:25+00:00"
+ "time": "2026-02-06T04:45:13+00:00"
},
{
"name": "sebastian/lines-of-code",
- "version": "4.0.0",
+ "version": "5.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/lines-of-code.git",
- "reference": "97ffee3bcfb5805568d6af7f0f893678fc076d2f"
+ "reference": "4f21bb7768e1c997722ccc7efb1d6b5c11bfd471"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/97ffee3bcfb5805568d6af7f0f893678fc076d2f",
- "reference": "97ffee3bcfb5805568d6af7f0f893678fc076d2f",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/4f21bb7768e1c997722ccc7efb1d6b5c11bfd471",
+ "reference": "4f21bb7768e1c997722ccc7efb1d6b5c11bfd471",
"shasum": ""
},
"require": {
"nikic/php-parser": "^5.0",
- "php": ">=8.3"
+ "php": ">=8.4"
},
"require-dev": {
- "phpunit/phpunit": "^12.0"
+ "phpunit/phpunit": "^13.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "4.0-dev"
+ "dev-main": "5.0-dev"
}
},
"autoload": {
@@ -1359,42 +1438,54 @@
"support": {
"issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
"security": "https://github.com/sebastianbergmann/lines-of-code/security/policy",
- "source": "https://github.com/sebastianbergmann/lines-of-code/tree/4.0.0"
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/5.0.0"
},
"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/lines-of-code",
+ "type": "tidelift"
}
],
- "time": "2025-02-07T04:57:28+00:00"
+ "time": "2026-02-06T04:45:54+00:00"
},
{
"name": "sebastian/object-enumerator",
- "version": "7.0.0",
+ "version": "8.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-enumerator.git",
- "reference": "1effe8e9b8e068e9ae228e542d5d11b5d16db894"
+ "reference": "b39ab125fd9a7434b0ecbc4202eebce11a98cfc5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1effe8e9b8e068e9ae228e542d5d11b5d16db894",
- "reference": "1effe8e9b8e068e9ae228e542d5d11b5d16db894",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/b39ab125fd9a7434b0ecbc4202eebce11a98cfc5",
+ "reference": "b39ab125fd9a7434b0ecbc4202eebce11a98cfc5",
"shasum": ""
},
"require": {
- "php": ">=8.3",
- "sebastian/object-reflector": "^5.0",
- "sebastian/recursion-context": "^7.0"
+ "php": ">=8.4",
+ "sebastian/object-reflector": "^6.0",
+ "sebastian/recursion-context": "^8.0"
},
"require-dev": {
- "phpunit/phpunit": "^12.0"
+ "phpunit/phpunit": "^13.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "7.0-dev"
+ "dev-main": "8.0-dev"
}
},
"autoload": {
@@ -1417,40 +1508,52 @@
"support": {
"issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
"security": "https://github.com/sebastianbergmann/object-enumerator/security/policy",
- "source": "https://github.com/sebastianbergmann/object-enumerator/tree/7.0.0"
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/8.0.0"
},
"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/object-enumerator",
+ "type": "tidelift"
}
],
- "time": "2025-02-07T04:57:48+00:00"
+ "time": "2026-02-06T04:46:36+00:00"
},
{
"name": "sebastian/object-reflector",
- "version": "5.0.0",
+ "version": "6.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-reflector.git",
- "reference": "4bfa827c969c98be1e527abd576533293c634f6a"
+ "reference": "3ca042c2c60b0eab094f8a1b6a7093f4d4c72200"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/4bfa827c969c98be1e527abd576533293c634f6a",
- "reference": "4bfa827c969c98be1e527abd576533293c634f6a",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/3ca042c2c60b0eab094f8a1b6a7093f4d4c72200",
+ "reference": "3ca042c2c60b0eab094f8a1b6a7093f4d4c72200",
"shasum": ""
},
"require": {
- "php": ">=8.3"
+ "php": ">=8.4"
},
"require-dev": {
- "phpunit/phpunit": "^12.0"
+ "phpunit/phpunit": "^13.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "5.0-dev"
+ "dev-main": "6.0-dev"
}
},
"autoload": {
@@ -1473,40 +1576,52 @@
"support": {
"issues": "https://github.com/sebastianbergmann/object-reflector/issues",
"security": "https://github.com/sebastianbergmann/object-reflector/security/policy",
- "source": "https://github.com/sebastianbergmann/object-reflector/tree/5.0.0"
+ "source": "https://github.com/sebastianbergmann/object-reflector/tree/6.0.0"
},
"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/object-reflector",
+ "type": "tidelift"
}
],
- "time": "2025-02-07T04:58:17+00:00"
+ "time": "2026-02-06T04:47:13+00:00"
},
{
"name": "sebastian/recursion-context",
- "version": "7.0.1",
+ "version": "8.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "0b01998a7d5b1f122911a66bebcb8d46f0c82d8c"
+ "reference": "74c5af21f6a5833e91767ca068c4d3dfec15317e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/0b01998a7d5b1f122911a66bebcb8d46f0c82d8c",
- "reference": "0b01998a7d5b1f122911a66bebcb8d46f0c82d8c",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/74c5af21f6a5833e91767ca068c4d3dfec15317e",
+ "reference": "74c5af21f6a5833e91767ca068c4d3dfec15317e",
"shasum": ""
},
"require": {
- "php": ">=8.3"
+ "php": ">=8.4"
},
"require-dev": {
- "phpunit/phpunit": "^12.0"
+ "phpunit/phpunit": "^13.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "7.0-dev"
+ "dev-main": "8.0-dev"
}
},
"autoload": {
@@ -1537,7 +1652,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/recursion-context/issues",
"security": "https://github.com/sebastianbergmann/recursion-context/security/policy",
- "source": "https://github.com/sebastianbergmann/recursion-context/tree/7.0.1"
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/8.0.0"
},
"funding": [
{
@@ -1557,32 +1672,32 @@
"type": "tidelift"
}
],
- "time": "2025-08-13T04:44:59+00:00"
+ "time": "2026-02-06T04:51:28+00:00"
},
{
"name": "sebastian/type",
- "version": "6.0.3",
+ "version": "7.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/type.git",
- "reference": "e549163b9760b8f71f191651d22acf32d56d6d4d"
+ "reference": "42412224607bd3931241bbd17f38e0f972f5a916"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/e549163b9760b8f71f191651d22acf32d56d6d4d",
- "reference": "e549163b9760b8f71f191651d22acf32d56d6d4d",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/42412224607bd3931241bbd17f38e0f972f5a916",
+ "reference": "42412224607bd3931241bbd17f38e0f972f5a916",
"shasum": ""
},
"require": {
- "php": ">=8.3"
+ "php": ">=8.4"
},
"require-dev": {
- "phpunit/phpunit": "^12.0"
+ "phpunit/phpunit": "^13.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "6.0-dev"
+ "dev-main": "7.0-dev"
}
},
"autoload": {
@@ -1606,7 +1721,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/type/issues",
"security": "https://github.com/sebastianbergmann/type/security/policy",
- "source": "https://github.com/sebastianbergmann/type/tree/6.0.3"
+ "source": "https://github.com/sebastianbergmann/type/tree/7.0.0"
},
"funding": [
{
@@ -1626,29 +1741,29 @@
"type": "tidelift"
}
],
- "time": "2025-08-09T06:57:12+00:00"
+ "time": "2026-02-06T04:52:09+00:00"
},
{
"name": "sebastian/version",
- "version": "6.0.0",
+ "version": "7.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/version.git",
- "reference": "3e6ccf7657d4f0a59200564b08cead899313b53c"
+ "reference": "ad37a5552c8e2b88572249fdc19b6da7792e021b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/3e6ccf7657d4f0a59200564b08cead899313b53c",
- "reference": "3e6ccf7657d4f0a59200564b08cead899313b53c",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/ad37a5552c8e2b88572249fdc19b6da7792e021b",
+ "reference": "ad37a5552c8e2b88572249fdc19b6da7792e021b",
"shasum": ""
},
"require": {
- "php": ">=8.3"
+ "php": ">=8.4"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "6.0-dev"
+ "dev-main": "7.0-dev"
}
},
"autoload": {
@@ -1672,28 +1787,40 @@
"support": {
"issues": "https://github.com/sebastianbergmann/version/issues",
"security": "https://github.com/sebastianbergmann/version/security/policy",
- "source": "https://github.com/sebastianbergmann/version/tree/6.0.0"
+ "source": "https://github.com/sebastianbergmann/version/tree/7.0.0"
},
"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/version",
+ "type": "tidelift"
}
],
- "time": "2025-02-07T05:00:38+00:00"
+ "time": "2026-02-06T04:52:52+00:00"
},
{
"name": "smalot/pdfparser",
- "version": "v2.12.2",
+ "version": "v2.12.3",
"source": {
"type": "git",
"url": "https://github.com/smalot/pdfparser.git",
- "reference": "370b7e983fafecb787a9bcfd73baab8038212ad1"
+ "reference": "61c9bcafcb92899b76d8ebda6508267bae77e264"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/smalot/pdfparser/zipball/370b7e983fafecb787a9bcfd73baab8038212ad1",
- "reference": "370b7e983fafecb787a9bcfd73baab8038212ad1",
+ "url": "https://api.github.com/repos/smalot/pdfparser/zipball/61c9bcafcb92899b76d8ebda6508267bae77e264",
+ "reference": "61c9bcafcb92899b76d8ebda6508267bae77e264",
"shasum": ""
},
"require": {
@@ -1729,9 +1856,9 @@
],
"support": {
"issues": "https://github.com/smalot/pdfparser/issues",
- "source": "https://github.com/smalot/pdfparser/tree/v2.12.2"
+ "source": "https://github.com/smalot/pdfparser/tree/v2.12.3"
},
- "time": "2025-09-04T08:49:09+00:00"
+ "time": "2026-01-08T08:04:04+00:00"
},
{
"name": "squizlabs/php_codesniffer",
@@ -2002,7 +2129,7 @@
],
"aliases": [],
"minimum-stability": "stable",
- "stability-flags": [],
+ "stability-flags": {},
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
@@ -2010,6 +2137,6 @@
"ext-curl": "*",
"ext-openssl": "*"
},
- "platform-dev": [],
- "plugin-api-version": "2.6.0"
+ "platform-dev": {},
+ "plugin-api-version": "2.9.0"
}
From 196bafb59f2229b012ae85538156f44c80c1ba9f Mon Sep 17 00:00:00 2001
From: Jim Mullen
Date: Tue, 10 Mar 2026 11:06:50 -0400
Subject: [PATCH 06/14] Fixed PHP 8.5 deprecation issues
---
src/RedCapApiConnection.php | 2 +-
src/RedCapProject.php | 34 +++++++++++++++----------------
tests/integration/LoggingTest.php | 2 +-
tests/util/CsvUtil.php | 14 +++++++++++--
4 files changed, 31 insertions(+), 21 deletions(-)
diff --git a/src/RedCapApiConnection.php b/src/RedCapApiConnection.php
index 8e31daa..ec77a06 100644
--- a/src/RedCapApiConnection.php
+++ b/src/RedCapApiConnection.php
@@ -84,7 +84,7 @@ public function __construct(
public function __destruct()
{
if (isset($this->curlHandle)) {
- curl_close($this->curlHandle);
+ // DEPRECATED: curl_close($this->curlHandle);
$this->curlHandle = null;
}
}
diff --git a/src/RedCapProject.php b/src/RedCapProject.php
index 0da543d..da6973e 100644
--- a/src/RedCapProject.php
+++ b/src/RedCapProject.php
@@ -172,7 +172,7 @@ public function importArms($arms, $format = 'php', $override = false)
$this->processNonExportResult($result);
- return (integer) $result;
+ return (int) $result;
}
/**
@@ -199,7 +199,7 @@ public function deleteArms($arms)
$this->processNonExportResult($result);
- return (integer) $result;
+ return (int) $result;
}
@@ -278,7 +278,7 @@ public function importDags($dags, $format = 'php')
$this->processNonExportResult($result);
- return (integer) $result;
+ return (int) $result;
}
@@ -305,7 +305,7 @@ public function deleteDags($dags)
$result = $this->connection->callWithArray($data);
$this->processNonExportResult($result);
- return (integer) $result;
+ return (int) $result;
}
@@ -417,7 +417,7 @@ public function importUserDagAssignment($dagAssignments, $format = 'php')
$this->processNonExportResult($result);
- return (integer) $result;
+ return (int) $result;
}
@@ -523,7 +523,7 @@ public function importEvents($events, $format = 'php', $override = false)
$this->processNonExportResult($result);
- return (integer) $result;
+ return (int) $result;
}
@@ -551,7 +551,7 @@ public function deleteEvents($events)
$this->processNonExportResult($result);
- return (integer) $result;
+ return (int) $result;
}
@@ -798,7 +798,7 @@ public function createFileRepositoryFolder($name, $parentFolderId = null, $dagId
$folderId = null;
$result = json_decode($jsonResult, true);
if (is_array($result) && count($result) === 1 && array_key_exists('folder_id', $result[0])) {
- $folderId = (integer) $result[0]['folder_id'];
+ $folderId = (int) $result[0]['folder_id'];
}
return $folderId;
@@ -1138,7 +1138,7 @@ public function importInstrumentEventMappings($mappings, $format = 'php')
$this->processNonExportResult($result);
- return (integer) $result;
+ return (int) $result;
}
@@ -1297,7 +1297,7 @@ public function importMetadata($metadata, $format = 'php')
$this->processNonExportResult($result);
- return (integer) $result;
+ return (int) $result;
}
@@ -1397,7 +1397,7 @@ public function importProjectInfo($projectInfo, $format = 'php')
$this->processNonExportResult($result);
- return (integer) $result;
+ return (int) $result;
}
/**
@@ -2125,7 +2125,7 @@ public function importRepeatingInstrumentsAndEvents($formsEvents, $format = 'php
$this->processNonExportResult($result);
- return (integer) $result;
+ return (int) $result;
}
@@ -2479,7 +2479,7 @@ public function importUsers($users, $format = 'php')
$result = $this->connection->callWithArray($data);
$this->processNonExportResult($result);
- return (integer) $result;
+ return (int) $result;
}
@@ -2502,7 +2502,7 @@ public function deleteUsers($users)
$data['users'] = $this->processUsersArgument($users);
$result = $this->connection->callWithArray($data);
- return (integer) $result;
+ return (int) $result;
}
@@ -2601,7 +2601,7 @@ public function importUserRoles($userRoles, $format = 'php')
$result = $this->connection->callWithArray($data);
$this->processNonExportResult($result);
- return (integer) $result;
+ return (int) $result;
}
/**
@@ -2623,7 +2623,7 @@ public function deleteUserRoles($userRoles)
$data['roles'] = $this->processUserRolesArgument($userRoles);
$result = $this->connection->callWithArray($data);
- return (integer) $result;
+ return (int) $result;
}
@@ -2712,7 +2712,7 @@ public function importUserRoleAssignments($userRoleAssignments, $format = 'php')
$result = $this->connection->callWithArray($data);
$this->processNonExportResult($result);
- return (integer) $result;
+ return (int) $result;
}
diff --git a/tests/integration/LoggingTest.php b/tests/integration/LoggingTest.php
index 93d498c..45204e7 100644
--- a/tests/integration/LoggingTest.php
+++ b/tests/integration/LoggingTest.php
@@ -107,7 +107,7 @@ public function testExportLoggingWithDateRange()
$endTime = $fiveMinutesFromNow->format('Y-m-d H:i:s')
);
- $this->assertGreaterThan(0, count($result), 'Export logging count check.');
+ $this->assertGreaterThan(0, count($result), "Export logging count check for range {$beginTime} to {$endTime}.");
// It appears that from version 11 to 12 of REDCap, the messages generated changed a bit.
$actions = array_column($result, 'action');
diff --git a/tests/util/CsvUtil.php b/tests/util/CsvUtil.php
index b17f28e..04cac39 100644
--- a/tests/util/CsvUtil.php
+++ b/tests/util/CsvUtil.php
@@ -22,7 +22,12 @@ public static function csvFileToArray($csvFile)
{
$values = [];
$file = fopen($csvFile, 'r');
- while (($line = fgetcsv($file)) !== FALSE) {
+
+ $length = null;
+ $separator = ",";
+ $enclosure = "\"";
+ $escape = "\\";
+ while (($line = fgetcsv($file, $length, $separator, $enclosure, $escape)) !== FALSE) {
$values[] = $line;
}
fclose($file);
@@ -37,7 +42,12 @@ public static function csvStringToArray($csvString)
$file = fopen("php://temp", 'r+');
fputs($file, $csvString ?? '');
rewind($file);
- while (($line = fgetcsv($file)) !== FALSE) {
+
+ $length = null;
+ $separator = ",";
+ $enclosure = "\"";
+ $escape = "\\";
+ while (($line = fgetcsv($file, $length, $separator, $enclosure, $escape)) !== FALSE) {
$values[] = $line;
}
fclose($file);
From 970571a0fe35f0a458464b44a4b5e38d57222fd9 Mon Sep 17 00:00:00 2001
From: Jim Mullen
Date: Tue, 10 Mar 2026 11:33:54 -0400
Subject: [PATCH 07/14] Updated auto-generated documentation
---
docs/CACertificateFile.html | 40 +-
docs/DeveloperGuide.html | 180 +-
docs/UserGuide1.html | 38 +-
docs/UserGuide2.html | 2 +-
docs/UserGuide3.html | 2 +-
docs/UserGuide4.html | 2 +-
docs/UserGuide5.html | 4 +-
docs/api/classes/IU-PHPCap-ErrorHandler.html | 235 +-
.../IU-PHPCap-ErrorHandlerInterface.html | 333 +-
docs/api/classes/IU-PHPCap-FileUtil.html | 311 +-
.../classes/IU-PHPCap-PhpCapException.html | 265 +-
docs/api/classes/IU-PHPCap-RedCap.html | 383 +-
.../IU-PHPCap-RedCapApiConnection.html | 617 ++-
...U-PHPCap-RedCapApiConnectionInterface.html | 461 +-
docs/api/classes/IU-PHPCap-RedCapProject.html | 1560 +++++--
docs/api/classes/IU-PHPCap-Version.html | 217 +-
docs/api/css/base.css | 195 +-
docs/api/css/normalize.css | 2 +-
docs/api/css/template.css | 147 +-
docs/api/files/src-errorhandler.html | 168 +-
docs/api/files/src-errorhandlerinterface.html | 166 +-
docs/api/files/src-fileutil.html | 165 +-
docs/api/files/src-phpcapexception.html | 167 +-
docs/api/files/src-redcap.html | 168 +-
docs/api/files/src-redcapapiconnection.html | 167 +-
.../src-redcapapiconnectioninterface.html | 165 +-
docs/api/files/src-redcapproject.html | 165 +-
docs/api/files/src-version.html | 166 +-
docs/api/files/src/ErrorHandler.php.txt | 31 +
.../files/src/ErrorHandlerInterface.php.txt | 75 +
docs/api/files/src/FileUtil.php.txt | 165 +
docs/api/files/src/PhpCapException.php.txt | 97 +
docs/api/files/src/RedCap.php.txt | 526 +++
.../api/files/src/RedCapApiConnection.php.txt | 305 ++
.../src/RedCapApiConnectionInterface.php.txt | 146 +
docs/api/files/src/RedCapProject.php.txt | 4067 +++++++++++++++++
docs/api/files/src/Version.php.txt | 18 +
docs/api/graphs/classes.html | 18 +-
docs/api/index.html | 56 +-
docs/api/indices/files.html | 73 +-
docs/api/js/template.js | 34 +
docs/api/namespaces/default.html | 153 +-
docs/api/namespaces/iu-phpcap.html | 195 +-
docs/api/namespaces/iu.html | 153 +-
docs/api/packages/Application.html | 195 +-
docs/api/packages/default.html | 153 +-
docs/api/reports/deprecated.html | 41 +-
docs/api/reports/errors.html | 39 +-
docs/api/reports/markers.html | 41 +-
src/Version.php | 2 +-
50 files changed, 11170 insertions(+), 1904 deletions(-)
create mode 100644 docs/api/files/src/ErrorHandler.php.txt
create mode 100644 docs/api/files/src/ErrorHandlerInterface.php.txt
create mode 100644 docs/api/files/src/FileUtil.php.txt
create mode 100644 docs/api/files/src/PhpCapException.php.txt
create mode 100644 docs/api/files/src/RedCap.php.txt
create mode 100644 docs/api/files/src/RedCapApiConnection.php.txt
create mode 100644 docs/api/files/src/RedCapApiConnectionInterface.php.txt
create mode 100644 docs/api/files/src/RedCapProject.php.txt
create mode 100644 docs/api/files/src/Version.php.txt
create mode 100644 docs/api/js/template.js
diff --git a/docs/CACertificateFile.html b/docs/CACertificateFile.html
index e26c4af..3269f96 100644
--- a/docs/CACertificateFile.html
+++ b/docs/CACertificateFile.html
@@ -68,31 +68,45 @@ CA Certificate File Info
Creating a CA Certificate File with Firefox
To use the Firefox web browser to create a CA (Certificate Authority) certificate file for use with PHPCap, use the following steps:
-- Access your REDCap site with Firefox.
-
-
Click on the padlock icon to the left of the URL displayed in Firefox, and then the connection, and then "More Information".
+Access your REDCap site with Firefox.
+
+-
+
Click on the padlock icon to the left of the URL displayed in Firefox, and then the connection, and then "More Information".
-
-
If the previous step succeeded, a "Page Info" window should open up. In this window,
-click on the "Security" tab, if it is not already selected.
+If the previous step succeeded, a "Page Info" window should open up. In this window,
+click on the "Security" tab, if it is not already selected.
-- Click on the "View Certificate" button
-
-
Click on the "Detail" tab of the "Certificate Viewer" dialog.
+Click on the "View Certificate" button
+
+-
+
Click on the "Detail" tab of the "Certificate Viewer" dialog.
-- Select the top entry in the "Certificate Hierarchy" box.
-- Click the "Export..." button.
-
-
In the "Save Certificate to File" window that should appear:
+Select the top entry in the "Certificate Hierarchy" box.
+
+-
+
Click the "Export..." button.
+
+-
+
In the "Save Certificate to File" window that should appear:
-- navigate to where you want to save the file
-- change the name of the file if you don't want to use the default name
-- set "Save as type" to "X.509 Certificate (PEM)"
-
-
click on the "Save" button.
+navigate to where you want to save the file
+
+-
+
change the name of the file if you don't want to use the default name
+
+-
+
set "Save as type" to "X.509 Certificate (PEM)"
+
+-
+
click on the "Save" button.
diff --git a/docs/DeveloperGuide.html b/docs/DeveloperGuide.html
index 4cbaab4..4ec6ba5 100644
--- a/docs/DeveloperGuide.html
+++ b/docs/DeveloperGuide.html
@@ -71,30 +71,30 @@ Setup
-
Get PHPCap:
-git clone https://github.com/iuredcap/phpcap
+ git clone https://github.com/iuredcap/phpcap
-
Get Composer. Composer is needed to download the development dependencies for PHPCap.
See: https://getcomposer.org/download/.
-You can either install the composer.phar file to the root directory of PHPCap (the .gitignore
+You can either install the composer.phar file to the root directory of PHPCap (the .gitignore
file is set to ignore this file), or install it globally at the system or account level.
-
Install PHPCap's development dependencies:
-# If you installed the composer.phar file in PHPCap's root directory:
-php composer.phar install
+ # If you installed the composer.phar file in PHPCap's root directory:
+ php composer.phar install
-# If you installed composer globally:
-composer install
+ # If you installed composer globally:
+ composer install
-# The dependencies should be installed into a "vendor" directory
-# (which will be ignored by Git).
+ # The dependencies should be installed into a "vendor" directory
+ # (which will be ignored by Git).
-
Install phpDocumentor, which is used for
generating API documentation from PHPDoc comments in the code.
It should be set up so that it can be run from the command line using:
-
+
Example Setup on Ubuntu 20
@@ -112,25 +112,25 @@ Example Setup on Ubuntu 20
sudo mv phpDocumentor.phar /usr/local/bin/phpdoc
Development
Automated Tests
-PHPCap uses PHPUnit for running automated tests. PHPUnit should get installed as a dependency for your PHPCap project when you run the "composer install" command.
+
PHPCap uses PHPUnit for running automated tests. PHPUnit should get installed as a dependency for your PHPCap project when you run the "composer install" command.
PHPCap has the following types of automated tests:
-- unit tests
-
+- unit tests
- in directory tests/unit
- don't require a REDCap instance to run
-
-- integration tests
-
+
+- integration tests
- in directory tests/integration
- require a REDCap instance to run
- require setup and configuration to run
-
+
+
You can test your PHPUnit installation by running the following in the root PHPCap directory, which will run the unit tests for PHPCap:
./vendor/bin/phpunit --testsuite unit
-If the above command succeeds, you should see an "OK" message with the number of tests and assertions that were run, and you should see no errors of failures.
-To run all the automated tests (the unit tests as well as the integration tests), setup steps needs to be completed. Some of the integration tests are considered optional. If
+
If the above command succeeds, you should see an "OK" message with the number of tests and assertions that were run, and you should see no errors of failures.
+To run all the automated tests (the unit tests as well as the integration tests), setup steps needs to be completed. Some of the integration tests are considered optional. If
you don't do the setup steps for these optional tests, they will not be run. But if you don't do the setup steps for the non-optional integration tests, phpunit will fail
when you try to run them.
Setup for Non-Optional Integration Tests
@@ -139,22 +139,22 @@ Setup for Non-Optional Integration Tests
- Log in to your REDCap site.
- Create an empty project in REDCap.
-- Create a project in REDCap for the "Basic Demography," "DAG," and "Longitudinal Data" test projects in directory tests/projects/, and import each of those test project files into the REDCap project created for it.
+- Create a project in REDCap for the "Basic Demography," "DAG," and "Longitudinal Data" test projects in directory tests/projects/, and import each of those test project files into the REDCap project created for it.
- In REDCap, request API tokens for the empty project and the projects imported in the step above. Make sure that user setting for each
project allow API import and export.
-- Once you have your tokens, copy the "config-example.ini" file to a file
-named "config.ini" and then set the URL in that file to be the
+
- Once you have your tokens, copy the "config-example.ini" file to a file
+named "config.ini" and then set the URL in that file to be the
URL for the API of your REDCap instance, and set the tokens to be
the tokens requested in the previous step.
-- In the Control Center in REDCap, download the "Date Calculated Fields" external module and then enable it.
-- In REDCap, enable the "Date Calculated Fields" external module for the "Basic Demography" project.
-- In REDCap, add a test user to the DAG project, assigning only default, basic permissions.
-
+- In the Control Center in REDCap, download the "Date Calculated Fields" external module and then enable it.
+- In REDCap, enable the "Date Calculated Fields" external module for the "Basic Demography" project.
+- In REDCap, add a test user to the DAG project, assigning only default, basic permissions.
- Add the test user to the 'group1' DAG
-- Using the "DAG Switcher" in REDCap, assign the test user access to DAGs 'group1' and 'group2'
+- Using the "DAG Switcher" in REDCap, assign the test user access to DAGs 'group1' and 'group2'
- Create an API token for the test user with export/import/update permission for the DAG project
- Set the dags.test.user.api.token property in your test config.ini file to the value for the API token created in the previous step
-
+
+
Setup for Optional CA Certificate File Integration Tests
To run the optional tests involving the CA certificate file, you will need to set up
@@ -167,81 +167,121 @@
Setup for Optional Report Integration Tests
To run all of the optional report tests, you will need to manually set up 2 reports.
You need to set up a report for the
basic demography project.
-and then set the
+and then set the
basic.demography.report.id property in your tests/config.ini file
to the ID of the report. If the ID property is not set, then the tests
-that use the report will not be run. You need to set up an "Exercise" report
+that use the report will not be run. You need to set up an "Exercise" report
as follows:
- Include these fields in this order: record_id, bmi
You need to set up a report for the
longitudinal data project
-and then set the
+and then set the
longitudinal.data.report.id property in your tests/config.ini file
to the ID of the report. If the ID property is not set, then the tests
-that use the report will not be run. You need to set up an "Exercise" report
+that use the report will not be run. You need to set up an "Exercise" report
as follows:
- Include these fields in this order: study_id, age, ethnicity, race, sex, gym, aerobics
-- Filter (only) by the following events: "Enrollment (Arm 1: Drug A)", "Enrollment (Arm 2: Drug B)"
+- Filter (only) by the following events: "Enrollment (Arm 1: Drug A)", "Enrollment (Arm 2: Drug B)"
Setup for Optional Survey Integration Tests
To run the survey tests, use the following steps:
-- In REDCap, create a project for the "Repeatable Survey" project test file in the tests/projects directory, and import the project test file into that project.
-- In the "Project Setup" tab for the project created in the step above, click on the Enable button for "Use surveys for this project?"
-- In the "Project Setup" tab, click on the Designer button
-- In the "Online Designer" tab, click on the Enable button for instrument "Basic Information", and then:
+
-
+
In REDCap, create a project for the "Repeatable Survey" project test file in the tests/projects directory, and import the project test file into that project.
+
+-
+
In the "Project Setup" tab for the project created in the step above, click on the Enable button for "Use surveys for this project?"
+
+-
+
In the "Project Setup" tab, click on the Designer button
+
+-
+
In the "Online Designer" tab, click on the Enable button for instrument "Basic Information", and then:
-- Select "Yes" for "Allow 'Save & Return Later' option for respondents?"
+- Select "Yes" for "Allow 'Save & Return Later' option for respondents?"
- Click on the Save Changes button
-
-- In the "Online Designer" tab, click on the Enable button for instrument "Weight", and then:
+
+
+
+In the "Online Designer" tab, click on the Enable button for instrument "Weight", and then:
-- Select "Yes" for "Allow 'Save & Return Later' option for respondents?"
-- Check the box for "(Optional) Allow respondents to repeat the survey"
+- Select "Yes" for "Allow 'Save & Return Later' option for respondents?"
+- Check the box for "(Optional) Allow respondents to repeat the survey"
- Click on the Save Changes button
-
-In the "Online Designer" tab, click on the "Survey Queue" button
-In the "Set up Survey Queue" dialog:
+
+
+
+In the "Online Designer" tab, click on the "Survey Queue" button
+
+
+In the "Set up Survey Queue" dialog:
-- Click on the Activate button for "Weight"
-- Check "When the following survey is completed:"
-- In the selection below "When the following survey is completed:", select "Basic Information"
+- Click on the Activate button for "Weight"
+- Check "When the following survey is completed:"
+- In the selection below "When the following survey is completed:", select "Basic Information"
- Click on the Save button
-
-Click on the "Manage Survey Participants" or "Survey Distribution Tools" link on the left (depending on your REDCap version)
-Go to the "Participant List" tab
-Click on the Add participants button
-Add an e-mail that you have access to and click on the Add participants button
-Click on the Enable button for participant identifiers, and confirm this action
-Enter an identifier for the participant for the e-mail that you entered above and then click on the Save button
-Click on the Compose Survey Invitations button
-In the "Send a Survey Invitation to Participants" dialog:
+
+
+
+Click on the "Manage Survey Participants" or "Survey Distribution Tools" link on the left (depending on your REDCap version)
+
+
+Go to the "Participant List" tab
+
+
+Click on the Add participants button
+
+
+Add an e-mail that you have access to and click on the Add participants button
+
+
+Click on the Enable button for participant identifiers, and confirm this action
+
+
+Enter an identifier for the participant for the e-mail that you entered above and then click on the Save button
+
+
+Click on the Compose Survey Invitations button
+
+
+In the "Send a Survey Invitation to Participants" dialog:
-- Make sure that "Immediately" is selected for when the e-mail should be sent
+- Make sure that "Immediately" is selected for when the e-mail should be sent
- Make sure that the participant you create above is selected
- Click on the Send Invitations button
-
-Open the e-mail that should have been sent (you may need to wait a few minutes to receive it)
-Click on the "Basic Information" link in the e-mail and fill out the survey, and then at least one "Weight" survey
-In your project window in REDCap, click on the "API" link on the left and request (or create if you are an admin) an API token with at least API Export rights
+
+
+
+Open the e-mail that should have been sent (you may need to wait a few minutes to receive it)
+
+
+Click on the "Basic Information" link in the e-mail and fill out the survey, and then at least one "Weight" survey
+
+
+In your project window in REDCap, click on the "API" link on the left and request (or create if you are an admin) an API token with at least API Export rights
+
Once you have your API token, use it and the e-mail and identifier entered earlier to set the following properties in the config.ini file in the tests directory:
-repeatable.survey.api.token
-survey.participant.email
-survey.participant.identifier
+ repeatable.survey.api.token
+ survey.participant.email
+ survey.participant.identifier
Setup for the Optional Repeating Forms Tests
To run the repeating forms tests, use the following steps:
-- In REDCap, create a project for the "Repeating Forms" project test file in the tests/projects directory, and import the project test file into that project.
-- In your project window in REDCap, click on the "API" link on the left and request (or create if you are an admin) an API token with at least API Export rights
+-
+
In REDCap, create a project for the "Repeating Forms" project test file in the tests/projects directory, and import the project test file into that project.
+
+-
+
In your project window in REDCap, click on the "API" link on the left and request (or create if you are an admin) an API token with at least API Export rights
+
-
Once you have your API token, use it to set the following property in the config.ini file in the tests directory:
-repeating.forms.api.token
+ repeating.forms.api.token
Setup for Optional Project Creation Tests
@@ -334,7 +374,7 @@ Documentation
API Document Generation
To generate the API documentation (stored in ./docs/api), execute the following command in PHPCap's root directory:
-Note: For this command to work, phpDocumentor needs to have been installed as command "phpdoc".
+
Note: For this command to work, phpDocumentor needs to have been installed as command "phpdoc".
The configuration file used by this command is phpdoc.xml in the root directory of PHPCap.
The API documentation is stored in Git to eliminate the need for non-developer users
to install Composer and the developer dependencies.
@@ -346,13 +386,13 @@ HTML Document Generation
execute the following command in PHPCap's root directory:
php generate-html-docs.php
Tagging Releases
-Releases should be tagged in accordance with semantic versioning:
+
Releases should be tagged in accordance with semantic versioning:
http://semver.org/
Developer Dependencies
PHPCap uses a few development dependencies.
To check for out of date dependencies, use:
composer outdated --direct
-The "--direct" option above only checks dependencies directly used by PHPCap (i.e., specified in the
+
The "--direct" option above only checks dependencies directly used by PHPCap (i.e., specified in the
composer.json file).