diff --git a/README.md b/README.md
index 8a5ff5c..c9671ae 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,15 @@
-# quant-php/quant
+# quantphp
+all-purpose library for a general-purpose scripting language.
+quant is a library for PHP >= 8.2. It is a result of [conjoon](https://conjoon.org) and several other open / closed
+source projects, where functionality has proven useful to justify a refactoring into a shared library.
-## Installation
+## Installation
```bash
-$ composer require quant-php/quant
-```
\ No newline at end of file
+$ composer require quant/quant
+```
+
+## Documentation
+The docs for the project can be found at https://quant-php.dev.
+
diff --git a/composer.json b/composer.json
index 23568ca..2f042c7 100644
--- a/composer.json
+++ b/composer.json
@@ -22,7 +22,9 @@
"require-dev": {
"phpunit/phpunit": "^10.1",
"phpstan/phpstan": "^1.10",
- "squizlabs/php_codesniffer": "^3.7"
+ "squizlabs/php_codesniffer": "^3.7",
+ "phpstan/extension-installer": "^1.3",
+ "quant/phpstan": "^1.0"
},
"autoload": {
"psr-4": {
@@ -31,5 +33,10 @@
"exclude-from-classmap": [
"**/Tests/"
]
+ },
+ "config": {
+ "allow-plugins": {
+ "phpstan/extension-installer": true
+ }
}
}
diff --git a/composer.lock b/composer.lock
index 7d063d3..04de242 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": "9accf97b5489da705f32882df7e845ad",
+ "content-hash": "e555e1750700aa5b3fb6e334d994b6e4",
"packages": [],
"packages-dev": [
{
@@ -68,25 +68,27 @@
},
{
"name": "nikic/php-parser",
- "version": "v4.15.4",
+ "version": "v5.0.0",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290"
+ "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/6bb5176bc4af8bcb7d926f88718db9b96a2d4290",
- "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4a21235f7e56e713259a6f76bf4b5ea08502b9dc",
+ "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc",
"shasum": ""
},
"require": {
+ "ext-ctype": "*",
+ "ext-json": "*",
"ext-tokenizer": "*",
- "php": ">=7.0"
+ "php": ">=7.4"
},
"require-dev": {
"ircmaxell/php-yacc": "^0.0.7",
- "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
+ "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
},
"bin": [
"bin/php-parse"
@@ -94,7 +96,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.9-dev"
+ "dev-master": "5.0-dev"
}
},
"autoload": {
@@ -118,9 +120,9 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.4"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.0"
},
- "time": "2023-03-05T19:49:14+00:00"
+ "time": "2024-01-07T17:17:35+00:00"
},
{
"name": "phar-io/manifest",
@@ -233,18 +235,62 @@
},
"time": "2022-02-21T01:04:05+00:00"
},
+ {
+ "name": "phpstan/extension-installer",
+ "version": "1.3.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpstan/extension-installer.git",
+ "reference": "f45734bfb9984c6c56c4486b71230355f066a58a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpstan/extension-installer/zipball/f45734bfb9984c6c56c4486b71230355f066a58a",
+ "reference": "f45734bfb9984c6c56c4486b71230355f066a58a",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^2.0",
+ "php": "^7.2 || ^8.0",
+ "phpstan/phpstan": "^1.9.0"
+ },
+ "require-dev": {
+ "composer/composer": "^2.0",
+ "php-parallel-lint/php-parallel-lint": "^1.2.0",
+ "phpstan/phpstan-strict-rules": "^0.11 || ^0.12 || ^1.0"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "PHPStan\\ExtensionInstaller\\Plugin"
+ },
+ "autoload": {
+ "psr-4": {
+ "PHPStan\\ExtensionInstaller\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Composer plugin for automatic installation of PHPStan extensions",
+ "support": {
+ "issues": "https://github.com/phpstan/extension-installer/issues",
+ "source": "https://github.com/phpstan/extension-installer/tree/1.3.1"
+ },
+ "time": "2023-05-24T08:59:17+00:00"
+ },
{
"name": "phpstan/phpstan",
- "version": "1.10.15",
+ "version": "1.10.56",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
- "reference": "762c4dac4da6f8756eebb80e528c3a47855da9bd"
+ "reference": "27816a01aea996191ee14d010f325434c0ee76fa"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/762c4dac4da6f8756eebb80e528c3a47855da9bd",
- "reference": "762c4dac4da6f8756eebb80e528c3a47855da9bd",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/27816a01aea996191ee14d010f325434c0ee76fa",
+ "reference": "27816a01aea996191ee14d010f325434c0ee76fa",
"shasum": ""
},
"require": {
@@ -293,27 +339,27 @@
"type": "tidelift"
}
],
- "time": "2023-05-09T15:28:01+00:00"
+ "time": "2024-01-15T10:43:00+00:00"
},
{
"name": "phpunit/php-code-coverage",
- "version": "10.1.1",
+ "version": "10.1.11",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "884a0da7f9f46f28b2cb69134217fd810b793974"
+ "reference": "78c3b7625965c2513ee96569a4dbb62601784145"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/884a0da7f9f46f28b2cb69134217fd810b793974",
- "reference": "884a0da7f9f46f28b2cb69134217fd810b793974",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/78c3b7625965c2513ee96569a4dbb62601784145",
+ "reference": "78c3b7625965c2513ee96569a4dbb62601784145",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-libxml": "*",
"ext-xmlwriter": "*",
- "nikic/php-parser": "^4.15",
+ "nikic/php-parser": "^4.18 || ^5.0",
"php": ">=8.1",
"phpunit/php-file-iterator": "^4.0",
"phpunit/php-text-template": "^3.0",
@@ -363,7 +409,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/10.1.1"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.11"
},
"funding": [
{
@@ -371,20 +417,20 @@
"type": "github"
}
],
- "time": "2023-04-17T12:15:40+00:00"
+ "time": "2023-12-21T15:38:30+00:00"
},
{
"name": "phpunit/php-file-iterator",
- "version": "4.0.2",
+ "version": "4.1.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "5647d65443818959172645e7ed999217360654b6"
+ "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/5647d65443818959172645e7ed999217360654b6",
- "reference": "5647d65443818959172645e7ed999217360654b6",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a95037b6d9e608ba092da1b23931e537cadc3c3c",
+ "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c",
"shasum": ""
},
"require": {
@@ -424,7 +470,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/4.0.2"
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.1.0"
},
"funding": [
{
@@ -432,7 +478,7 @@
"type": "github"
}
],
- "time": "2023-05-07T09:13:23+00:00"
+ "time": "2023-08-31T06:24:48+00:00"
},
{
"name": "phpunit/php-invoker",
@@ -499,16 +545,16 @@
},
{
"name": "phpunit/php-text-template",
- "version": "3.0.0",
+ "version": "3.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-text-template.git",
- "reference": "9f3d3709577a527025f55bcf0f7ab8052c8bb37d"
+ "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/9f3d3709577a527025f55bcf0f7ab8052c8bb37d",
- "reference": "9f3d3709577a527025f55bcf0f7ab8052c8bb37d",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/0c7b06ff49e3d5072f057eb1fa59258bf287a748",
+ "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748",
"shasum": ""
},
"require": {
@@ -546,7 +592,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-text-template/issues",
- "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.0"
+ "security": "https://github.com/sebastianbergmann/php-text-template/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.1"
},
"funding": [
{
@@ -554,7 +601,7 @@
"type": "github"
}
],
- "time": "2023-02-03T06:56:46+00:00"
+ "time": "2023-08-31T14:07:24+00:00"
},
{
"name": "phpunit/php-timer",
@@ -617,16 +664,16 @@
},
{
"name": "phpunit/phpunit",
- "version": "10.1.3",
+ "version": "10.5.9",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "2379ebafc1737e71cdc84f402acb6b7f04198b9d"
+ "reference": "0bd663704f0165c9e76fe4f06ffa6a1ca727fdbe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/2379ebafc1737e71cdc84f402acb6b7f04198b9d",
- "reference": "2379ebafc1737e71cdc84f402acb6b7f04198b9d",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0bd663704f0165c9e76fe4f06ffa6a1ca727fdbe",
+ "reference": "0bd663704f0165c9e76fe4f06ffa6a1ca727fdbe",
"shasum": ""
},
"require": {
@@ -640,7 +687,7 @@
"phar-io/manifest": "^2.0.3",
"phar-io/version": "^3.0.2",
"php": ">=8.1",
- "phpunit/php-code-coverage": "^10.1.1",
+ "phpunit/php-code-coverage": "^10.1.5",
"phpunit/php-file-iterator": "^4.0",
"phpunit/php-invoker": "^4.0",
"phpunit/php-text-template": "^3.0",
@@ -650,8 +697,8 @@
"sebastian/comparator": "^5.0",
"sebastian/diff": "^5.0",
"sebastian/environment": "^6.0",
- "sebastian/exporter": "^5.0",
- "sebastian/global-state": "^6.0",
+ "sebastian/exporter": "^5.1",
+ "sebastian/global-state": "^6.0.1",
"sebastian/object-enumerator": "^5.0",
"sebastian/recursion-context": "^5.0",
"sebastian/type": "^4.0",
@@ -666,7 +713,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "10.1-dev"
+ "dev-main": "10.5-dev"
}
},
"autoload": {
@@ -698,7 +745,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/10.1.3"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.9"
},
"funding": [
{
@@ -714,7 +761,71 @@
"type": "tidelift"
}
],
- "time": "2023-05-11T05:16:22+00:00"
+ "time": "2024-01-22T14:35:40+00:00"
+ },
+ {
+ "name": "quant/phpstan",
+ "version": "1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/quant-php/phpstan.git",
+ "reference": "762f565d861e184805c428da801ea79ad835abbb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/quant-php/phpstan/zipball/762f565d861e184805c428da801ea79ad835abbb",
+ "reference": "762f565d861e184805c428da801ea79ad835abbb",
+ "shasum": ""
+ },
+ "require": {
+ "composer-runtime-api": ">=2.1",
+ "php": "^8.2"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^10.1",
+ "quant/core": "^1.0",
+ "squizlabs/php_codesniffer": "^3.7"
+ },
+ "type": "phpstan-extension",
+ "extra": {
+ "phpstan": {
+ "includes": [
+ "extension.neon"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Quant\\PHPStan\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Thorsten Suckow-Homberg",
+ "email": "thorsten@suckow-homberg.de",
+ "homepage": "https://thorsten.suckow-homberg.de"
+ }
+ ],
+ "description": "phpstan extensions for quant",
+ "homepage": "https://quant-php.dev/docs/packages/quant/phpstan",
+ "keywords": [
+ "PHPStan",
+ "extension",
+ "quant"
+ ],
+ "support": {
+ "issues": "https://github.com/quant-php/phpstan/issues",
+ "source": "https://github.com/quant-php/phpstan/tree/1.0"
+ },
+ "time": "2024-01-23T18:31:17+00:00"
},
{
"name": "sebastian/cli-parser",
@@ -885,16 +996,16 @@
},
{
"name": "sebastian/comparator",
- "version": "5.0.0",
+ "version": "5.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "72f01e6586e0caf6af81297897bd112eb7e9627c"
+ "reference": "2db5010a484d53ebf536087a70b4a5423c102372"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/72f01e6586e0caf6af81297897bd112eb7e9627c",
- "reference": "72f01e6586e0caf6af81297897bd112eb7e9627c",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2db5010a484d53ebf536087a70b4a5423c102372",
+ "reference": "2db5010a484d53ebf536087a70b4a5423c102372",
"shasum": ""
},
"require": {
@@ -905,7 +1016,7 @@
"sebastian/exporter": "^5.0"
},
"require-dev": {
- "phpunit/phpunit": "^10.0"
+ "phpunit/phpunit": "^10.3"
},
"type": "library",
"extra": {
@@ -949,7 +1060,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/comparator/issues",
- "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.0"
+ "security": "https://github.com/sebastianbergmann/comparator/security/policy",
+ "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.1"
},
"funding": [
{
@@ -957,24 +1069,24 @@
"type": "github"
}
],
- "time": "2023-02-03T07:07:16+00:00"
+ "time": "2023-08-14T13:18:12+00:00"
},
{
"name": "sebastian/complexity",
- "version": "3.0.0",
+ "version": "3.2.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/complexity.git",
- "reference": "e67d240970c9dc7ea7b2123a6d520e334dd61dc6"
+ "reference": "68ff824baeae169ec9f2137158ee529584553799"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/e67d240970c9dc7ea7b2123a6d520e334dd61dc6",
- "reference": "e67d240970c9dc7ea7b2123a6d520e334dd61dc6",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799",
+ "reference": "68ff824baeae169ec9f2137158ee529584553799",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.10",
+ "nikic/php-parser": "^4.18 || ^5.0",
"php": ">=8.1"
},
"require-dev": {
@@ -983,7 +1095,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.0-dev"
+ "dev-main": "3.2-dev"
}
},
"autoload": {
@@ -1006,7 +1118,8 @@
"homepage": "https://github.com/sebastianbergmann/complexity",
"support": {
"issues": "https://github.com/sebastianbergmann/complexity/issues",
- "source": "https://github.com/sebastianbergmann/complexity/tree/3.0.0"
+ "security": "https://github.com/sebastianbergmann/complexity/security/policy",
+ "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0"
},
"funding": [
{
@@ -1014,20 +1127,20 @@
"type": "github"
}
],
- "time": "2023-02-03T06:59:47+00:00"
+ "time": "2023-12-21T08:37:17+00:00"
},
{
"name": "sebastian/diff",
- "version": "5.0.3",
+ "version": "5.1.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "912dc2fbe3e3c1e7873313cc801b100b6c68c87b"
+ "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/912dc2fbe3e3c1e7873313cc801b100b6c68c87b",
- "reference": "912dc2fbe3e3c1e7873313cc801b100b6c68c87b",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/fbf413a49e54f6b9b17e12d900ac7f6101591b7f",
+ "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f",
"shasum": ""
},
"require": {
@@ -1040,7 +1153,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "5.0-dev"
+ "dev-main": "5.1-dev"
}
},
"autoload": {
@@ -1073,7 +1186,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/diff/issues",
"security": "https://github.com/sebastianbergmann/diff/security/policy",
- "source": "https://github.com/sebastianbergmann/diff/tree/5.0.3"
+ "source": "https://github.com/sebastianbergmann/diff/tree/5.1.0"
},
"funding": [
{
@@ -1081,7 +1194,7 @@
"type": "github"
}
],
- "time": "2023-05-01T07:48:21+00:00"
+ "time": "2023-12-22T10:55:06+00:00"
},
{
"name": "sebastian/environment",
@@ -1149,16 +1262,16 @@
},
{
"name": "sebastian/exporter",
- "version": "5.0.0",
+ "version": "5.1.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "f3ec4bf931c0b31e5b413f5b4fc970a7d03338c0"
+ "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/f3ec4bf931c0b31e5b413f5b4fc970a7d03338c0",
- "reference": "f3ec4bf931c0b31e5b413f5b4fc970a7d03338c0",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/64f51654862e0f5e318db7e9dcc2292c63cdbddc",
+ "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc",
"shasum": ""
},
"require": {
@@ -1172,7 +1285,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "5.0-dev"
+ "dev-main": "5.1-dev"
}
},
"autoload": {
@@ -1214,7 +1327,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
- "source": "https://github.com/sebastianbergmann/exporter/tree/5.0.0"
+ "security": "https://github.com/sebastianbergmann/exporter/security/policy",
+ "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.1"
},
"funding": [
{
@@ -1222,20 +1336,20 @@
"type": "github"
}
],
- "time": "2023-02-03T07:06:49+00:00"
+ "time": "2023-09-24T13:22:09+00:00"
},
{
"name": "sebastian/global-state",
- "version": "6.0.0",
+ "version": "6.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "aab257c712de87b90194febd52e4d184551c2d44"
+ "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/aab257c712de87b90194febd52e4d184551c2d44",
- "reference": "aab257c712de87b90194febd52e4d184551c2d44",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/7ea9ead78f6d380d2a667864c132c2f7b83055e4",
+ "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4",
"shasum": ""
},
"require": {
@@ -1275,7 +1389,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/global-state/issues",
- "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.0"
+ "security": "https://github.com/sebastianbergmann/global-state/security/policy",
+ "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.1"
},
"funding": [
{
@@ -1283,24 +1398,24 @@
"type": "github"
}
],
- "time": "2023-02-03T07:07:38+00:00"
+ "time": "2023-07-19T07:19:23+00:00"
},
{
"name": "sebastian/lines-of-code",
- "version": "2.0.0",
+ "version": "2.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/lines-of-code.git",
- "reference": "17c4d940ecafb3d15d2cf916f4108f664e28b130"
+ "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/17c4d940ecafb3d15d2cf916f4108f664e28b130",
- "reference": "17c4d940ecafb3d15d2cf916f4108f664e28b130",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0",
+ "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.10",
+ "nikic/php-parser": "^4.18 || ^5.0",
"php": ">=8.1"
},
"require-dev": {
@@ -1332,7 +1447,8 @@
"homepage": "https://github.com/sebastianbergmann/lines-of-code",
"support": {
"issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
- "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.0"
+ "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy",
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2"
},
"funding": [
{
@@ -1340,7 +1456,7 @@
"type": "github"
}
],
- "time": "2023-02-03T07:08:02+00:00"
+ "time": "2023-12-21T08:38:20+00:00"
},
{
"name": "sebastian/object-enumerator",
@@ -1628,16 +1744,16 @@
},
{
"name": "squizlabs/php_codesniffer",
- "version": "3.7.2",
+ "version": "3.8.1",
"source": {
"type": "git",
- "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
- "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879"
+ "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git",
+ "reference": "14f5fff1e64118595db5408e946f3a22c75807f7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/ed8e00df0a83aa96acf703f8c2979ff33341f879",
- "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879",
+ "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/14f5fff1e64118595db5408e946f3a22c75807f7",
+ "reference": "14f5fff1e64118595db5408e946f3a22c75807f7",
"shasum": ""
},
"require": {
@@ -1647,11 +1763,11 @@
"php": ">=5.4.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
+ "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4"
},
"bin": [
- "bin/phpcs",
- "bin/phpcbf"
+ "bin/phpcbf",
+ "bin/phpcs"
],
"type": "library",
"extra": {
@@ -1666,35 +1782,58 @@
"authors": [
{
"name": "Greg Sherwood",
- "role": "lead"
+ "role": "Former lead"
+ },
+ {
+ "name": "Juliette Reinders Folmer",
+ "role": "Current lead"
+ },
+ {
+ "name": "Contributors",
+ "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.",
- "homepage": "https://github.com/squizlabs/PHP_CodeSniffer",
+ "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer",
"keywords": [
"phpcs",
"standards",
"static analysis"
],
"support": {
- "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues",
- "source": "https://github.com/squizlabs/PHP_CodeSniffer",
- "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki"
+ "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues",
+ "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy",
+ "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer",
+ "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki"
},
- "time": "2023-02-22T23:07:41+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/PHPCSStandards",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/jrfnl",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/php_codesniffer",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-01-11T20:47:48+00:00"
},
{
"name": "theseer/tokenizer",
- "version": "1.2.1",
+ "version": "1.2.2",
"source": {
"type": "git",
"url": "https://github.com/theseer/tokenizer.git",
- "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e"
+ "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e",
- "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
+ "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
"shasum": ""
},
"require": {
@@ -1723,7 +1862,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.1"
+ "source": "https://github.com/theseer/tokenizer/tree/1.2.2"
},
"funding": [
{
@@ -1731,7 +1870,7 @@
"type": "github"
}
],
- "time": "2021-07-28T10:34:58+00:00"
+ "time": "2023-11-20T00:12:19+00:00"
}
],
"aliases": [],
@@ -1740,9 +1879,9 @@
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
- "php": ">=8.1",
+ "php": "^8.2",
"composer-runtime-api": ">=2.1"
},
"platform-dev": [],
- "plugin-api-version": "2.3.0"
+ "plugin-api-version": "2.6.0"
}
diff --git a/phpstan.neon b/phpstan.neon
index 764f509..b0f0ebc 100644
--- a/phpstan.neon
+++ b/phpstan.neon
@@ -3,6 +3,7 @@ parameters:
excludePaths:
- /*/vendor/*
- /*/Benchmarks/*
+ - /*/PHPStan/Tests/Data/*
paths:
- src
diff --git a/phpunit.xml b/phpunit.xml
index 4c3f928..66d3a21 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -13,6 +13,9 @@
./src/Quant/Core/Tests/
+
+ ./src/Quant/PHPStan/Tests/
+
diff --git a/src/Quant/Core/AbstractList.php b/src/Quant/Core/AbstractList.php
new file mode 100644
index 0000000..9a8b35e
--- /dev/null
+++ b/src/Quant/Core/AbstractList.php
@@ -0,0 +1,287 @@
+
+ *
+ * For full copyright and license information, please consult the LICENSE-file distributed
+ * with this source code.
+ */
+
+declare(strict_types=1);
+
+namespace Quant\Core;
+
+use ArrayAccess;
+use Quant\Core\Contract\Arrayable;
+use Countable;
+use Iterator;
+use OutOfBoundsException;
+use Quant\Core\Contract\Comparable;
+use Quant\Core\Contract\Equatable;
+use TypeError;
+
+/**
+ * @template TValue
+ * @implements Iterator
+ * @implements ArrayAccess
+ */
+abstract class AbstractList implements Arrayable, ArrayAccess, Iterator, Countable, Equatable
+{
+ /**
+ * @var array
+ */
+ protected array $data = [];
+
+ /**
+ * \Iterator Interface
+ * @var int
+ */
+ protected int $position = 0;
+
+
+ final public function __construct()
+ {
+ }
+
+
+ /**
+ * @param mixed ...$items
+ *
+ * @return static
+ */
+ public static function make(...$items): static
+ {
+ $self = new static();
+
+ foreach ($items as $item) {
+ $self[] = $item;
+ }
+
+ return $self;
+ }
+
+
+ abstract public function getType(): string;
+
+
+ /**
+ * @param callable $mapFn
+ *
+ * @return static
+ */
+ public function map(callable $mapFn): static
+ {
+ array_map($mapFn, $this->data);
+
+ return $this;
+ }
+
+
+ /**
+ * @param callable $findFn
+ *
+ * @return null|static
+ */
+ public function findBy(callable $findFn): null|static
+ {
+ $matches = [];
+ foreach ($this->data as $resource) {
+ if ($findFn($resource) === true) {
+ $matches[] = $resource;
+ }
+ }
+
+ return count($matches) === 0 ? null : static::make(...$matches);
+ }
+
+
+ /**
+ * @return ?TValue
+ */
+ public function peek(): mixed
+ {
+ $count = count($this->data);
+ return !$count ? null : $this->data[$count - 1];
+ }
+
+
+ public function equals(Equatable $target): bool
+ {
+ $thisClass = get_class($this);
+
+ if (!($target instanceof $thisClass)) {
+ return false;
+ }
+
+ /**
+ * @var AbstractList $td
+ */
+ $td = $target->toArray();
+ if (count($td) !== count($this)) {
+ return false;
+ }
+
+ $type = $this->getType();
+ $isEquatable = is_a($type, Equatable::class, true);
+ $isComparable = is_a($type, Comparable::class, true);
+
+ foreach ($td as $i => $entity) {
+ if ($isEquatable) {
+ if ($entity->equals($this[$i]) === false) {
+ return false;
+ }
+ } elseif ($isComparable) {
+ if ($entity->compareTo($this[$i]) !== 0) {
+ return false;
+ }
+ } else {
+ if (!$this->compareItems($this[$i], $entity)) {
+ return false;
+ }
+ }
+ }
+
+ return true;
+ }
+
+
+ protected function compareItems(mixed $lft, mixed $rgt): bool
+ {
+ return $lft === $rgt;
+ }
+
+ /**
+ * @param mixed $offset
+ * @param mixed $value
+ * @return void
+ *
+ * @throws OutOfBoundsException
+ */
+ private function doInsert(mixed $offset, mixed $value)
+ {
+ if (!is_null($offset) && !is_int($offset)) {
+ throw new OutOfBoundsException(
+ "expected integer key for \"offset\", " .
+ "but got type: " . (gettype($offset))
+ );
+ }
+
+ if (is_null($offset)) {
+ $this->data[] = $value;
+ } else {
+ $this->data[$offset] = $value;
+ }
+ }
+
+ /**
+ * @throws TypeError
+ */
+ private function assertTypeFor(mixed $value): bool
+ {
+ $entityType = $this->getType();
+
+ // instanceof has higher precedence, so
+ // (!$value instanceof $entityType)
+ // would also be a valid expression
+ if (!($value instanceof $entityType)) {
+ /** @var object $value */
+ throw new TypeError(
+ "Expected type \"$entityType\" for value-argument, got " . gettype($value)
+ );
+ }
+
+ return true;
+ }
+
+
+// -------------------------
+// ArrayAccess Interface
+// -------------------------
+
+ /**
+ * @throws TypeError|OutOfBoundsException if $value is not of the type defined
+ * with this getType, or f $offset is not an int
+ */
+ public function offsetSet(mixed $offset, mixed $value): void
+ {
+ $this->assertTypeFor($value);
+ $this->doInsert($offset, $value);
+ }
+
+
+ public function offsetExists($offset): bool
+ {
+ return isset($this->data[$offset]);
+ }
+
+ public function offsetUnset($offset): void
+ {
+ unset($this->data[$offset]);
+ }
+
+
+ public function offsetGet($offset): mixed
+ {
+ return $this->data[$offset] ?? null;
+ }
+
+
+// --------------------------
+// Iterator Interface
+// --------------------------
+
+ public function rewind(): void
+ {
+ $this->position = 0;
+ }
+
+ public function key(): int
+ {
+ return $this->position;
+ }
+
+ public function current(): mixed
+ {
+ return $this->data[$this->position];
+ }
+
+ public function next(): void
+ {
+ $this->position++;
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function valid(): bool
+ {
+ return isset($this->data[$this->position]);
+ }
+
+// --------------------------
+// Iterator Interface
+// --------------------------
+
+ /**
+ * @return int
+ */
+ public function count(): int
+ {
+ return count($this->data);
+ }
+
+
+// --------------------------
+// Arrayable interface
+// --------------------------
+
+ /**
+ * @return array
+ */
+ public function toArray(): array
+ {
+ return $this->data;
+ }
+}
diff --git a/src/Quant/Core/Contract/Arrayable.php b/src/Quant/Core/Contract/Arrayable.php
new file mode 100644
index 0000000..fe4f8eb
--- /dev/null
+++ b/src/Quant/Core/Contract/Arrayable.php
@@ -0,0 +1,24 @@
+
+ *
+ * For full copyright and license information, please consult the LICENSE-file distributed
+ * with this source code.
+ */
+
+declare(strict_types=1);
+
+namespace Quant\Core\Contract;
+
+interface Arrayable
+{
+ /**
+ * Returns an array representation of an instance of this class.
+ *
+ * @return array
+ */
+ public function toArray(): array;
+}
diff --git a/src/Quant/Core/Contract/Comparable.php b/src/Quant/Core/Contract/Comparable.php
new file mode 100644
index 0000000..2b18c78
--- /dev/null
+++ b/src/Quant/Core/Contract/Comparable.php
@@ -0,0 +1,19 @@
+
+ *
+ * For full copyright and license information, please consult the LICENSE-file distributed
+ * with this source code.
+ */
+
+declare(strict_types=1);
+
+namespace Quant\Core\Contract;
+
+interface Comparable
+{
+ public function compareTo(Comparable $target): int;
+}
diff --git a/src/Quant/Core/Contract/Equatable.php b/src/Quant/Core/Contract/Equatable.php
new file mode 100644
index 0000000..8fcbcbd
--- /dev/null
+++ b/src/Quant/Core/Contract/Equatable.php
@@ -0,0 +1,19 @@
+
+ *
+ * For full copyright and license information, please consult the LICENSE-file distributed
+ * with this source code.
+ */
+
+declare(strict_types=1);
+
+namespace Quant\Core\Contract;
+
+interface Equatable
+{
+ public function equals(Equatable $target): bool;
+}
diff --git a/src/Quant/Core/README.md b/src/Quant/Core/README.md
index 8368e1b..0ddd859 100644
--- a/src/Quant/Core/README.md
+++ b/src/Quant/Core/README.md
@@ -18,7 +18,7 @@ $ composer require quant/core
## Resources
-* [Documentation](https://www.quant-php.dev/docs/api/packages/quant/core)
+* [Documentation](https://www.quant-php.dev/docs/packages/quant/core)
* [Report issues](https://github.com/quant-php/quant/issues) and
[send Pull Requests](https://github.com/quant-php/quant/pulls)
in the [main quant repository](https://github.com/quant-php/quant)
diff --git a/src/Quant/Core/Tests/AbstractListTest.php b/src/Quant/Core/Tests/AbstractListTest.php
new file mode 100644
index 0000000..06ec5a4
--- /dev/null
+++ b/src/Quant/Core/Tests/AbstractListTest.php
@@ -0,0 +1,415 @@
+
+ *
+ * For full copyright and license information, please consult the LICENSE-file distributed
+ * with this source code.
+ */
+
+declare(strict_types=1);
+
+namespace Quant\Core\Tests;
+
+use ArrayAccess;
+use Quant\Core\AbstractList;
+use Countable;
+use Iterator;
+use OutOfBoundsException;
+use Quant\Core\Contract\Comparable;
+use Quant\Core\Contract\Equatable;
+use Quant\Core\Tests\Resources\Entity;
+use Quant\Core\Tests\Resources\EntityList;
+use stdClass;
+use PHPUnit\Framework\TestCase;
+use TypeError;
+use UnhandledMatchError;
+
+class AbstractListTest extends TestCase
+{
+// ---------------------
+// Tests
+// ---------------------
+
+ /**
+ * Tests constructor
+ * @return void
+ */
+ public function testConstructor(): void
+ {
+
+ $abstractList = $this->getAbstractListClass();
+ $this->assertSame(stdClass::class, $abstractList->getType());
+ $this->assertInstanceOf(Countable::class, $abstractList);
+ $this->assertInstanceOf(Equatable::class, $abstractList);
+ $this->assertInstanceOf(ArrayAccess::class, $abstractList);
+ $this->assertInstanceOf(Iterator::class, $abstractList);
+ }
+
+ /**
+ * Tests OutOfBoundsException /w string as key
+ * @return void
+ */
+ public function testOffsetSetWithStringAndOutOfBoundsException(): void
+ {
+ $this->expectException(OutOfBoundsException::class);
+
+ $abstractList = $this->getAbstractListClass();
+
+ /* @phpstan-ignore-next-line */
+ $abstractList["1"] = new stdClass();
+ }
+
+
+ /**
+ * Tests ArrayAccess /w type exception
+ * @return void
+ */
+ public function testArrayAccessException(): void
+ {
+ $this->expectException(TypeError::class);
+
+ $abstractList = $this->getAbstractListClass();
+
+ /* @phpstan-ignore-next-line */
+ $abstractList[] = "foo";
+ }
+
+
+ /**
+ * Tests ArrayAccess
+ * @return void
+ */
+ public function testArrayAccessAndCountable(): void
+ {
+ $abstractList = $this->getAbstractListClass();
+
+ $cmpList = [
+ new stdClass(),
+ new stdClass()
+ ];
+
+ $abstractList[] = $cmpList[0];
+ $abstractList[] = $cmpList[1];
+
+ $this->assertSame(2, count($abstractList));
+
+ foreach ($abstractList as $key => $item) {
+ $this->assertSame($cmpList[$key], $item);
+ }
+ }
+
+
+ /**
+ * Tests Arrayable
+ * @return void
+ */
+ public function testToArray(): void
+ {
+ $abstractList = $this->getAbstractListClass();
+
+ $cmpList = [
+ new stdClass(),
+ new stdClass()
+ ];
+
+ $abstractList[] = $cmpList[0];
+ $abstractList[] = $cmpList[1];
+
+ $this->assertEquals([
+ $abstractList[0],
+ $abstractList[1]
+ ], $abstractList->toArray());
+ }
+
+
+ /**
+ * Tests map()
+ * @return void
+ */
+ public function testMap(): void
+ {
+ $abstractList = $this->getAbstractListClass();
+
+ $cmpList = [
+ new stdClass(),
+ new stdClass()
+ ];
+
+ $cmpList[0]->foo = 1;
+ $cmpList[0]->bar = 2;
+ $cmpList[1]->foo = 3;
+ $cmpList[1]->bar = 4;
+
+ $abstractList[] = $cmpList[0];
+ $abstractList[] = $cmpList[1];
+
+ $mock = $this->getMockBuilder(stdClass::class)
+ ->addMethods(["mapCallback"])
+ ->getMock();
+
+
+ $matcher = $this->exactly(2);
+ $mock->expects($matcher)
+ ->method("mapCallback")
+ ->willReturnCallback(
+ function (stdClass $param) use ($cmpList, $matcher): stdClass {
+ $int = $matcher->numberOfInvocations() - 1;
+ $cmpList[$int]->foo *= 2;
+ return $cmpList[$int];
+ }
+ );
+
+
+ /** @phpstan-ignore-next-line */
+ $cb = $mock->mapCallback(...);
+
+ $mappedList = $abstractList->map($cb);
+
+ foreach ($mappedList as $index => $item) {
+ $this->assertSame($cmpList[$index], $item);
+ $this->assertSame([2, 6][$index], $item->foo);
+ }
+ }
+
+
+ /**
+ * Tests findBy()
+ * @return void
+ */
+ public function testFindBy(): void
+ {
+ $abstractList = $this->getAbstractListClass();
+
+ $cmpList = [
+ new stdClass(),
+ new stdClass()
+ ];
+
+ $cmpList[0]->foo = 1;
+ $cmpList[0]->bar = 2;
+ $cmpList[1]->foo = 3;
+ $cmpList[1]->bar = 4;
+
+ $abstractList[] = $cmpList[0];
+ $abstractList[] = $cmpList[1];
+
+ $mock = $this->getMockBuilder(stdClass::class)
+ ->addMethods(["findCallback"])
+ ->getMock();
+
+ $matcher = $this->exactly(2);
+ $mock->expects($matcher)
+ ->method("findCallback")
+ ->willReturnCallback(
+ fn (stdClass $param): bool => match ($matcher->numberOfInvocations()) {
+ 1 => false,
+ 2 => true,
+ default => throw new UnhandledMatchError()
+ }
+ );
+
+ /** @phpstan-ignore-next-line */
+ $cb = $mock->findCallback(...);
+
+ $this->assertSame(
+ $cmpList[1],
+ /** @phpstan-ignore-next-line */
+ $abstractList->findBy($cb)[0]
+ );
+ }
+
+ /**
+ * Tests peek()
+ * @return void
+ */
+ public function testPeek(): void
+ {
+ $abstractList = $this->getAbstractListClass();
+
+ $this->assertNull($abstractList->peek());
+
+ $one = new stdClass();
+ $two = new stdClass();
+
+ $abstractList[] = $one;
+ $abstractList[] = $two;
+
+ $this->assertSame($two, $abstractList->peek());
+ }
+
+
+ /**
+ * Tests make()
+ * @return void
+ */
+ public function testMake(): void
+ {
+ $abstractList = new class extends AbstractList {
+ public function getType(): string
+ {
+ return stdClass::class;
+ }
+ public function equals(Equatable $target): bool
+ {
+ return true;
+ }
+ };
+
+ $one = new stdClass();
+ $two = new stdClass();
+
+ $list = $abstractList::make($one, $two);
+
+ $this->assertInstanceOf($abstractList::class, $list);
+
+ $this->assertSame($list[0], $one);
+ $this->assertSame($list[1], $two);
+ }
+
+
+ public function testEquals(): void
+ {
+ $entityEquatable = new class implements Equatable {
+ public int $a = 1;
+ public function equals(Equatable $target): bool
+ {
+ /* @phpstan-ignore-next-line */
+ return $this->a === $target->a;
+ }
+ };
+
+ $entityComparable = new class implements Comparable {
+ public int $a = 1;
+ public function compareTo(Comparable $target): int
+ {
+ /* @phpstan-ignore-next-line */
+ return $this->a === $target->a ? 0 : -1;
+ }
+ };
+
+ $equatableList = new class () extends AbstractList {
+ public function getType(): string
+ {
+ return Equatable::class;
+ }
+ };
+ $comparableList = new class () extends AbstractList {
+ public function getType(): string
+ {
+ return Comparable::class;
+ }
+ };
+
+ // eq
+ $eqA1 = new $entityEquatable();
+ $eqA2 = new $entityEquatable();
+ $eqB1 = new $entityEquatable();
+ $eqB2 = new $entityEquatable();
+
+ $listEqA = new $equatableList();
+ $listEqB = new $equatableList();
+ $this->assertTrue($listEqA->equals($listEqB));
+
+ $listEqA[] = $eqA1;
+ $listEqA[] = $eqA2;
+ $listEqB[] = $eqB1;
+ $this->assertFalse($listEqA->equals($listEqB));
+ $listEqB[] = $eqB2;
+
+ $this->assertTrue($listEqA->equals($listEqB));
+
+ $eqB2->a = 0;
+ $this->assertFalse($listEqA->equals($listEqB));
+
+
+ // cmp
+ $cmpA1 = new $entityComparable();
+ $cmpA2 = new $entityComparable();
+ $cmpB1 = new $entityComparable();
+ $cmpB2 = new $entityComparable();
+
+ $listCmpA = new $comparableList();
+ $listCmpB = new $comparableList();
+
+ $listCmpA[] = $cmpA1;
+ $listCmpA[] = $cmpA2;
+ $listCmpB[] = $cmpB1;
+ $this->assertFalse($listCmpA->equals($listCmpB));
+ $listCmpB[] = $cmpB2;
+
+ $this->assertTrue($listCmpA->equals($listCmpB));
+
+ $cmpB2->a = 0;
+ $this->assertFalse($listCmpA->equals($listCmpB));
+
+ // plain
+ $abstractListA = $this->getAbstractListClass();
+ $abstractListB = $this->getAbstractListClass();
+
+ $this->assertTrue($abstractListA->equals($abstractListB));
+
+ $itemA = new stdClass();
+ $itemB = new stdClass();
+
+ $abstractListA[] = $itemA;
+ $this->assertFalse($abstractListA->equals($abstractListB));
+
+ $abstractListB[] = $itemA;
+ $this->assertTrue($abstractListA->equals($abstractListB));
+
+ $abstractListB[] = $itemB;
+ $this->assertFalse($abstractListA->equals($abstractListB));
+ }
+
+
+ public function testDocs(): void
+ {
+
+ $listA = new EntityList();
+ $listA[] = new Entity("1");
+ $listA[] = new Entity("1");
+
+ $listB = new EntityList();
+ $listB[] = new Entity("1");
+ $listB[] = new Entity("2");
+
+ $this->assertFalse($listA->equals($listB));
+
+ $listC = EntityList::make(new Entity("3"), new Entity("4"));
+
+ $this->assertTrue($listC->map(fn(Entity $item): Entity => $item->setValue("1"))->equals($listA));
+
+ /**
+ * @var Entity $head
+ */
+ $head = $listB->peek();
+ $this->assertSame("2", $head->getValue());
+
+ $this->assertNull($listC->findBy(fn (Entity $item): bool => $item->getValue() === "a"));
+ $this->assertEquals(
+ $listC->findBy(fn (Entity $item): bool => $item->getValue() !== "a")?->toArray(),
+ [$listC[0], $listC[1]]
+ );
+ }
+
+
+// ---------------------
+// Helper Functions
+// ---------------------
+
+ /**
+ * @return AbstractList
+ */
+ protected function getAbstractListClass(): AbstractList
+ {
+ return new class () extends AbstractList {
+ public function getType(): string
+ {
+ return stdClass::class;
+ }
+ };
+ }
+}
diff --git a/src/Quant/Core/Tests/Contract/ComparableTest.php b/src/Quant/Core/Tests/Contract/ComparableTest.php
new file mode 100644
index 0000000..e058456
--- /dev/null
+++ b/src/Quant/Core/Tests/Contract/ComparableTest.php
@@ -0,0 +1,50 @@
+
+ *
+ * For full copyright and license information, please consult the LICENSE-file distributed
+ * with this source code.
+ */
+
+declare(strict_types=1);
+
+namespace Quant\Core\Tests;
+
+use PHPUnit\Framework\TestCase;
+use Quant\Core\Tests\Contract\Resources\Money;
+
+class ComparableTest extends TestCase
+{
+ public function testComparable(): void
+ {
+ $tests = [
+ [[10, 40], [10, 20], 1],
+ [[10, 40], [10, 40], 0],
+ [[10, 20], [10, 40], -1],
+ [[9, 20], [8, 40], 1],
+ [[3, 20], [8, 40], -1],
+ ];
+
+ foreach ($tests as $i => $test) {
+ $aAmount = $test[0][0];
+ $aCents = $test[0][1];
+ $bAmount = $test[1][0];
+ $bCents = $test[1][1];
+ $result = $test[2];
+
+ $moneyA = $this->getComparableClass($aAmount, $aCents);
+ $moneyB = $this->getComparableClass($bAmount, $bCents);
+
+ $this->assertSame($result, $moneyA->compareTo($moneyB));
+ }
+ }
+
+
+ protected function getComparableClass(int $amount, int $cent): Money
+ {
+ return new Money($amount, $cent);
+ }
+}
diff --git a/src/Quant/Core/Tests/Contract/Resources/Money.php b/src/Quant/Core/Tests/Contract/Resources/Money.php
new file mode 100644
index 0000000..347934d
--- /dev/null
+++ b/src/Quant/Core/Tests/Contract/Resources/Money.php
@@ -0,0 +1,49 @@
+
+ *
+ * For full copyright and license information, please consult the LICENSE-file distributed
+ * with this source code.
+ */
+
+declare(strict_types=1);
+
+namespace Quant\Core\Tests\Contract\Resources;
+
+use Quant\Core\Attribute\Getter;
+use Quant\Core\Contract\Comparable;
+use Quant\Core\Trait\AccessorTrait;
+
+class Money implements Comparable
+{
+ use AccessorTrait;
+
+ public function __construct(
+ #[Getter]
+ private int $amount,
+ #[Getter]
+ private int $cents
+ ) {
+ }
+
+ public function compareTo(Comparable $target): int
+ {
+ if (!($target instanceof Money)) {
+ return 1;
+ }
+
+ $aAmount = $this->getAmount();
+ $bAmount = $target->getAmount();
+
+ $aCents = $this->getCents();
+ $bCents = $target->getCents();
+
+
+ $c = ($aAmount === $bAmount ? 0 : ($aAmount < $bAmount ? -1 : 1));
+
+ return $c !== 0 ? $c : ($aCents < $bCents ? -1 : ($aCents > $bCents ? 1 : 0));
+ }
+}
diff --git a/src/Quant/Core/Tests/Resources/Entity.php b/src/Quant/Core/Tests/Resources/Entity.php
new file mode 100644
index 0000000..6686d16
--- /dev/null
+++ b/src/Quant/Core/Tests/Resources/Entity.php
@@ -0,0 +1,28 @@
+
+ *
+ * For full copyright and license information, please consult the LICENSE-file distributed
+ * with this source code.
+ */
+
+declare(strict_types=1);
+
+namespace Quant\Core\Tests\Resources;
+
+use Quant\Core\Attribute\Getter;
+use Quant\Core\Attribute\Setter;
+use Quant\Core\Trait\AccessorTrait;
+
+#[Getter] #[Setter]
+class Entity
+{
+ use AccessorTrait;
+
+ public function __construct(private string $value)
+ {
+ }
+}
diff --git a/src/Quant/Core/Tests/Resources/EntityList.php b/src/Quant/Core/Tests/Resources/EntityList.php
new file mode 100644
index 0000000..a6476eb
--- /dev/null
+++ b/src/Quant/Core/Tests/Resources/EntityList.php
@@ -0,0 +1,41 @@
+
+ *
+ * For full copyright and license information, please consult the LICENSE-file distributed
+ * with this source code.
+ */
+
+declare(strict_types=1);
+
+namespace Quant\Core\Tests\Resources;
+
+use Quant\Core\AbstractList;
+use stdClass;
+
+/**
+ * @extends AbstractList
+ */
+class EntityList extends AbstractList
+{
+ public function getType(): string
+ {
+ return Entity::class;
+ }
+
+ protected function compareItems(mixed $a, mixed $b): bool
+ {
+ if (!($a instanceof Entity) && !($b instanceof Entity)) {
+ return false;
+ }
+
+ /**
+ * @var Entity $a
+ * @var Entity $b
+ */
+ return $a->getValue() === $b->getValue();
+ }
+}
diff --git a/src/Quant/Core/Tests/Trait/AccessorTraitTest.php b/src/Quant/Core/Tests/Trait/AccessorTraitTest.php
index e615b6c..f918033 100644
--- a/src/Quant/Core/Tests/Trait/AccessorTraitTest.php
+++ b/src/Quant/Core/Tests/Trait/AccessorTraitTest.php
@@ -74,11 +74,24 @@ public function testSettersAndGettersForClass(): void
$this->assertSame("foo", $inst->getFoo());
$this->assertSame("bar", $inst->getBar());
- $this->assertSame("snafu", $inst->getSnafu());
$this->assertSame("foobar", $inst->getFoobar());
}
+ public function testGetSnafuModifierOverridden(): void
+ {
+ $inst = $this->createClassWithSetterAndGetterAttributes([
+ "foo" => "Hello World",
+ "bar" => "World Hello"
+ ]);
+
+ $this->expectException(BadMethodCallException::class);
+
+ /* @phpstan-ignore-next-line */
+ $inst->getSnafu();
+ }
+
+
public function testAccessorTraitWithDifferentValues(): void
{
$this->expectException(ValueError::class);
@@ -94,6 +107,8 @@ public function testGetProtectedPropertyOnA(): void
$this->expectException(BadMethodCallException::class);
$inst = $this->createA();
+
+ /* @phpstan-ignore-next-line */
$inst->getProtectedVar();
}
@@ -101,6 +116,8 @@ public function testSetProtectedPropertyOnA(): void
{
$this->expectException(BadMethodCallException::class);
$inst = $this->createA();
+
+ /* @phpstan-ignore-next-line */
$inst->setProtectedVar("foo");
}
@@ -134,22 +151,24 @@ public function testC(): void
"foo" => "Hello World"
];
- $inst = $this->createC($args_1);
+ $c = $this->createC($args_1);
- $inst->setPrivateVar(123);
- $this->assertSame(123, $inst->getPrivateVar());
+ $c->setPrivateVar(123);
+ $this->assertSame(123, $c->getPrivateVar());
+
+ $this->assertNotSame("updated", $c->proxyProtectedVar());
+ $c->setProxyProtectedVar("updated");
+ $this->assertSame("updated", $c->proxyProtectedVar());
- $this->assertNotSame("updated", $inst->proxyProtectedVar());
- $inst->setProxyProtectedVar("updated");
- $this->assertSame("updated", $inst->proxyProtectedVar());
+ $this->assertNotSame("new value", $c->getGuarded());
+ $c->setGuarded("new value");
+ $this->assertSame("new value", $c->getGuarded());
- $this->assertNotSame("new value", $inst->getGuarded());
- $inst->setGuarded("new value");
- $this->assertSame("new value", $inst->getGuarded());
+ $this->assertNotSame("new value", $c->getProtectedGuard());
+ $c->setProtectedGuard("will be ignored");
+ $this->assertSame("protected guard", $c->getProtectedGuard());
- $this->assertNotSame("new value", $inst->getProtectedGuard());
- $inst->setProtectedGuard("will be ignored");
- $this->assertSame("protected guard", $inst->getProtectedGuard());
+ $this->assertInstanceOf(A::class, $c->proxyAProtectedVar());
}
diff --git a/src/Quant/Core/Tests/Trait/Resources/A.php b/src/Quant/Core/Tests/Trait/Resources/A.php
index fc60a14..c6c1ec1 100644
--- a/src/Quant/Core/Tests/Trait/Resources/A.php
+++ b/src/Quant/Core/Tests/Trait/Resources/A.php
@@ -20,18 +20,6 @@
use ValueError;
/**
- * @method A setPrivateVar(int $b)
- * @method int getPrivateVar()
- * @method A setFoo(string $a)
- * @method A setFoobar(string $b)
- * @method string getFoo()
- * @method string getProtectedVar()
- * @method A setProtectedVar(string $a)
- * @method A setValueErrorTrigger(int $a).
- * @method bool isBool()
- * @method string getNotBool()
- * @method A setProtectedGuard(string $s)
- * @method string getProtectedGuard()
*/
class A
{
diff --git a/src/Quant/Core/Tests/Trait/Resources/B.php b/src/Quant/Core/Tests/Trait/Resources/B.php
index 53e6cb1..74f4d14 100644
--- a/src/Quant/Core/Tests/Trait/Resources/B.php
+++ b/src/Quant/Core/Tests/Trait/Resources/B.php
@@ -17,29 +17,14 @@
use Quant\Core\Attribute\Setter;
use Quant\Core\Lang\Modifier;
-/**
- * @method string getGuarded()
- * @method B setGuarded(string $f)
- *
- * @method bool isValid()
- * @method B setValid(bool $b)
- *
- * @method string getFoobar()
- * @method B setFoobar(string $s)
- *
- * @method B setPublicGuard(string $s)
- * @method string getPublicGuard()
- *
- */
class B extends A
{
- /* @phpstan-ignore-next-line */
#[Getter(Modifier::PRIVATE)] #[Setter(Modifier::PRIVATE)] private bool $valid = false;
#[Getter] #[Setter]
public string $foobar = "Ok";
- /* @phpstan-ignore-next-line */
+
#[Setter(Modifier::PUBLIC)] #[Getter(Modifier::PUBLIC)] private string $guarded = "";
/* @phpstan-ignore-next-line */
diff --git a/src/Quant/Core/Tests/Trait/Resources/C.php b/src/Quant/Core/Tests/Trait/Resources/C.php
index 8e6e668..2c5aeb6 100644
--- a/src/Quant/Core/Tests/Trait/Resources/C.php
+++ b/src/Quant/Core/Tests/Trait/Resources/C.php
@@ -22,4 +22,16 @@ protected function applyProtectedGuard(string $f): string
{
return "protected guard";
}
+
+ protected function proxyApplyPublicGuard(): string
+ {
+ $b = new B("");
+ return $b->applyPublicGuard("");
+ }
+
+ public function proxyAProtectedVar(): A
+ {
+ $b = new B("");
+ return $b->setProtectedVar($b->applyProtectedGuard("k"));
+ }
}
diff --git a/src/Quant/Core/Tests/Trait/Resources/ClassHasAttributes.php b/src/Quant/Core/Tests/Trait/Resources/ClassHasAttributes.php
index b920016..c719b21 100644
--- a/src/Quant/Core/Tests/Trait/Resources/ClassHasAttributes.php
+++ b/src/Quant/Core/Tests/Trait/Resources/ClassHasAttributes.php
@@ -18,19 +18,6 @@
use Quant\Core\Attribute\Getter;
use Quant\Core\Attribute\Setter;
-/**
- * @method ClassHasAttributes setFoo(string $a)
- * @method string getFoo()
- *
- * @method ClassHasAttributes setFoobar(string $b)
- * @method string getFoobar()
- *
- * @method ClassHasAttributes setSnafu(string $b)
- * @method string getSnafu()
- *
- * @method ClassHasAttributes setBar(string $b)
- * @method string getBar()
- */
#[Getter]
#[Setter]
class ClassHasAttributes
@@ -40,7 +27,7 @@ class ClassHasAttributes
#[Setter]
public string $foobar = "Ok";
- #[Getter]
+ #[Getter(Modifier::PRIVATE)]
private string $snafu;
public function __construct(
diff --git a/src/Quant/Core/Trait/AccessorTrait.php b/src/Quant/Core/Trait/AccessorTrait.php
index ea3cb6a..da57707 100644
--- a/src/Quant/Core/Trait/AccessorTrait.php
+++ b/src/Quant/Core/Trait/AccessorTrait.php
@@ -14,12 +14,14 @@
namespace Quant\Core\Trait;
use BadMethodCallException;
+use Closure;
use Quant\Core\Lang\Modifier;
use Quant\Core\Attribute\Getter;
use Quant\Core\Attribute\Setter;
use ReflectionClass;
use ReflectionParameter;
use ReflectionProperty;
+use ReflectionType;
use TypeError;
use ValueError;
@@ -31,12 +33,14 @@ trait AccessorTrait
private const IS = "is";
/**
- * @var array|string>>
+ * @var array|null
*/
private ?array $setterCache = null;
/**
- * @var array|string>>
+ * @var array|null
*/
private ?array $getterCache = null;
@@ -67,13 +71,16 @@ public function __call($method, $args): mixed
}
} else {
if (($propertyCfg = $this->isCallable($isBooleanGetter ? self::IS : self::GET, $property))) {
-
- /**
- * @var string $decl
- */
- $decl = $propertyCfg["decl"];
- $fn = \Closure::bind(fn ($property) => $this->{$property}, $this, $decl);
- return $fn($property);
+ if ($propertyCfg["propertyModifier"] === ReflectionProperty::IS_PRIVATE) {
+ /**
+ * @var string $decl
+ */
+ $decl = $propertyCfg["decl"];
+ $fn = Closure::bind(fn ($property) => $this->{$property}, $this, $decl);
+ return $fn($property);
+ }
+
+ return $this->{$property};
}
}
}
@@ -85,7 +92,8 @@ public function __call($method, $args): mixed
/**
* @param string $accessType
* @param string $property
- * @return false|array|string>
+ *
+ * @return false|array{accessorModifier: Modifier, propertyType: string, propertyModifier: int, decl: string}
*/
private function isCallable(string $accessType, string $property): false|array
{
@@ -102,7 +110,7 @@ private function isCallable(string $accessType, string $property): false|array
return false;
}
- $type = $propertyCfg["type"];
+ $type = $propertyCfg["propertyType"];
if (
$type === "bool" && $accessType === self::GET ||
$type !== "bool" && $accessType === self::IS
@@ -110,7 +118,7 @@ private function isCallable(string $accessType, string $property): false|array
return false;
}
- $accessLevel = $propertyCfg["args"][0] ?? Modifier::PUBLIC;
+ $accessLevel = $propertyCfg["accessorModifier"];
/* @phpstan-ignore-next-line */
if ($accessLevel === Modifier::PROTECTED || $accessLevel === Modifier::PRIVATE) {
@@ -118,7 +126,10 @@ private function isCallable(string $accessType, string $property): false|array
if (
/* @phpstan-ignore-next-line */
- $accessLevel === Modifier::PROTECTED && !($this instanceof $bt[2]["class"])
+ $accessLevel === Modifier::PROTECTED && ($this instanceof $propertyCfg["decl"]) &&
+
+ /* @phpstan-ignore-next-line */
+ !is_a($bt[2]["class"], $propertyCfg["decl"], true)
) {
return false;
}
@@ -137,7 +148,7 @@ private function isCallable(string $accessType, string $property): false|array
/**
* @param string $property
* @param mixed $value
- * @param array|string> $propertyCfg
+ * @param array{accessorModifier: Modifier, propertyType: string, propertyModifier: int, decl: string} $propertyCfg
* @return void
*
*/
@@ -155,13 +166,17 @@ private function applyFromSetter(string $property, mixed $value, array $property
} elseif (method_exists($declaringClass, $applier)) {
// if the applier was not found, it is possible that it was declared
// as private in the property's declaring class
- $fn = \Closure::bind(fn ($value) => $this->{$applier}($value), $this, $declaringClass);
+ $fn = Closure::bind(fn ($value) => $this->{$applier}($value), $this, $declaringClass);
$newValue = $fn($newValue);
}
- // $propertyCfg["property"]->setValue($this, $newValue);
- $fn = \Closure::bind(fn ($newValue) => $this->{$property} = $newValue, $this, $declaringClass);
- $fn($newValue);
+ if ($propertyCfg["propertyModifier"] === ReflectionProperty::IS_PRIVATE) {
+ // $propertyCfg["property"]->setValue($this, $newValue);
+ $fn = Closure::bind(fn ($newValue) => $this->{$property} = $newValue, $this, $declaringClass);
+ $fn($newValue);
+ } else {
+ $this->{$property} = $newValue;
+ }
}
@@ -184,7 +199,7 @@ private function applyProperties(array $args): void
/**
* @param string $propertyName
- * @return array|string>|false
+ * @return array{accessorModifier: Modifier, propertyType: string, propertyModifier: int, decl: string}|false
*/
private function hasSetterAttribute(string $propertyName): array|false
{
@@ -198,7 +213,7 @@ private function hasSetterAttribute(string $propertyName): array|false
/**
* @param string $propertyName
- * @return array|string>|false
+ * @return array{accessorModifier: Modifier, propertyType: string, propertyModifier: int, decl: string}|false
*/
private function hasGetterAttribute(string $propertyName): array|false
{
@@ -211,7 +226,8 @@ private function hasGetterAttribute(string $propertyName): array|false
/**
- * @return array|string>>
+ * @return array
*/
private function cachePropertiesWithAccessorAttribute(string $accessorClass): array
{
@@ -229,18 +245,22 @@ private function cachePropertiesWithAccessorAttribute(string $accessorClass): ar
continue;
}
- $accessorAttribute = $classAccessorAttribute;
-
+ $accessorAttribute = $property->getAttributes($accessorClass);
if (empty($accessorAttribute)) {
- $accessorAttribute = $property->getAttributes($accessorClass);
+ $accessorAttribute = $classAccessorAttribute;
}
if (!empty($accessorAttribute) && ($property instanceof ReflectionProperty)) {
+ $modArgs = $accessorAttribute[0]->getArguments();
+ $accessorModifier = $modArgs ?
+ ($modArgs[0] instanceof Modifier ? $modArgs[0] : Modifier::PUBLIC) : Modifier::PUBLIC;
+
$propBag[$propertyName] = [
- "args" => $accessorAttribute[0]->getArguments() ?: [],
+ "accessorModifier" => $accessorModifier,
/*__toString vs getName */
/* @phpstan-ignore-next-line */
- "type" => $property->getType()?->getName(),
+ "propertyType" => $property->getType()?->getName(),
+ "propertyModifier" => $property->getModifiers(),
"decl" => $property->getDeclaringClass()->getName()
];
}
diff --git a/src/Quant/Core/composer.json b/src/Quant/Core/composer.json
index 0c65f94..d746fb7 100644
--- a/src/Quant/Core/composer.json
+++ b/src/Quant/Core/composer.json
@@ -3,7 +3,7 @@
"type": "library",
"description": "Low-level API providing contracts and base implementations for PHP projects.",
"keywords": ["framework"],
- "homepage": "https://quant-php.dev",
+ "homepage": "https://quant-php.dev/docs/packages/quant/core",
"license": "MIT",
"authors": [
{
@@ -20,7 +20,10 @@
"phpunit/phpunit": "^10.1",
"phpstan/phpstan": "^1.10",
"squizlabs/php_codesniffer": "^3.7",
- "phpbench/phpbench": "^1.2@dev"
+ "phpbench/phpbench": "^1.2@dev",
+ "doctrine/annotations": "2.0.x-dev",
+ "phpstan/extension-installer": "^1.3",
+ "quant/phpstan": "^1.0"
},
"autoload": {
"psr-4": { "Quant\\Core\\": "" },
@@ -28,5 +31,10 @@
"/Tests/"
]
},
- "minimum-stability": "dev"
+ "minimum-stability": "stable",
+ "config": {
+ "allow-plugins": {
+ "phpstan/extension-installer": true
+ }
+ }
}
diff --git a/src/Quant/Core/composer.lock b/src/Quant/Core/composer.lock
index 77788ef..53a1ec2 100644
--- a/src/Quant/Core/composer.lock
+++ b/src/Quant/Core/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": "d74397db985b88d40fd78a6f347b766d",
+ "content-hash": "81acd96ecfe29aefe04414fb21e1ce31",
"packages": [],
"packages-dev": [
{
@@ -13,12 +13,12 @@
"source": {
"type": "git",
"url": "https://github.com/doctrine/annotations.git",
- "reference": "4b68cf86b766ec429f4f68af648817cdfb360582"
+ "reference": "94f40ad7ecbc6931958faa8a57c48dce5da2b468"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/annotations/zipball/4b68cf86b766ec429f4f68af648817cdfb360582",
- "reference": "4b68cf86b766ec429f4f68af648817cdfb360582",
+ "url": "https://api.github.com/repos/doctrine/annotations/zipball/94f40ad7ecbc6931958faa8a57c48dce5da2b468",
+ "reference": "94f40ad7ecbc6931958faa8a57c48dce5da2b468",
"shasum": ""
},
"require": {
@@ -82,11 +82,11 @@
"issues": "https://github.com/doctrine/annotations/issues",
"source": "https://github.com/doctrine/annotations/tree/2.0.x"
},
- "time": "2023-03-27T17:43:32+00:00"
+ "time": "2023-08-23T17:36:07+00:00"
},
{
"name": "doctrine/lexer",
- "version": "3.0.x-dev",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/lexer.git",
@@ -143,7 +143,7 @@
],
"support": {
"issues": "https://github.com/doctrine/lexer/issues",
- "source": "https://github.com/doctrine/lexer/tree/3.0.x"
+ "source": "https://github.com/doctrine/lexer/tree/3.0.0"
},
"funding": [
{
@@ -163,16 +163,16 @@
},
{
"name": "myclabs/deep-copy",
- "version": "1.x-dev",
+ "version": "1.11.1",
"source": {
"type": "git",
"url": "https://github.com/myclabs/DeepCopy.git",
- "reference": "928a96f585b86224ebc78f8f09d0482cf15b04f5"
+ "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/928a96f585b86224ebc78f8f09d0482cf15b04f5",
- "reference": "928a96f585b86224ebc78f8f09d0482cf15b04f5",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
+ "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
"shasum": ""
},
"require": {
@@ -180,15 +180,13 @@
},
"conflict": {
"doctrine/collections": "<1.6.8",
- "doctrine/common": "<2.13.3 || >=3 <3.2.2"
+ "doctrine/common": "<2.13.3 || >=3,<3.2.2"
},
"require-dev": {
"doctrine/collections": "^1.6.8",
"doctrine/common": "^2.13.3 || ^3.2.2",
- "phpspec/prophecy": "^1.10",
"phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
},
- "default-branch": true,
"type": "library",
"autoload": {
"files": [
@@ -212,7 +210,7 @@
],
"support": {
"issues": "https://github.com/myclabs/DeepCopy/issues",
- "source": "https://github.com/myclabs/DeepCopy/tree/1.x"
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1"
},
"funding": [
{
@@ -220,38 +218,39 @@
"type": "tidelift"
}
],
- "time": "2023-03-08T17:24:01+00:00"
+ "time": "2023-03-08T13:26:56+00:00"
},
{
"name": "nikic/php-parser",
- "version": "4.x-dev",
+ "version": "v5.0.0",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "0ffddce52d816f72d0efc4d9b02e276d3309ef01"
+ "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0ffddce52d816f72d0efc4d9b02e276d3309ef01",
- "reference": "0ffddce52d816f72d0efc4d9b02e276d3309ef01",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4a21235f7e56e713259a6f76bf4b5ea08502b9dc",
+ "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc",
"shasum": ""
},
"require": {
+ "ext-ctype": "*",
+ "ext-json": "*",
"ext-tokenizer": "*",
- "php": ">=7.0"
+ "php": ">=7.4"
},
"require-dev": {
"ircmaxell/php-yacc": "^0.0.7",
- "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
+ "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
},
- "default-branch": true,
"bin": [
"bin/php-parse"
],
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.9-dev"
+ "dev-master": "5.0-dev"
}
},
"autoload": {
@@ -275,33 +274,31 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/4.x"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.0"
},
- "time": "2023-03-06T22:12:36+00:00"
+ "time": "2024-01-07T17:17:35+00:00"
},
{
"name": "phar-io/manifest",
- "version": "dev-master",
+ "version": "2.0.3",
"source": {
"type": "git",
"url": "https://github.com/phar-io/manifest.git",
- "reference": "36d8a21e851a9512db2b086dc5ac2c61308f0138"
+ "reference": "97803eca37d319dfa7826cc2437fc020857acb53"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phar-io/manifest/zipball/36d8a21e851a9512db2b086dc5ac2c61308f0138",
- "reference": "36d8a21e851a9512db2b086dc5ac2c61308f0138",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53",
+ "reference": "97803eca37d319dfa7826cc2437fc020857acb53",
"shasum": ""
},
"require": {
"ext-dom": "*",
- "ext-libxml": "*",
"ext-phar": "*",
"ext-xmlwriter": "*",
"phar-io/version": "^3.0.1",
"php": "^7.2 || ^8.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -337,15 +334,9 @@
"description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
"support": {
"issues": "https://github.com/phar-io/manifest/issues",
- "source": "https://github.com/phar-io/manifest/tree/master"
+ "source": "https://github.com/phar-io/manifest/tree/2.0.3"
},
- "funding": [
- {
- "url": "https://github.com/theseer",
- "type": "github"
- }
- ],
- "time": "2022-02-21T19:55:33+00:00"
+ "time": "2021-07-20T11:28:43+00:00"
},
{
"name": "phar-io/version",
@@ -400,28 +391,27 @@
},
{
"name": "phpbench/container",
- "version": "dev-master",
+ "version": "2.2.2",
"source": {
"type": "git",
"url": "https://github.com/phpbench/container.git",
- "reference": "6d555ff7174fca13f9b1ec0b4a089ed41d0ab392"
+ "reference": "a59b929e00b87b532ca6d0edd8eca0967655af33"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpbench/container/zipball/6d555ff7174fca13f9b1ec0b4a089ed41d0ab392",
- "reference": "6d555ff7174fca13f9b1ec0b4a089ed41d0ab392",
+ "url": "https://api.github.com/repos/phpbench/container/zipball/a59b929e00b87b532ca6d0edd8eca0967655af33",
+ "reference": "a59b929e00b87b532ca6d0edd8eca0967655af33",
"shasum": ""
},
"require": {
"psr/container": "^1.0|^2.0",
- "symfony/options-resolver": "^4.2 || ^5.0 || ^6.0"
+ "symfony/options-resolver": "^4.2 || ^5.0 || ^6.0 || ^7.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^2.16",
"phpstan/phpstan": "^0.12.52",
"phpunit/phpunit": "^8"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -446,9 +436,9 @@
"description": "Simple, configurable, service container.",
"support": {
"issues": "https://github.com/phpbench/container/issues",
- "source": "https://github.com/phpbench/container/tree/2.2.1"
+ "source": "https://github.com/phpbench/container/tree/2.2.2"
},
- "time": "2022-01-25T10:17:35+00:00"
+ "time": "2023-10-30T13:38:26+00:00"
},
{
"name": "phpbench/dom",
@@ -507,45 +497,51 @@
"source": {
"type": "git",
"url": "https://github.com/phpbench/phpbench.git",
- "reference": "95206f92479674599a75e02b74b9933e2d9883aa"
+ "reference": "e71db2f3ef3a73da60a6c318e8d8c8bde69ede83"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpbench/phpbench/zipball/95206f92479674599a75e02b74b9933e2d9883aa",
- "reference": "95206f92479674599a75e02b74b9933e2d9883aa",
+ "url": "https://api.github.com/repos/phpbench/phpbench/zipball/e71db2f3ef3a73da60a6c318e8d8c8bde69ede83",
+ "reference": "e71db2f3ef3a73da60a6c318e8d8c8bde69ede83",
"shasum": ""
},
"require": {
- "doctrine/annotations": "^1.13 || ^2.0",
+ "doctrine/annotations": "^2.0",
"ext-dom": "*",
"ext-json": "*",
"ext-pcre": "*",
"ext-reflection": "*",
"ext-spl": "*",
"ext-tokenizer": "*",
- "php": "^7.4 || ^8.0",
- "phpbench/container": "^2.1",
+ "php": "^8.1",
+ "phpbench/container": "^2.2",
"phpbench/dom": "~0.3.3",
"psr/log": "^1.1 || ^2.0 || ^3.0",
"seld/jsonlint": "^1.1",
- "symfony/console": "^4.2 || ^5.0 || ^6.0",
- "symfony/filesystem": "^4.2 || ^5.0 || ^6.0",
- "symfony/finder": "^4.2 || ^5.0 || ^6.0",
- "symfony/options-resolver": "^4.2 || ^5.0 || ^6.0",
- "symfony/process": "^4.2 || ^5.0 || ^6.0",
+ "symfony/console": "^6.1 || ^7.0",
+ "symfony/filesystem": "^6.1 || ^7.0",
+ "symfony/finder": "^6.1 || ^7.0",
+ "symfony/options-resolver": "^6.1 || ^7.0",
+ "symfony/process": "^6.1 || ^7.0",
"webmozart/glob": "^4.6"
},
+ "replace": {
+ "symfony/polyfill-php80": "*",
+ "symfony/polyfill-php81": "*"
+ },
"require-dev": {
"dantleech/invoke": "^2.0",
+ "ergebnis/composer-normalize": "^2.39",
"friendsofphp/php-cs-fixer": "^3.0",
"jangregor/phpstan-prophecy": "^1.0",
- "phpspec/prophecy": "^1.12",
+ "phpspec/prophecy": "dev-master",
"phpstan/extension-installer": "^1.1",
"phpstan/phpstan": "^1.0",
"phpstan/phpstan-phpunit": "^1.0",
- "phpunit/phpunit": "^9.0",
- "symfony/error-handler": "^5.2 || ^6.0",
- "symfony/var-dumper": "^4.0 || ^5.0 || ^6.0"
+ "phpunit/phpunit": "^10.4",
+ "rector/rector": "^0.18.11",
+ "symfony/error-handler": "^6.1 || ^7.0",
+ "symfony/var-dumper": "^6.1 || ^7.0"
},
"suggest": {
"ext-xdebug": "For Xdebug profiling extension."
@@ -580,9 +576,16 @@
}
],
"description": "PHP Benchmarking Framework",
+ "keywords": [
+ "benchmarking",
+ "optimization",
+ "performance",
+ "profiling",
+ "testing"
+ ],
"support": {
"issues": "https://github.com/phpbench/phpbench/issues",
- "source": "https://github.com/phpbench/phpbench/tree/1.2.10"
+ "source": "https://github.com/phpbench/phpbench/tree/master"
},
"funding": [
{
@@ -590,20 +593,64 @@
"type": "github"
}
],
- "time": "2023-03-24T08:52:55+00:00"
+ "time": "2024-01-16T21:38:02+00:00"
+ },
+ {
+ "name": "phpstan/extension-installer",
+ "version": "1.3.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpstan/extension-installer.git",
+ "reference": "f45734bfb9984c6c56c4486b71230355f066a58a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpstan/extension-installer/zipball/f45734bfb9984c6c56c4486b71230355f066a58a",
+ "reference": "f45734bfb9984c6c56c4486b71230355f066a58a",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^2.0",
+ "php": "^7.2 || ^8.0",
+ "phpstan/phpstan": "^1.9.0"
+ },
+ "require-dev": {
+ "composer/composer": "^2.0",
+ "php-parallel-lint/php-parallel-lint": "^1.2.0",
+ "phpstan/phpstan-strict-rules": "^0.11 || ^0.12 || ^1.0"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "PHPStan\\ExtensionInstaller\\Plugin"
+ },
+ "autoload": {
+ "psr-4": {
+ "PHPStan\\ExtensionInstaller\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Composer plugin for automatic installation of PHPStan extensions",
+ "support": {
+ "issues": "https://github.com/phpstan/extension-installer/issues",
+ "source": "https://github.com/phpstan/extension-installer/tree/1.3.1"
+ },
+ "time": "2023-05-24T08:59:17+00:00"
},
{
"name": "phpstan/phpstan",
- "version": "1.11.x-dev",
+ "version": "1.10.56",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
- "reference": "0a6a7d6f2900c1d47c5a58ef36fe34e78ed4adcd"
+ "reference": "27816a01aea996191ee14d010f325434c0ee76fa"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/0a6a7d6f2900c1d47c5a58ef36fe34e78ed4adcd",
- "reference": "0a6a7d6f2900c1d47c5a58ef36fe34e78ed4adcd",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/27816a01aea996191ee14d010f325434c0ee76fa",
+ "reference": "27816a01aea996191ee14d010f325434c0ee76fa",
"shasum": ""
},
"require": {
@@ -612,7 +659,6 @@
"conflict": {
"phpstan/phpstan-shim": "*"
},
- "default-branch": true,
"bin": [
"phpstan",
"phpstan.phar"
@@ -653,27 +699,27 @@
"type": "tidelift"
}
],
- "time": "2023-05-13T14:21:23+00:00"
+ "time": "2024-01-15T10:43:00+00:00"
},
{
"name": "phpunit/php-code-coverage",
- "version": "dev-main",
+ "version": "10.1.11",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "b10b1fb20600a35b13fbc58d34d3958f8c3d81ef"
+ "reference": "78c3b7625965c2513ee96569a4dbb62601784145"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/b10b1fb20600a35b13fbc58d34d3958f8c3d81ef",
- "reference": "b10b1fb20600a35b13fbc58d34d3958f8c3d81ef",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/78c3b7625965c2513ee96569a4dbb62601784145",
+ "reference": "78c3b7625965c2513ee96569a4dbb62601784145",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-libxml": "*",
"ext-xmlwriter": "*",
- "nikic/php-parser": "^4.15",
+ "nikic/php-parser": "^4.18 || ^5.0",
"php": ">=8.1",
"phpunit/php-file-iterator": "^4.0",
"phpunit/php-text-template": "^3.0",
@@ -691,7 +737,6 @@
"ext-pcov": "PHP extension that provides line coverage",
"ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -724,7 +769,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/main"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.11"
},
"funding": [
{
@@ -732,20 +777,20 @@
"type": "github"
}
],
- "time": "2023-05-07T06:59:16+00:00"
+ "time": "2023-12-21T15:38:30+00:00"
},
{
"name": "phpunit/php-file-iterator",
- "version": "dev-main",
+ "version": "4.1.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "5647d65443818959172645e7ed999217360654b6"
+ "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/5647d65443818959172645e7ed999217360654b6",
- "reference": "5647d65443818959172645e7ed999217360654b6",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a95037b6d9e608ba092da1b23931e537cadc3c3c",
+ "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c",
"shasum": ""
},
"require": {
@@ -754,7 +799,6 @@
"require-dev": {
"phpunit/phpunit": "^10.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -786,7 +830,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/4.0.2"
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.1.0"
},
"funding": [
{
@@ -794,20 +838,20 @@
"type": "github"
}
],
- "time": "2023-05-07T09:13:23+00:00"
+ "time": "2023-08-31T06:24:48+00:00"
},
{
"name": "phpunit/php-invoker",
- "version": "dev-main",
+ "version": "4.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-invoker.git",
- "reference": "6a2d3b52dc6a9cd7cd829a104c0804f5f1fb41a9"
+ "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/6a2d3b52dc6a9cd7cd829a104c0804f5f1fb41a9",
- "reference": "6a2d3b52dc6a9cd7cd829a104c0804f5f1fb41a9",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7",
+ "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7",
"shasum": ""
},
"require": {
@@ -820,7 +864,6 @@
"suggest": {
"ext-pcntl": "*"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -850,8 +893,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/main"
+ "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0"
},
"funding": [
{
@@ -859,20 +901,20 @@
"type": "github"
}
],
- "time": "2023-05-07T07:01:23+00:00"
+ "time": "2023-02-03T06:56:09+00:00"
},
{
"name": "phpunit/php-text-template",
- "version": "dev-main",
+ "version": "3.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-text-template.git",
- "reference": "af607de0978b4de9c486b88fa7f8eecd99f9389a"
+ "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/af607de0978b4de9c486b88fa7f8eecd99f9389a",
- "reference": "af607de0978b4de9c486b88fa7f8eecd99f9389a",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/0c7b06ff49e3d5072f057eb1fa59258bf287a748",
+ "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748",
"shasum": ""
},
"require": {
@@ -881,7 +923,6 @@
"require-dev": {
"phpunit/phpunit": "^10.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -912,7 +953,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/main"
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.1"
},
"funding": [
{
@@ -920,20 +961,20 @@
"type": "github"
}
],
- "time": "2023-05-07T07:02:07+00:00"
+ "time": "2023-08-31T14:07:24+00:00"
},
{
"name": "phpunit/php-timer",
- "version": "dev-main",
+ "version": "6.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "9f12525ceb70f8c6d2c0e7a56f34d8789203932a"
+ "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/9f12525ceb70f8c6d2c0e7a56f34d8789203932a",
- "reference": "9f12525ceb70f8c6d2c0e7a56f34d8789203932a",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/e2a2d67966e740530f4a3343fe2e030ffdc1161d",
+ "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d",
"shasum": ""
},
"require": {
@@ -942,7 +983,6 @@
"require-dev": {
"phpunit/phpunit": "^10.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -972,8 +1012,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/main"
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0"
},
"funding": [
{
@@ -981,20 +1020,20 @@
"type": "github"
}
],
- "time": "2023-05-07T07:02:43+00:00"
+ "time": "2023-02-03T06:57:52+00:00"
},
{
"name": "phpunit/phpunit",
- "version": "dev-main",
+ "version": "10.5.9",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "a115d481e5187401d814ec8754fd5709ec2a49b4"
+ "reference": "0bd663704f0165c9e76fe4f06ffa6a1ca727fdbe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a115d481e5187401d814ec8754fd5709ec2a49b4",
- "reference": "a115d481e5187401d814ec8754fd5709ec2a49b4",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0bd663704f0165c9e76fe4f06ffa6a1ca727fdbe",
+ "reference": "0bd663704f0165c9e76fe4f06ffa6a1ca727fdbe",
"shasum": ""
},
"require": {
@@ -1008,7 +1047,7 @@
"phar-io/manifest": "^2.0.3",
"phar-io/version": "^3.0.2",
"php": ">=8.1",
- "phpunit/php-code-coverage": "^10.1.1",
+ "phpunit/php-code-coverage": "^10.1.5",
"phpunit/php-file-iterator": "^4.0",
"phpunit/php-invoker": "^4.0",
"phpunit/php-text-template": "^3.0",
@@ -1018,8 +1057,8 @@
"sebastian/comparator": "^5.0",
"sebastian/diff": "^5.0",
"sebastian/environment": "^6.0",
- "sebastian/exporter": "^5.0",
- "sebastian/global-state": "^6.0",
+ "sebastian/exporter": "^5.1",
+ "sebastian/global-state": "^6.0.1",
"sebastian/object-enumerator": "^5.0",
"sebastian/recursion-context": "^5.0",
"sebastian/type": "^4.0",
@@ -1028,14 +1067,13 @@
"suggest": {
"ext-soap": "To be able to generate mocks based on WSDL files"
},
- "default-branch": true,
"bin": [
"phpunit"
],
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "10.2-dev"
+ "dev-main": "10.5-dev"
}
},
"autoload": {
@@ -1067,7 +1105,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/main"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.9"
},
"funding": [
{
@@ -1083,33 +1121,29 @@
"type": "tidelift"
}
],
- "time": "2023-05-11T05:17:48+00:00"
+ "time": "2024-01-22T14:35:40+00:00"
},
{
"name": "psr/cache",
- "version": "dev-master",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/cache.git",
- "reference": "0a7c67d0d1c8167b342eb74339d6f961663826ce"
+ "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/cache/zipball/0a7c67d0d1c8167b342eb74339d6f961663826ce",
- "reference": "0a7c67d0d1c8167b342eb74339d6f961663826ce",
+ "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
+ "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
"shasum": ""
},
"require": {
"php": ">=8.0.0"
},
- "suggest": {
- "fig/cache-util": "Provides some useful PSR-6 utilities"
- },
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0.x-dev"
+ "dev-master": "1.0.x-dev"
}
},
"autoload": {
@@ -1134,28 +1168,27 @@
"psr-6"
],
"support": {
- "source": "https://github.com/php-fig/cache/tree/master"
+ "source": "https://github.com/php-fig/cache/tree/3.0.0"
},
- "time": "2021-02-24T03:25:37+00:00"
+ "time": "2021-02-03T23:26:27+00:00"
},
{
"name": "psr/container",
- "version": "dev-master",
+ "version": "2.0.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/container.git",
- "reference": "90db7b9ac2a2c5b849fcb69dde58f3ae182c68f5"
+ "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/container/zipball/90db7b9ac2a2c5b849fcb69dde58f3ae182c68f5",
- "reference": "90db7b9ac2a2c5b849fcb69dde58f3ae182c68f5",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
+ "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
"shasum": ""
},
"require": {
"php": ">=7.4.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -1188,13 +1221,13 @@
],
"support": {
"issues": "https://github.com/php-fig/container/issues",
- "source": "https://github.com/php-fig/container/tree/master"
+ "source": "https://github.com/php-fig/container/tree/2.0.2"
},
- "time": "2022-07-19T17:36:59+00:00"
+ "time": "2021-11-05T16:47:00+00:00"
},
{
"name": "psr/log",
- "version": "dev-master",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
@@ -1209,7 +1242,6 @@
"require": {
"php": ">=8.0.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -1243,18 +1275,82 @@
},
"time": "2021-07-14T16:46:02+00:00"
},
+ {
+ "name": "quant/phpstan",
+ "version": "1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/quant-php/phpstan.git",
+ "reference": "762f565d861e184805c428da801ea79ad835abbb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/quant-php/phpstan/zipball/762f565d861e184805c428da801ea79ad835abbb",
+ "reference": "762f565d861e184805c428da801ea79ad835abbb",
+ "shasum": ""
+ },
+ "require": {
+ "composer-runtime-api": ">=2.1",
+ "php": "^8.2"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^10.1",
+ "quant/core": "^1.0",
+ "squizlabs/php_codesniffer": "^3.7"
+ },
+ "type": "phpstan-extension",
+ "extra": {
+ "phpstan": {
+ "includes": [
+ "extension.neon"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Quant\\PHPStan\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Thorsten Suckow-Homberg",
+ "email": "thorsten@suckow-homberg.de",
+ "homepage": "https://thorsten.suckow-homberg.de"
+ }
+ ],
+ "description": "phpstan extensions for quant",
+ "homepage": "https://quant-php.dev/docs/packages/quant/phpstan",
+ "keywords": [
+ "PHPStan",
+ "extension",
+ "quant"
+ ],
+ "support": {
+ "issues": "https://github.com/quant-php/phpstan/issues",
+ "source": "https://github.com/quant-php/phpstan/tree/1.0"
+ },
+ "time": "2024-01-23T18:31:17+00:00"
+ },
{
"name": "sebastian/cli-parser",
- "version": "dev-main",
+ "version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/cli-parser.git",
- "reference": "e9999c67563316cadc9af8a5db52cd791a209018"
+ "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/e9999c67563316cadc9af8a5db52cd791a209018",
- "reference": "e9999c67563316cadc9af8a5db52cd791a209018",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/efdc130dbbbb8ef0b545a994fd811725c5282cae",
+ "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae",
"shasum": ""
},
"require": {
@@ -1263,7 +1359,6 @@
"require-dev": {
"phpunit/phpunit": "^10.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -1290,8 +1385,7 @@
"homepage": "https://github.com/sebastianbergmann/cli-parser",
"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/main"
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.0"
},
"funding": [
{
@@ -1299,20 +1393,20 @@
"type": "github"
}
],
- "time": "2023-05-07T06:41:32+00:00"
+ "time": "2023-02-03T06:58:15+00:00"
},
{
"name": "sebastian/code-unit",
- "version": "dev-main",
+ "version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/code-unit.git",
- "reference": "bb5b0058753edc43e377569719429e2e088379b6"
+ "reference": "a81fee9eef0b7a76af11d121767abc44c104e503"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/bb5b0058753edc43e377569719429e2e088379b6",
- "reference": "bb5b0058753edc43e377569719429e2e088379b6",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/a81fee9eef0b7a76af11d121767abc44c104e503",
+ "reference": "a81fee9eef0b7a76af11d121767abc44c104e503",
"shasum": ""
},
"require": {
@@ -1321,7 +1415,6 @@
"require-dev": {
"phpunit/phpunit": "^10.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -1348,8 +1441,7 @@
"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/main"
+ "source": "https://github.com/sebastianbergmann/code-unit/tree/2.0.0"
},
"funding": [
{
@@ -1357,20 +1449,20 @@
"type": "github"
}
],
- "time": "2023-05-07T06:39:38+00:00"
+ "time": "2023-02-03T06:58:43+00:00"
},
{
"name": "sebastian/code-unit-reverse-lookup",
- "version": "dev-main",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
- "reference": "665ad4759110f129402b8a7554abe2f3ecf177c8"
+ "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/665ad4759110f129402b8a7554abe2f3ecf177c8",
- "reference": "665ad4759110f129402b8a7554abe2f3ecf177c8",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5e3a687f7d8ae33fb362c5c0743794bbb2420a1d",
+ "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d",
"shasum": ""
},
"require": {
@@ -1379,7 +1471,6 @@
"require-dev": {
"phpunit/phpunit": "^10.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -1405,8 +1496,7 @@
"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/main"
+ "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0.0"
},
"funding": [
{
@@ -1414,20 +1504,20 @@
"type": "github"
}
],
- "time": "2023-05-07T06:46:33+00:00"
+ "time": "2023-02-03T06:59:15+00:00"
},
{
"name": "sebastian/comparator",
- "version": "dev-main",
+ "version": "5.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "1b731c0bee2f3cd15fb1f621a616919624ad24bf"
+ "reference": "2db5010a484d53ebf536087a70b4a5423c102372"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1b731c0bee2f3cd15fb1f621a616919624ad24bf",
- "reference": "1b731c0bee2f3cd15fb1f621a616919624ad24bf",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2db5010a484d53ebf536087a70b4a5423c102372",
+ "reference": "2db5010a484d53ebf536087a70b4a5423c102372",
"shasum": ""
},
"require": {
@@ -1438,9 +1528,8 @@
"sebastian/exporter": "^5.0"
},
"require-dev": {
- "phpunit/phpunit": "^10.0"
+ "phpunit/phpunit": "^10.3"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -1484,7 +1573,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/comparator/issues",
"security": "https://github.com/sebastianbergmann/comparator/security/policy",
- "source": "https://github.com/sebastianbergmann/comparator/tree/main"
+ "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.1"
},
"funding": [
{
@@ -1492,34 +1581,33 @@
"type": "github"
}
],
- "time": "2023-05-07T06:39:57+00:00"
+ "time": "2023-08-14T13:18:12+00:00"
},
{
"name": "sebastian/complexity",
- "version": "dev-main",
+ "version": "3.2.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/complexity.git",
- "reference": "065e4d3b8ee6f999f25d7b4b03aa3e25330882e1"
+ "reference": "68ff824baeae169ec9f2137158ee529584553799"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/065e4d3b8ee6f999f25d7b4b03aa3e25330882e1",
- "reference": "065e4d3b8ee6f999f25d7b4b03aa3e25330882e1",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799",
+ "reference": "68ff824baeae169ec9f2137158ee529584553799",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.10",
+ "nikic/php-parser": "^4.18 || ^5.0",
"php": ">=8.1"
},
"require-dev": {
"phpunit/phpunit": "^10.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.0-dev"
+ "dev-main": "3.2-dev"
}
},
"autoload": {
@@ -1543,7 +1631,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/complexity/issues",
"security": "https://github.com/sebastianbergmann/complexity/security/policy",
- "source": "https://github.com/sebastianbergmann/complexity/tree/main"
+ "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0"
},
"funding": [
{
@@ -1551,20 +1639,20 @@
"type": "github"
}
],
- "time": "2023-05-07T06:47:56+00:00"
+ "time": "2023-12-21T08:37:17+00:00"
},
{
"name": "sebastian/diff",
- "version": "dev-main",
+ "version": "5.1.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "da30e5818167af846668bfebc135a178a111941f"
+ "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/da30e5818167af846668bfebc135a178a111941f",
- "reference": "da30e5818167af846668bfebc135a178a111941f",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/fbf413a49e54f6b9b17e12d900ac7f6101591b7f",
+ "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f",
"shasum": ""
},
"require": {
@@ -1574,11 +1662,10 @@
"phpunit/phpunit": "^10.0",
"symfony/process": "^4.2 || ^5"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "5.0-dev"
+ "dev-main": "5.1-dev"
}
},
"autoload": {
@@ -1611,7 +1698,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/diff/issues",
"security": "https://github.com/sebastianbergmann/diff/security/policy",
- "source": "https://github.com/sebastianbergmann/diff/tree/main"
+ "source": "https://github.com/sebastianbergmann/diff/tree/5.1.0"
},
"funding": [
{
@@ -1619,20 +1706,20 @@
"type": "github"
}
],
- "time": "2023-05-07T06:51:55+00:00"
+ "time": "2023-12-22T10:55:06+00:00"
},
{
"name": "sebastian/environment",
- "version": "dev-main",
+ "version": "6.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "ad18266a91d50fc453d820bada800bb3a710e061"
+ "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/ad18266a91d50fc453d820bada800bb3a710e061",
- "reference": "ad18266a91d50fc453d820bada800bb3a710e061",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/43c751b41d74f96cbbd4e07b7aec9675651e2951",
+ "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951",
"shasum": ""
},
"require": {
@@ -1644,7 +1731,6 @@
"suggest": {
"ext-posix": "*"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -1676,7 +1762,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/environment/issues",
"security": "https://github.com/sebastianbergmann/environment/security/policy",
- "source": "https://github.com/sebastianbergmann/environment/tree/main"
+ "source": "https://github.com/sebastianbergmann/environment/tree/6.0.1"
},
"funding": [
{
@@ -1684,20 +1770,20 @@
"type": "github"
}
],
- "time": "2023-05-07T06:52:37+00:00"
+ "time": "2023-04-11T05:39:26+00:00"
},
{
"name": "sebastian/exporter",
- "version": "dev-main",
+ "version": "5.1.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "658d41b99a288c0112583d8603f48807e33688b7"
+ "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/658d41b99a288c0112583d8603f48807e33688b7",
- "reference": "658d41b99a288c0112583d8603f48807e33688b7",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/64f51654862e0f5e318db7e9dcc2292c63cdbddc",
+ "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc",
"shasum": ""
},
"require": {
@@ -1708,11 +1794,10 @@
"require-dev": {
"phpunit/phpunit": "^10.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "5.0-dev"
+ "dev-main": "5.1-dev"
}
},
"autoload": {
@@ -1755,7 +1840,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
"security": "https://github.com/sebastianbergmann/exporter/security/policy",
- "source": "https://github.com/sebastianbergmann/exporter/tree/main"
+ "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.1"
},
"funding": [
{
@@ -1763,20 +1848,20 @@
"type": "github"
}
],
- "time": "2023-05-07T06:53:37+00:00"
+ "time": "2023-09-24T13:22:09+00:00"
},
{
"name": "sebastian/global-state",
- "version": "dev-main",
+ "version": "6.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "72c43bc6f343ece1731fefe0534046f09e29eb30"
+ "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/72c43bc6f343ece1731fefe0534046f09e29eb30",
- "reference": "72c43bc6f343ece1731fefe0534046f09e29eb30",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/7ea9ead78f6d380d2a667864c132c2f7b83055e4",
+ "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4",
"shasum": ""
},
"require": {
@@ -1788,7 +1873,6 @@
"ext-dom": "*",
"phpunit/phpunit": "^10.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -1818,7 +1902,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/main"
+ "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.1"
},
"funding": [
{
@@ -1826,30 +1910,29 @@
"type": "github"
}
],
- "time": "2023-05-08T12:35:16+00:00"
+ "time": "2023-07-19T07:19:23+00:00"
},
{
"name": "sebastian/lines-of-code",
- "version": "dev-main",
+ "version": "2.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/lines-of-code.git",
- "reference": "4bcf8375513689da164242ae30e2e984ddfbd96f"
+ "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/4bcf8375513689da164242ae30e2e984ddfbd96f",
- "reference": "4bcf8375513689da164242ae30e2e984ddfbd96f",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0",
+ "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.10",
+ "nikic/php-parser": "^4.18 || ^5.0",
"php": ">=8.1"
},
"require-dev": {
"phpunit/phpunit": "^10.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -1877,7 +1960,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/main"
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2"
},
"funding": [
{
@@ -1885,20 +1968,20 @@
"type": "github"
}
],
- "time": "2023-05-07T06:55:25+00:00"
+ "time": "2023-12-21T08:38:20+00:00"
},
{
"name": "sebastian/object-enumerator",
- "version": "dev-main",
+ "version": "5.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-enumerator.git",
- "reference": "dc4efd929baf3fe05ec47368259cf7383b7a4523"
+ "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/dc4efd929baf3fe05ec47368259cf7383b7a4523",
- "reference": "dc4efd929baf3fe05ec47368259cf7383b7a4523",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/202d0e344a580d7f7d04b3fafce6933e59dae906",
+ "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906",
"shasum": ""
},
"require": {
@@ -1909,7 +1992,6 @@
"require-dev": {
"phpunit/phpunit": "^10.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -1935,8 +2017,7 @@
"homepage": "https://github.com/sebastianbergmann/object-enumerator/",
"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/main"
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/5.0.0"
},
"funding": [
{
@@ -1944,20 +2025,20 @@
"type": "github"
}
],
- "time": "2023-05-07T06:56:01+00:00"
+ "time": "2023-02-03T07:08:32+00:00"
},
{
"name": "sebastian/object-reflector",
- "version": "dev-main",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-reflector.git",
- "reference": "e7609bd0b99a9bb73c4de98f2b9eb2368023c02c"
+ "reference": "24ed13d98130f0e7122df55d06c5c4942a577957"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/e7609bd0b99a9bb73c4de98f2b9eb2368023c02c",
- "reference": "e7609bd0b99a9bb73c4de98f2b9eb2368023c02c",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/24ed13d98130f0e7122df55d06c5c4942a577957",
+ "reference": "24ed13d98130f0e7122df55d06c5c4942a577957",
"shasum": ""
},
"require": {
@@ -1966,7 +2047,6 @@
"require-dev": {
"phpunit/phpunit": "^10.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -1992,8 +2072,7 @@
"homepage": "https://github.com/sebastianbergmann/object-reflector/",
"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/main"
+ "source": "https://github.com/sebastianbergmann/object-reflector/tree/3.0.0"
},
"funding": [
{
@@ -2001,20 +2080,20 @@
"type": "github"
}
],
- "time": "2023-05-07T06:56:37+00:00"
+ "time": "2023-02-03T07:06:18+00:00"
},
{
"name": "sebastian/recursion-context",
- "version": "dev-main",
+ "version": "5.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "d0d22a459a1b6223ea62a7ee790922e57dc33ef4"
+ "reference": "05909fb5bc7df4c52992396d0116aed689f93712"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/d0d22a459a1b6223ea62a7ee790922e57dc33ef4",
- "reference": "d0d22a459a1b6223ea62a7ee790922e57dc33ef4",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/05909fb5bc7df4c52992396d0116aed689f93712",
+ "reference": "05909fb5bc7df4c52992396d0116aed689f93712",
"shasum": ""
},
"require": {
@@ -2023,7 +2102,6 @@
"require-dev": {
"phpunit/phpunit": "^10.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -2057,8 +2135,7 @@
"homepage": "https://github.com/sebastianbergmann/recursion-context",
"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/main"
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.0"
},
"funding": [
{
@@ -2066,20 +2143,20 @@
"type": "github"
}
],
- "time": "2023-05-07T07:06:04+00:00"
+ "time": "2023-02-03T07:05:40+00:00"
},
{
"name": "sebastian/type",
- "version": "dev-main",
+ "version": "4.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/type.git",
- "reference": "ce2e7d895a4d931833b5bc362edd1b2e22912527"
+ "reference": "462699a16464c3944eefc02ebdd77882bd3925bf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/ce2e7d895a4d931833b5bc362edd1b2e22912527",
- "reference": "ce2e7d895a4d931833b5bc362edd1b2e22912527",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/462699a16464c3944eefc02ebdd77882bd3925bf",
+ "reference": "462699a16464c3944eefc02ebdd77882bd3925bf",
"shasum": ""
},
"require": {
@@ -2088,7 +2165,6 @@
"require-dev": {
"phpunit/phpunit": "^10.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -2115,8 +2191,7 @@
"homepage": "https://github.com/sebastianbergmann/type",
"support": {
"issues": "https://github.com/sebastianbergmann/type/issues",
- "security": "https://github.com/sebastianbergmann/type/security/policy",
- "source": "https://github.com/sebastianbergmann/type/tree/main"
+ "source": "https://github.com/sebastianbergmann/type/tree/4.0.0"
},
"funding": [
{
@@ -2124,26 +2199,25 @@
"type": "github"
}
],
- "time": "2023-05-07T07:06:55+00:00"
+ "time": "2023-02-03T07:10:45+00:00"
},
{
"name": "sebastian/version",
- "version": "dev-main",
+ "version": "4.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/version.git",
- "reference": "28cf9269a3ab01a67bef47455750356210af2578"
+ "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/28cf9269a3ab01a67bef47455750356210af2578",
- "reference": "28cf9269a3ab01a67bef47455750356210af2578",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c51fa83a5d8f43f1402e3f32a005e6262244ef17",
+ "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17",
"shasum": ""
},
"require": {
"php": ">=8.1"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -2170,8 +2244,7 @@
"homepage": "https://github.com/sebastianbergmann/version",
"support": {
"issues": "https://github.com/sebastianbergmann/version/issues",
- "security": "https://github.com/sebastianbergmann/version/security/policy",
- "source": "https://github.com/sebastianbergmann/version/tree/main"
+ "source": "https://github.com/sebastianbergmann/version/tree/4.0.1"
},
"funding": [
{
@@ -2179,20 +2252,20 @@
"type": "github"
}
],
- "time": "2023-05-07T06:26:24+00:00"
+ "time": "2023-02-07T11:34:05+00:00"
},
{
"name": "seld/jsonlint",
- "version": "1.10.0",
+ "version": "1.10.1",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/jsonlint.git",
- "reference": "594fd6462aad8ecee0b45ca5045acea4776667f1"
+ "reference": "76d449a358ece77d6f1d6331c68453e657172202"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/594fd6462aad8ecee0b45ca5045acea4776667f1",
- "reference": "594fd6462aad8ecee0b45ca5045acea4776667f1",
+ "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/76d449a358ece77d6f1d6331c68453e657172202",
+ "reference": "76d449a358ece77d6f1d6331c68453e657172202",
"shasum": ""
},
"require": {
@@ -2219,7 +2292,7 @@
{
"name": "Jordi Boggiano",
"email": "j.boggiano@seld.be",
- "homepage": "http://seld.be"
+ "homepage": "https://seld.be"
}
],
"description": "JSON Linter",
@@ -2231,7 +2304,7 @@
],
"support": {
"issues": "https://github.com/Seldaek/jsonlint/issues",
- "source": "https://github.com/Seldaek/jsonlint/tree/1.10.0"
+ "source": "https://github.com/Seldaek/jsonlint/tree/1.10.1"
},
"funding": [
{
@@ -2243,20 +2316,20 @@
"type": "tidelift"
}
],
- "time": "2023-05-11T13:16:46+00:00"
+ "time": "2023-12-18T13:03:25+00:00"
},
{
"name": "squizlabs/php_codesniffer",
- "version": "dev-master",
+ "version": "3.8.1",
"source": {
"type": "git",
- "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
- "reference": "a26c071d00b415bba26cedd8f835fca6288cf6b9"
+ "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git",
+ "reference": "14f5fff1e64118595db5408e946f3a22c75807f7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/a26c071d00b415bba26cedd8f835fca6288cf6b9",
- "reference": "a26c071d00b415bba26cedd8f835fca6288cf6b9",
+ "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/14f5fff1e64118595db5408e946f3a22c75807f7",
+ "reference": "14f5fff1e64118595db5408e946f3a22c75807f7",
"shasum": ""
},
"require": {
@@ -2266,12 +2339,11 @@
"php": ">=5.4.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
+ "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4"
},
- "default-branch": true,
"bin": [
- "bin/phpcs",
- "bin/phpcbf"
+ "bin/phpcbf",
+ "bin/phpcs"
],
"type": "library",
"extra": {
@@ -2286,62 +2358,88 @@
"authors": [
{
"name": "Greg Sherwood",
- "role": "lead"
+ "role": "Former lead"
+ },
+ {
+ "name": "Juliette Reinders Folmer",
+ "role": "Current lead"
+ },
+ {
+ "name": "Contributors",
+ "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.",
- "homepage": "https://github.com/squizlabs/PHP_CodeSniffer",
+ "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer",
"keywords": [
"phpcs",
"standards",
"static analysis"
],
"support": {
- "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues",
- "source": "https://github.com/squizlabs/PHP_CodeSniffer",
- "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki"
+ "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues",
+ "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy",
+ "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer",
+ "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki"
},
- "time": "2023-05-07T04:45:11+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/PHPCSStandards",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/jrfnl",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/php_codesniffer",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-01-11T20:47:48+00:00"
},
{
"name": "symfony/console",
- "version": "6.3.x-dev",
+ "version": "v7.0.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "ea11261501f3b6afa1e782648e2a870af0a13c48"
+ "reference": "f8587c4cdc5acad67af71c37db34ef03af91e59c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/ea11261501f3b6afa1e782648e2a870af0a13c48",
- "reference": "ea11261501f3b6afa1e782648e2a870af0a13c48",
+ "url": "https://api.github.com/repos/symfony/console/zipball/f8587c4cdc5acad67af71c37db34ef03af91e59c",
+ "reference": "f8587c4cdc5acad67af71c37db34ef03af91e59c",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "symfony/deprecation-contracts": "^2.5|^3",
+ "php": ">=8.2",
"symfony/polyfill-mbstring": "~1.0",
"symfony/service-contracts": "^2.5|^3",
- "symfony/string": "^5.4|^6.0"
+ "symfony/string": "^6.4|^7.0"
},
"conflict": {
- "symfony/dependency-injection": "<5.4",
- "symfony/dotenv": "<5.4",
- "symfony/event-dispatcher": "<5.4",
- "symfony/lock": "<5.4",
- "symfony/process": "<5.4"
+ "symfony/dependency-injection": "<6.4",
+ "symfony/dotenv": "<6.4",
+ "symfony/event-dispatcher": "<6.4",
+ "symfony/lock": "<6.4",
+ "symfony/process": "<6.4"
},
"provide": {
"psr/log-implementation": "1.0|2.0|3.0"
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/event-dispatcher": "^5.4|^6.0",
- "symfony/lock": "^5.4|^6.0",
- "symfony/process": "^5.4|^6.0",
- "symfony/var-dumper": "^5.4|^6.0"
+ "symfony/config": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/event-dispatcher": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/lock": "^6.4|^7.0",
+ "symfony/messenger": "^6.4|^7.0",
+ "symfony/process": "^6.4|^7.0",
+ "symfony/stopwatch": "^6.4|^7.0",
+ "symfony/var-dumper": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -2375,7 +2473,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/6.3"
+ "source": "https://github.com/symfony/console/tree/v7.0.2"
},
"funding": [
{
@@ -2391,30 +2489,29 @@
"type": "tidelift"
}
],
- "time": "2023-05-05T10:58:01+00:00"
+ "time": "2023-12-10T16:54:46+00:00"
},
{
"name": "symfony/deprecation-contracts",
- "version": "dev-main",
+ "version": "v3.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e"
+ "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e",
- "reference": "e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf",
+ "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf",
"shasum": ""
},
"require": {
"php": ">=8.1"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.3-dev"
+ "dev-main": "3.4-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -2443,7 +2540,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v3.2.1"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0"
},
"funding": [
{
@@ -2459,24 +2556,24 @@
"type": "tidelift"
}
],
- "time": "2023-03-01T10:25:55+00:00"
+ "time": "2023-05-23T14:45:45+00:00"
},
{
"name": "symfony/filesystem",
- "version": "6.3.x-dev",
+ "version": "v7.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
- "reference": "c2196aa8b563ed0bc645ee316c40ead823adfead"
+ "reference": "7da8ea2362a283771478c5f7729cfcb43a76b8b7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/c2196aa8b563ed0bc645ee316c40ead823adfead",
- "reference": "c2196aa8b563ed0bc645ee316c40ead823adfead",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/7da8ea2362a283771478c5f7729cfcb43a76b8b7",
+ "reference": "7da8ea2362a283771478c5f7729cfcb43a76b8b7",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-mbstring": "~1.8"
},
@@ -2506,7 +2603,7 @@
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/filesystem/tree/6.3"
+ "source": "https://github.com/symfony/filesystem/tree/v7.0.0"
},
"funding": [
{
@@ -2522,27 +2619,27 @@
"type": "tidelift"
}
],
- "time": "2023-04-28T16:05:33+00:00"
+ "time": "2023-07-27T06:33:22+00:00"
},
{
"name": "symfony/finder",
- "version": "6.3.x-dev",
+ "version": "v7.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "d9b01ba073c44cef617c7907ce2419f8d00d75e2"
+ "reference": "6e5688d69f7cfc4ed4a511e96007e06c2d34ce56"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/d9b01ba073c44cef617c7907ce2419f8d00d75e2",
- "reference": "d9b01ba073c44cef617c7907ce2419f8d00d75e2",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/6e5688d69f7cfc4ed4a511e96007e06c2d34ce56",
+ "reference": "6e5688d69f7cfc4ed4a511e96007e06c2d34ce56",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"require-dev": {
- "symfony/filesystem": "^6.0"
+ "symfony/filesystem": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -2570,7 +2667,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/6.3"
+ "source": "https://github.com/symfony/finder/tree/v7.0.0"
},
"funding": [
{
@@ -2586,24 +2683,24 @@
"type": "tidelift"
}
],
- "time": "2023-04-02T01:25:41+00:00"
+ "time": "2023-10-31T17:59:56+00:00"
},
{
"name": "symfony/options-resolver",
- "version": "6.3.x-dev",
+ "version": "v7.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/options-resolver.git",
- "reference": "a10f19f5198d589d5c33333cffe98dc9820332dd"
+ "reference": "700ff4096e346f54cb628ea650767c8130f1001f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/options-resolver/zipball/a10f19f5198d589d5c33333cffe98dc9820332dd",
- "reference": "a10f19f5198d589d5c33333cffe98dc9820332dd",
+ "url": "https://api.github.com/repos/symfony/options-resolver/zipball/700ff4096e346f54cb628ea650767c8130f1001f",
+ "reference": "700ff4096e346f54cb628ea650767c8130f1001f",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/deprecation-contracts": "^2.5|^3"
},
"type": "library",
@@ -2637,7 +2734,7 @@
"options"
],
"support": {
- "source": "https://github.com/symfony/options-resolver/tree/6.3"
+ "source": "https://github.com/symfony/options-resolver/tree/v7.0.0"
},
"funding": [
{
@@ -2653,11 +2750,11 @@
"type": "tidelift"
}
],
- "time": "2023-05-12T14:21:09+00:00"
+ "time": "2023-08-08T10:20:21+00:00"
},
{
"name": "symfony/polyfill-ctype",
- "version": "dev-main",
+ "version": "v1.28.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
@@ -2678,7 +2775,6 @@
"suggest": {
"ext-ctype": "For best performance"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -2720,7 +2816,7 @@
"portable"
],
"support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/main"
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0"
},
"funding": [
{
@@ -2740,7 +2836,7 @@
},
{
"name": "symfony/polyfill-intl-grapheme",
- "version": "dev-main",
+ "version": "v1.28.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
@@ -2758,7 +2854,6 @@
"suggest": {
"ext-intl": "For best performance"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -2802,7 +2897,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/main"
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0"
},
"funding": [
{
@@ -2822,7 +2917,7 @@
},
{
"name": "symfony/polyfill-intl-normalizer",
- "version": "dev-main",
+ "version": "v1.28.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
@@ -2840,7 +2935,6 @@
"suggest": {
"ext-intl": "For best performance"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -2887,7 +2981,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/main"
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0"
},
"funding": [
{
@@ -2907,16 +3001,16 @@
},
{
"name": "symfony/polyfill-mbstring",
- "version": "dev-main",
+ "version": "v1.28.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "f9c7affe77a00ae32ca127ca6833d034e6d33f25"
+ "reference": "42292d99c55abe617799667f454222c54c60e229"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/f9c7affe77a00ae32ca127ca6833d034e6d33f25",
- "reference": "f9c7affe77a00ae32ca127ca6833d034e6d33f25",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229",
+ "reference": "42292d99c55abe617799667f454222c54c60e229",
"shasum": ""
},
"require": {
@@ -2928,7 +3022,6 @@
"suggest": {
"ext-mbstring": "For best performance"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -2971,7 +3064,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/main"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0"
},
"funding": [
{
@@ -2987,24 +3080,24 @@
"type": "tidelift"
}
],
- "time": "2023-01-30T17:25:47+00:00"
+ "time": "2023-07-28T09:04:16+00:00"
},
{
"name": "symfony/process",
- "version": "6.3.x-dev",
+ "version": "v7.0.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "89ac295dc344cc0cd802dd303cb2598e184e7014"
+ "reference": "acd3eb5cb02382c1cb0287ba29b2908cc6ffa83a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/89ac295dc344cc0cd802dd303cb2598e184e7014",
- "reference": "89ac295dc344cc0cd802dd303cb2598e184e7014",
+ "url": "https://api.github.com/repos/symfony/process/zipball/acd3eb5cb02382c1cb0287ba29b2908cc6ffa83a",
+ "reference": "acd3eb5cb02382c1cb0287ba29b2908cc6ffa83a",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"type": "library",
"autoload": {
@@ -3032,7 +3125,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/6.3"
+ "source": "https://github.com/symfony/process/tree/v7.0.2"
},
"funding": [
{
@@ -3048,37 +3141,33 @@
"type": "tidelift"
}
],
- "time": "2023-04-28T15:57:00+00:00"
+ "time": "2023-12-24T09:15:37+00:00"
},
{
"name": "symfony/service-contracts",
- "version": "dev-main",
+ "version": "v3.4.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "a8c9cedf55f314f3a186041d19537303766df09a"
+ "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/a8c9cedf55f314f3a186041d19537303766df09a",
- "reference": "a8c9cedf55f314f3a186041d19537303766df09a",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/fe07cbc8d837f60caf7018068e350cc5163681a0",
+ "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0",
"shasum": ""
},
"require": {
"php": ">=8.1",
- "psr/container": "^2.0"
+ "psr/container": "^1.1|^2.0"
},
"conflict": {
"ext-psr": "<1.1|>=2"
},
- "suggest": {
- "symfony/service-implementation": ""
- },
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.3-dev"
+ "dev-main": "3.4-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -3118,7 +3207,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v3.2.1"
+ "source": "https://github.com/symfony/service-contracts/tree/v3.4.1"
},
"funding": [
{
@@ -3134,24 +3223,24 @@
"type": "tidelift"
}
],
- "time": "2023-03-01T10:32:47+00:00"
+ "time": "2023-12-26T14:02:43+00:00"
},
{
"name": "symfony/string",
- "version": "6.3.x-dev",
+ "version": "v7.0.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "f2e190ee75ff0f5eced645ec0be5c66fac81f51f"
+ "reference": "cc78f14f91f5e53b42044d0620961c48028ff9f5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/f2e190ee75ff0f5eced645ec0be5c66fac81f51f",
- "reference": "f2e190ee75ff0f5eced645ec0be5c66fac81f51f",
+ "url": "https://api.github.com/repos/symfony/string/zipball/cc78f14f91f5e53b42044d0620961c48028ff9f5",
+ "reference": "cc78f14f91f5e53b42044d0620961c48028ff9f5",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-intl-grapheme": "~1.0",
"symfony/polyfill-intl-normalizer": "~1.0",
@@ -3161,11 +3250,11 @@
"symfony/translation-contracts": "<2.5"
},
"require-dev": {
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/http-client": "^5.4|^6.0",
- "symfony/intl": "^6.2",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/http-client": "^6.4|^7.0",
+ "symfony/intl": "^6.4|^7.0",
"symfony/translation-contracts": "^2.5|^3.0",
- "symfony/var-exporter": "^5.4|^6.0"
+ "symfony/var-exporter": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -3204,7 +3293,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/6.3"
+ "source": "https://github.com/symfony/string/tree/v7.0.2"
},
"funding": [
{
@@ -3220,20 +3309,20 @@
"type": "tidelift"
}
],
- "time": "2023-03-21T21:06:29+00:00"
+ "time": "2023-12-10T16:54:46+00:00"
},
{
"name": "theseer/tokenizer",
- "version": "1.2.1",
+ "version": "1.2.2",
"source": {
"type": "git",
"url": "https://github.com/theseer/tokenizer.git",
- "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e"
+ "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e",
- "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
+ "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
"shasum": ""
},
"require": {
@@ -3262,7 +3351,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.1"
+ "source": "https://github.com/theseer/tokenizer/tree/1.2.2"
},
"funding": [
{
@@ -3270,11 +3359,11 @@
"type": "github"
}
],
- "time": "2021-07-28T10:34:58+00:00"
+ "time": "2023-11-20T00:12:19+00:00"
},
{
"name": "webmozart/glob",
- "version": "4.7.x-dev",
+ "version": "4.6.0",
"source": {
"type": "git",
"url": "https://github.com/webmozarts/glob.git",
@@ -3293,7 +3382,6 @@
"phpunit/phpunit": "^9.5",
"symfony/filesystem": "^5.3"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -3324,9 +3412,10 @@
}
],
"aliases": [],
- "minimum-stability": "dev",
+ "minimum-stability": "stable",
"stability-flags": {
- "phpbench/phpbench": 20
+ "phpbench/phpbench": 20,
+ "doctrine/annotations": 20
},
"prefer-stable": false,
"prefer-lowest": false,
@@ -3335,5 +3424,5 @@
"composer-runtime-api": ">=2.1"
},
"platform-dev": [],
- "plugin-api-version": "2.3.0"
+ "plugin-api-version": "2.6.0"
}
diff --git a/src/Quant/Core/phpstan.neon b/src/Quant/Core/phpstan.neon
index cd505e3..af9b958 100644
--- a/src/Quant/Core/phpstan.neon
+++ b/src/Quant/Core/phpstan.neon
@@ -4,5 +4,4 @@ parameters:
- vendor
- /*/Benchmarks/*
paths:
- - .
-
+ - .
\ No newline at end of file
diff --git a/src/Quant/PHPStan/Reflection/QuantAccessorMethodReflectionExtension.php b/src/Quant/PHPStan/Reflection/QuantAccessorMethodReflectionExtension.php
index 8cabde3..59a6182 100644
--- a/src/Quant/PHPStan/Reflection/QuantAccessorMethodReflectionExtension.php
+++ b/src/Quant/PHPStan/Reflection/QuantAccessorMethodReflectionExtension.php
@@ -100,9 +100,8 @@ protected function getPropertyConfig(ClassReflection $classReflection, string $m
{
$reflectionClass = new ReflectionClass($classReflection->getName());
- $propName = "";
- $prefix = "get";
$propName = lcfirst(substr($methodName, 3));
+ $prefix = "get";
switch (true) {
case (str_starts_with($methodName, "set")):
@@ -123,6 +122,8 @@ protected function getPropertyConfig(ClassReflection $classReflection, string $m
return null;
}
+ $classAttributes = $reflectionClass->getAttributes($prefix === "set" ? Setter::class : Getter::class);
+
if ($reflectionClass->hasProperty($propName)) {
$reflectionProperty = $reflectionClass->getProperty($propName);
@@ -133,6 +134,10 @@ protected function getPropertyConfig(ClassReflection $classReflection, string $m
$attributes = $reflectionProperty->getAttributes($prefix === "set" ? Setter::class : Getter::class);
+ if (empty($attributes)) {
+ $attributes = $classAttributes;
+ }
+
if (empty($attributes)) {
return null;
}
diff --git a/src/Quant/PHPStan/Rules/Properties/QuantAccessorAttributeReadWriteExtension.php b/src/Quant/PHPStan/Rules/Properties/QuantAccessorAttributeReadWriteExtension.php
index bed07e4..922787e 100644
--- a/src/Quant/PHPStan/Rules/Properties/QuantAccessorAttributeReadWriteExtension.php
+++ b/src/Quant/PHPStan/Rules/Properties/QuantAccessorAttributeReadWriteExtension.php
@@ -13,6 +13,8 @@
namespace Quant\PHPStan\Rules\Properties;
+use PHPStan\BetterReflection\Reflection\Adapter\FakeReflectionAttribute;
+use PHPStan\BetterReflection\Reflection\Adapter\ReflectionAttribute;
use PHPStan\Reflection\PropertyReflection;
use PHPStan\Rules\Properties\ReadWritePropertiesExtension;
use Quant\Core\Attribute\Getter;
@@ -67,8 +69,22 @@ protected function isQuantAttributed(PropertyReflection $property, string $prope
return false;
}
+ if ($this->hasQuantAttributes($reflectionClass->getAttributes())) {
+ return true;
+ }
+
$attributes = $reflectionProperty->getAttributes();
+ return $this->hasQuantAttributes($attributes);
+ }
+
+ /**
+ * @param array $attributes
+ *
+ * @return bool
+ */
+ protected function hasQuantAttributes(array $attributes): bool
+ {
foreach ($attributes as $attribute) {
if (in_array($attribute->getName(), [Setter::class, Getter::class])) {
return true;
diff --git a/src/Quant/PHPStan/Tests/Data/ChildD.php b/src/Quant/PHPStan/Tests/Data/ChildD.php
new file mode 100644
index 0000000..eb070b7
--- /dev/null
+++ b/src/Quant/PHPStan/Tests/Data/ChildD.php
@@ -0,0 +1,29 @@
+
+ *
+ * For full copyright and license information, please consult the LICENSE-file distributed
+ * with this source code.
+ */
+
+declare(strict_types=1);
+
+namespace Quant\PHPStan\Tests\Data;
+
+class ChildD extends D
+{
+ private string $foo;
+
+ private string $bar;
+
+ public function run()
+ {
+ $d = new D();
+ $d->getFoo();
+
+ $d->setBar("value")->getFoo();
+ }
+}
diff --git a/src/Quant/PHPStan/Tests/Data/D.php b/src/Quant/PHPStan/Tests/Data/D.php
new file mode 100644
index 0000000..b22904b
--- /dev/null
+++ b/src/Quant/PHPStan/Tests/Data/D.php
@@ -0,0 +1,31 @@
+
+ *
+ * For full copyright and license information, please consult the LICENSE-file distributed
+ * with this source code.
+ */
+
+declare(strict_types=1);
+
+namespace Quant\PHPStan\Tests\Data;
+
+use Quant\Core\Attribute\Getter;
+use Quant\Core\Attribute\Setter;
+use Quant\Core\Lang\Modifier;
+use Quant\Core\Trait\AccessorTrait;
+
+#[Getter(Modifier::PROTECTED)]
+#[Setter]
+class D
+{
+ use AccessorTrait;
+
+ private string $foo;
+
+ #[Setter(Modifier::PRIVATE)]
+ private string $bar;
+}
diff --git a/src/Quant/PHPStan/Tests/Reflection/AccessorMethodReflectionTest.php b/src/Quant/PHPStan/Tests/Reflection/AccessorMethodReflectionTest.php
index a99f0b4..06434d9 100644
--- a/src/Quant/PHPStan/Tests/Reflection/AccessorMethodReflectionTest.php
+++ b/src/Quant/PHPStan/Tests/Reflection/AccessorMethodReflectionTest.php
@@ -36,7 +36,7 @@ class AccessorMethodReflectionTest extends PHPStanTestCase
*/
public function testAccessorMethodReflection(): void
{
- include_once(__DIR__ . "../../data/ParentA.php");
+ include_once(__DIR__ . "/../Data/ParentA.php");
$tests = [
[
diff --git a/src/Quant/PHPStan/Tests/Reflection/QuantAccessorMethodReflectionExtensionTest.php b/src/Quant/PHPStan/Tests/Reflection/QuantAccessorMethodReflectionExtensionTest.php
index 4db5aaf..8cb33e3 100644
--- a/src/Quant/PHPStan/Tests/Reflection/QuantAccessorMethodReflectionExtensionTest.php
+++ b/src/Quant/PHPStan/Tests/Reflection/QuantAccessorMethodReflectionExtensionTest.php
@@ -47,5 +47,12 @@ public function testRule(): void
["Call to an undefined method Quant\PHPStan\Tests\Data\B::notExisting().", 65],
["Call to an undefined method Quant\PHPStan\Tests\Data\A::notExisting().", 69]
]);
+
+ $this->analyse([__DIR__ . "../../Data/D.php"], [
+ ]);
+
+ $this->analyse([__DIR__ . "../../Data/ChildD.php"], [
+ ["Call to private method setBar() of class Quant\PHPStan\Tests\Data\D.", 27]
+ ]);
}
}
diff --git a/src/Quant/PHPStan/Tests/Rules/Properties/QuantAccessorAttributeReadWriteExtensionTest.php b/src/Quant/PHPStan/Tests/Rules/Properties/QuantAccessorAttributeReadWriteExtensionTest.php
index 2c6730d..347959a 100644
--- a/src/Quant/PHPStan/Tests/Rules/Properties/QuantAccessorAttributeReadWriteExtensionTest.php
+++ b/src/Quant/PHPStan/Tests/Rules/Properties/QuantAccessorAttributeReadWriteExtensionTest.php
@@ -35,7 +35,7 @@ public function testRule(): void
{
$tip = 'See: https://phpstan.org/developing-extensions/always-read-written-properties';
- $this->analyse([__DIR__ . "../../../Data/A.php"], [
+ $this->analyse([__DIR__ . "/../../Data/A.php"], [
[
"Property Quant\PHPStan\Tests\Data\A::\$neverRead is never read, only written.",
37,
@@ -47,6 +47,19 @@ public function testRule(): void
$tip
]
]);
+
+ $this->analyse([__DIR__ . "/../../Data/ChildD.php"], [
+ [
+ "Property Quant\PHPStan\Tests\Data\ChildD::\$foo is unused.",
+ 18,
+ $tip
+ ],
+ [
+ "Property Quant\PHPStan\Tests\Data\ChildD::\$bar is unused.",
+ 20,
+ $tip
+ ]
+ ]);
}
public static function getAdditionalConfigFiles(): array
diff --git a/src/Quant/PHPStan/composer.json b/src/Quant/PHPStan/composer.json
index 1411a01..b534785 100644
--- a/src/Quant/PHPStan/composer.json
+++ b/src/Quant/PHPStan/composer.json
@@ -20,7 +20,7 @@
"phpunit/phpunit": "^10.1",
"phpstan/phpstan": "^1.10",
"squizlabs/php_codesniffer": "^3.7",
- "quant/core": "dev-main"
+ "quant/core": "^1.0"
},
"autoload": {
"psr-4": { "Quant\\PHPStan\\": "" },
@@ -29,11 +29,14 @@
]
},
"extra": {
+ "branch-alias": {
+ "dev-main": "1.x-dev"
+ },
"phpstan": {
"includes": [
"extension.neon"
]
}
},
- "minimum-stability": "dev"
+ "minimum-stability": "stable"
}
diff --git a/src/Quant/PHPStan/composer.lock b/src/Quant/PHPStan/composer.lock
index 04f5525..1f56e53 100644
--- a/src/Quant/PHPStan/composer.lock
+++ b/src/Quant/PHPStan/composer.lock
@@ -4,21 +4,21 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "5c74112dec7929757c8df38f851c3c66",
+ "content-hash": "2da8be32bf5865c3705583dd9a68e68d",
"packages": [],
"packages-dev": [
{
"name": "myclabs/deep-copy",
- "version": "1.x-dev",
+ "version": "1.11.1",
"source": {
"type": "git",
"url": "https://github.com/myclabs/DeepCopy.git",
- "reference": "928a96f585b86224ebc78f8f09d0482cf15b04f5"
+ "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/928a96f585b86224ebc78f8f09d0482cf15b04f5",
- "reference": "928a96f585b86224ebc78f8f09d0482cf15b04f5",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
+ "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
"shasum": ""
},
"require": {
@@ -26,15 +26,13 @@
},
"conflict": {
"doctrine/collections": "<1.6.8",
- "doctrine/common": "<2.13.3 || >=3 <3.2.2"
+ "doctrine/common": "<2.13.3 || >=3,<3.2.2"
},
"require-dev": {
"doctrine/collections": "^1.6.8",
"doctrine/common": "^2.13.3 || ^3.2.2",
- "phpspec/prophecy": "^1.10",
"phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
},
- "default-branch": true,
"type": "library",
"autoload": {
"files": [
@@ -58,7 +56,7 @@
],
"support": {
"issues": "https://github.com/myclabs/DeepCopy/issues",
- "source": "https://github.com/myclabs/DeepCopy/tree/1.x"
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1"
},
"funding": [
{
@@ -66,38 +64,39 @@
"type": "tidelift"
}
],
- "time": "2023-03-08T17:24:01+00:00"
+ "time": "2023-03-08T13:26:56+00:00"
},
{
"name": "nikic/php-parser",
- "version": "4.x-dev",
+ "version": "v5.0.0",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "0ffddce52d816f72d0efc4d9b02e276d3309ef01"
+ "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0ffddce52d816f72d0efc4d9b02e276d3309ef01",
- "reference": "0ffddce52d816f72d0efc4d9b02e276d3309ef01",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4a21235f7e56e713259a6f76bf4b5ea08502b9dc",
+ "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc",
"shasum": ""
},
"require": {
+ "ext-ctype": "*",
+ "ext-json": "*",
"ext-tokenizer": "*",
- "php": ">=7.0"
+ "php": ">=7.4"
},
"require-dev": {
"ircmaxell/php-yacc": "^0.0.7",
- "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
+ "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
},
- "default-branch": true,
"bin": [
"bin/php-parse"
],
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.9-dev"
+ "dev-master": "5.0-dev"
}
},
"autoload": {
@@ -121,33 +120,31 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/4.x"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.0"
},
- "time": "2023-03-06T22:12:36+00:00"
+ "time": "2024-01-07T17:17:35+00:00"
},
{
"name": "phar-io/manifest",
- "version": "dev-master",
+ "version": "2.0.3",
"source": {
"type": "git",
"url": "https://github.com/phar-io/manifest.git",
- "reference": "36d8a21e851a9512db2b086dc5ac2c61308f0138"
+ "reference": "97803eca37d319dfa7826cc2437fc020857acb53"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phar-io/manifest/zipball/36d8a21e851a9512db2b086dc5ac2c61308f0138",
- "reference": "36d8a21e851a9512db2b086dc5ac2c61308f0138",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53",
+ "reference": "97803eca37d319dfa7826cc2437fc020857acb53",
"shasum": ""
},
"require": {
"ext-dom": "*",
- "ext-libxml": "*",
"ext-phar": "*",
"ext-xmlwriter": "*",
"phar-io/version": "^3.0.1",
"php": "^7.2 || ^8.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -183,15 +180,9 @@
"description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
"support": {
"issues": "https://github.com/phar-io/manifest/issues",
- "source": "https://github.com/phar-io/manifest/tree/master"
+ "source": "https://github.com/phar-io/manifest/tree/2.0.3"
},
- "funding": [
- {
- "url": "https://github.com/theseer",
- "type": "github"
- }
- ],
- "time": "2022-02-21T19:55:33+00:00"
+ "time": "2021-07-20T11:28:43+00:00"
},
{
"name": "phar-io/version",
@@ -246,16 +237,16 @@
},
{
"name": "phpstan/phpstan",
- "version": "1.11.x-dev",
+ "version": "1.10.56",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
- "reference": "ec9bf5a7318a5d9023f44b61bfc0271fe0467ca2"
+ "reference": "27816a01aea996191ee14d010f325434c0ee76fa"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/ec9bf5a7318a5d9023f44b61bfc0271fe0467ca2",
- "reference": "ec9bf5a7318a5d9023f44b61bfc0271fe0467ca2",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/27816a01aea996191ee14d010f325434c0ee76fa",
+ "reference": "27816a01aea996191ee14d010f325434c0ee76fa",
"shasum": ""
},
"require": {
@@ -264,7 +255,6 @@
"conflict": {
"phpstan/phpstan-shim": "*"
},
- "default-branch": true,
"bin": [
"phpstan",
"phpstan.phar"
@@ -305,27 +295,27 @@
"type": "tidelift"
}
],
- "time": "2023-05-17T14:16:06+00:00"
+ "time": "2024-01-15T10:43:00+00:00"
},
{
"name": "phpunit/php-code-coverage",
- "version": "dev-main",
+ "version": "10.1.11",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "b10b1fb20600a35b13fbc58d34d3958f8c3d81ef"
+ "reference": "78c3b7625965c2513ee96569a4dbb62601784145"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/b10b1fb20600a35b13fbc58d34d3958f8c3d81ef",
- "reference": "b10b1fb20600a35b13fbc58d34d3958f8c3d81ef",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/78c3b7625965c2513ee96569a4dbb62601784145",
+ "reference": "78c3b7625965c2513ee96569a4dbb62601784145",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-libxml": "*",
"ext-xmlwriter": "*",
- "nikic/php-parser": "^4.15",
+ "nikic/php-parser": "^4.18 || ^5.0",
"php": ">=8.1",
"phpunit/php-file-iterator": "^4.0",
"phpunit/php-text-template": "^3.0",
@@ -343,7 +333,6 @@
"ext-pcov": "PHP extension that provides line coverage",
"ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -376,7 +365,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/main"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.11"
},
"funding": [
{
@@ -384,20 +373,20 @@
"type": "github"
}
],
- "time": "2023-05-07T06:59:16+00:00"
+ "time": "2023-12-21T15:38:30+00:00"
},
{
"name": "phpunit/php-file-iterator",
- "version": "dev-main",
+ "version": "4.1.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "5647d65443818959172645e7ed999217360654b6"
+ "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/5647d65443818959172645e7ed999217360654b6",
- "reference": "5647d65443818959172645e7ed999217360654b6",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a95037b6d9e608ba092da1b23931e537cadc3c3c",
+ "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c",
"shasum": ""
},
"require": {
@@ -406,7 +395,6 @@
"require-dev": {
"phpunit/phpunit": "^10.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -438,7 +426,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/4.0.2"
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.1.0"
},
"funding": [
{
@@ -446,20 +434,20 @@
"type": "github"
}
],
- "time": "2023-05-07T09:13:23+00:00"
+ "time": "2023-08-31T06:24:48+00:00"
},
{
"name": "phpunit/php-invoker",
- "version": "dev-main",
+ "version": "4.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-invoker.git",
- "reference": "6a2d3b52dc6a9cd7cd829a104c0804f5f1fb41a9"
+ "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/6a2d3b52dc6a9cd7cd829a104c0804f5f1fb41a9",
- "reference": "6a2d3b52dc6a9cd7cd829a104c0804f5f1fb41a9",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7",
+ "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7",
"shasum": ""
},
"require": {
@@ -472,7 +460,6 @@
"suggest": {
"ext-pcntl": "*"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -502,8 +489,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/main"
+ "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0"
},
"funding": [
{
@@ -511,20 +497,20 @@
"type": "github"
}
],
- "time": "2023-05-07T07:01:23+00:00"
+ "time": "2023-02-03T06:56:09+00:00"
},
{
"name": "phpunit/php-text-template",
- "version": "dev-main",
+ "version": "3.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-text-template.git",
- "reference": "af607de0978b4de9c486b88fa7f8eecd99f9389a"
+ "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/af607de0978b4de9c486b88fa7f8eecd99f9389a",
- "reference": "af607de0978b4de9c486b88fa7f8eecd99f9389a",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/0c7b06ff49e3d5072f057eb1fa59258bf287a748",
+ "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748",
"shasum": ""
},
"require": {
@@ -533,7 +519,6 @@
"require-dev": {
"phpunit/phpunit": "^10.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -564,7 +549,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/main"
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.1"
},
"funding": [
{
@@ -572,20 +557,20 @@
"type": "github"
}
],
- "time": "2023-05-07T07:02:07+00:00"
+ "time": "2023-08-31T14:07:24+00:00"
},
{
"name": "phpunit/php-timer",
- "version": "dev-main",
+ "version": "6.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "9f12525ceb70f8c6d2c0e7a56f34d8789203932a"
+ "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/9f12525ceb70f8c6d2c0e7a56f34d8789203932a",
- "reference": "9f12525ceb70f8c6d2c0e7a56f34d8789203932a",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/e2a2d67966e740530f4a3343fe2e030ffdc1161d",
+ "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d",
"shasum": ""
},
"require": {
@@ -594,7 +579,6 @@
"require-dev": {
"phpunit/phpunit": "^10.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -624,8 +608,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/main"
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0"
},
"funding": [
{
@@ -633,20 +616,20 @@
"type": "github"
}
],
- "time": "2023-05-07T07:02:43+00:00"
+ "time": "2023-02-03T06:57:52+00:00"
},
{
"name": "phpunit/phpunit",
- "version": "dev-main",
+ "version": "10.5.9",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "f100f0c168df5c34ea3d71de47eb6f812efa521b"
+ "reference": "0bd663704f0165c9e76fe4f06ffa6a1ca727fdbe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f100f0c168df5c34ea3d71de47eb6f812efa521b",
- "reference": "f100f0c168df5c34ea3d71de47eb6f812efa521b",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0bd663704f0165c9e76fe4f06ffa6a1ca727fdbe",
+ "reference": "0bd663704f0165c9e76fe4f06ffa6a1ca727fdbe",
"shasum": ""
},
"require": {
@@ -660,7 +643,7 @@
"phar-io/manifest": "^2.0.3",
"phar-io/version": "^3.0.2",
"php": ">=8.1",
- "phpunit/php-code-coverage": "^10.1.1",
+ "phpunit/php-code-coverage": "^10.1.5",
"phpunit/php-file-iterator": "^4.0",
"phpunit/php-invoker": "^4.0",
"phpunit/php-text-template": "^3.0",
@@ -670,8 +653,8 @@
"sebastian/comparator": "^5.0",
"sebastian/diff": "^5.0",
"sebastian/environment": "^6.0",
- "sebastian/exporter": "^5.0",
- "sebastian/global-state": "^6.0",
+ "sebastian/exporter": "^5.1",
+ "sebastian/global-state": "^6.0.1",
"sebastian/object-enumerator": "^5.0",
"sebastian/recursion-context": "^5.0",
"sebastian/type": "^4.0",
@@ -680,14 +663,13 @@
"suggest": {
"ext-soap": "To be able to generate mocks based on WSDL files"
},
- "default-branch": true,
"bin": [
"phpunit"
],
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "10.2-dev"
+ "dev-main": "10.5-dev"
}
},
"autoload": {
@@ -719,7 +701,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/main"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.9"
},
"funding": [
{
@@ -735,20 +717,20 @@
"type": "tidelift"
}
],
- "time": "2023-05-16T14:07:34+00:00"
+ "time": "2024-01-22T14:35:40+00:00"
},
{
"name": "quant/core",
- "version": "dev-main",
+ "version": "v1.0.0",
"source": {
"type": "git",
"url": "https://github.com/quant-php/core.git",
- "reference": "a35eed63b8d723b7406309ea89583ac0101c7350"
+ "reference": "8a5c2cda02b1773fb0b2b9b62bef2859a546e181"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/quant-php/core/zipball/a35eed63b8d723b7406309ea89583ac0101c7350",
- "reference": "a35eed63b8d723b7406309ea89583ac0101c7350",
+ "url": "https://api.github.com/repos/quant-php/core/zipball/8a5c2cda02b1773fb0b2b9b62bef2859a546e181",
+ "reference": "8a5c2cda02b1773fb0b2b9b62bef2859a546e181",
"shasum": ""
},
"require": {
@@ -758,11 +740,12 @@
"require-dev": {
"doctrine/annotations": "2.0.x-dev",
"phpbench/phpbench": "^1.2@dev",
- "phpstan/phpstan": "^1.10",
+ "phpstan/extension-installer": "^1.3",
+ "phpstan/phpstan": "1.10",
"phpunit/phpunit": "^10.1",
+ "quant/phpstan": "^1.0",
"squizlabs/php_codesniffer": "^3.7"
},
- "default-branch": true,
"type": "library",
"autoload": {
"psr-4": {
@@ -790,22 +773,22 @@
],
"support": {
"issues": "https://github.com/quant-php/core/issues",
- "source": "https://github.com/quant-php/core/tree/main"
+ "source": "https://github.com/quant-php/core/tree/v1.0.0"
},
- "time": "2023-05-17T13:20:26+00:00"
+ "time": "2024-01-23T18:36:16+00:00"
},
{
"name": "sebastian/cli-parser",
- "version": "dev-main",
+ "version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/cli-parser.git",
- "reference": "e9999c67563316cadc9af8a5db52cd791a209018"
+ "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/e9999c67563316cadc9af8a5db52cd791a209018",
- "reference": "e9999c67563316cadc9af8a5db52cd791a209018",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/efdc130dbbbb8ef0b545a994fd811725c5282cae",
+ "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae",
"shasum": ""
},
"require": {
@@ -814,7 +797,6 @@
"require-dev": {
"phpunit/phpunit": "^10.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -841,8 +823,7 @@
"homepage": "https://github.com/sebastianbergmann/cli-parser",
"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/main"
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.0"
},
"funding": [
{
@@ -850,20 +831,20 @@
"type": "github"
}
],
- "time": "2023-05-07T06:41:32+00:00"
+ "time": "2023-02-03T06:58:15+00:00"
},
{
"name": "sebastian/code-unit",
- "version": "dev-main",
+ "version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/code-unit.git",
- "reference": "bb5b0058753edc43e377569719429e2e088379b6"
+ "reference": "a81fee9eef0b7a76af11d121767abc44c104e503"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/bb5b0058753edc43e377569719429e2e088379b6",
- "reference": "bb5b0058753edc43e377569719429e2e088379b6",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/a81fee9eef0b7a76af11d121767abc44c104e503",
+ "reference": "a81fee9eef0b7a76af11d121767abc44c104e503",
"shasum": ""
},
"require": {
@@ -872,7 +853,6 @@
"require-dev": {
"phpunit/phpunit": "^10.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -899,8 +879,7 @@
"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/main"
+ "source": "https://github.com/sebastianbergmann/code-unit/tree/2.0.0"
},
"funding": [
{
@@ -908,20 +887,20 @@
"type": "github"
}
],
- "time": "2023-05-07T06:39:38+00:00"
+ "time": "2023-02-03T06:58:43+00:00"
},
{
"name": "sebastian/code-unit-reverse-lookup",
- "version": "dev-main",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
- "reference": "665ad4759110f129402b8a7554abe2f3ecf177c8"
+ "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/665ad4759110f129402b8a7554abe2f3ecf177c8",
- "reference": "665ad4759110f129402b8a7554abe2f3ecf177c8",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5e3a687f7d8ae33fb362c5c0743794bbb2420a1d",
+ "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d",
"shasum": ""
},
"require": {
@@ -930,7 +909,6 @@
"require-dev": {
"phpunit/phpunit": "^10.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -956,8 +934,7 @@
"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/main"
+ "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0.0"
},
"funding": [
{
@@ -965,20 +942,20 @@
"type": "github"
}
],
- "time": "2023-05-07T06:46:33+00:00"
+ "time": "2023-02-03T06:59:15+00:00"
},
{
"name": "sebastian/comparator",
- "version": "dev-main",
+ "version": "5.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "1b731c0bee2f3cd15fb1f621a616919624ad24bf"
+ "reference": "2db5010a484d53ebf536087a70b4a5423c102372"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1b731c0bee2f3cd15fb1f621a616919624ad24bf",
- "reference": "1b731c0bee2f3cd15fb1f621a616919624ad24bf",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2db5010a484d53ebf536087a70b4a5423c102372",
+ "reference": "2db5010a484d53ebf536087a70b4a5423c102372",
"shasum": ""
},
"require": {
@@ -989,9 +966,8 @@
"sebastian/exporter": "^5.0"
},
"require-dev": {
- "phpunit/phpunit": "^10.0"
+ "phpunit/phpunit": "^10.3"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -1035,7 +1011,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/comparator/issues",
"security": "https://github.com/sebastianbergmann/comparator/security/policy",
- "source": "https://github.com/sebastianbergmann/comparator/tree/main"
+ "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.1"
},
"funding": [
{
@@ -1043,34 +1019,33 @@
"type": "github"
}
],
- "time": "2023-05-07T06:39:57+00:00"
+ "time": "2023-08-14T13:18:12+00:00"
},
{
"name": "sebastian/complexity",
- "version": "dev-main",
+ "version": "3.2.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/complexity.git",
- "reference": "065e4d3b8ee6f999f25d7b4b03aa3e25330882e1"
+ "reference": "68ff824baeae169ec9f2137158ee529584553799"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/065e4d3b8ee6f999f25d7b4b03aa3e25330882e1",
- "reference": "065e4d3b8ee6f999f25d7b4b03aa3e25330882e1",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799",
+ "reference": "68ff824baeae169ec9f2137158ee529584553799",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.10",
+ "nikic/php-parser": "^4.18 || ^5.0",
"php": ">=8.1"
},
"require-dev": {
"phpunit/phpunit": "^10.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.0-dev"
+ "dev-main": "3.2-dev"
}
},
"autoload": {
@@ -1094,7 +1069,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/complexity/issues",
"security": "https://github.com/sebastianbergmann/complexity/security/policy",
- "source": "https://github.com/sebastianbergmann/complexity/tree/main"
+ "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0"
},
"funding": [
{
@@ -1102,20 +1077,20 @@
"type": "github"
}
],
- "time": "2023-05-07T06:47:56+00:00"
+ "time": "2023-12-21T08:37:17+00:00"
},
{
"name": "sebastian/diff",
- "version": "dev-main",
+ "version": "5.1.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "da30e5818167af846668bfebc135a178a111941f"
+ "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/da30e5818167af846668bfebc135a178a111941f",
- "reference": "da30e5818167af846668bfebc135a178a111941f",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/fbf413a49e54f6b9b17e12d900ac7f6101591b7f",
+ "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f",
"shasum": ""
},
"require": {
@@ -1125,11 +1100,10 @@
"phpunit/phpunit": "^10.0",
"symfony/process": "^4.2 || ^5"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "5.0-dev"
+ "dev-main": "5.1-dev"
}
},
"autoload": {
@@ -1162,7 +1136,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/diff/issues",
"security": "https://github.com/sebastianbergmann/diff/security/policy",
- "source": "https://github.com/sebastianbergmann/diff/tree/main"
+ "source": "https://github.com/sebastianbergmann/diff/tree/5.1.0"
},
"funding": [
{
@@ -1170,20 +1144,20 @@
"type": "github"
}
],
- "time": "2023-05-07T06:51:55+00:00"
+ "time": "2023-12-22T10:55:06+00:00"
},
{
"name": "sebastian/environment",
- "version": "dev-main",
+ "version": "6.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "ad18266a91d50fc453d820bada800bb3a710e061"
+ "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/ad18266a91d50fc453d820bada800bb3a710e061",
- "reference": "ad18266a91d50fc453d820bada800bb3a710e061",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/43c751b41d74f96cbbd4e07b7aec9675651e2951",
+ "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951",
"shasum": ""
},
"require": {
@@ -1195,7 +1169,6 @@
"suggest": {
"ext-posix": "*"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -1227,7 +1200,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/environment/issues",
"security": "https://github.com/sebastianbergmann/environment/security/policy",
- "source": "https://github.com/sebastianbergmann/environment/tree/main"
+ "source": "https://github.com/sebastianbergmann/environment/tree/6.0.1"
},
"funding": [
{
@@ -1235,20 +1208,20 @@
"type": "github"
}
],
- "time": "2023-05-07T06:52:37+00:00"
+ "time": "2023-04-11T05:39:26+00:00"
},
{
"name": "sebastian/exporter",
- "version": "dev-main",
+ "version": "5.1.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "658d41b99a288c0112583d8603f48807e33688b7"
+ "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/658d41b99a288c0112583d8603f48807e33688b7",
- "reference": "658d41b99a288c0112583d8603f48807e33688b7",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/64f51654862e0f5e318db7e9dcc2292c63cdbddc",
+ "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc",
"shasum": ""
},
"require": {
@@ -1259,11 +1232,10 @@
"require-dev": {
"phpunit/phpunit": "^10.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "5.0-dev"
+ "dev-main": "5.1-dev"
}
},
"autoload": {
@@ -1306,7 +1278,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
"security": "https://github.com/sebastianbergmann/exporter/security/policy",
- "source": "https://github.com/sebastianbergmann/exporter/tree/main"
+ "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.1"
},
"funding": [
{
@@ -1314,20 +1286,20 @@
"type": "github"
}
],
- "time": "2023-05-07T06:53:37+00:00"
+ "time": "2023-09-24T13:22:09+00:00"
},
{
"name": "sebastian/global-state",
- "version": "dev-main",
+ "version": "6.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "72c43bc6f343ece1731fefe0534046f09e29eb30"
+ "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/72c43bc6f343ece1731fefe0534046f09e29eb30",
- "reference": "72c43bc6f343ece1731fefe0534046f09e29eb30",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/7ea9ead78f6d380d2a667864c132c2f7b83055e4",
+ "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4",
"shasum": ""
},
"require": {
@@ -1339,7 +1311,6 @@
"ext-dom": "*",
"phpunit/phpunit": "^10.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -1369,7 +1340,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/main"
+ "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.1"
},
"funding": [
{
@@ -1377,30 +1348,29 @@
"type": "github"
}
],
- "time": "2023-05-08T12:35:16+00:00"
+ "time": "2023-07-19T07:19:23+00:00"
},
{
"name": "sebastian/lines-of-code",
- "version": "dev-main",
+ "version": "2.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/lines-of-code.git",
- "reference": "4bcf8375513689da164242ae30e2e984ddfbd96f"
+ "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/4bcf8375513689da164242ae30e2e984ddfbd96f",
- "reference": "4bcf8375513689da164242ae30e2e984ddfbd96f",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0",
+ "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.10",
+ "nikic/php-parser": "^4.18 || ^5.0",
"php": ">=8.1"
},
"require-dev": {
"phpunit/phpunit": "^10.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -1428,7 +1398,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/main"
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2"
},
"funding": [
{
@@ -1436,20 +1406,20 @@
"type": "github"
}
],
- "time": "2023-05-07T06:55:25+00:00"
+ "time": "2023-12-21T08:38:20+00:00"
},
{
"name": "sebastian/object-enumerator",
- "version": "dev-main",
+ "version": "5.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-enumerator.git",
- "reference": "dc4efd929baf3fe05ec47368259cf7383b7a4523"
+ "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/dc4efd929baf3fe05ec47368259cf7383b7a4523",
- "reference": "dc4efd929baf3fe05ec47368259cf7383b7a4523",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/202d0e344a580d7f7d04b3fafce6933e59dae906",
+ "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906",
"shasum": ""
},
"require": {
@@ -1460,7 +1430,6 @@
"require-dev": {
"phpunit/phpunit": "^10.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -1486,8 +1455,7 @@
"homepage": "https://github.com/sebastianbergmann/object-enumerator/",
"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/main"
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/5.0.0"
},
"funding": [
{
@@ -1495,20 +1463,20 @@
"type": "github"
}
],
- "time": "2023-05-07T06:56:01+00:00"
+ "time": "2023-02-03T07:08:32+00:00"
},
{
"name": "sebastian/object-reflector",
- "version": "dev-main",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-reflector.git",
- "reference": "e7609bd0b99a9bb73c4de98f2b9eb2368023c02c"
+ "reference": "24ed13d98130f0e7122df55d06c5c4942a577957"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/e7609bd0b99a9bb73c4de98f2b9eb2368023c02c",
- "reference": "e7609bd0b99a9bb73c4de98f2b9eb2368023c02c",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/24ed13d98130f0e7122df55d06c5c4942a577957",
+ "reference": "24ed13d98130f0e7122df55d06c5c4942a577957",
"shasum": ""
},
"require": {
@@ -1517,7 +1485,6 @@
"require-dev": {
"phpunit/phpunit": "^10.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -1543,8 +1510,7 @@
"homepage": "https://github.com/sebastianbergmann/object-reflector/",
"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/main"
+ "source": "https://github.com/sebastianbergmann/object-reflector/tree/3.0.0"
},
"funding": [
{
@@ -1552,20 +1518,20 @@
"type": "github"
}
],
- "time": "2023-05-07T06:56:37+00:00"
+ "time": "2023-02-03T07:06:18+00:00"
},
{
"name": "sebastian/recursion-context",
- "version": "dev-main",
+ "version": "5.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "d0d22a459a1b6223ea62a7ee790922e57dc33ef4"
+ "reference": "05909fb5bc7df4c52992396d0116aed689f93712"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/d0d22a459a1b6223ea62a7ee790922e57dc33ef4",
- "reference": "d0d22a459a1b6223ea62a7ee790922e57dc33ef4",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/05909fb5bc7df4c52992396d0116aed689f93712",
+ "reference": "05909fb5bc7df4c52992396d0116aed689f93712",
"shasum": ""
},
"require": {
@@ -1574,7 +1540,6 @@
"require-dev": {
"phpunit/phpunit": "^10.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -1608,8 +1573,7 @@
"homepage": "https://github.com/sebastianbergmann/recursion-context",
"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/main"
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.0"
},
"funding": [
{
@@ -1617,20 +1581,20 @@
"type": "github"
}
],
- "time": "2023-05-07T07:06:04+00:00"
+ "time": "2023-02-03T07:05:40+00:00"
},
{
"name": "sebastian/type",
- "version": "dev-main",
+ "version": "4.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/type.git",
- "reference": "ce2e7d895a4d931833b5bc362edd1b2e22912527"
+ "reference": "462699a16464c3944eefc02ebdd77882bd3925bf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/ce2e7d895a4d931833b5bc362edd1b2e22912527",
- "reference": "ce2e7d895a4d931833b5bc362edd1b2e22912527",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/462699a16464c3944eefc02ebdd77882bd3925bf",
+ "reference": "462699a16464c3944eefc02ebdd77882bd3925bf",
"shasum": ""
},
"require": {
@@ -1639,7 +1603,6 @@
"require-dev": {
"phpunit/phpunit": "^10.0"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -1666,8 +1629,7 @@
"homepage": "https://github.com/sebastianbergmann/type",
"support": {
"issues": "https://github.com/sebastianbergmann/type/issues",
- "security": "https://github.com/sebastianbergmann/type/security/policy",
- "source": "https://github.com/sebastianbergmann/type/tree/main"
+ "source": "https://github.com/sebastianbergmann/type/tree/4.0.0"
},
"funding": [
{
@@ -1675,26 +1637,25 @@
"type": "github"
}
],
- "time": "2023-05-07T07:06:55+00:00"
+ "time": "2023-02-03T07:10:45+00:00"
},
{
"name": "sebastian/version",
- "version": "dev-main",
+ "version": "4.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/version.git",
- "reference": "28cf9269a3ab01a67bef47455750356210af2578"
+ "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/28cf9269a3ab01a67bef47455750356210af2578",
- "reference": "28cf9269a3ab01a67bef47455750356210af2578",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c51fa83a5d8f43f1402e3f32a005e6262244ef17",
+ "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17",
"shasum": ""
},
"require": {
"php": ">=8.1"
},
- "default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -1721,8 +1682,7 @@
"homepage": "https://github.com/sebastianbergmann/version",
"support": {
"issues": "https://github.com/sebastianbergmann/version/issues",
- "security": "https://github.com/sebastianbergmann/version/security/policy",
- "source": "https://github.com/sebastianbergmann/version/tree/main"
+ "source": "https://github.com/sebastianbergmann/version/tree/4.0.1"
},
"funding": [
{
@@ -1730,20 +1690,20 @@
"type": "github"
}
],
- "time": "2023-05-07T06:26:24+00:00"
+ "time": "2023-02-07T11:34:05+00:00"
},
{
"name": "squizlabs/php_codesniffer",
- "version": "dev-master",
+ "version": "3.8.1",
"source": {
"type": "git",
- "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
- "reference": "2dc7b5981488502fed92df99c1460530d741e666"
+ "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git",
+ "reference": "14f5fff1e64118595db5408e946f3a22c75807f7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/2dc7b5981488502fed92df99c1460530d741e666",
- "reference": "2dc7b5981488502fed92df99c1460530d741e666",
+ "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/14f5fff1e64118595db5408e946f3a22c75807f7",
+ "reference": "14f5fff1e64118595db5408e946f3a22c75807f7",
"shasum": ""
},
"require": {
@@ -1753,12 +1713,11 @@
"php": ">=5.4.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
+ "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4"
},
- "default-branch": true,
"bin": [
- "bin/phpcs",
- "bin/phpcbf"
+ "bin/phpcbf",
+ "bin/phpcs"
],
"type": "library",
"extra": {
@@ -1773,35 +1732,58 @@
"authors": [
{
"name": "Greg Sherwood",
- "role": "lead"
+ "role": "Former lead"
+ },
+ {
+ "name": "Juliette Reinders Folmer",
+ "role": "Current lead"
+ },
+ {
+ "name": "Contributors",
+ "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.",
- "homepage": "https://github.com/squizlabs/PHP_CodeSniffer",
+ "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer",
"keywords": [
"phpcs",
"standards",
"static analysis"
],
"support": {
- "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues",
- "source": "https://github.com/squizlabs/PHP_CodeSniffer",
- "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki"
+ "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues",
+ "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy",
+ "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer",
+ "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki"
},
- "time": "2023-05-18T08:37:09+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/PHPCSStandards",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/jrfnl",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/php_codesniffer",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-01-11T20:47:48+00:00"
},
{
"name": "theseer/tokenizer",
- "version": "1.2.1",
+ "version": "1.2.2",
"source": {
"type": "git",
"url": "https://github.com/theseer/tokenizer.git",
- "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e"
+ "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e",
- "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
+ "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
"shasum": ""
},
"require": {
@@ -1830,7 +1812,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.1"
+ "source": "https://github.com/theseer/tokenizer/tree/1.2.2"
},
"funding": [
{
@@ -1838,14 +1820,12 @@
"type": "github"
}
],
- "time": "2021-07-28T10:34:58+00:00"
+ "time": "2023-11-20T00:12:19+00:00"
}
],
"aliases": [],
- "minimum-stability": "dev",
- "stability-flags": {
- "quant/core": 20
- },
+ "minimum-stability": "stable",
+ "stability-flags": [],
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
@@ -1853,5 +1833,5 @@
"composer-runtime-api": ">=2.1"
},
"platform-dev": [],
- "plugin-api-version": "2.3.0"
+ "plugin-api-version": "2.6.0"
}