diff --git a/api/composer.lock b/api/composer.lock
index c0a86f8c9a..b96c25ca34 100644
--- a/api/composer.lock
+++ b/api/composer.lock
@@ -8,26 +8,25 @@
"packages": [
{
"name": "brick/math",
- "version": "0.10.2",
+ "version": "0.12.1",
"source": {
"type": "git",
"url": "https://github.com/brick/math.git",
- "reference": "459f2781e1a08d52ee56b0b1444086e038561e3f"
+ "reference": "f510c0a40911935b77b86859eb5223d58d660df1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/brick/math/zipball/459f2781e1a08d52ee56b0b1444086e038561e3f",
- "reference": "459f2781e1a08d52ee56b0b1444086e038561e3f",
+ "url": "https://api.github.com/repos/brick/math/zipball/f510c0a40911935b77b86859eb5223d58d660df1",
+ "reference": "f510c0a40911935b77b86859eb5223d58d660df1",
"shasum": ""
},
"require": {
- "ext-json": "*",
- "php": "^7.4 || ^8.0"
+ "php": "^8.1"
},
"require-dev": {
"php-coveralls/php-coveralls": "^2.2",
- "phpunit/phpunit": "^9.0",
- "vimeo/psalm": "4.25.0"
+ "phpunit/phpunit": "^10.1",
+ "vimeo/psalm": "5.16.0"
},
"type": "library",
"autoload": {
@@ -47,12 +46,17 @@
"arithmetic",
"bigdecimal",
"bignum",
+ "bignumber",
"brick",
- "math"
+ "decimal",
+ "integer",
+ "math",
+ "mathematics",
+ "rational"
],
"support": {
"issues": "https://github.com/brick/math/issues",
- "source": "https://github.com/brick/math/tree/0.10.2"
+ "source": "https://github.com/brick/math/tree/0.12.1"
},
"funding": [
{
@@ -60,7 +64,76 @@
"type": "github"
}
],
- "time": "2022-08-10T22:54:19+00:00"
+ "time": "2023-11-29T23:19:16+00:00"
+ },
+ {
+ "name": "carbonphp/carbon-doctrine-types",
+ "version": "3.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/CarbonPHP/carbon-doctrine-types.git",
+ "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
+ "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1"
+ },
+ "conflict": {
+ "doctrine/dbal": "<4.0.0 || >=5.0.0"
+ },
+ "require-dev": {
+ "doctrine/dbal": "^4.0.0",
+ "nesbot/carbon": "^2.71.0 || ^3.0.0",
+ "phpunit/phpunit": "^10.3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Carbon\\Doctrine\\": "src/Carbon/Doctrine/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "KyleKatarn",
+ "email": "kylekatarnls@gmail.com"
+ }
+ ],
+ "description": "Types to use Carbon in Doctrine",
+ "keywords": [
+ "carbon",
+ "date",
+ "datetime",
+ "doctrine",
+ "time"
+ ],
+ "support": {
+ "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues",
+ "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/kylekatarnls",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/Carbon",
+ "type": "open_collective"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-02-09T16:56:22+00:00"
},
{
"name": "darkaonline/swagger-lume",
@@ -128,16 +201,16 @@
},
{
"name": "doctrine/annotations",
- "version": "1.14.3",
+ "version": "1.14.4",
"source": {
"type": "git",
"url": "https://github.com/doctrine/annotations.git",
- "reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af"
+ "reference": "253dca476f70808a5aeed3a47cc2cc88c5cab915"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/annotations/zipball/fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af",
- "reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af",
+ "url": "https://api.github.com/repos/doctrine/annotations/zipball/253dca476f70808a5aeed3a47cc2cc88c5cab915",
+ "reference": "253dca476f70808a5aeed3a47cc2cc88c5cab915",
"shasum": ""
},
"require": {
@@ -148,11 +221,11 @@
},
"require-dev": {
"doctrine/cache": "^1.11 || ^2.0",
- "doctrine/coding-standard": "^9 || ^10",
- "phpstan/phpstan": "~1.4.10 || ^1.8.0",
+ "doctrine/coding-standard": "^9 || ^12",
+ "phpstan/phpstan": "~1.4.10 || ^1.10.28",
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "symfony/cache": "^4.4 || ^5.4 || ^6",
- "vimeo/psalm": "^4.10"
+ "symfony/cache": "^4.4 || ^5.4 || ^6.4 || ^7",
+ "vimeo/psalm": "^4.30 || ^5.14"
},
"suggest": {
"php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations"
@@ -198,34 +271,34 @@
],
"support": {
"issues": "https://github.com/doctrine/annotations/issues",
- "source": "https://github.com/doctrine/annotations/tree/1.14.3"
+ "source": "https://github.com/doctrine/annotations/tree/1.14.4"
},
- "time": "2023-02-01T09:20:38+00:00"
+ "time": "2024-09-05T10:15:52+00:00"
},
{
"name": "doctrine/inflector",
- "version": "2.0.6",
+ "version": "2.0.10",
"source": {
"type": "git",
"url": "https://github.com/doctrine/inflector.git",
- "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024"
+ "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/inflector/zipball/d9d313a36c872fd6ee06d9a6cbcf713eaa40f024",
- "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024",
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc",
+ "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc",
"shasum": ""
},
"require": {
"php": "^7.2 || ^8.0"
},
"require-dev": {
- "doctrine/coding-standard": "^10",
+ "doctrine/coding-standard": "^11.0",
"phpstan/phpstan": "^1.8",
"phpstan/phpstan-phpunit": "^1.1",
"phpstan/phpstan-strict-rules": "^1.3",
"phpunit/phpunit": "^8.5 || ^9.5",
- "vimeo/psalm": "^4.25"
+ "vimeo/psalm": "^4.25 || ^5.4"
},
"type": "library",
"autoload": {
@@ -275,7 +348,7 @@
],
"support": {
"issues": "https://github.com/doctrine/inflector/issues",
- "source": "https://github.com/doctrine/inflector/tree/2.0.6"
+ "source": "https://github.com/doctrine/inflector/tree/2.0.10"
},
"funding": [
{
@@ -291,7 +364,7 @@
"type": "tidelift"
}
],
- "time": "2022-10-20T09:10:12+00:00"
+ "time": "2024-02-18T20:23:39+00:00"
},
{
"name": "doctrine/lexer",
@@ -371,16 +444,16 @@
},
{
"name": "dragonmantank/cron-expression",
- "version": "v3.3.2",
+ "version": "v3.4.0",
"source": {
"type": "git",
"url": "https://github.com/dragonmantank/cron-expression.git",
- "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8"
+ "reference": "8c784d071debd117328803d86b2097615b457500"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/782ca5968ab8b954773518e9e49a6f892a34b2a8",
- "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8",
+ "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/8c784d071debd117328803d86b2097615b457500",
+ "reference": "8c784d071debd117328803d86b2097615b457500",
"shasum": ""
},
"require": {
@@ -393,10 +466,14 @@
"require-dev": {
"phpstan/extension-installer": "^1.0",
"phpstan/phpstan": "^1.0",
- "phpstan/phpstan-webmozart-assert": "^1.0",
"phpunit/phpunit": "^7.0|^8.0|^9.0"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.x-dev"
+ }
+ },
"autoload": {
"psr-4": {
"Cron\\": "src/Cron/"
@@ -420,7 +497,7 @@
],
"support": {
"issues": "https://github.com/dragonmantank/cron-expression/issues",
- "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.2"
+ "source": "https://github.com/dragonmantank/cron-expression/tree/v3.4.0"
},
"funding": [
{
@@ -428,7 +505,7 @@
"type": "github"
}
],
- "time": "2022-09-10T18:51:20+00:00"
+ "time": "2024-10-09T13:47:03+00:00"
},
{
"name": "egulias/email-validator",
@@ -500,24 +577,24 @@
},
{
"name": "graham-campbell/result-type",
- "version": "v1.1.0",
+ "version": "v1.1.3",
"source": {
"type": "git",
"url": "https://github.com/GrahamCampbell/Result-Type.git",
- "reference": "a878d45c1914464426dc94da61c9e1d36ae262a8"
+ "reference": "3ba905c11371512af9d9bdd27d99b782216b6945"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/a878d45c1914464426dc94da61c9e1d36ae262a8",
- "reference": "a878d45c1914464426dc94da61c9e1d36ae262a8",
+ "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/3ba905c11371512af9d9bdd27d99b782216b6945",
+ "reference": "3ba905c11371512af9d9bdd27d99b782216b6945",
"shasum": ""
},
"require": {
"php": "^7.2.5 || ^8.0",
- "phpoption/phpoption": "^1.9"
+ "phpoption/phpoption": "^1.9.3"
},
"require-dev": {
- "phpunit/phpunit": "^8.5.28 || ^9.5.21"
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28"
},
"type": "library",
"autoload": {
@@ -546,7 +623,7 @@
],
"support": {
"issues": "https://github.com/GrahamCampbell/Result-Type/issues",
- "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.0"
+ "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.3"
},
"funding": [
{
@@ -558,7 +635,7 @@
"type": "tidelift"
}
],
- "time": "2022-07-30T15:56:11+00:00"
+ "time": "2024-07-20T21:45:45+00:00"
},
{
"name": "illuminate/auth",
@@ -2096,26 +2173,27 @@
},
{
"name": "laravel/serializable-closure",
- "version": "v1.3.0",
+ "version": "v1.3.7",
"source": {
"type": "git",
"url": "https://github.com/laravel/serializable-closure.git",
- "reference": "f23fe9d4e95255dacee1bf3525e0810d1a1b0f37"
+ "reference": "4f48ade902b94323ca3be7646db16209ec76be3d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/f23fe9d4e95255dacee1bf3525e0810d1a1b0f37",
- "reference": "f23fe9d4e95255dacee1bf3525e0810d1a1b0f37",
+ "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/4f48ade902b94323ca3be7646db16209ec76be3d",
+ "reference": "4f48ade902b94323ca3be7646db16209ec76be3d",
"shasum": ""
},
"require": {
"php": "^7.3|^8.0"
},
"require-dev": {
- "nesbot/carbon": "^2.61",
+ "illuminate/support": "^8.0|^9.0|^10.0|^11.0",
+ "nesbot/carbon": "^2.61|^3.0",
"pestphp/pest": "^1.21.3",
"phpstan/phpstan": "^1.8.2",
- "symfony/var-dumper": "^5.4.11"
+ "symfony/var-dumper": "^5.4.11|^6.2.0|^7.0.0"
},
"type": "library",
"extra": {
@@ -2152,20 +2230,20 @@
"issues": "https://github.com/laravel/serializable-closure/issues",
"source": "https://github.com/laravel/serializable-closure"
},
- "time": "2023-01-30T18:31:20+00:00"
+ "time": "2024-11-14T18:34:49+00:00"
},
{
"name": "monolog/monolog",
- "version": "2.8.0",
+ "version": "2.10.0",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
- "reference": "720488632c590286b88b80e62aa3d3d551ad4a50"
+ "reference": "5cf826f2991858b54d5c3809bee745560a1042a7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Seldaek/monolog/zipball/720488632c590286b88b80e62aa3d3d551ad4a50",
- "reference": "720488632c590286b88b80e62aa3d3d551ad4a50",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/5cf826f2991858b54d5c3809bee745560a1042a7",
+ "reference": "5cf826f2991858b54d5c3809bee745560a1042a7",
"shasum": ""
},
"require": {
@@ -2180,14 +2258,14 @@
"doctrine/couchdb": "~1.0@dev",
"elasticsearch/elasticsearch": "^7 || ^8",
"ext-json": "*",
- "graylog2/gelf-php": "^1.4.2",
+ "graylog2/gelf-php": "^1.4.2 || ^2@dev",
"guzzlehttp/guzzle": "^7.4",
"guzzlehttp/psr7": "^2.2",
"mongodb/mongodb": "^1.8",
"php-amqplib/php-amqplib": "~2.4 || ^3",
"phpspec/prophecy": "^1.15",
- "phpstan/phpstan": "^0.12.91",
- "phpunit/phpunit": "^8.5.14",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^8.5.38 || ^9.6.19",
"predis/predis": "^1.1 || ^2.0",
"rollbar/rollbar": "^1.3 || ^2 || ^3",
"ruflin/elastica": "^7",
@@ -2242,7 +2320,7 @@
],
"support": {
"issues": "https://github.com/Seldaek/monolog/issues",
- "source": "https://github.com/Seldaek/monolog/tree/2.8.0"
+ "source": "https://github.com/Seldaek/monolog/tree/2.10.0"
},
"funding": [
{
@@ -2254,32 +2332,37 @@
"type": "tidelift"
}
],
- "time": "2022-07-24T11:55:47+00:00"
+ "time": "2024-11-12T12:43:37+00:00"
},
{
"name": "nesbot/carbon",
- "version": "2.66.0",
+ "version": "2.72.5",
"source": {
"type": "git",
"url": "https://github.com/briannesbitt/Carbon.git",
- "reference": "496712849902241f04902033b0441b269effe001"
+ "reference": "afd46589c216118ecd48ff2b95d77596af1e57ed"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/496712849902241f04902033b0441b269effe001",
- "reference": "496712849902241f04902033b0441b269effe001",
+ "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/afd46589c216118ecd48ff2b95d77596af1e57ed",
+ "reference": "afd46589c216118ecd48ff2b95d77596af1e57ed",
"shasum": ""
},
"require": {
+ "carbonphp/carbon-doctrine-types": "*",
"ext-json": "*",
"php": "^7.1.8 || ^8.0",
+ "psr/clock": "^1.0",
"symfony/polyfill-mbstring": "^1.0",
"symfony/polyfill-php80": "^1.16",
"symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0"
},
+ "provide": {
+ "psr/clock-implementation": "1.0"
+ },
"require-dev": {
- "doctrine/dbal": "^2.0 || ^3.1.4",
- "doctrine/orm": "^2.7",
+ "doctrine/dbal": "^2.0 || ^3.1.4 || ^4.0",
+ "doctrine/orm": "^2.7 || ^3.0",
"friendsofphp/php-cs-fixer": "^3.0",
"kylekatarnls/multi-tester": "^2.0",
"ondrejmirtes/better-reflection": "*",
@@ -2296,8 +2379,8 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-3.x": "3.x-dev",
- "dev-master": "2.x-dev"
+ "dev-master": "3.x-dev",
+ "dev-2.x": "2.x-dev"
},
"laravel": {
"providers": [
@@ -2356,7 +2439,7 @@
"type": "tidelift"
}
],
- "time": "2023-01-29T18:53:47+00:00"
+ "time": "2024-06-03T19:18:41+00:00"
},
{
"name": "nikic/fast-route",
@@ -2475,30 +2558,30 @@
},
{
"name": "phpoption/phpoption",
- "version": "1.9.0",
+ "version": "1.9.3",
"source": {
"type": "git",
"url": "https://github.com/schmittjoh/php-option.git",
- "reference": "dc5ff11e274a90cc1c743f66c9ad700ce50db9ab"
+ "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/dc5ff11e274a90cc1c743f66c9ad700ce50db9ab",
- "reference": "dc5ff11e274a90cc1c743f66c9ad700ce50db9ab",
+ "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/e3fac8b24f56113f7cb96af14958c0dd16330f54",
+ "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54",
"shasum": ""
},
"require": {
"php": "^7.2.5 || ^8.0"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.8",
- "phpunit/phpunit": "^8.5.28 || ^9.5.21"
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28"
},
"type": "library",
"extra": {
"bamarni-bin": {
"bin-links": true,
- "forward-command": true
+ "forward-command": false
},
"branch-alias": {
"dev-master": "1.9-dev"
@@ -2534,7 +2617,7 @@
],
"support": {
"issues": "https://github.com/schmittjoh/php-option/issues",
- "source": "https://github.com/schmittjoh/php-option/tree/1.9.0"
+ "source": "https://github.com/schmittjoh/php-option/tree/1.9.3"
},
"funding": [
{
@@ -2546,7 +2629,7 @@
"type": "tidelift"
}
],
- "time": "2022-07-30T15:51:26+00:00"
+ "time": "2024-07-20T21:41:07+00:00"
},
{
"name": "psr/cache",
@@ -2597,6 +2680,54 @@
},
"time": "2021-02-03T23:26:27+00:00"
},
+ {
+ "name": "psr/clock",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/clock.git",
+ "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d",
+ "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Psr\\Clock\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for reading the clock.",
+ "homepage": "https://github.com/php-fig/clock",
+ "keywords": [
+ "clock",
+ "now",
+ "psr",
+ "psr-20",
+ "time"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/clock/issues",
+ "source": "https://github.com/php-fig/clock/tree/1.0.0"
+ },
+ "time": "2022-11-25T14:36:26+00:00"
+ },
{
"name": "psr/container",
"version": "1.1.2",
@@ -2798,21 +2929,20 @@
},
{
"name": "ramsey/collection",
- "version": "1.3.0",
+ "version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/ramsey/collection.git",
- "reference": "ad7475d1c9e70b190ecffc58f2d989416af339b4"
+ "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ramsey/collection/zipball/ad7475d1c9e70b190ecffc58f2d989416af339b4",
- "reference": "ad7475d1c9e70b190ecffc58f2d989416af339b4",
+ "url": "https://api.github.com/repos/ramsey/collection/zipball/a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5",
+ "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5",
"shasum": ""
},
"require": {
- "php": "^7.4 || ^8.0",
- "symfony/polyfill-php81": "^1.23"
+ "php": "^8.1"
},
"require-dev": {
"captainhook/plugin-composer": "^5.3",
@@ -2872,7 +3002,7 @@
],
"support": {
"issues": "https://github.com/ramsey/collection/issues",
- "source": "https://github.com/ramsey/collection/tree/1.3.0"
+ "source": "https://github.com/ramsey/collection/tree/2.0.0"
},
"funding": [
{
@@ -2884,24 +3014,24 @@
"type": "tidelift"
}
],
- "time": "2022-12-27T19:12:24+00:00"
+ "time": "2022-12-31T21:50:55+00:00"
},
{
"name": "ramsey/uuid",
- "version": "4.7.3",
+ "version": "4.7.6",
"source": {
"type": "git",
"url": "https://github.com/ramsey/uuid.git",
- "reference": "433b2014e3979047db08a17a205f410ba3869cf2"
+ "reference": "91039bc1faa45ba123c4328958e620d382ec7088"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ramsey/uuid/zipball/433b2014e3979047db08a17a205f410ba3869cf2",
- "reference": "433b2014e3979047db08a17a205f410ba3869cf2",
+ "url": "https://api.github.com/repos/ramsey/uuid/zipball/91039bc1faa45ba123c4328958e620d382ec7088",
+ "reference": "91039bc1faa45ba123c4328958e620d382ec7088",
"shasum": ""
},
"require": {
- "brick/math": "^0.8.8 || ^0.9 || ^0.10",
+ "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12",
"ext-json": "*",
"php": "^8.0",
"ramsey/collection": "^1.2 || ^2.0"
@@ -2964,7 +3094,7 @@
],
"support": {
"issues": "https://github.com/ramsey/uuid/issues",
- "source": "https://github.com/ramsey/uuid/tree/4.7.3"
+ "source": "https://github.com/ramsey/uuid/tree/4.7.6"
},
"funding": [
{
@@ -2976,7 +3106,7 @@
"type": "tidelift"
}
],
- "time": "2023-01-12T18:13:24+00:00"
+ "time": "2024-04-27T21:32:50+00:00"
},
{
"name": "swagger-api/swagger-ui",
@@ -3041,16 +3171,16 @@
},
{
"name": "symfony/console",
- "version": "v5.4.19",
+ "version": "v5.4.47",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "dccb8d251a9017d5994c988b034d3e18aaabf740"
+ "reference": "c4ba980ca61a9eb18ee6bcc73f28e475852bb1ed"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/dccb8d251a9017d5994c988b034d3e18aaabf740",
- "reference": "dccb8d251a9017d5994c988b034d3e18aaabf740",
+ "url": "https://api.github.com/repos/symfony/console/zipball/c4ba980ca61a9eb18ee6bcc73f28e475852bb1ed",
+ "reference": "c4ba980ca61a9eb18ee6bcc73f28e475852bb1ed",
"shasum": ""
},
"require": {
@@ -3115,12 +3245,12 @@
"homepage": "https://symfony.com",
"keywords": [
"cli",
- "command line",
+ "command-line",
"console",
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v5.4.19"
+ "source": "https://github.com/symfony/console/tree/v5.4.47"
},
"funding": [
{
@@ -3136,29 +3266,29 @@
"type": "tidelift"
}
],
- "time": "2023-01-01T08:32:19+00:00"
+ "time": "2024-11-06T11:30:55+00:00"
},
{
"name": "symfony/deprecation-contracts",
- "version": "v3.0.2",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c"
+ "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/26954b3d62a6c5fd0ea8a2a00c0353a14978d05c",
- "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
+ "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
"shasum": ""
},
"require": {
- "php": ">=8.0.2"
+ "php": ">=8.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.0-dev"
+ "dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -3187,7 +3317,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.0.2"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -3203,20 +3333,20 @@
"type": "tidelift"
}
],
- "time": "2022-01-02T09:55:41+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/error-handler",
- "version": "v5.4.19",
+ "version": "v5.4.46",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
- "reference": "438ef3e5e6481244785da3ce8cf8f4e74e7f2822"
+ "reference": "d19ede7a2cafb386be9486c580649d0f9e3d0363"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/error-handler/zipball/438ef3e5e6481244785da3ce8cf8f4e74e7f2822",
- "reference": "438ef3e5e6481244785da3ce8cf8f4e74e7f2822",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/d19ede7a2cafb386be9486c580649d0f9e3d0363",
+ "reference": "d19ede7a2cafb386be9486c580649d0f9e3d0363",
"shasum": ""
},
"require": {
@@ -3258,7 +3388,7 @@
"description": "Provides tools to manage errors and ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/error-handler/tree/v5.4.19"
+ "source": "https://github.com/symfony/error-handler/tree/v5.4.46"
},
"funding": [
{
@@ -3274,28 +3404,29 @@
"type": "tidelift"
}
],
- "time": "2023-01-01T08:32:19+00:00"
+ "time": "2024-11-05T14:17:06+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v6.0.19",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "2eaf8e63bc5b8cefabd4a800157f0d0c094f677a"
+ "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/2eaf8e63bc5b8cefabd4a800157f0d0c094f677a",
- "reference": "2eaf8e63bc5b8cefabd4a800157f0d0c094f677a",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e",
+ "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
- "symfony/event-dispatcher-contracts": "^2|^3"
+ "php": ">=8.1",
+ "symfony/event-dispatcher-contracts": "^2.5|^3"
},
"conflict": {
- "symfony/dependency-injection": "<5.4"
+ "symfony/dependency-injection": "<5.4",
+ "symfony/service-contracts": "<2.5"
},
"provide": {
"psr/event-dispatcher-implementation": "1.0",
@@ -3303,17 +3434,13 @@
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/http-foundation": "^5.4|^6.0",
- "symfony/service-contracts": "^1.1|^2|^3",
- "symfony/stopwatch": "^5.4|^6.0"
- },
- "suggest": {
- "symfony/dependency-injection": "",
- "symfony/http-kernel": ""
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/error-handler": "^5.4|^6.0|^7.0",
+ "symfony/expression-language": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^5.4|^6.0|^7.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/stopwatch": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -3341,7 +3468,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v6.0.19"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.13"
},
"funding": [
{
@@ -3357,33 +3484,30 @@
"type": "tidelift"
}
],
- "time": "2023-01-01T08:36:10+00:00"
+ "time": "2024-09-25T14:18:03+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v3.0.2",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "7bc61cc2db649b4637d331240c5346dcc7708051"
+ "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7bc61cc2db649b4637d331240c5346dcc7708051",
- "reference": "7bc61cc2db649b4637d331240c5346dcc7708051",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7642f5e970b672283b7823222ae8ef8bbc160b9f",
+ "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
+ "php": ">=8.1",
"psr/event-dispatcher": "^1"
},
- "suggest": {
- "symfony/event-dispatcher-implementation": ""
- },
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.0-dev"
+ "dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -3420,7 +3544,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.0.2"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -3436,20 +3560,20 @@
"type": "tidelift"
}
],
- "time": "2022-01-02T09:55:41+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/finder",
- "version": "v5.4.19",
+ "version": "v5.4.45",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "6071aebf810ad13fe8200c224f36103abb37cf1f"
+ "reference": "63741784cd7b9967975eec610b256eed3ede022b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/6071aebf810ad13fe8200c224f36103abb37cf1f",
- "reference": "6071aebf810ad13fe8200c224f36103abb37cf1f",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/63741784cd7b9967975eec610b256eed3ede022b",
+ "reference": "63741784cd7b9967975eec610b256eed3ede022b",
"shasum": ""
},
"require": {
@@ -3483,7 +3607,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v5.4.19"
+ "source": "https://github.com/symfony/finder/tree/v5.4.45"
},
"funding": [
{
@@ -3499,20 +3623,20 @@
"type": "tidelift"
}
],
- "time": "2023-01-14T19:14:44+00:00"
+ "time": "2024-09-28T13:32:08+00:00"
},
{
"name": "symfony/http-foundation",
- "version": "v5.4.20",
+ "version": "v5.4.48",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "d0435363362a47c14e9cf50663cb8ffbf491875a"
+ "reference": "3f38b8af283b830e1363acd79e5bc3412d055341"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d0435363362a47c14e9cf50663cb8ffbf491875a",
- "reference": "d0435363362a47c14e9cf50663cb8ffbf491875a",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/3f38b8af283b830e1363acd79e5bc3412d055341",
+ "reference": "3f38b8af283b830e1363acd79e5bc3412d055341",
"shasum": ""
},
"require": {
@@ -3522,7 +3646,7 @@
"symfony/polyfill-php80": "^1.16"
},
"require-dev": {
- "predis/predis": "~1.0",
+ "predis/predis": "^1.0|^2.0",
"symfony/cache": "^4.4|^5.0|^6.0",
"symfony/dependency-injection": "^5.4|^6.0",
"symfony/expression-language": "^4.4|^5.0|^6.0",
@@ -3559,7 +3683,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-foundation/tree/v5.4.20"
+ "source": "https://github.com/symfony/http-foundation/tree/v5.4.48"
},
"funding": [
{
@@ -3575,7 +3699,7 @@
"type": "tidelift"
}
],
- "time": "2023-01-29T11:11:52+00:00"
+ "time": "2024-11-13T18:58:02+00:00"
},
{
"name": "symfony/http-kernel",
@@ -3691,16 +3815,16 @@
},
{
"name": "symfony/mime",
- "version": "v5.4.19",
+ "version": "v5.4.45",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
- "reference": "a858429a9c704edc53fe057228cf9ca282ba48eb"
+ "reference": "8c1b9b3e5b52981551fc6044539af1d974e39064"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/a858429a9c704edc53fe057228cf9ca282ba48eb",
- "reference": "a858429a9c704edc53fe057228cf9ca282ba48eb",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/8c1b9b3e5b52981551fc6044539af1d974e39064",
+ "reference": "8c1b9b3e5b52981551fc6044539af1d974e39064",
"shasum": ""
},
"require": {
@@ -3715,15 +3839,16 @@
"phpdocumentor/reflection-docblock": "<3.2.2",
"phpdocumentor/type-resolver": "<1.4.0",
"symfony/mailer": "<4.4",
- "symfony/serializer": "<5.4.14|>=6.0,<6.0.14|>=6.1,<6.1.6"
+ "symfony/serializer": "<5.4.35|>=6,<6.3.12|>=6.4,<6.4.3"
},
"require-dev": {
"egulias/email-validator": "^2.1.10|^3.1|^4",
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
"symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/process": "^5.4|^6.4",
"symfony/property-access": "^4.4|^5.1|^6.0",
"symfony/property-info": "^4.4|^5.1|^6.0",
- "symfony/serializer": "^5.4.14|~6.0.14|^6.1.6"
+ "symfony/serializer": "^5.4.35|~6.3.12|^6.4.3"
},
"type": "library",
"autoload": {
@@ -3755,7 +3880,7 @@
"mime-type"
],
"support": {
- "source": "https://github.com/symfony/mime/tree/v5.4.19"
+ "source": "https://github.com/symfony/mime/tree/v5.4.45"
},
"funding": [
{
@@ -3771,24 +3896,24 @@
"type": "tidelift"
}
],
- "time": "2023-01-09T05:43:46+00:00"
+ "time": "2024-10-23T20:18:32+00:00"
},
{
"name": "symfony/polyfill-ctype",
- "version": "v1.27.0",
+ "version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "5bbc823adecdae860bb64756d639ecfec17b050a"
+ "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a",
- "reference": "5bbc823adecdae860bb64756d639ecfec17b050a",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638",
+ "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"provide": {
"ext-ctype": "*"
@@ -3798,12 +3923,9 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -3837,7 +3959,7 @@
"portable"
],
"support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0"
},
"funding": [
{
@@ -3853,36 +3975,33 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
- "version": "v1.27.0",
+ "version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "511a08c03c1960e08a883f4cffcacd219b758354"
+ "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354",
- "reference": "511a08c03c1960e08a883f4cffcacd219b758354",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
+ "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"suggest": {
"ext-intl": "For best performance"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -3918,7 +4037,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0"
},
"funding": [
{
@@ -3934,35 +4053,31 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-intl-idn",
- "version": "v1.27.0",
+ "version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-idn.git",
- "reference": "639084e360537a19f9ee352433b84ce831f3d2da"
+ "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da",
- "reference": "639084e360537a19f9ee352433b84ce831f3d2da",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/c36586dcf89a12315939e00ec9b4474adcb1d773",
+ "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773",
"shasum": ""
},
"require": {
- "php": ">=7.1",
- "symfony/polyfill-intl-normalizer": "^1.10",
- "symfony/polyfill-php72": "^1.10"
+ "php": ">=7.2",
+ "symfony/polyfill-intl-normalizer": "^1.10"
},
"suggest": {
"ext-intl": "For best performance"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -4005,7 +4120,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.31.0"
},
"funding": [
{
@@ -4021,36 +4136,33 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
- "version": "v1.27.0",
+ "version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6"
+ "reference": "3833d7255cc303546435cb650316bff708a1c75c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6",
- "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c",
+ "reference": "3833d7255cc303546435cb650316bff708a1c75c",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"suggest": {
"ext-intl": "For best performance"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -4089,7 +4201,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0"
},
"funding": [
{
@@ -4105,24 +4217,24 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.27.0",
+ "version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534"
+ "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
- "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341",
+ "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"provide": {
"ext-mbstring": "*"
@@ -4132,9 +4244,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -4172,83 +4281,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2022-11-03T14:55:06+00:00"
- },
- {
- "name": "symfony/polyfill-php72",
- "version": "v1.27.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php72.git",
- "reference": "869329b1e9894268a8a61dabb69153029b7a8c97"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/869329b1e9894268a8a61dabb69153029b7a8c97",
- "reference": "869329b1e9894268a8a61dabb69153029b7a8c97",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Php72\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-php72/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0"
},
"funding": [
{
@@ -4264,33 +4297,30 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-php73",
- "version": "v1.27.0",
+ "version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php73.git",
- "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9"
+ "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9",
- "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9",
+ "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/0f68c03565dcaaf25a890667542e8bd75fe7e5bb",
+ "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -4327,7 +4357,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php73/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-php73/tree/v1.31.0"
},
"funding": [
{
@@ -4343,33 +4373,30 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-php80",
- "version": "v1.27.0",
+ "version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936"
+ "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
- "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
+ "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -4410,86 +4437,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2022-11-03T14:55:06+00:00"
- },
- {
- "name": "symfony/polyfill-php81",
- "version": "v1.27.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php81.git",
- "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a",
- "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Php81\\": ""
- },
- "classmap": [
- "Resources/stubs"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0"
},
"funding": [
{
@@ -4505,20 +4453,20 @@
"type": "tidelift"
}
],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/process",
- "version": "v5.4.19",
+ "version": "v5.4.47",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "c5ba874c9b636dbccf761e22ce750e88ec3f55e1"
+ "reference": "5d1662fb32ebc94f17ddb8d635454a776066733d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/c5ba874c9b636dbccf761e22ce750e88ec3f55e1",
- "reference": "c5ba874c9b636dbccf761e22ce750e88ec3f55e1",
+ "url": "https://api.github.com/repos/symfony/process/zipball/5d1662fb32ebc94f17ddb8d635454a776066733d",
+ "reference": "5d1662fb32ebc94f17ddb8d635454a776066733d",
"shasum": ""
},
"require": {
@@ -4551,7 +4499,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v5.4.19"
+ "source": "https://github.com/symfony/process/tree/v5.4.47"
},
"funding": [
{
@@ -4567,37 +4515,34 @@
"type": "tidelift"
}
],
- "time": "2023-01-01T08:32:19+00:00"
+ "time": "2024-11-06T11:36:42+00:00"
},
{
"name": "symfony/service-contracts",
- "version": "v2.5.2",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c"
+ "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
- "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e53260aabf78fb3d63f8d79d69ece59f80d5eda0",
+ "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "psr/container": "^1.1",
- "symfony/deprecation-contracts": "^2.1|^3"
+ "php": ">=8.1",
+ "psr/container": "^1.1|^2.0",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
"conflict": {
"ext-psr": "<1.1|>=2"
},
- "suggest": {
- "symfony/service-implementation": ""
- },
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.5-dev"
+ "dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -4607,7 +4552,10 @@
"autoload": {
"psr-4": {
"Symfony\\Contracts\\Service\\": ""
- }
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -4634,7 +4582,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v2.5.2"
+ "source": "https://github.com/symfony/service-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -4650,37 +4598,38 @@
"type": "tidelift"
}
],
- "time": "2022-05-30T19:17:29+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/string",
- "version": "v6.0.19",
+ "version": "v6.4.15",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a"
+ "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/d9e72497367c23e08bf94176d2be45b00a9d232a",
- "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a",
+ "url": "https://api.github.com/repos/symfony/string/zipball/73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f",
+ "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
+ "php": ">=8.1",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-intl-grapheme": "~1.0",
"symfony/polyfill-intl-normalizer": "~1.0",
"symfony/polyfill-mbstring": "~1.0"
},
"conflict": {
- "symfony/translation-contracts": "<2.0"
+ "symfony/translation-contracts": "<2.5"
},
"require-dev": {
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/http-client": "^5.4|^6.0",
- "symfony/translation-contracts": "^2.0|^3.0",
- "symfony/var-exporter": "^5.4|^6.0"
+ "symfony/error-handler": "^5.4|^6.0|^7.0",
+ "symfony/http-client": "^5.4|^6.0|^7.0",
+ "symfony/intl": "^6.2|^7.0",
+ "symfony/translation-contracts": "^2.5|^3.0",
+ "symfony/var-exporter": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -4719,7 +4668,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v6.0.19"
+ "source": "https://github.com/symfony/string/tree/v6.4.15"
},
"funding": [
{
@@ -4735,32 +4684,35 @@
"type": "tidelift"
}
],
- "time": "2023-01-01T08:36:10+00:00"
+ "time": "2024-11-13T13:31:12+00:00"
},
{
"name": "symfony/translation",
- "version": "v6.0.19",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
- "reference": "9c24b3fdbbe9fb2ef3a6afd8bbaadfd72dad681f"
+ "reference": "bee9bfabfa8b4045a66bf82520e492cddbaffa66"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/9c24b3fdbbe9fb2ef3a6afd8bbaadfd72dad681f",
- "reference": "9c24b3fdbbe9fb2ef3a6afd8bbaadfd72dad681f",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/bee9bfabfa8b4045a66bf82520e492cddbaffa66",
+ "reference": "bee9bfabfa8b4045a66bf82520e492cddbaffa66",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "~1.0",
- "symfony/translation-contracts": "^2.3|^3.0"
+ "symfony/translation-contracts": "^2.5|^3.0"
},
"conflict": {
"symfony/config": "<5.4",
"symfony/console": "<5.4",
"symfony/dependency-injection": "<5.4",
+ "symfony/http-client-contracts": "<2.5",
"symfony/http-kernel": "<5.4",
+ "symfony/service-contracts": "<2.5",
"symfony/twig-bundle": "<5.4",
"symfony/yaml": "<5.4"
},
@@ -4768,22 +4720,19 @@
"symfony/translation-implementation": "2.3|3.0"
},
"require-dev": {
+ "nikic/php-parser": "^4.18|^5.0",
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0",
- "symfony/console": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/finder": "^5.4|^6.0",
- "symfony/http-client-contracts": "^1.1|^2.0|^3.0",
- "symfony/http-kernel": "^5.4|^6.0",
- "symfony/intl": "^5.4|^6.0",
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/finder": "^5.4|^6.0|^7.0",
+ "symfony/http-client-contracts": "^2.5|^3.0",
+ "symfony/http-kernel": "^5.4|^6.0|^7.0",
+ "symfony/intl": "^5.4|^6.0|^7.0",
"symfony/polyfill-intl-icu": "^1.21",
- "symfony/service-contracts": "^1.1.2|^2|^3",
- "symfony/yaml": "^5.4|^6.0"
- },
- "suggest": {
- "psr/log-implementation": "To use logging capability in translator",
- "symfony/config": "",
- "symfony/yaml": ""
+ "symfony/routing": "^5.4|^6.0|^7.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/yaml": "^5.4|^6.0|^7.0"
},
"type": "library",
"autoload": {
@@ -4814,7 +4763,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/translation/tree/v6.0.19"
+ "source": "https://github.com/symfony/translation/tree/v6.4.13"
},
"funding": [
{
@@ -4830,32 +4779,29 @@
"type": "tidelift"
}
],
- "time": "2023-01-01T08:36:10+00:00"
+ "time": "2024-09-27T18:14:25+00:00"
},
{
"name": "symfony/translation-contracts",
- "version": "v3.0.2",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
- "reference": "acbfbb274e730e5a0236f619b6168d9dedb3e282"
+ "reference": "4667ff3bd513750603a09c8dedbea942487fb07c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/acbfbb274e730e5a0236f619b6168d9dedb3e282",
- "reference": "acbfbb274e730e5a0236f619b6168d9dedb3e282",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/4667ff3bd513750603a09c8dedbea942487fb07c",
+ "reference": "4667ff3bd513750603a09c8dedbea942487fb07c",
"shasum": ""
},
"require": {
- "php": ">=8.0.2"
- },
- "suggest": {
- "symfony/translation-implementation": ""
+ "php": ">=8.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.0-dev"
+ "dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -4865,7 +4811,10 @@
"autoload": {
"psr-4": {
"Symfony\\Contracts\\Translation\\": ""
- }
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -4892,7 +4841,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/translation-contracts/tree/v3.0.2"
+ "source": "https://github.com/symfony/translation-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -4908,20 +4857,20 @@
"type": "tidelift"
}
],
- "time": "2022-06-27T17:10:44+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/var-dumper",
- "version": "v5.4.19",
+ "version": "v5.4.48",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "2944bbc23f5f8da2b962fbcbf7c4a6109b2f4b7b"
+ "reference": "42f18f170aa86d612c3559cfb3bd11a375df32c8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/2944bbc23f5f8da2b962fbcbf7c4a6109b2f4b7b",
- "reference": "2944bbc23f5f8da2b962fbcbf7c4a6109b2f4b7b",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/42f18f170aa86d612c3559cfb3bd11a375df32c8",
+ "reference": "42f18f170aa86d612c3559cfb3bd11a375df32c8",
"shasum": ""
},
"require": {
@@ -4930,12 +4879,12 @@
"symfony/polyfill-php80": "^1.16"
},
"conflict": {
- "phpunit/phpunit": "<5.4.3",
"symfony/console": "<4.4"
},
"require-dev": {
"ext-iconv": "*",
"symfony/console": "^4.4|^5.0|^6.0",
+ "symfony/http-kernel": "^4.4|^5.0|^6.0",
"symfony/process": "^4.4|^5.0|^6.0",
"symfony/uid": "^5.1|^6.0",
"twig/twig": "^2.13|^3.0.4"
@@ -4981,7 +4930,7 @@
"dump"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v5.4.19"
+ "source": "https://github.com/symfony/var-dumper/tree/v5.4.48"
},
"funding": [
{
@@ -4997,34 +4946,32 @@
"type": "tidelift"
}
],
- "time": "2023-01-16T10:52:33+00:00"
+ "time": "2024-11-08T15:21:10+00:00"
},
{
"name": "symfony/yaml",
- "version": "v6.0.19",
+ "version": "v6.4.13",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "deec3a812a0305a50db8ae689b183f43d915c884"
+ "reference": "e99b4e94d124b29ee4cf3140e1b537d2dad8cec9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/deec3a812a0305a50db8ae689b183f43d915c884",
- "reference": "deec3a812a0305a50db8ae689b183f43d915c884",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/e99b4e94d124b29ee4cf3140e1b537d2dad8cec9",
+ "reference": "e99b4e94d124b29ee4cf3140e1b537d2dad8cec9",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-ctype": "^1.8"
},
"conflict": {
"symfony/console": "<5.4"
},
"require-dev": {
- "symfony/console": "^5.4|^6.0"
- },
- "suggest": {
- "symfony/console": "For validating YAML files using the lint command"
+ "symfony/console": "^5.4|^6.0|^7.0"
},
"bin": [
"Resources/bin/yaml-lint"
@@ -5055,7 +5002,7 @@
"description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/yaml/tree/v6.0.19"
+ "source": "https://github.com/symfony/yaml/tree/v6.4.13"
},
"funding": [
{
@@ -5071,35 +5018,35 @@
"type": "tidelift"
}
],
- "time": "2023-01-11T11:50:03+00:00"
+ "time": "2024-09-25T14:18:03+00:00"
},
{
"name": "vlucas/phpdotenv",
- "version": "v5.5.0",
+ "version": "v5.6.1",
"source": {
"type": "git",
"url": "https://github.com/vlucas/phpdotenv.git",
- "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7"
+ "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7",
- "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7",
+ "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/a59a13791077fe3d44f90e7133eb68e7d22eaff2",
+ "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2",
"shasum": ""
},
"require": {
"ext-pcre": "*",
- "graham-campbell/result-type": "^1.0.2",
- "php": "^7.1.3 || ^8.0",
- "phpoption/phpoption": "^1.8",
- "symfony/polyfill-ctype": "^1.23",
- "symfony/polyfill-mbstring": "^1.23.1",
- "symfony/polyfill-php80": "^1.23.1"
+ "graham-campbell/result-type": "^1.1.3",
+ "php": "^7.2.5 || ^8.0",
+ "phpoption/phpoption": "^1.9.3",
+ "symfony/polyfill-ctype": "^1.24",
+ "symfony/polyfill-mbstring": "^1.24",
+ "symfony/polyfill-php80": "^1.24"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.4.1",
+ "bamarni/composer-bin-plugin": "^1.8.2",
"ext-filter": "*",
- "phpunit/phpunit": "^7.5.20 || ^8.5.30 || ^9.5.25"
+ "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2"
},
"suggest": {
"ext-filter": "Required to use the boolean validator."
@@ -5108,10 +5055,10 @@
"extra": {
"bamarni-bin": {
"bin-links": true,
- "forward-command": true
+ "forward-command": false
},
"branch-alias": {
- "dev-master": "5.5-dev"
+ "dev-master": "5.6-dev"
}
},
"autoload": {
@@ -5143,7 +5090,7 @@
],
"support": {
"issues": "https://github.com/vlucas/phpdotenv/issues",
- "source": "https://github.com/vlucas/phpdotenv/tree/v5.5.0"
+ "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.1"
},
"funding": [
{
@@ -5155,7 +5102,7 @@
"type": "tidelift"
}
],
- "time": "2022-10-16T01:01:54+00:00"
+ "time": "2024-07-20T21:52:34+00:00"
},
{
"name": "voku/portable-ascii",
@@ -5366,30 +5313,30 @@
"packages-dev": [
{
"name": "doctrine/instantiator",
- "version": "1.5.0",
+ "version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/instantiator.git",
- "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b"
+ "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b",
- "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b",
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
+ "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
"shasum": ""
},
"require": {
- "php": "^7.1 || ^8.0"
+ "php": "^8.1"
},
"require-dev": {
- "doctrine/coding-standard": "^9 || ^11",
+ "doctrine/coding-standard": "^11",
"ext-pdo": "*",
"ext-phar": "*",
- "phpbench/phpbench": "^0.16 || ^1",
- "phpstan/phpstan": "^1.4",
- "phpstan/phpstan-phpunit": "^1",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "vimeo/psalm": "^4.30 || ^5.4"
+ "phpbench/phpbench": "^1.2",
+ "phpstan/phpstan": "^1.9.4",
+ "phpstan/phpstan-phpunit": "^1.3",
+ "phpunit/phpunit": "^9.5.27",
+ "vimeo/psalm": "^5.4"
},
"type": "library",
"autoload": {
@@ -5416,7 +5363,7 @@
],
"support": {
"issues": "https://github.com/doctrine/instantiator/issues",
- "source": "https://github.com/doctrine/instantiator/tree/1.5.0"
+ "source": "https://github.com/doctrine/instantiator/tree/2.0.0"
},
"funding": [
{
@@ -5432,20 +5379,20 @@
"type": "tidelift"
}
],
- "time": "2022-12-30T00:15:36+00:00"
+ "time": "2022-12-30T00:23:10+00:00"
},
{
"name": "fakerphp/faker",
- "version": "v1.21.0",
+ "version": "v1.24.1",
"source": {
"type": "git",
"url": "https://github.com/FakerPHP/Faker.git",
- "reference": "92efad6a967f0b79c499705c69b662f738cc9e4d"
+ "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/92efad6a967f0b79c499705c69b662f738cc9e4d",
- "reference": "92efad6a967f0b79c499705c69b662f738cc9e4d",
+ "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5",
+ "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5",
"shasum": ""
},
"require": {
@@ -5471,11 +5418,6 @@
"ext-mbstring": "Required for multibyte Unicode string functionality."
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "v1.21-dev"
- }
- },
"autoload": {
"psr-4": {
"Faker\\": "src/Faker/"
@@ -5498,9 +5440,9 @@
],
"support": {
"issues": "https://github.com/FakerPHP/Faker/issues",
- "source": "https://github.com/FakerPHP/Faker/tree/v1.21.0"
+ "source": "https://github.com/FakerPHP/Faker/tree/v1.24.1"
},
- "time": "2022-12-13T13:54:32+00:00"
+ "time": "2024-11-21T13:46:39+00:00"
},
{
"name": "hamcrest/hamcrest-php",
@@ -5555,38 +5497,38 @@
},
{
"name": "mockery/mockery",
- "version": "1.5.1",
+ "version": "1.6.12",
"source": {
"type": "git",
"url": "https://github.com/mockery/mockery.git",
- "reference": "e92dcc83d5a51851baf5f5591d32cb2b16e3684e"
+ "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/mockery/mockery/zipball/e92dcc83d5a51851baf5f5591d32cb2b16e3684e",
- "reference": "e92dcc83d5a51851baf5f5591d32cb2b16e3684e",
+ "url": "https://api.github.com/repos/mockery/mockery/zipball/1f4efdd7d3beafe9807b08156dfcb176d18f1699",
+ "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699",
"shasum": ""
},
"require": {
"hamcrest/hamcrest-php": "^2.0.1",
"lib-pcre": ">=7.0",
- "php": "^7.3 || ^8.0"
+ "php": ">=7.3"
},
"conflict": {
"phpunit/phpunit": "<8.0"
},
"require-dev": {
- "phpunit/phpunit": "^8.5 || ^9.3"
+ "phpunit/phpunit": "^8.5 || ^9.6.17",
+ "symplify/easy-coding-standard": "^12.1.14"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.4.x-dev"
- }
- },
"autoload": {
- "psr-0": {
- "Mockery": "library/"
+ "files": [
+ "library/helpers.php",
+ "library/Mockery.php"
+ ],
+ "psr-4": {
+ "Mockery\\": "library/Mockery"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -5597,12 +5539,20 @@
{
"name": "Pádraic Brady",
"email": "padraic.brady@gmail.com",
- "homepage": "http://blog.astrumfutura.com"
+ "homepage": "https://github.com/padraic",
+ "role": "Author"
},
{
"name": "Dave Marshall",
"email": "dave.marshall@atstsolutions.co.uk",
- "homepage": "http://davedevelopment.co.uk"
+ "homepage": "https://davedevelopment.co.uk",
+ "role": "Developer"
+ },
+ {
+ "name": "Nathanael Esayeas",
+ "email": "nathanael.esayeas@protonmail.com",
+ "homepage": "https://github.com/ghostwriter",
+ "role": "Lead Developer"
}
],
"description": "Mockery is a simple yet flexible PHP mock object framework",
@@ -5620,23 +5570,26 @@
"testing"
],
"support": {
+ "docs": "https://docs.mockery.io/",
"issues": "https://github.com/mockery/mockery/issues",
- "source": "https://github.com/mockery/mockery/tree/1.5.1"
+ "rss": "https://github.com/mockery/mockery/releases.atom",
+ "security": "https://github.com/mockery/mockery/security/advisories",
+ "source": "https://github.com/mockery/mockery"
},
- "time": "2022-09-07T15:32:08+00:00"
+ "time": "2024-05-16T03:13:13+00:00"
},
{
"name": "myclabs/deep-copy",
- "version": "1.11.0",
+ "version": "1.12.1",
"source": {
"type": "git",
"url": "https://github.com/myclabs/DeepCopy.git",
- "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614"
+ "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614",
- "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/123267b2c49fbf30d78a7b2d333f6be754b94845",
+ "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845",
"shasum": ""
},
"require": {
@@ -5644,11 +5597,12 @@
},
"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"
},
"type": "library",
@@ -5674,7 +5628,7 @@
],
"support": {
"issues": "https://github.com/myclabs/DeepCopy/issues",
- "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0"
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.12.1"
},
"funding": [
{
@@ -5682,29 +5636,31 @@
"type": "tidelift"
}
],
- "time": "2022-03-03T13:19:32+00:00"
+ "time": "2024-11-08T17:47:46+00:00"
},
{
"name": "nikic/php-parser",
- "version": "v4.15.3",
+ "version": "v5.3.1",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "570e980a201d8ed0236b0a62ddf2c9cbb2034039"
+ "reference": "8eea230464783aa9671db8eea6f8c6ac5285794b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/570e980a201d8ed0236b0a62ddf2c9cbb2034039",
- "reference": "570e980a201d8ed0236b0a62ddf2c9cbb2034039",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/8eea230464783aa9671db8eea6f8c6ac5285794b",
+ "reference": "8eea230464783aa9671db8eea6f8c6ac5285794b",
"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": "^9.0"
},
"bin": [
"bin/php-parse"
@@ -5712,7 +5668,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.9-dev"
+ "dev-master": "5.0-dev"
}
},
"autoload": {
@@ -5736,26 +5692,27 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.3"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v5.3.1"
},
- "time": "2023-01-16T22:05:37+00:00"
+ "time": "2024-10-08T18:51:32+00:00"
},
{
"name": "phar-io/manifest",
- "version": "2.0.3",
+ "version": "2.0.4",
"source": {
"type": "git",
"url": "https://github.com/phar-io/manifest.git",
- "reference": "97803eca37d319dfa7826cc2437fc020857acb53"
+ "reference": "54750ef60c58e43759730615a392c31c80e23176"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53",
- "reference": "97803eca37d319dfa7826cc2437fc020857acb53",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176",
+ "reference": "54750ef60c58e43759730615a392c31c80e23176",
"shasum": ""
},
"require": {
"ext-dom": "*",
+ "ext-libxml": "*",
"ext-phar": "*",
"ext-xmlwriter": "*",
"phar-io/version": "^3.0.1",
@@ -5796,9 +5753,15 @@
"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/2.0.3"
+ "source": "https://github.com/phar-io/manifest/tree/2.0.4"
},
- "time": "2021-07-20T11:28:43+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/theseer",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-03T12:33:53+00:00"
},
{
"name": "phar-io/version",
@@ -5853,44 +5816,44 @@
},
{
"name": "phpunit/php-code-coverage",
- "version": "9.2.24",
+ "version": "9.2.32",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "2cf940ebc6355a9d430462811b5aaa308b174bed"
+ "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2cf940ebc6355a9d430462811b5aaa308b174bed",
- "reference": "2cf940ebc6355a9d430462811b5aaa308b174bed",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/85402a822d1ecf1db1096959413d35e1c37cf1a5",
+ "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-libxml": "*",
"ext-xmlwriter": "*",
- "nikic/php-parser": "^4.14",
+ "nikic/php-parser": "^4.19.1 || ^5.1.0",
"php": ">=7.3",
- "phpunit/php-file-iterator": "^3.0.3",
- "phpunit/php-text-template": "^2.0.2",
- "sebastian/code-unit-reverse-lookup": "^2.0.2",
- "sebastian/complexity": "^2.0",
- "sebastian/environment": "^5.1.2",
- "sebastian/lines-of-code": "^1.0.3",
- "sebastian/version": "^3.0.1",
- "theseer/tokenizer": "^1.2.0"
+ "phpunit/php-file-iterator": "^3.0.6",
+ "phpunit/php-text-template": "^2.0.4",
+ "sebastian/code-unit-reverse-lookup": "^2.0.3",
+ "sebastian/complexity": "^2.0.3",
+ "sebastian/environment": "^5.1.5",
+ "sebastian/lines-of-code": "^1.0.4",
+ "sebastian/version": "^3.0.2",
+ "theseer/tokenizer": "^1.2.3"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^9.6"
},
"suggest": {
- "ext-pcov": "*",
- "ext-xdebug": "*"
+ "ext-pcov": "PHP extension that provides line coverage",
+ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "9.2-dev"
+ "dev-main": "9.2.x-dev"
}
},
"autoload": {
@@ -5918,7 +5881,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.24"
+ "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.32"
},
"funding": [
{
@@ -5926,7 +5890,7 @@
"type": "github"
}
],
- "time": "2023-01-26T08:26:55+00:00"
+ "time": "2024-08-22T04:23:01+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -6171,50 +6135,50 @@
},
{
"name": "phpunit/phpunit",
- "version": "9.6.0",
+ "version": "9.6.22",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "70fc8be1d0b9fad56a199a4df5f9cfabfc246f84"
+ "reference": "f80235cb4d3caa59ae09be3adf1ded27521d1a9c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/70fc8be1d0b9fad56a199a4df5f9cfabfc246f84",
- "reference": "70fc8be1d0b9fad56a199a4df5f9cfabfc246f84",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f80235cb4d3caa59ae09be3adf1ded27521d1a9c",
+ "reference": "f80235cb4d3caa59ae09be3adf1ded27521d1a9c",
"shasum": ""
},
"require": {
- "doctrine/instantiator": "^1.3.1 || ^2",
+ "doctrine/instantiator": "^1.5.0 || ^2",
"ext-dom": "*",
"ext-json": "*",
"ext-libxml": "*",
"ext-mbstring": "*",
"ext-xml": "*",
"ext-xmlwriter": "*",
- "myclabs/deep-copy": "^1.10.1",
- "phar-io/manifest": "^2.0.3",
- "phar-io/version": "^3.0.2",
+ "myclabs/deep-copy": "^1.12.1",
+ "phar-io/manifest": "^2.0.4",
+ "phar-io/version": "^3.2.1",
"php": ">=7.3",
- "phpunit/php-code-coverage": "^9.2.13",
- "phpunit/php-file-iterator": "^3.0.5",
+ "phpunit/php-code-coverage": "^9.2.32",
+ "phpunit/php-file-iterator": "^3.0.6",
"phpunit/php-invoker": "^3.1.1",
- "phpunit/php-text-template": "^2.0.3",
- "phpunit/php-timer": "^5.0.2",
- "sebastian/cli-parser": "^1.0.1",
- "sebastian/code-unit": "^1.0.6",
+ "phpunit/php-text-template": "^2.0.4",
+ "phpunit/php-timer": "^5.0.3",
+ "sebastian/cli-parser": "^1.0.2",
+ "sebastian/code-unit": "^1.0.8",
"sebastian/comparator": "^4.0.8",
- "sebastian/diff": "^4.0.3",
- "sebastian/environment": "^5.1.3",
- "sebastian/exporter": "^4.0.5",
- "sebastian/global-state": "^5.0.1",
- "sebastian/object-enumerator": "^4.0.3",
- "sebastian/resource-operations": "^3.0.3",
- "sebastian/type": "^3.2",
+ "sebastian/diff": "^4.0.6",
+ "sebastian/environment": "^5.1.5",
+ "sebastian/exporter": "^4.0.6",
+ "sebastian/global-state": "^5.0.7",
+ "sebastian/object-enumerator": "^4.0.4",
+ "sebastian/resource-operations": "^3.0.4",
+ "sebastian/type": "^3.2.1",
"sebastian/version": "^3.0.2"
},
"suggest": {
- "ext-soap": "*",
- "ext-xdebug": "*"
+ "ext-soap": "To be able to generate mocks based on WSDL files",
+ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
},
"bin": [
"phpunit"
@@ -6253,7 +6217,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.0"
+ "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.22"
},
"funding": [
{
@@ -6269,20 +6234,20 @@
"type": "tidelift"
}
],
- "time": "2023-02-03T07:32:24+00:00"
+ "time": "2024-12-05T13:48:26+00:00"
},
{
"name": "sebastian/cli-parser",
- "version": "1.0.1",
+ "version": "1.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/cli-parser.git",
- "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2"
+ "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2",
- "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b",
+ "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b",
"shasum": ""
},
"require": {
@@ -6317,7 +6282,7 @@
"homepage": "https://github.com/sebastianbergmann/cli-parser",
"support": {
"issues": "https://github.com/sebastianbergmann/cli-parser/issues",
- "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1"
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.2"
},
"funding": [
{
@@ -6325,7 +6290,7 @@
"type": "github"
}
],
- "time": "2020-09-28T06:08:49+00:00"
+ "time": "2024-03-02T06:27:43+00:00"
},
{
"name": "sebastian/code-unit",
@@ -6514,20 +6479,20 @@
},
{
"name": "sebastian/complexity",
- "version": "2.0.2",
+ "version": "2.0.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/complexity.git",
- "reference": "739b35e53379900cc9ac327b2147867b8b6efd88"
+ "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88",
- "reference": "739b35e53379900cc9ac327b2147867b8b6efd88",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a",
+ "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.7",
+ "nikic/php-parser": "^4.18 || ^5.0",
"php": ">=7.3"
},
"require-dev": {
@@ -6559,7 +6524,7 @@
"homepage": "https://github.com/sebastianbergmann/complexity",
"support": {
"issues": "https://github.com/sebastianbergmann/complexity/issues",
- "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2"
+ "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3"
},
"funding": [
{
@@ -6567,20 +6532,20 @@
"type": "github"
}
],
- "time": "2020-10-26T15:52:27+00:00"
+ "time": "2023-12-22T06:19:30+00:00"
},
{
"name": "sebastian/diff",
- "version": "4.0.4",
+ "version": "4.0.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d"
+ "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d",
- "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc",
+ "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc",
"shasum": ""
},
"require": {
@@ -6625,7 +6590,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/diff/issues",
- "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4"
+ "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6"
},
"funding": [
{
@@ -6633,7 +6598,7 @@
"type": "github"
}
],
- "time": "2020-10-26T13:10:38+00:00"
+ "time": "2024-03-02T06:30:58+00:00"
},
{
"name": "sebastian/environment",
@@ -6700,16 +6665,16 @@
},
{
"name": "sebastian/exporter",
- "version": "4.0.5",
+ "version": "4.0.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d"
+ "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
- "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72",
+ "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72",
"shasum": ""
},
"require": {
@@ -6765,7 +6730,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
- "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5"
+ "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6"
},
"funding": [
{
@@ -6773,20 +6738,20 @@
"type": "github"
}
],
- "time": "2022-09-14T06:03:37+00:00"
+ "time": "2024-03-02T06:33:00+00:00"
},
{
"name": "sebastian/global-state",
- "version": "5.0.5",
+ "version": "5.0.7",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2"
+ "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2",
- "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9",
+ "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9",
"shasum": ""
},
"require": {
@@ -6829,7 +6794,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/global-state/issues",
- "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5"
+ "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.7"
},
"funding": [
{
@@ -6837,24 +6802,24 @@
"type": "github"
}
],
- "time": "2022-02-14T08:28:10+00:00"
+ "time": "2024-03-02T06:35:11+00:00"
},
{
"name": "sebastian/lines-of-code",
- "version": "1.0.3",
+ "version": "1.0.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/lines-of-code.git",
- "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc"
+ "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc",
- "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5",
+ "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.6",
+ "nikic/php-parser": "^4.18 || ^5.0",
"php": ">=7.3"
},
"require-dev": {
@@ -6886,7 +6851,7 @@
"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/1.0.3"
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4"
},
"funding": [
{
@@ -6894,7 +6859,7 @@
"type": "github"
}
],
- "time": "2020-11-28T06:42:11+00:00"
+ "time": "2023-12-22T06:20:34+00:00"
},
{
"name": "sebastian/object-enumerator",
@@ -7073,16 +7038,16 @@
},
{
"name": "sebastian/resource-operations",
- "version": "3.0.3",
+ "version": "3.0.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/resource-operations.git",
- "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8"
+ "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
- "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
+ "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/05d5692a7993ecccd56a03e40cd7e5b09b1d404e",
+ "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e",
"shasum": ""
},
"require": {
@@ -7094,7 +7059,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0-dev"
+ "dev-main": "3.0-dev"
}
},
"autoload": {
@@ -7115,8 +7080,7 @@
"description": "Provides a list of PHP built-in functions that operate on resources",
"homepage": "https://www.github.com/sebastianbergmann/resource-operations",
"support": {
- "issues": "https://github.com/sebastianbergmann/resource-operations/issues",
- "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3"
+ "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.4"
},
"funding": [
{
@@ -7124,7 +7088,7 @@
"type": "github"
}
],
- "time": "2020-09-28T06:45:17+00:00"
+ "time": "2024-03-14T16:00:52+00:00"
},
{
"name": "sebastian/type",
@@ -7237,16 +7201,16 @@
},
{
"name": "theseer/tokenizer",
- "version": "1.2.1",
+ "version": "1.2.3",
"source": {
"type": "git",
"url": "https://github.com/theseer/tokenizer.git",
- "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e"
+ "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e",
- "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+ "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
"shasum": ""
},
"require": {
@@ -7275,7 +7239,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.3"
},
"funding": [
{
@@ -7283,7 +7247,7 @@
"type": "github"
}
],
- "time": "2021-07-28T10:34:58+00:00"
+ "time": "2024-03-03T12:36:25+00:00"
}
],
"aliases": [],
@@ -7295,5 +7259,5 @@
"php": "^7.3|^8.0"
},
"platform-dev": [],
- "plugin-api-version": "2.1.0"
+ "plugin-api-version": "2.6.0"
}
diff --git a/api/vendor/autoload.php b/api/vendor/autoload.php
index 2d652533b6..4be02de9f9 100644
--- a/api/vendor/autoload.php
+++ b/api/vendor/autoload.php
@@ -2,6 +2,24 @@
// autoload.php @generated by Composer
+if (PHP_VERSION_ID < 50600) {
+ if (!headers_sent()) {
+ header('HTTP/1.1 500 Internal Server Error');
+ }
+ $err = 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL;
+ if (!ini_get('display_errors')) {
+ if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
+ fwrite(STDERR, $err);
+ } elseif (!headers_sent()) {
+ echo $err;
+ }
+ }
+ trigger_error(
+ $err,
+ E_USER_ERROR
+ );
+}
+
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInite18bd6b57182fc88f4b9d0452696caaa::getLoader();
diff --git a/api/vendor/bin/carbon b/api/vendor/bin/carbon
index 9a39ae30b2..86fbfdfd88 100644
--- a/api/vendor/bin/carbon
+++ b/api/vendor/bin/carbon
@@ -4,21 +4,116 @@
/**
* Proxy PHP file generated by Composer
*
- * This file includes the referenced bin path (../nesbot/carbon/bin/carbon) using eval to remove the shebang if present
+ * This file includes the referenced bin path (../nesbot/carbon/bin/carbon)
+ * using a stream wrapper to prevent the shebang from being output on PHP<8
*
* @generated
*/
-$binPath = realpath(__DIR__ . "/" . '../nesbot/carbon/bin/carbon');
-$contents = file_get_contents($binPath);
-$contents = preg_replace('{^#!/.+\r?\n<\?(php)?}', '', $contents, 1, $replaced);
-if ($replaced) {
- $contents = strtr($contents, array(
- '__FILE__' => var_export($binPath, true),
- '__DIR__' => var_export(dirname($binPath), true),
- ));
-
- eval($contents);
- exit(0);
+namespace Composer;
+
+$GLOBALS['_composer_bin_dir'] = __DIR__;
+$GLOBALS['_composer_autoload_path'] = __DIR__ . '/..'.'/autoload.php';
+
+if (PHP_VERSION_ID < 80000) {
+ if (!class_exists('Composer\BinProxyWrapper')) {
+ /**
+ * @internal
+ */
+ final class BinProxyWrapper
+ {
+ private $handle;
+ private $position;
+ private $realpath;
+
+ public function stream_open($path, $mode, $options, &$opened_path)
+ {
+ // get rid of phpvfscomposer:// prefix for __FILE__ & __DIR__ resolution
+ $opened_path = substr($path, 17);
+ $this->realpath = realpath($opened_path) ?: $opened_path;
+ $opened_path = $this->realpath;
+ $this->handle = fopen($this->realpath, $mode);
+ $this->position = 0;
+
+ return (bool) $this->handle;
+ }
+
+ public function stream_read($count)
+ {
+ $data = fread($this->handle, $count);
+
+ if ($this->position === 0) {
+ $data = preg_replace('{^#!.*\r?\n}', '', $data);
+ }
+
+ $this->position += strlen($data);
+
+ return $data;
+ }
+
+ public function stream_cast($castAs)
+ {
+ return $this->handle;
+ }
+
+ public function stream_close()
+ {
+ fclose($this->handle);
+ }
+
+ public function stream_lock($operation)
+ {
+ return $operation ? flock($this->handle, $operation) : true;
+ }
+
+ public function stream_seek($offset, $whence)
+ {
+ if (0 === fseek($this->handle, $offset, $whence)) {
+ $this->position = ftell($this->handle);
+ return true;
+ }
+
+ return false;
+ }
+
+ public function stream_tell()
+ {
+ return $this->position;
+ }
+
+ public function stream_eof()
+ {
+ return feof($this->handle);
+ }
+
+ public function stream_stat()
+ {
+ return array();
+ }
+
+ public function stream_set_option($option, $arg1, $arg2)
+ {
+ return true;
+ }
+
+ public function url_stat($path, $flags)
+ {
+ $path = substr($path, 17);
+ if (file_exists($path)) {
+ return stat($path);
+ }
+
+ return false;
+ }
+ }
+ }
+
+ if (
+ (function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true))
+ || (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper'))
+ ) {
+ return include("phpvfscomposer://" . __DIR__ . '/..'.'/nesbot/carbon/bin/carbon');
+ }
}
-include $binPath;
+
+return include __DIR__ . '/..'.'/nesbot/carbon/bin/carbon';
diff --git a/api/vendor/bin/carbon.bat b/api/vendor/bin/carbon.bat
index 3cf1f282d5..806cf153b7 100644
--- a/api/vendor/bin/carbon.bat
+++ b/api/vendor/bin/carbon.bat
@@ -1,4 +1,5 @@
@ECHO OFF
setlocal DISABLEDELAYEDEXPANSION
-SET BIN_TARGET=%~dp0/../nesbot/carbon/bin/carbon
+SET BIN_TARGET=%~dp0/carbon
+SET COMPOSER_RUNTIME_BIN_DIR=%~dp0
php "%BIN_TARGET%" %*
diff --git a/api/vendor/bin/patch-type-declarations b/api/vendor/bin/patch-type-declarations
index a3f0912000..4e63fefc42 100644
--- a/api/vendor/bin/patch-type-declarations
+++ b/api/vendor/bin/patch-type-declarations
@@ -4,21 +4,116 @@
/**
* Proxy PHP file generated by Composer
*
- * This file includes the referenced bin path (../symfony/error-handler/Resources/bin/patch-type-declarations) using eval to remove the shebang if present
+ * This file includes the referenced bin path (../symfony/error-handler/Resources/bin/patch-type-declarations)
+ * using a stream wrapper to prevent the shebang from being output on PHP<8
*
* @generated
*/
-$binPath = realpath(__DIR__ . "/" . '../symfony/error-handler/Resources/bin/patch-type-declarations');
-$contents = file_get_contents($binPath);
-$contents = preg_replace('{^#!/.+\r?\n<\?(php)?}', '', $contents, 1, $replaced);
-if ($replaced) {
- $contents = strtr($contents, array(
- '__FILE__' => var_export($binPath, true),
- '__DIR__' => var_export(dirname($binPath), true),
- ));
-
- eval($contents);
- exit(0);
+namespace Composer;
+
+$GLOBALS['_composer_bin_dir'] = __DIR__;
+$GLOBALS['_composer_autoload_path'] = __DIR__ . '/..'.'/autoload.php';
+
+if (PHP_VERSION_ID < 80000) {
+ if (!class_exists('Composer\BinProxyWrapper')) {
+ /**
+ * @internal
+ */
+ final class BinProxyWrapper
+ {
+ private $handle;
+ private $position;
+ private $realpath;
+
+ public function stream_open($path, $mode, $options, &$opened_path)
+ {
+ // get rid of phpvfscomposer:// prefix for __FILE__ & __DIR__ resolution
+ $opened_path = substr($path, 17);
+ $this->realpath = realpath($opened_path) ?: $opened_path;
+ $opened_path = $this->realpath;
+ $this->handle = fopen($this->realpath, $mode);
+ $this->position = 0;
+
+ return (bool) $this->handle;
+ }
+
+ public function stream_read($count)
+ {
+ $data = fread($this->handle, $count);
+
+ if ($this->position === 0) {
+ $data = preg_replace('{^#!.*\r?\n}', '', $data);
+ }
+
+ $this->position += strlen($data);
+
+ return $data;
+ }
+
+ public function stream_cast($castAs)
+ {
+ return $this->handle;
+ }
+
+ public function stream_close()
+ {
+ fclose($this->handle);
+ }
+
+ public function stream_lock($operation)
+ {
+ return $operation ? flock($this->handle, $operation) : true;
+ }
+
+ public function stream_seek($offset, $whence)
+ {
+ if (0 === fseek($this->handle, $offset, $whence)) {
+ $this->position = ftell($this->handle);
+ return true;
+ }
+
+ return false;
+ }
+
+ public function stream_tell()
+ {
+ return $this->position;
+ }
+
+ public function stream_eof()
+ {
+ return feof($this->handle);
+ }
+
+ public function stream_stat()
+ {
+ return array();
+ }
+
+ public function stream_set_option($option, $arg1, $arg2)
+ {
+ return true;
+ }
+
+ public function url_stat($path, $flags)
+ {
+ $path = substr($path, 17);
+ if (file_exists($path)) {
+ return stat($path);
+ }
+
+ return false;
+ }
+ }
+ }
+
+ if (
+ (function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true))
+ || (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper'))
+ ) {
+ return include("phpvfscomposer://" . __DIR__ . '/..'.'/symfony/error-handler/Resources/bin/patch-type-declarations');
+ }
}
-include $binPath;
+
+return include __DIR__ . '/..'.'/symfony/error-handler/Resources/bin/patch-type-declarations';
diff --git a/api/vendor/bin/patch-type-declarations.bat b/api/vendor/bin/patch-type-declarations.bat
index b92a2da31b..2b0707968a 100644
--- a/api/vendor/bin/patch-type-declarations.bat
+++ b/api/vendor/bin/patch-type-declarations.bat
@@ -1,4 +1,5 @@
@ECHO OFF
setlocal DISABLEDELAYEDEXPANSION
-SET BIN_TARGET=%~dp0/../symfony/error-handler/Resources/bin/patch-type-declarations
+SET BIN_TARGET=%~dp0/patch-type-declarations
+SET COMPOSER_RUNTIME_BIN_DIR=%~dp0
php "%BIN_TARGET%" %*
diff --git a/api/vendor/bin/php-parse b/api/vendor/bin/php-parse
index e2e4c58a1b..61566e60c8 100644
--- a/api/vendor/bin/php-parse
+++ b/api/vendor/bin/php-parse
@@ -4,21 +4,116 @@
/**
* Proxy PHP file generated by Composer
*
- * This file includes the referenced bin path (../nikic/php-parser/bin/php-parse) using eval to remove the shebang if present
+ * This file includes the referenced bin path (../nikic/php-parser/bin/php-parse)
+ * using a stream wrapper to prevent the shebang from being output on PHP<8
*
* @generated
*/
-$binPath = realpath(__DIR__ . "/" . '../nikic/php-parser/bin/php-parse');
-$contents = file_get_contents($binPath);
-$contents = preg_replace('{^#!/.+\r?\n<\?(php)?}', '', $contents, 1, $replaced);
-if ($replaced) {
- $contents = strtr($contents, array(
- '__FILE__' => var_export($binPath, true),
- '__DIR__' => var_export(dirname($binPath), true),
- ));
-
- eval($contents);
- exit(0);
+namespace Composer;
+
+$GLOBALS['_composer_bin_dir'] = __DIR__;
+$GLOBALS['_composer_autoload_path'] = __DIR__ . '/..'.'/autoload.php';
+
+if (PHP_VERSION_ID < 80000) {
+ if (!class_exists('Composer\BinProxyWrapper')) {
+ /**
+ * @internal
+ */
+ final class BinProxyWrapper
+ {
+ private $handle;
+ private $position;
+ private $realpath;
+
+ public function stream_open($path, $mode, $options, &$opened_path)
+ {
+ // get rid of phpvfscomposer:// prefix for __FILE__ & __DIR__ resolution
+ $opened_path = substr($path, 17);
+ $this->realpath = realpath($opened_path) ?: $opened_path;
+ $opened_path = $this->realpath;
+ $this->handle = fopen($this->realpath, $mode);
+ $this->position = 0;
+
+ return (bool) $this->handle;
+ }
+
+ public function stream_read($count)
+ {
+ $data = fread($this->handle, $count);
+
+ if ($this->position === 0) {
+ $data = preg_replace('{^#!.*\r?\n}', '', $data);
+ }
+
+ $this->position += strlen($data);
+
+ return $data;
+ }
+
+ public function stream_cast($castAs)
+ {
+ return $this->handle;
+ }
+
+ public function stream_close()
+ {
+ fclose($this->handle);
+ }
+
+ public function stream_lock($operation)
+ {
+ return $operation ? flock($this->handle, $operation) : true;
+ }
+
+ public function stream_seek($offset, $whence)
+ {
+ if (0 === fseek($this->handle, $offset, $whence)) {
+ $this->position = ftell($this->handle);
+ return true;
+ }
+
+ return false;
+ }
+
+ public function stream_tell()
+ {
+ return $this->position;
+ }
+
+ public function stream_eof()
+ {
+ return feof($this->handle);
+ }
+
+ public function stream_stat()
+ {
+ return array();
+ }
+
+ public function stream_set_option($option, $arg1, $arg2)
+ {
+ return true;
+ }
+
+ public function url_stat($path, $flags)
+ {
+ $path = substr($path, 17);
+ if (file_exists($path)) {
+ return stat($path);
+ }
+
+ return false;
+ }
+ }
+ }
+
+ if (
+ (function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true))
+ || (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper'))
+ ) {
+ return include("phpvfscomposer://" . __DIR__ . '/..'.'/nikic/php-parser/bin/php-parse');
+ }
}
-include $binPath;
+
+return include __DIR__ . '/..'.'/nikic/php-parser/bin/php-parse';
diff --git a/api/vendor/bin/php-parse.bat b/api/vendor/bin/php-parse.bat
index a5baa4eda1..2c5096dc39 100644
--- a/api/vendor/bin/php-parse.bat
+++ b/api/vendor/bin/php-parse.bat
@@ -1,4 +1,5 @@
@ECHO OFF
setlocal DISABLEDELAYEDEXPANSION
-SET BIN_TARGET=%~dp0/../nikic/php-parser/bin/php-parse
+SET BIN_TARGET=%~dp0/php-parse
+SET COMPOSER_RUNTIME_BIN_DIR=%~dp0
php "%BIN_TARGET%" %*
diff --git a/api/vendor/bin/phpunit b/api/vendor/bin/phpunit
index dba519bc99..b5b530a8fe 100644
--- a/api/vendor/bin/phpunit
+++ b/api/vendor/bin/phpunit
@@ -4,21 +4,119 @@
/**
* Proxy PHP file generated by Composer
*
- * This file includes the referenced bin path (../phpunit/phpunit/phpunit) using eval to remove the shebang if present
+ * This file includes the referenced bin path (../phpunit/phpunit/phpunit)
+ * using a stream wrapper to prevent the shebang from being output on PHP<8
*
* @generated
*/
-$binPath = realpath(__DIR__ . "/" . '../phpunit/phpunit/phpunit');
-$contents = file_get_contents($binPath);
-$contents = preg_replace('{^#!/.+\r?\n<\?(php)?}', '', $contents, 1, $replaced);
-if ($replaced) {
- $contents = strtr($contents, array(
- '__FILE__' => var_export($binPath, true),
- '__DIR__' => var_export(dirname($binPath), true),
- ));
-
- eval($contents);
- exit(0);
+namespace Composer;
+
+$GLOBALS['_composer_bin_dir'] = __DIR__;
+$GLOBALS['_composer_autoload_path'] = __DIR__ . '/..'.'/autoload.php';
+$GLOBALS['__PHPUNIT_ISOLATION_EXCLUDE_LIST'] = $GLOBALS['__PHPUNIT_ISOLATION_BLACKLIST'] = array(realpath(__DIR__ . '/..'.'/phpunit/phpunit/phpunit'));
+
+if (PHP_VERSION_ID < 80000) {
+ if (!class_exists('Composer\BinProxyWrapper')) {
+ /**
+ * @internal
+ */
+ final class BinProxyWrapper
+ {
+ private $handle;
+ private $position;
+ private $realpath;
+
+ public function stream_open($path, $mode, $options, &$opened_path)
+ {
+ // get rid of phpvfscomposer:// prefix for __FILE__ & __DIR__ resolution
+ $opened_path = substr($path, 17);
+ $this->realpath = realpath($opened_path) ?: $opened_path;
+ $opened_path = 'phpvfscomposer://'.$this->realpath;
+ $this->handle = fopen($this->realpath, $mode);
+ $this->position = 0;
+
+ return (bool) $this->handle;
+ }
+
+ public function stream_read($count)
+ {
+ $data = fread($this->handle, $count);
+
+ if ($this->position === 0) {
+ $data = preg_replace('{^#!.*\r?\n}', '', $data);
+ }
+ $data = str_replace('__DIR__', var_export(dirname($this->realpath), true), $data);
+ $data = str_replace('__FILE__', var_export($this->realpath, true), $data);
+
+ $this->position += strlen($data);
+
+ return $data;
+ }
+
+ public function stream_cast($castAs)
+ {
+ return $this->handle;
+ }
+
+ public function stream_close()
+ {
+ fclose($this->handle);
+ }
+
+ public function stream_lock($operation)
+ {
+ return $operation ? flock($this->handle, $operation) : true;
+ }
+
+ public function stream_seek($offset, $whence)
+ {
+ if (0 === fseek($this->handle, $offset, $whence)) {
+ $this->position = ftell($this->handle);
+ return true;
+ }
+
+ return false;
+ }
+
+ public function stream_tell()
+ {
+ return $this->position;
+ }
+
+ public function stream_eof()
+ {
+ return feof($this->handle);
+ }
+
+ public function stream_stat()
+ {
+ return array();
+ }
+
+ public function stream_set_option($option, $arg1, $arg2)
+ {
+ return true;
+ }
+
+ public function url_stat($path, $flags)
+ {
+ $path = substr($path, 17);
+ if (file_exists($path)) {
+ return stat($path);
+ }
+
+ return false;
+ }
+ }
+ }
+
+ if (
+ (function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true))
+ || (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper'))
+ ) {
+ return include("phpvfscomposer://" . __DIR__ . '/..'.'/phpunit/phpunit/phpunit');
+ }
}
-include $binPath;
+
+return include __DIR__ . '/..'.'/phpunit/phpunit/phpunit';
diff --git a/api/vendor/bin/phpunit.bat b/api/vendor/bin/phpunit.bat
index b17792348c..2a070cd443 100644
--- a/api/vendor/bin/phpunit.bat
+++ b/api/vendor/bin/phpunit.bat
@@ -1,4 +1,5 @@
@ECHO OFF
setlocal DISABLEDELAYEDEXPANSION
-SET BIN_TARGET=%~dp0/../phpunit/phpunit/phpunit
+SET BIN_TARGET=%~dp0/phpunit
+SET COMPOSER_RUNTIME_BIN_DIR=%~dp0
php "%BIN_TARGET%" %*
diff --git a/api/vendor/bin/var-dump-server b/api/vendor/bin/var-dump-server
index 4b749cce6c..18db1c1eb2 100644
--- a/api/vendor/bin/var-dump-server
+++ b/api/vendor/bin/var-dump-server
@@ -4,21 +4,116 @@
/**
* Proxy PHP file generated by Composer
*
- * This file includes the referenced bin path (../symfony/var-dumper/Resources/bin/var-dump-server) using eval to remove the shebang if present
+ * This file includes the referenced bin path (../symfony/var-dumper/Resources/bin/var-dump-server)
+ * using a stream wrapper to prevent the shebang from being output on PHP<8
*
* @generated
*/
-$binPath = realpath(__DIR__ . "/" . '../symfony/var-dumper/Resources/bin/var-dump-server');
-$contents = file_get_contents($binPath);
-$contents = preg_replace('{^#!/.+\r?\n<\?(php)?}', '', $contents, 1, $replaced);
-if ($replaced) {
- $contents = strtr($contents, array(
- '__FILE__' => var_export($binPath, true),
- '__DIR__' => var_export(dirname($binPath), true),
- ));
-
- eval($contents);
- exit(0);
+namespace Composer;
+
+$GLOBALS['_composer_bin_dir'] = __DIR__;
+$GLOBALS['_composer_autoload_path'] = __DIR__ . '/..'.'/autoload.php';
+
+if (PHP_VERSION_ID < 80000) {
+ if (!class_exists('Composer\BinProxyWrapper')) {
+ /**
+ * @internal
+ */
+ final class BinProxyWrapper
+ {
+ private $handle;
+ private $position;
+ private $realpath;
+
+ public function stream_open($path, $mode, $options, &$opened_path)
+ {
+ // get rid of phpvfscomposer:// prefix for __FILE__ & __DIR__ resolution
+ $opened_path = substr($path, 17);
+ $this->realpath = realpath($opened_path) ?: $opened_path;
+ $opened_path = $this->realpath;
+ $this->handle = fopen($this->realpath, $mode);
+ $this->position = 0;
+
+ return (bool) $this->handle;
+ }
+
+ public function stream_read($count)
+ {
+ $data = fread($this->handle, $count);
+
+ if ($this->position === 0) {
+ $data = preg_replace('{^#!.*\r?\n}', '', $data);
+ }
+
+ $this->position += strlen($data);
+
+ return $data;
+ }
+
+ public function stream_cast($castAs)
+ {
+ return $this->handle;
+ }
+
+ public function stream_close()
+ {
+ fclose($this->handle);
+ }
+
+ public function stream_lock($operation)
+ {
+ return $operation ? flock($this->handle, $operation) : true;
+ }
+
+ public function stream_seek($offset, $whence)
+ {
+ if (0 === fseek($this->handle, $offset, $whence)) {
+ $this->position = ftell($this->handle);
+ return true;
+ }
+
+ return false;
+ }
+
+ public function stream_tell()
+ {
+ return $this->position;
+ }
+
+ public function stream_eof()
+ {
+ return feof($this->handle);
+ }
+
+ public function stream_stat()
+ {
+ return array();
+ }
+
+ public function stream_set_option($option, $arg1, $arg2)
+ {
+ return true;
+ }
+
+ public function url_stat($path, $flags)
+ {
+ $path = substr($path, 17);
+ if (file_exists($path)) {
+ return stat($path);
+ }
+
+ return false;
+ }
+ }
+ }
+
+ if (
+ (function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true))
+ || (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper'))
+ ) {
+ return include("phpvfscomposer://" . __DIR__ . '/..'.'/symfony/var-dumper/Resources/bin/var-dump-server');
+ }
}
-include $binPath;
+
+return include __DIR__ . '/..'.'/symfony/var-dumper/Resources/bin/var-dump-server';
diff --git a/api/vendor/bin/var-dump-server.bat b/api/vendor/bin/var-dump-server.bat
index 46836b50cd..94333da54c 100644
--- a/api/vendor/bin/var-dump-server.bat
+++ b/api/vendor/bin/var-dump-server.bat
@@ -1,4 +1,5 @@
@ECHO OFF
setlocal DISABLEDELAYEDEXPANSION
-SET BIN_TARGET=%~dp0/../symfony/var-dumper/Resources/bin/var-dump-server
+SET BIN_TARGET=%~dp0/var-dump-server
+SET COMPOSER_RUNTIME_BIN_DIR=%~dp0
php "%BIN_TARGET%" %*
diff --git a/api/vendor/bin/yaml-lint b/api/vendor/bin/yaml-lint
index 9bcc2adc99..388092f5b4 100644
--- a/api/vendor/bin/yaml-lint
+++ b/api/vendor/bin/yaml-lint
@@ -4,21 +4,116 @@
/**
* Proxy PHP file generated by Composer
*
- * This file includes the referenced bin path (../symfony/yaml/Resources/bin/yaml-lint) using eval to remove the shebang if present
+ * This file includes the referenced bin path (../symfony/yaml/Resources/bin/yaml-lint)
+ * using a stream wrapper to prevent the shebang from being output on PHP<8
*
* @generated
*/
-$binPath = realpath(__DIR__ . "/" . '../symfony/yaml/Resources/bin/yaml-lint');
-$contents = file_get_contents($binPath);
-$contents = preg_replace('{^#!/.+\r?\n<\?(php)?}', '', $contents, 1, $replaced);
-if ($replaced) {
- $contents = strtr($contents, array(
- '__FILE__' => var_export($binPath, true),
- '__DIR__' => var_export(dirname($binPath), true),
- ));
-
- eval($contents);
- exit(0);
+namespace Composer;
+
+$GLOBALS['_composer_bin_dir'] = __DIR__;
+$GLOBALS['_composer_autoload_path'] = __DIR__ . '/..'.'/autoload.php';
+
+if (PHP_VERSION_ID < 80000) {
+ if (!class_exists('Composer\BinProxyWrapper')) {
+ /**
+ * @internal
+ */
+ final class BinProxyWrapper
+ {
+ private $handle;
+ private $position;
+ private $realpath;
+
+ public function stream_open($path, $mode, $options, &$opened_path)
+ {
+ // get rid of phpvfscomposer:// prefix for __FILE__ & __DIR__ resolution
+ $opened_path = substr($path, 17);
+ $this->realpath = realpath($opened_path) ?: $opened_path;
+ $opened_path = $this->realpath;
+ $this->handle = fopen($this->realpath, $mode);
+ $this->position = 0;
+
+ return (bool) $this->handle;
+ }
+
+ public function stream_read($count)
+ {
+ $data = fread($this->handle, $count);
+
+ if ($this->position === 0) {
+ $data = preg_replace('{^#!.*\r?\n}', '', $data);
+ }
+
+ $this->position += strlen($data);
+
+ return $data;
+ }
+
+ public function stream_cast($castAs)
+ {
+ return $this->handle;
+ }
+
+ public function stream_close()
+ {
+ fclose($this->handle);
+ }
+
+ public function stream_lock($operation)
+ {
+ return $operation ? flock($this->handle, $operation) : true;
+ }
+
+ public function stream_seek($offset, $whence)
+ {
+ if (0 === fseek($this->handle, $offset, $whence)) {
+ $this->position = ftell($this->handle);
+ return true;
+ }
+
+ return false;
+ }
+
+ public function stream_tell()
+ {
+ return $this->position;
+ }
+
+ public function stream_eof()
+ {
+ return feof($this->handle);
+ }
+
+ public function stream_stat()
+ {
+ return array();
+ }
+
+ public function stream_set_option($option, $arg1, $arg2)
+ {
+ return true;
+ }
+
+ public function url_stat($path, $flags)
+ {
+ $path = substr($path, 17);
+ if (file_exists($path)) {
+ return stat($path);
+ }
+
+ return false;
+ }
+ }
+ }
+
+ if (
+ (function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true))
+ || (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper'))
+ ) {
+ return include("phpvfscomposer://" . __DIR__ . '/..'.'/symfony/yaml/Resources/bin/yaml-lint');
+ }
}
-include $binPath;
+
+return include __DIR__ . '/..'.'/symfony/yaml/Resources/bin/yaml-lint';
diff --git a/api/vendor/bin/yaml-lint.bat b/api/vendor/bin/yaml-lint.bat
index 0474134c60..fa76637484 100644
--- a/api/vendor/bin/yaml-lint.bat
+++ b/api/vendor/bin/yaml-lint.bat
@@ -1,4 +1,5 @@
@ECHO OFF
setlocal DISABLEDELAYEDEXPANSION
-SET BIN_TARGET=%~dp0/../symfony/yaml/Resources/bin/yaml-lint
+SET BIN_TARGET=%~dp0/yaml-lint
+SET COMPOSER_RUNTIME_BIN_DIR=%~dp0
php "%BIN_TARGET%" %*
diff --git a/api/vendor/brick/math/CHANGELOG.md b/api/vendor/brick/math/CHANGELOG.md
index c5c5893b93..680fa9ba29 100644
--- a/api/vendor/brick/math/CHANGELOG.md
+++ b/api/vendor/brick/math/CHANGELOG.md
@@ -2,6 +2,36 @@
All notable changes to this project will be documented in this file.
+## [0.12.1](https://github.com/brick/math/releases/tag/0.12.1) - 2023-11-29
+
+⚡️ **Performance improvements**
+
+- `BigNumber::of()` is now faster, thanks to [@SebastienDug](https://github.com/SebastienDug) in [#77](https://github.com/brick/math/pull/77).
+
+## [0.12.0](https://github.com/brick/math/releases/tag/0.12.0) - 2023-11-26
+
+💥 **Breaking changes**
+
+- Minimum PHP version is now 8.1
+- `RoundingMode` is now an `enum`; if you're type-hinting rounding modes, you need to type-hint against `RoundingMode` instead of `int` now
+- `BigNumber` classes do not implement the `Serializable` interface anymore (they use the [new custom object serialization mechanism](https://wiki.php.net/rfc/custom_object_serialization))
+- The following breaking changes only affect you if you're creating your own `BigNumber` subclasses:
+ - the return type of `BigNumber::of()` is now `static`
+ - `BigNumber` has a new abstract method `from()`
+ - all `public` and `protected` functions of `BigNumber` are now `final`
+
+## [0.11.0](https://github.com/brick/math/releases/tag/0.11.0) - 2023-01-16
+
+💥 **Breaking changes**
+
+- Minimum PHP version is now 8.0
+- Methods accepting a union of types are now strongly typed*
+- `MathException` now extends `Exception` instead of `RuntimeException`
+
+* You may now run into type errors if you were passing `Stringable` objects to `of()` or any of the methods
+internally calling `of()`, with `strict_types` enabled. You can fix this by casting `Stringable` objects to `string`
+first.
+
## [0.10.2](https://github.com/brick/math/releases/tag/0.10.2) - 2022-08-11
👌 **Improvements**
@@ -343,8 +373,8 @@ This release also comes with many performance improvements.
- `getFraction()` is renamed to `fraction()`
- `divideAndRemainder()` is renamed to `quotientAndRemainder()`
- `dividedBy()` now takes a **mandatory** `$scale` parameter **before** the rounding mode
- - `toBigInteger()` does not accept a `$roundingMode` parameter any more
- - `toBigRational()` does not simplify the fraction any more; explicitly add `->simplified()` to get the previous behaviour
+ - `toBigInteger()` does not accept a `$roundingMode` parameter anymore
+ - `toBigRational()` does not simplify the fraction anymore; explicitly add `->simplified()` to get the previous behaviour
- `BigRational`:
- `getSign()` is renamed to `sign()`
- `getNumerator()` is renamed to `numerator()`
@@ -418,7 +448,7 @@ Added `BigDecimal::divideAndRemainder()`
## [0.2.0](https://github.com/brick/math/releases/tag/0.2.0) - 2015-05-22
-- `min()` and `max()` do not accept an `array` any more, but a variable number of parameters
+- `min()` and `max()` do not accept an `array` anymore, but a variable number of parameters
- **minimum PHP version is now 5.6**
- continuous integration with PHP 7
diff --git a/api/vendor/brick/math/composer.json b/api/vendor/brick/math/composer.json
index a8124e9215..bd67343add 100644
--- a/api/vendor/brick/math/composer.json
+++ b/api/vendor/brick/math/composer.json
@@ -5,22 +5,26 @@
"keywords": [
"Brick",
"Math",
+ "Mathematics",
"Arbitrary-precision",
"Arithmetic",
"BigInteger",
"BigDecimal",
"BigRational",
- "Bignum"
+ "BigNumber",
+ "Bignum",
+ "Decimal",
+ "Rational",
+ "Integer"
],
"license": "MIT",
"require": {
- "php": "^7.4 || ^8.0",
- "ext-json": "*"
+ "php": "^8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.0",
+ "phpunit/phpunit": "^10.1",
"php-coveralls/php-coveralls": "^2.2",
- "vimeo/psalm": "4.25.0"
+ "vimeo/psalm": "5.16.0"
},
"autoload": {
"psr-4": {
diff --git a/api/vendor/brick/math/src/BigDecimal.php b/api/vendor/brick/math/src/BigDecimal.php
index fd2babb86b..31d22ab30c 100644
--- a/api/vendor/brick/math/src/BigDecimal.php
+++ b/api/vendor/brick/math/src/BigDecimal.php
@@ -23,14 +23,14 @@ final class BigDecimal extends BigNumber
* No leading zero must be present.
* No leading minus sign must be present if the value is 0.
*/
- private string $value;
+ private readonly string $value;
/**
* The scale (number of digits after the decimal point) of this decimal number.
*
* This must be zero or more.
*/
- private int $scale;
+ private readonly int $scale;
/**
* Protected constructor. Use a factory method to obtain an instance.
@@ -45,19 +45,11 @@ protected function __construct(string $value, int $scale = 0)
}
/**
- * Creates a BigDecimal of the given value.
- *
- * @param BigNumber|int|float|string $value
- *
- * @return BigDecimal
- *
- * @throws MathException If the value cannot be converted to a BigDecimal.
- *
* @psalm-pure
*/
- public static function of($value) : BigNumber
+ protected static function from(BigNumber $number): static
{
- return parent::of($value)->toBigDecimal();
+ return $number->toBigDecimal();
}
/**
@@ -68,13 +60,11 @@ public static function of($value) : BigNumber
* @param BigNumber|int|float|string $value The unscaled value. Must be convertible to a BigInteger.
* @param int $scale The scale of the number, positive or zero.
*
- * @return BigDecimal
- *
* @throws \InvalidArgumentException If the scale is negative.
*
* @psalm-pure
*/
- public static function ofUnscaledValue($value, int $scale = 0) : BigDecimal
+ public static function ofUnscaledValue(BigNumber|int|float|string $value, int $scale = 0) : BigDecimal
{
if ($scale < 0) {
throw new \InvalidArgumentException('The scale cannot be negative.');
@@ -86,8 +76,6 @@ public static function ofUnscaledValue($value, int $scale = 0) : BigDecimal
/**
* Returns a BigDecimal representing zero, with a scale of zero.
*
- * @return BigDecimal
- *
* @psalm-pure
*/
public static function zero() : BigDecimal
@@ -108,8 +96,6 @@ public static function zero() : BigDecimal
/**
* Returns a BigDecimal representing one, with a scale of zero.
*
- * @return BigDecimal
- *
* @psalm-pure
*/
public static function one() : BigDecimal
@@ -130,8 +116,6 @@ public static function one() : BigDecimal
/**
* Returns a BigDecimal representing ten, with a scale of zero.
*
- * @return BigDecimal
- *
* @psalm-pure
*/
public static function ten() : BigDecimal
@@ -156,11 +140,9 @@ public static function ten() : BigDecimal
*
* @param BigNumber|int|float|string $that The number to add. Must be convertible to a BigDecimal.
*
- * @return BigDecimal The result.
- *
* @throws MathException If the number is not valid, or is not convertible to a BigDecimal.
*/
- public function plus($that) : BigDecimal
+ public function plus(BigNumber|int|float|string $that) : BigDecimal
{
$that = BigDecimal::of($that);
@@ -187,11 +169,9 @@ public function plus($that) : BigDecimal
*
* @param BigNumber|int|float|string $that The number to subtract. Must be convertible to a BigDecimal.
*
- * @return BigDecimal The result.
- *
* @throws MathException If the number is not valid, or is not convertible to a BigDecimal.
*/
- public function minus($that) : BigDecimal
+ public function minus(BigNumber|int|float|string $that) : BigDecimal
{
$that = BigDecimal::of($that);
@@ -214,11 +194,9 @@ public function minus($that) : BigDecimal
*
* @param BigNumber|int|float|string $that The multiplier. Must be convertible to a BigDecimal.
*
- * @return BigDecimal The result.
- *
* @throws MathException If the multiplier is not a valid number, or is not convertible to a BigDecimal.
*/
- public function multipliedBy($that) : BigDecimal
+ public function multipliedBy(BigNumber|int|float|string $that) : BigDecimal
{
$that = BigDecimal::of($that);
@@ -241,14 +219,12 @@ public function multipliedBy($that) : BigDecimal
*
* @param BigNumber|int|float|string $that The divisor.
* @param int|null $scale The desired scale, or null to use the scale of this number.
- * @param int $roundingMode An optional rounding mode.
- *
- * @return BigDecimal
+ * @param RoundingMode $roundingMode An optional rounding mode, defaults to UNNECESSARY.
*
* @throws \InvalidArgumentException If the scale or rounding mode is invalid.
* @throws MathException If the number is invalid, is zero, or rounding was necessary.
*/
- public function dividedBy($that, ?int $scale = null, int $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal
+ public function dividedBy(BigNumber|int|float|string $that, ?int $scale = null, RoundingMode $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal
{
$that = BigDecimal::of($that);
@@ -281,12 +257,10 @@ public function dividedBy($that, ?int $scale = null, int $roundingMode = Roundin
*
* @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigDecimal.
*
- * @return BigDecimal The result.
- *
* @throws MathException If the divisor is not a valid number, is not convertible to a BigDecimal, is zero,
* or the result yields an infinite number of digits.
*/
- public function exactlyDividedBy($that) : BigDecimal
+ public function exactlyDividedBy(BigNumber|int|float|string $that) : BigDecimal
{
$that = BigDecimal::of($that);
@@ -322,10 +296,6 @@ public function exactlyDividedBy($that) : BigDecimal
*
* The result has a scale of `$this->scale * $exponent`.
*
- * @param int $exponent The exponent.
- *
- * @return BigDecimal The result.
- *
* @throws \InvalidArgumentException If the exponent is not in the range 0 to 1,000,000.
*/
public function power(int $exponent) : BigDecimal
@@ -350,17 +320,15 @@ public function power(int $exponent) : BigDecimal
}
/**
- * Returns the quotient of the division of this number by this given one.
+ * Returns the quotient of the division of this number by the given one.
*
* The quotient has a scale of `0`.
*
* @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigDecimal.
*
- * @return BigDecimal The quotient.
- *
* @throws MathException If the divisor is not a valid decimal number, or is zero.
*/
- public function quotient($that) : BigDecimal
+ public function quotient(BigNumber|int|float|string $that) : BigDecimal
{
$that = BigDecimal::of($that);
@@ -377,17 +345,15 @@ public function quotient($that) : BigDecimal
}
/**
- * Returns the remainder of the division of this number by this given one.
+ * Returns the remainder of the division of this number by the given one.
*
* The remainder has a scale of `max($this->scale, $that->scale)`.
*
* @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigDecimal.
*
- * @return BigDecimal The remainder.
- *
* @throws MathException If the divisor is not a valid decimal number, or is zero.
*/
- public function remainder($that) : BigDecimal
+ public function remainder(BigNumber|int|float|string $that) : BigDecimal
{
$that = BigDecimal::of($that);
@@ -414,9 +380,11 @@ public function remainder($that) : BigDecimal
*
* @return BigDecimal[] An array containing the quotient and the remainder.
*
+ * @psalm-return array{BigDecimal, BigDecimal}
+ *
* @throws MathException If the divisor is not a valid decimal number, or is zero.
*/
- public function quotientAndRemainder($that) : array
+ public function quotientAndRemainder(BigNumber|int|float|string $that) : array
{
$that = BigDecimal::of($that);
@@ -440,10 +408,6 @@ public function quotientAndRemainder($that) : array
/**
* Returns the square root of this number, rounded down to the given number of decimals.
*
- * @param int $scale
- *
- * @return BigDecimal
- *
* @throws \InvalidArgumentException If the scale is negative.
* @throws NegativeNumberException If this number is negative.
*/
@@ -484,10 +448,6 @@ public function sqrt(int $scale) : BigDecimal
/**
* Returns a copy of this BigDecimal with the decimal point moved $n places to the left.
- *
- * @param int $n
- *
- * @return BigDecimal
*/
public function withPointMovedLeft(int $n) : BigDecimal
{
@@ -504,10 +464,6 @@ public function withPointMovedLeft(int $n) : BigDecimal
/**
* Returns a copy of this BigDecimal with the decimal point moved $n places to the right.
- *
- * @param int $n
- *
- * @return BigDecimal
*/
public function withPointMovedRight(int $n) : BigDecimal
{
@@ -534,8 +490,6 @@ public function withPointMovedRight(int $n) : BigDecimal
/**
* Returns a copy of this BigDecimal with any trailing zeros removed from the fractional part.
- *
- * @return BigDecimal
*/
public function stripTrailingZeros() : BigDecimal
{
@@ -567,8 +521,6 @@ public function stripTrailingZeros() : BigDecimal
/**
* Returns the absolute value of this number.
- *
- * @return BigDecimal
*/
public function abs() : BigDecimal
{
@@ -577,18 +529,13 @@ public function abs() : BigDecimal
/**
* Returns the negated value of this number.
- *
- * @return BigDecimal
*/
public function negated() : BigDecimal
{
return new BigDecimal(Calculator::get()->neg($this->value), $this->scale);
}
- /**
- * {@inheritdoc}
- */
- public function compareTo($that) : int
+ public function compareTo(BigNumber|int|float|string $that) : int
{
$that = BigNumber::of($that);
@@ -605,25 +552,16 @@ public function compareTo($that) : int
return - $that->compareTo($this);
}
- /**
- * {@inheritdoc}
- */
public function getSign() : int
{
return ($this->value === '0') ? 0 : (($this->value[0] === '-') ? -1 : 1);
}
- /**
- * @return BigInteger
- */
public function getUnscaledValue() : BigInteger
{
- return BigInteger::create($this->value);
+ return self::newBigInteger($this->value);
}
- /**
- * @return int
- */
public function getScale() : int
{
return $this->scale;
@@ -633,8 +571,6 @@ public function getScale() : int
* Returns a string representing the integral part of this decimal number.
*
* Example: `-123.456` => `-123`.
- *
- * @return string
*/
public function getIntegralPart() : string
{
@@ -653,8 +589,6 @@ public function getIntegralPart() : string
* If the scale is zero, an empty string is returned.
*
* Examples: `-123.456` => '456', `123` => ''.
- *
- * @return string
*/
public function getFractionalPart() : string
{
@@ -669,47 +603,33 @@ public function getFractionalPart() : string
/**
* Returns whether this decimal number has a non-zero fractional part.
- *
- * @return bool
*/
public function hasNonZeroFractionalPart() : bool
{
return $this->getFractionalPart() !== \str_repeat('0', $this->scale);
}
- /**
- * {@inheritdoc}
- */
public function toBigInteger() : BigInteger
{
$zeroScaleDecimal = $this->scale === 0 ? $this : $this->dividedBy(1, 0);
- return BigInteger::create($zeroScaleDecimal->value);
+ return self::newBigInteger($zeroScaleDecimal->value);
}
- /**
- * {@inheritdoc}
- */
public function toBigDecimal() : BigDecimal
{
return $this;
}
- /**
- * {@inheritdoc}
- */
public function toBigRational() : BigRational
{
- $numerator = BigInteger::create($this->value);
- $denominator = BigInteger::create('1' . \str_repeat('0', $this->scale));
+ $numerator = self::newBigInteger($this->value);
+ $denominator = self::newBigInteger('1' . \str_repeat('0', $this->scale));
- return BigRational::create($numerator, $denominator, false);
+ return self::newBigRational($numerator, $denominator, false);
}
- /**
- * {@inheritdoc}
- */
- public function toScale(int $scale, int $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal
+ public function toScale(int $scale, RoundingMode $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal
{
if ($scale === $this->scale) {
return $this;
@@ -718,25 +638,16 @@ public function toScale(int $scale, int $roundingMode = RoundingMode::UNNECESSAR
return $this->dividedBy(BigDecimal::one(), $scale, $roundingMode);
}
- /**
- * {@inheritdoc}
- */
public function toInt() : int
{
return $this->toBigInteger()->toInt();
}
- /**
- * {@inheritdoc}
- */
public function toFloat() : float
{
return (float) (string) $this;
}
- /**
- * {@inheritdoc}
- */
public function __toString() : string
{
if ($this->scale === 0) {
@@ -768,8 +679,6 @@ public function __serialize(): array
*
* @param array{value: string, scale: int} $data
*
- * @return void
- *
* @throws \LogicException
*/
public function __unserialize(array $data): void
@@ -782,48 +691,9 @@ public function __unserialize(array $data): void
$this->scale = $data['scale'];
}
- /**
- * This method is required by interface Serializable and SHOULD NOT be accessed directly.
- *
- * @internal
- *
- * @return string
- */
- public function serialize() : string
- {
- return $this->value . ':' . $this->scale;
- }
-
- /**
- * This method is only here to implement interface Serializable and cannot be accessed directly.
- *
- * @internal
- * @psalm-suppress RedundantPropertyInitializationCheck
- *
- * @param string $value
- *
- * @return void
- *
- * @throws \LogicException
- */
- public function unserialize($value) : void
- {
- if (isset($this->value)) {
- throw new \LogicException('unserialize() is an internal function, it must not be called directly.');
- }
-
- [$value, $scale] = \explode(':', $value);
-
- $this->value = $value;
- $this->scale = (int) $scale;
- }
-
/**
* Puts the internal values of the given decimal numbers on the same scale.
*
- * @param BigDecimal $x The first decimal number.
- * @param BigDecimal $y The second decimal number.
- *
* @return array{string, string} The scaled integer values of $x and $y.
*/
private function scaleValues(BigDecimal $x, BigDecimal $y) : array
@@ -840,11 +710,6 @@ private function scaleValues(BigDecimal $x, BigDecimal $y) : array
return [$a, $b];
}
- /**
- * @param int $scale
- *
- * @return string
- */
private function valueWithMinScale(int $scale) : string
{
$value = $this->value;
@@ -858,8 +723,6 @@ private function valueWithMinScale(int $scale) : string
/**
* Adds leading zeros if necessary to the unscaled value to represent the full decimal number.
- *
- * @return string
*/
private function getUnscaledValueWithLeadingZeros() : string
{
diff --git a/api/vendor/brick/math/src/BigInteger.php b/api/vendor/brick/math/src/BigInteger.php
index f58e1c5953..73dcc89a20 100644
--- a/api/vendor/brick/math/src/BigInteger.php
+++ b/api/vendor/brick/math/src/BigInteger.php
@@ -27,7 +27,7 @@ final class BigInteger extends BigNumber
* No leading zeros must be present.
* No leading minus sign must be present if the number is zero.
*/
- private string $value;
+ private readonly string $value;
/**
* Protected constructor. Use a factory method to obtain an instance.
@@ -40,19 +40,11 @@ protected function __construct(string $value)
}
/**
- * Creates a BigInteger of the given value.
- *
- * @param BigNumber|int|float|string $value
- *
- * @return BigInteger
- *
- * @throws MathException If the value cannot be converted to a BigInteger.
- *
* @psalm-pure
*/
- public static function of($value) : BigNumber
+ protected static function from(BigNumber $number): static
{
- return parent::of($value)->toBigInteger();
+ return $number->toBigInteger();
}
/**
@@ -69,8 +61,6 @@ public static function of($value) : BigNumber
* @param string $number The number to convert, in the given base.
* @param int $base The base of the number, between 2 and 36.
*
- * @return BigInteger
- *
* @throws NumberFormatException If the number is empty, or contains invalid chars for the given base.
* @throws \InvalidArgumentException If the base is out of range.
*
@@ -136,8 +126,6 @@ public static function fromBase(string $number, int $base) : BigInteger
* @param string $number The number to parse.
* @param string $alphabet The alphabet, for example '01' for base 2, or '01234567' for base 8.
*
- * @return BigInteger
- *
* @throws NumberFormatException If the given number is empty or contains invalid chars for the given alphabet.
* @throws \InvalidArgumentException If the alphabet does not contain at least 2 chars.
*
@@ -181,8 +169,6 @@ public static function fromArbitraryBase(string $number, string $alphabet) : Big
* @param bool $signed Whether to interpret as a signed number in two's-complement representation with a leading
* sign bit.
*
- * @return BigInteger
- *
* @throws NumberFormatException If the string is empty.
*/
public static function fromBytes(string $value, bool $signed = true) : BigInteger
@@ -215,15 +201,13 @@ public static function fromBytes(string $value, bool $signed = true) : BigIntege
*
* Using the default random bytes generator, this method is suitable for cryptographic use.
*
- * @psalm-param callable(int): string $randomBytesGenerator
+ * @psalm-param (callable(int): string)|null $randomBytesGenerator
*
* @param int $numBits The number of bits.
* @param callable|null $randomBytesGenerator A function that accepts a number of bytes as an integer, and returns a
* string of random bytes of the given length. Defaults to the
* `random_bytes()` function.
*
- * @return BigInteger
- *
* @throws \InvalidArgumentException If $numBits is negative.
*/
public static function randomBits(int $numBits, ?callable $randomBytesGenerator = null) : BigInteger
@@ -237,9 +221,10 @@ public static function randomBits(int $numBits, ?callable $randomBytesGenerator
}
if ($randomBytesGenerator === null) {
- $randomBytesGenerator = 'random_bytes';
+ $randomBytesGenerator = random_bytes(...);
}
+ /** @var int<1, max> $byteLength */
$byteLength = \intdiv($numBits - 1, 8) + 1;
$extraBits = ($byteLength * 8 - $numBits);
@@ -264,13 +249,14 @@ public static function randomBits(int $numBits, ?callable $randomBytesGenerator
* and returns a string of random bytes of the given length.
* Defaults to the `random_bytes()` function.
*
- * @return BigInteger
- *
* @throws MathException If one of the parameters cannot be converted to a BigInteger,
* or `$min` is greater than `$max`.
*/
- public static function randomRange($min, $max, ?callable $randomBytesGenerator = null) : BigInteger
- {
+ public static function randomRange(
+ BigNumber|int|float|string $min,
+ BigNumber|int|float|string $max,
+ ?callable $randomBytesGenerator = null
+ ) : BigInteger {
$min = BigInteger::of($min);
$max = BigInteger::of($max);
@@ -296,8 +282,6 @@ public static function randomRange($min, $max, ?callable $randomBytesGenerator =
/**
* Returns a BigInteger representing zero.
*
- * @return BigInteger
- *
* @psalm-pure
*/
public static function zero() : BigInteger
@@ -318,8 +302,6 @@ public static function zero() : BigInteger
/**
* Returns a BigInteger representing one.
*
- * @return BigInteger
- *
* @psalm-pure
*/
public static function one() : BigInteger
@@ -340,8 +322,6 @@ public static function one() : BigInteger
/**
* Returns a BigInteger representing ten.
*
- * @return BigInteger
- *
* @psalm-pure
*/
public static function ten() : BigInteger
@@ -379,11 +359,9 @@ public static function gcdMultiple(BigInteger $a, BigInteger ...$n): BigInteger
*
* @param BigNumber|int|float|string $that The number to add. Must be convertible to a BigInteger.
*
- * @return BigInteger The result.
- *
* @throws MathException If the number is not valid, or is not convertible to a BigInteger.
*/
- public function plus($that) : BigInteger
+ public function plus(BigNumber|int|float|string $that) : BigInteger
{
$that = BigInteger::of($that);
@@ -405,11 +383,9 @@ public function plus($that) : BigInteger
*
* @param BigNumber|int|float|string $that The number to subtract. Must be convertible to a BigInteger.
*
- * @return BigInteger The result.
- *
* @throws MathException If the number is not valid, or is not convertible to a BigInteger.
*/
- public function minus($that) : BigInteger
+ public function minus(BigNumber|int|float|string $that) : BigInteger
{
$that = BigInteger::of($that);
@@ -427,11 +403,9 @@ public function minus($that) : BigInteger
*
* @param BigNumber|int|float|string $that The multiplier. Must be convertible to a BigInteger.
*
- * @return BigInteger The result.
- *
* @throws MathException If the multiplier is not a valid number, or is not convertible to a BigInteger.
*/
- public function multipliedBy($that) : BigInteger
+ public function multipliedBy(BigNumber|int|float|string $that) : BigInteger
{
$that = BigInteger::of($that);
@@ -452,14 +426,12 @@ public function multipliedBy($that) : BigInteger
* Returns the result of the division of this number by the given one.
*
* @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigInteger.
- * @param int $roundingMode An optional rounding mode.
- *
- * @return BigInteger The result.
+ * @param RoundingMode $roundingMode An optional rounding mode, defaults to UNNECESSARY.
*
* @throws MathException If the divisor is not a valid number, is not convertible to a BigInteger, is zero,
* or RoundingMode::UNNECESSARY is used and the remainder is not zero.
*/
- public function dividedBy($that, int $roundingMode = RoundingMode::UNNECESSARY) : BigInteger
+ public function dividedBy(BigNumber|int|float|string $that, RoundingMode $roundingMode = RoundingMode::UNNECESSARY) : BigInteger
{
$that = BigInteger::of($that);
@@ -479,10 +451,6 @@ public function dividedBy($that, int $roundingMode = RoundingMode::UNNECESSARY)
/**
* Returns this number exponentiated to the given value.
*
- * @param int $exponent The exponent.
- *
- * @return BigInteger The result.
- *
* @throws \InvalidArgumentException If the exponent is not in the range 0 to 1,000,000.
*/
public function power(int $exponent) : BigInteger
@@ -511,11 +479,9 @@ public function power(int $exponent) : BigInteger
*
* @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigInteger.
*
- * @return BigInteger
- *
* @throws DivisionByZeroException If the divisor is zero.
*/
- public function quotient($that) : BigInteger
+ public function quotient(BigNumber|int|float|string $that) : BigInteger
{
$that = BigInteger::of($that);
@@ -539,11 +505,9 @@ public function quotient($that) : BigInteger
*
* @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigInteger.
*
- * @return BigInteger
- *
* @throws DivisionByZeroException If the divisor is zero.
*/
- public function remainder($that) : BigInteger
+ public function remainder(BigNumber|int|float|string $that) : BigInteger
{
$that = BigInteger::of($that);
@@ -567,9 +531,11 @@ public function remainder($that) : BigInteger
*
* @return BigInteger[] An array containing the quotient and the remainder.
*
+ * @psalm-return array{BigInteger, BigInteger}
+ *
* @throws DivisionByZeroException If the divisor is zero.
*/
- public function quotientAndRemainder($that) : array
+ public function quotientAndRemainder(BigNumber|int|float|string $that) : array
{
$that = BigInteger::of($that);
@@ -595,11 +561,9 @@ public function quotientAndRemainder($that) : array
*
* @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigInteger.
*
- * @return BigInteger
- *
* @throws DivisionByZeroException If the divisor is zero.
*/
- public function mod($that) : BigInteger
+ public function mod(BigNumber|int|float|string $that) : BigInteger
{
$that = BigInteger::of($that);
@@ -615,10 +579,6 @@ public function mod($that) : BigInteger
/**
* Returns the modular multiplicative inverse of this BigInteger modulo $m.
*
- * @param BigInteger $m
- *
- * @return BigInteger
- *
* @throws DivisionByZeroException If $m is zero.
* @throws NegativeNumberException If $m is negative.
* @throws MathException If this BigInteger has no multiplicative inverse mod m (that is, this BigInteger
@@ -655,12 +615,10 @@ public function modInverse(BigInteger $m) : BigInteger
* @param BigNumber|int|float|string $exp The exponent. Must be positive or zero.
* @param BigNumber|int|float|string $mod The modulus. Must be strictly positive.
*
- * @return BigInteger
- *
* @throws NegativeNumberException If any of the operands is negative.
* @throws DivisionByZeroException If the modulus is zero.
*/
- public function modPow($exp, $mod) : BigInteger
+ public function modPow(BigNumber|int|float|string $exp, BigNumber|int|float|string $mod) : BigInteger
{
$exp = BigInteger::of($exp);
$mod = BigInteger::of($mod);
@@ -684,10 +642,8 @@ public function modPow($exp, $mod) : BigInteger
* The GCD is always positive, unless both operands are zero, in which case it is zero.
*
* @param BigNumber|int|float|string $that The operand. Must be convertible to an integer number.
- *
- * @return BigInteger
*/
- public function gcd($that) : BigInteger
+ public function gcd(BigNumber|int|float|string $that) : BigInteger
{
$that = BigInteger::of($that);
@@ -709,8 +665,6 @@ public function gcd($that) : BigInteger
*
* The result is the largest x such that x² ≤ n.
*
- * @return BigInteger
- *
* @throws NegativeNumberException If this number is negative.
*/
public function sqrt() : BigInteger
@@ -726,8 +680,6 @@ public function sqrt() : BigInteger
/**
* Returns the absolute value of this number.
- *
- * @return BigInteger
*/
public function abs() : BigInteger
{
@@ -736,8 +688,6 @@ public function abs() : BigInteger
/**
* Returns the inverse of this number.
- *
- * @return BigInteger
*/
public function negated() : BigInteger
{
@@ -750,10 +700,8 @@ public function negated() : BigInteger
* This method returns a negative BigInteger if and only if both operands are negative.
*
* @param BigNumber|int|float|string $that The operand. Must be convertible to an integer number.
- *
- * @return BigInteger
*/
- public function and($that) : BigInteger
+ public function and(BigNumber|int|float|string $that) : BigInteger
{
$that = BigInteger::of($that);
@@ -766,10 +714,8 @@ public function and($that) : BigInteger
* This method returns a negative BigInteger if and only if either of the operands is negative.
*
* @param BigNumber|int|float|string $that The operand. Must be convertible to an integer number.
- *
- * @return BigInteger
*/
- public function or($that) : BigInteger
+ public function or(BigNumber|int|float|string $that) : BigInteger
{
$that = BigInteger::of($that);
@@ -782,10 +728,8 @@ public function or($that) : BigInteger
* This method returns a negative BigInteger if and only if exactly one of the operands is negative.
*
* @param BigNumber|int|float|string $that The operand. Must be convertible to an integer number.
- *
- * @return BigInteger
*/
- public function xor($that) : BigInteger
+ public function xor(BigNumber|int|float|string $that) : BigInteger
{
$that = BigInteger::of($that);
@@ -794,8 +738,6 @@ public function xor($that) : BigInteger
/**
* Returns the bitwise-not of this BigInteger.
- *
- * @return BigInteger
*/
public function not() : BigInteger
{
@@ -804,10 +746,6 @@ public function not() : BigInteger
/**
* Returns the integer left shifted by a given number of bits.
- *
- * @param int $distance The distance to shift.
- *
- * @return BigInteger
*/
public function shiftedLeft(int $distance) : BigInteger
{
@@ -824,10 +762,6 @@ public function shiftedLeft(int $distance) : BigInteger
/**
* Returns the integer right shifted by a given number of bits.
- *
- * @param int $distance The distance to shift.
- *
- * @return BigInteger
*/
public function shiftedRight(int $distance) : BigInteger
{
@@ -853,8 +787,6 @@ public function shiftedRight(int $distance) : BigInteger
*
* For positive BigIntegers, this is equivalent to the number of bits in the ordinary binary representation.
* Computes (ceil(log2(this < 0 ? -this : this+1))).
- *
- * @return int
*/
public function getBitLength() : int
{
@@ -873,8 +805,6 @@ public function getBitLength() : int
* Returns the index of the rightmost (lowest-order) one bit in this BigInteger.
*
* Returns -1 if this BigInteger contains no one bits.
- *
- * @return int
*/
public function getLowestSetBit() : int
{
@@ -894,8 +824,6 @@ public function getLowestSetBit() : int
/**
* Returns whether this number is even.
- *
- * @return bool
*/
public function isEven() : bool
{
@@ -904,8 +832,6 @@ public function isEven() : bool
/**
* Returns whether this number is odd.
- *
- * @return bool
*/
public function isOdd() : bool
{
@@ -919,8 +845,6 @@ public function isOdd() : bool
*
* @param int $n The bit to test, 0-based.
*
- * @return bool
- *
* @throws \InvalidArgumentException If the bit to test is negative.
*/
public function testBit(int $n) : bool
@@ -932,10 +856,7 @@ public function testBit(int $n) : bool
return $this->shiftedRight($n)->isOdd();
}
- /**
- * {@inheritdoc}
- */
- public function compareTo($that) : int
+ public function compareTo(BigNumber|int|float|string $that) : int
{
$that = BigNumber::of($that);
@@ -946,49 +867,31 @@ public function compareTo($that) : int
return - $that->compareTo($this);
}
- /**
- * {@inheritdoc}
- */
public function getSign() : int
{
return ($this->value === '0') ? 0 : (($this->value[0] === '-') ? -1 : 1);
}
- /**
- * {@inheritdoc}
- */
public function toBigInteger() : BigInteger
{
return $this;
}
- /**
- * {@inheritdoc}
- */
public function toBigDecimal() : BigDecimal
{
- return BigDecimal::create($this->value);
+ return self::newBigDecimal($this->value);
}
- /**
- * {@inheritdoc}
- */
public function toBigRational() : BigRational
{
- return BigRational::create($this, BigInteger::one(), false);
+ return self::newBigRational($this, BigInteger::one(), false);
}
- /**
- * {@inheritdoc}
- */
- public function toScale(int $scale, int $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal
+ public function toScale(int $scale, RoundingMode $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal
{
return $this->toBigDecimal()->toScale($scale, $roundingMode);
}
- /**
- * {@inheritdoc}
- */
public function toInt() : int
{
$intValue = (int) $this->value;
@@ -1000,9 +903,6 @@ public function toInt() : int
return $intValue;
}
- /**
- * {@inheritdoc}
- */
public function toFloat() : float
{
return (float) $this->value;
@@ -1013,10 +913,6 @@ public function toFloat() : float
*
* The output will always be lowercase for bases greater than 10.
*
- * @param int $base
- *
- * @return string
- *
* @throws \InvalidArgumentException If the base is out of range.
*/
public function toBase(int $base) : string
@@ -1040,8 +936,6 @@ public function toBase(int $base) : string
*
* @param string $alphabet The alphabet, for example '01' for base 2, or '01234567' for base 8.
*
- * @return string
- *
* @throws NegativeNumberException If this number is negative.
* @throws \InvalidArgumentException If the given alphabet does not contain at least 2 chars.
*/
@@ -1076,8 +970,6 @@ public function toArbitraryBase(string $alphabet) : string
*
* @param bool $signed Whether to output a signed number in two's-complement representation with a leading sign bit.
*
- * @return string
- *
* @throws NegativeNumberException If $signed is false, and the number is negative.
*/
public function toBytes(bool $signed = true) : string
@@ -1121,9 +1013,6 @@ public function toBytes(bool $signed = true) : string
return \hex2bin($hex);
}
- /**
- * {@inheritdoc}
- */
public function __toString() : string
{
return $this->value;
@@ -1149,8 +1038,6 @@ public function __serialize(): array
*
* @param array{value: string} $data
*
- * @return void
- *
* @throws \LogicException
*/
public function __unserialize(array $data): void
@@ -1161,37 +1048,4 @@ public function __unserialize(array $data): void
$this->value = $data['value'];
}
-
- /**
- * This method is required by interface Serializable and SHOULD NOT be accessed directly.
- *
- * @internal
- *
- * @return string
- */
- public function serialize() : string
- {
- return $this->value;
- }
-
- /**
- * This method is only here to implement interface Serializable and cannot be accessed directly.
- *
- * @internal
- * @psalm-suppress RedundantPropertyInitializationCheck
- *
- * @param string $value
- *
- * @return void
- *
- * @throws \LogicException
- */
- public function unserialize($value) : void
- {
- if (isset($this->value)) {
- throw new \LogicException('unserialize() is an internal function, it must not be called directly.');
- }
-
- $this->value = $value;
- }
}
diff --git a/api/vendor/brick/math/src/BigNumber.php b/api/vendor/brick/math/src/BigNumber.php
index 44f26e35ae..5a0df78378 100644
--- a/api/vendor/brick/math/src/BigNumber.php
+++ b/api/vendor/brick/math/src/BigNumber.php
@@ -14,26 +14,29 @@
*
* @psalm-immutable
*/
-abstract class BigNumber implements \Serializable, \JsonSerializable
+abstract class BigNumber implements \JsonSerializable
{
/**
- * The regular expression used to parse integer, decimal and rational numbers.
+ * The regular expression used to parse integer or decimal numbers.
*/
- private const PARSE_REGEXP =
+ private const PARSE_REGEXP_NUMERICAL =
'/^' .
'(?[\-\+])?' .
- '(?:' .
- '(?:' .
- '(?[0-9]+)?' .
- '(?\.)?' .
- '(?[0-9]+)?' .
- '(?:[eE](?[\-\+]?[0-9]+))?' .
- ')|(?:' .
- '(?[0-9]+)' .
- '\/?' .
- '(?[0-9]+)' .
- ')' .
- ')' .
+ '(?[0-9]+)?' .
+ '(?\.)?' .
+ '(?[0-9]+)?' .
+ '(?:[eE](?[\-\+]?[0-9]+))?' .
+ '$/';
+
+ /**
+ * The regular expression used to parse rational numbers.
+ */
+ private const PARSE_REGEXP_RATIONAL =
+ '/^' .
+ '(?[\-\+])?' .
+ '(?[0-9]+)' .
+ '\/?' .
+ '(?[0-9]+)' .
'$/';
/**
@@ -48,16 +51,29 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
* - strings containing a `.` character or using an exponential notation are returned as BigDecimal
* - strings containing only digits with an optional leading `+` or `-` sign are returned as BigInteger
*
- * @param BigNumber|int|float|string $value
- *
- * @return BigNumber
- *
* @throws NumberFormatException If the format of the number is not valid.
* @throws DivisionByZeroException If the value represents a rational number with a denominator of zero.
*
* @psalm-pure
*/
- public static function of($value) : BigNumber
+ final public static function of(BigNumber|int|float|string $value) : static
+ {
+ $value = self::_of($value);
+
+ if (static::class === BigNumber::class) {
+ // https://github.com/vimeo/psalm/issues/10309
+ assert($value instanceof static);
+
+ return $value;
+ }
+
+ return static::from($value);
+ }
+
+ /**
+ * @psalm-pure
+ */
+ private static function _of(BigNumber|int|float|string $value) : BigNumber
{
if ($value instanceof BigNumber) {
return $value;
@@ -67,35 +83,25 @@ public static function of($value) : BigNumber
return new BigInteger((string) $value);
}
- /** @psalm-suppress RedundantCastGivenDocblockType We cannot trust the untyped $value here! */
- $value = \is_float($value) ? self::floatToString($value) : (string) $value;
-
- $throw = static function() use ($value) : void {
- throw new NumberFormatException(\sprintf(
- 'The given value "%s" does not represent a valid number.',
- $value
- ));
- };
-
- if (\preg_match(self::PARSE_REGEXP, $value, $matches) !== 1) {
- $throw();
+ if (is_float($value)) {
+ $value = (string) $value;
}
- $getMatch = static fn(string $value): ?string => (($matches[$value] ?? '') !== '') ? $matches[$value] : null;
+ if (str_contains($value, '/')) {
+ // Rational number
+ if (\preg_match(self::PARSE_REGEXP_RATIONAL, $value, $matches, PREG_UNMATCHED_AS_NULL) !== 1) {
+ throw NumberFormatException::invalidFormat($value);
+ }
- $sign = $getMatch('sign');
- $numerator = $getMatch('numerator');
- $denominator = $getMatch('denominator');
+ $sign = $matches['sign'];
+ $numerator = $matches['numerator'];
+ $denominator = $matches['denominator'];
- if ($numerator !== null) {
+ assert($numerator !== null);
assert($denominator !== null);
- if ($sign !== null) {
- $numerator = $sign . $numerator;
- }
-
- $numerator = self::cleanUp($numerator);
- $denominator = self::cleanUp($denominator);
+ $numerator = self::cleanUp($sign, $numerator);
+ $denominator = self::cleanUp(null, $denominator);
if ($denominator === '0') {
throw DivisionByZeroException::denominatorMustNotBeZero();
@@ -106,88 +112,94 @@ public static function of($value) : BigNumber
new BigInteger($denominator),
false
);
- }
+ } else {
+ // Integer or decimal number
+ if (\preg_match(self::PARSE_REGEXP_NUMERICAL, $value, $matches, PREG_UNMATCHED_AS_NULL) !== 1) {
+ throw NumberFormatException::invalidFormat($value);
+ }
- $point = $getMatch('point');
- $integral = $getMatch('integral');
- $fractional = $getMatch('fractional');
- $exponent = $getMatch('exponent');
+ $sign = $matches['sign'];
+ $point = $matches['point'];
+ $integral = $matches['integral'];
+ $fractional = $matches['fractional'];
+ $exponent = $matches['exponent'];
- if ($integral === null && $fractional === null) {
- $throw();
- }
+ if ($integral === null && $fractional === null) {
+ throw NumberFormatException::invalidFormat($value);
+ }
- if ($integral === null) {
- $integral = '0';
- }
+ if ($integral === null) {
+ $integral = '0';
+ }
- if ($point !== null || $exponent !== null) {
- $fractional = ($fractional ?? '');
- $exponent = ($exponent !== null) ? (int) $exponent : 0;
+ if ($point !== null || $exponent !== null) {
+ $fractional = ($fractional ?? '');
+ $exponent = ($exponent !== null) ? (int)$exponent : 0;
- if ($exponent === PHP_INT_MIN || $exponent === PHP_INT_MAX) {
- throw new NumberFormatException('Exponent too large.');
- }
+ if ($exponent === PHP_INT_MIN || $exponent === PHP_INT_MAX) {
+ throw new NumberFormatException('Exponent too large.');
+ }
- $unscaledValue = self::cleanUp(($sign ?? ''). $integral . $fractional);
+ $unscaledValue = self::cleanUp($sign, $integral . $fractional);
- $scale = \strlen($fractional) - $exponent;
+ $scale = \strlen($fractional) - $exponent;
- if ($scale < 0) {
- if ($unscaledValue !== '0') {
- $unscaledValue .= \str_repeat('0', - $scale);
+ if ($scale < 0) {
+ if ($unscaledValue !== '0') {
+ $unscaledValue .= \str_repeat('0', -$scale);
+ }
+ $scale = 0;
}
- $scale = 0;
- }
- return new BigDecimal($unscaledValue, $scale);
- }
+ return new BigDecimal($unscaledValue, $scale);
+ }
- $integral = self::cleanUp(($sign ?? '') . $integral);
+ $integral = self::cleanUp($sign, $integral);
- return new BigInteger($integral);
+ return new BigInteger($integral);
+ }
}
/**
- * Safely converts float to string, avoiding locale-dependent issues.
- *
- * @see https://github.com/brick/math/pull/20
+ * Overridden by subclasses to convert a BigNumber to an instance of the subclass.
*
- * @param float $float
+ * @throws MathException If the value cannot be converted.
*
- * @return string
+ * @psalm-pure
+ */
+ abstract protected static function from(BigNumber $number): static;
+
+ /**
+ * Proxy method to access BigInteger's protected constructor from sibling classes.
*
+ * @internal
* @psalm-pure
- * @psalm-suppress ImpureFunctionCall
*/
- private static function floatToString(float $float) : string
+ final protected function newBigInteger(string $value) : BigInteger
{
- $currentLocale = \setlocale(LC_NUMERIC, '0');
- \setlocale(LC_NUMERIC, 'C');
-
- $result = (string) $float;
-
- \setlocale(LC_NUMERIC, $currentLocale);
-
- return $result;
+ return new BigInteger($value);
}
/**
- * Proxy method to access protected constructors from sibling classes.
+ * Proxy method to access BigDecimal's protected constructor from sibling classes.
*
* @internal
+ * @psalm-pure
+ */
+ final protected function newBigDecimal(string $value, int $scale = 0) : BigDecimal
+ {
+ return new BigDecimal($value, $scale);
+ }
+
+ /**
+ * Proxy method to access BigRational's protected constructor from sibling classes.
*
- * @param mixed ...$args The arguments to the constructor.
- *
- * @return static
- *
+ * @internal
* @psalm-pure
- * @psalm-suppress TooManyArguments
- * @psalm-suppress UnsafeInstantiation
*/
- protected static function create(... $args) : BigNumber
+ final protected function newBigRational(BigInteger $numerator, BigInteger $denominator, bool $checkDenominator) : BigRational
{
- return new static(... $args);
+ return new BigRational($numerator, $denominator, $checkDenominator);
}
/**
@@ -196,16 +208,12 @@ protected static function create(... $args) : BigNumber
* @param BigNumber|int|float|string ...$values The numbers to compare. All the numbers need to be convertible
* to an instance of the class this method is called on.
*
- * @return static The minimum value.
- *
* @throws \InvalidArgumentException If no values are given.
* @throws MathException If an argument is not valid.
*
- * @psalm-suppress LessSpecificReturnStatement
- * @psalm-suppress MoreSpecificReturnType
* @psalm-pure
*/
- public static function min(...$values) : BigNumber
+ final public static function min(BigNumber|int|float|string ...$values) : static
{
$min = null;
@@ -230,16 +238,12 @@ public static function min(...$values) : BigNumber
* @param BigNumber|int|float|string ...$values The numbers to compare. All the numbers need to be convertible
* to an instance of the class this method is called on.
*
- * @return static The maximum value.
- *
* @throws \InvalidArgumentException If no values are given.
* @throws MathException If an argument is not valid.
*
- * @psalm-suppress LessSpecificReturnStatement
- * @psalm-suppress MoreSpecificReturnType
* @psalm-pure
*/
- public static function max(...$values) : BigNumber
+ final public static function max(BigNumber|int|float|string ...$values) : static
{
$max = null;
@@ -264,18 +268,14 @@ public static function max(...$values) : BigNumber
* @param BigNumber|int|float|string ...$values The numbers to add. All the numbers need to be convertible
* to an instance of the class this method is called on.
*
- * @return static The sum.
- *
* @throws \InvalidArgumentException If no values are given.
* @throws MathException If an argument is not valid.
*
- * @psalm-suppress LessSpecificReturnStatement
- * @psalm-suppress MoreSpecificReturnType
* @psalm-pure
*/
- public static function sum(...$values) : BigNumber
+ final public static function sum(BigNumber|int|float|string ...$values) : static
{
- /** @var BigNumber|null $sum */
+ /** @var static|null $sum */
$sum = null;
foreach ($values as $value) {
@@ -299,11 +299,6 @@ public static function sum(...$values) : BigNumber
* depending on their ability to perform the operation. This will also require a version bump because we're
* potentially breaking custom BigNumber implementations (if any...)
*
- * @param BigNumber $a
- * @param BigNumber $b
- *
- * @return BigNumber
- *
* @psalm-pure
*/
private static function add(BigNumber $a, BigNumber $b) : BigNumber
@@ -330,141 +325,100 @@ private static function add(BigNumber $a, BigNumber $b) : BigNumber
}
/**
- * Removes optional leading zeros and + sign from the given number.
- *
- * @param string $number The number, validated as a non-empty string of digits with optional leading sign.
+ * Removes optional leading zeros and applies sign.
*
- * @return string
+ * @param string|null $sign The sign, '+' or '-', optional. Null is allowed for convenience and treated as '+'.
+ * @param string $number The number, validated as a non-empty string of digits.
*
* @psalm-pure
*/
- private static function cleanUp(string $number) : string
+ private static function cleanUp(string|null $sign, string $number) : string
{
- $firstChar = $number[0];
-
- if ($firstChar === '+' || $firstChar === '-') {
- $number = \substr($number, 1);
- }
-
$number = \ltrim($number, '0');
if ($number === '') {
return '0';
}
- if ($firstChar === '-') {
- return '-' . $number;
- }
-
- return $number;
+ return $sign === '-' ? '-' . $number : $number;
}
/**
* Checks if this number is equal to the given one.
- *
- * @param BigNumber|int|float|string $that
- *
- * @return bool
*/
- public function isEqualTo($that) : bool
+ final public function isEqualTo(BigNumber|int|float|string $that) : bool
{
return $this->compareTo($that) === 0;
}
/**
* Checks if this number is strictly lower than the given one.
- *
- * @param BigNumber|int|float|string $that
- *
- * @return bool
*/
- public function isLessThan($that) : bool
+ final public function isLessThan(BigNumber|int|float|string $that) : bool
{
return $this->compareTo($that) < 0;
}
/**
* Checks if this number is lower than or equal to the given one.
- *
- * @param BigNumber|int|float|string $that
- *
- * @return bool
*/
- public function isLessThanOrEqualTo($that) : bool
+ final public function isLessThanOrEqualTo(BigNumber|int|float|string $that) : bool
{
return $this->compareTo($that) <= 0;
}
/**
* Checks if this number is strictly greater than the given one.
- *
- * @param BigNumber|int|float|string $that
- *
- * @return bool
*/
- public function isGreaterThan($that) : bool
+ final public function isGreaterThan(BigNumber|int|float|string $that) : bool
{
return $this->compareTo($that) > 0;
}
/**
* Checks if this number is greater than or equal to the given one.
- *
- * @param BigNumber|int|float|string $that
- *
- * @return bool
*/
- public function isGreaterThanOrEqualTo($that) : bool
+ final public function isGreaterThanOrEqualTo(BigNumber|int|float|string $that) : bool
{
return $this->compareTo($that) >= 0;
}
/**
* Checks if this number equals zero.
- *
- * @return bool
*/
- public function isZero() : bool
+ final public function isZero() : bool
{
return $this->getSign() === 0;
}
/**
* Checks if this number is strictly negative.
- *
- * @return bool
*/
- public function isNegative() : bool
+ final public function isNegative() : bool
{
return $this->getSign() < 0;
}
/**
* Checks if this number is negative or zero.
- *
- * @return bool
*/
- public function isNegativeOrZero() : bool
+ final public function isNegativeOrZero() : bool
{
return $this->getSign() <= 0;
}
/**
* Checks if this number is strictly positive.
- *
- * @return bool
*/
- public function isPositive() : bool
+ final public function isPositive() : bool
{
return $this->getSign() > 0;
}
/**
* Checks if this number is positive or zero.
- *
- * @return bool
*/
- public function isPositiveOrZero() : bool
+ final public function isPositiveOrZero() : bool
{
return $this->getSign() >= 0;
}
@@ -472,6 +426,8 @@ public function isPositiveOrZero() : bool
/**
* Returns the sign of this number.
*
+ * @psalm-return -1|0|1
+ *
* @return int -1 if the number is negative, 0 if zero, 1 if positive.
*/
abstract public function getSign() : int;
@@ -479,19 +435,17 @@ abstract public function getSign() : int;
/**
* Compares this number to the given one.
*
- * @param BigNumber|int|float|string $that
+ * @psalm-return -1|0|1
*
- * @return int [-1,0,1] If `$this` is lower than, equal to, or greater than `$that`.
+ * @return int -1 if `$this` is lower than, 0 if equal to, 1 if greater than `$that`.
*
* @throws MathException If the number is not valid.
*/
- abstract public function compareTo($that) : int;
+ abstract public function compareTo(BigNumber|int|float|string $that) : int;
/**
* Converts this number to a BigInteger.
*
- * @return BigInteger The converted number.
- *
* @throws RoundingNecessaryException If this number cannot be converted to a BigInteger without rounding.
*/
abstract public function toBigInteger() : BigInteger;
@@ -499,31 +453,25 @@ abstract public function toBigInteger() : BigInteger;
/**
* Converts this number to a BigDecimal.
*
- * @return BigDecimal The converted number.
- *
* @throws RoundingNecessaryException If this number cannot be converted to a BigDecimal without rounding.
*/
abstract public function toBigDecimal() : BigDecimal;
/**
* Converts this number to a BigRational.
- *
- * @return BigRational The converted number.
*/
abstract public function toBigRational() : BigRational;
/**
* Converts this number to a BigDecimal with the given scale, using rounding if necessary.
*
- * @param int $scale The scale of the resulting `BigDecimal`.
- * @param int $roundingMode A `RoundingMode` constant.
- *
- * @return BigDecimal
+ * @param int $scale The scale of the resulting `BigDecimal`.
+ * @param RoundingMode $roundingMode An optional rounding mode, defaults to UNNECESSARY.
*
* @throws RoundingNecessaryException If this number cannot be converted to the given scale without rounding.
* This only applies when RoundingMode::UNNECESSARY is used.
*/
- abstract public function toScale(int $scale, int $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal;
+ abstract public function toScale(int $scale, RoundingMode $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal;
/**
* Returns the exact value of this number as a native integer.
@@ -531,8 +479,6 @@ abstract public function toScale(int $scale, int $roundingMode = RoundingMode::U
* If this number cannot be converted to a native integer without losing precision, an exception is thrown.
* Note that the acceptable range for an integer depends on the platform and differs for 32-bit and 64-bit.
*
- * @return int The converted value.
- *
* @throws MathException If this number cannot be exactly converted to a native integer.
*/
abstract public function toInt() : int;
@@ -545,8 +491,6 @@ abstract public function toInt() : int;
*
* If the number is greater than the largest representable floating point number, positive infinity is returned.
* If the number is less than the smallest representable floating point number, negative infinity is returned.
- *
- * @return float The converted value.
*/
abstract public function toFloat() : float;
@@ -555,15 +499,10 @@ abstract public function toFloat() : float;
*
* The output of this method can be parsed by the `of()` factory method;
* this will yield an object equal to this one, without any information loss.
- *
- * @return string
*/
abstract public function __toString() : string;
- /**
- * {@inheritdoc}
- */
- public function jsonSerialize() : string
+ final public function jsonSerialize() : string
{
return $this->__toString();
}
diff --git a/api/vendor/brick/math/src/BigRational.php b/api/vendor/brick/math/src/BigRational.php
index 46257814d0..fc3060ede5 100644
--- a/api/vendor/brick/math/src/BigRational.php
+++ b/api/vendor/brick/math/src/BigRational.php
@@ -21,12 +21,12 @@ final class BigRational extends BigNumber
/**
* The numerator.
*/
- private BigInteger $numerator;
+ private readonly BigInteger $numerator;
/**
* The denominator. Always strictly positive.
*/
- private BigInteger $denominator;
+ private readonly BigInteger $denominator;
/**
* Protected constructor. Use a factory method to obtain an instance.
@@ -55,19 +55,11 @@ protected function __construct(BigInteger $numerator, BigInteger $denominator, b
}
/**
- * Creates a BigRational of the given value.
- *
- * @param BigNumber|int|float|string $value
- *
- * @return BigRational
- *
- * @throws MathException If the value cannot be converted to a BigRational.
- *
* @psalm-pure
*/
- public static function of($value) : BigNumber
+ protected static function from(BigNumber $number): static
{
- return parent::of($value)->toBigRational();
+ return $number->toBigRational();
}
/**
@@ -79,16 +71,16 @@ public static function of($value) : BigNumber
* @param BigNumber|int|float|string $numerator The numerator. Must be convertible to a BigInteger.
* @param BigNumber|int|float|string $denominator The denominator. Must be convertible to a BigInteger.
*
- * @return BigRational
- *
* @throws NumberFormatException If an argument does not represent a valid number.
* @throws RoundingNecessaryException If an argument represents a non-integer number.
* @throws DivisionByZeroException If the denominator is zero.
*
* @psalm-pure
*/
- public static function nd($numerator, $denominator) : BigRational
- {
+ public static function nd(
+ BigNumber|int|float|string $numerator,
+ BigNumber|int|float|string $denominator,
+ ) : BigRational {
$numerator = BigInteger::of($numerator);
$denominator = BigInteger::of($denominator);
@@ -98,8 +90,6 @@ public static function nd($numerator, $denominator) : BigRational
/**
* Returns a BigRational representing zero.
*
- * @return BigRational
- *
* @psalm-pure
*/
public static function zero() : BigRational
@@ -120,8 +110,6 @@ public static function zero() : BigRational
/**
* Returns a BigRational representing one.
*
- * @return BigRational
- *
* @psalm-pure
*/
public static function one() : BigRational
@@ -142,8 +130,6 @@ public static function one() : BigRational
/**
* Returns a BigRational representing ten.
*
- * @return BigRational
- *
* @psalm-pure
*/
public static function ten() : BigRational
@@ -161,17 +147,11 @@ public static function ten() : BigRational
return $ten;
}
- /**
- * @return BigInteger
- */
public function getNumerator() : BigInteger
{
return $this->numerator;
}
- /**
- * @return BigInteger
- */
public function getDenominator() : BigInteger
{
return $this->denominator;
@@ -179,8 +159,6 @@ public function getDenominator() : BigInteger
/**
* Returns the quotient of the division of the numerator by the denominator.
- *
- * @return BigInteger
*/
public function quotient() : BigInteger
{
@@ -189,8 +167,6 @@ public function quotient() : BigInteger
/**
* Returns the remainder of the division of the numerator by the denominator.
- *
- * @return BigInteger
*/
public function remainder() : BigInteger
{
@@ -201,6 +177,8 @@ public function remainder() : BigInteger
* Returns the quotient and remainder of the division of the numerator by the denominator.
*
* @return BigInteger[]
+ *
+ * @psalm-return array{BigInteger, BigInteger}
*/
public function quotientAndRemainder() : array
{
@@ -212,11 +190,9 @@ public function quotientAndRemainder() : array
*
* @param BigNumber|int|float|string $that The number to add.
*
- * @return BigRational The result.
- *
* @throws MathException If the number is not valid.
*/
- public function plus($that) : BigRational
+ public function plus(BigNumber|int|float|string $that) : BigRational
{
$that = BigRational::of($that);
@@ -232,11 +208,9 @@ public function plus($that) : BigRational
*
* @param BigNumber|int|float|string $that The number to subtract.
*
- * @return BigRational The result.
- *
* @throws MathException If the number is not valid.
*/
- public function minus($that) : BigRational
+ public function minus(BigNumber|int|float|string $that) : BigRational
{
$that = BigRational::of($that);
@@ -252,11 +226,9 @@ public function minus($that) : BigRational
*
* @param BigNumber|int|float|string $that The multiplier.
*
- * @return BigRational The result.
- *
* @throws MathException If the multiplier is not a valid number.
*/
- public function multipliedBy($that) : BigRational
+ public function multipliedBy(BigNumber|int|float|string $that) : BigRational
{
$that = BigRational::of($that);
@@ -271,11 +243,9 @@ public function multipliedBy($that) : BigRational
*
* @param BigNumber|int|float|string $that The divisor.
*
- * @return BigRational The result.
- *
* @throws MathException If the divisor is not a valid number, or is zero.
*/
- public function dividedBy($that) : BigRational
+ public function dividedBy(BigNumber|int|float|string $that) : BigRational
{
$that = BigRational::of($that);
@@ -288,10 +258,6 @@ public function dividedBy($that) : BigRational
/**
* Returns this number exponentiated to the given value.
*
- * @param int $exponent The exponent.
- *
- * @return BigRational The result.
- *
* @throws \InvalidArgumentException If the exponent is not in the range 0 to 1,000,000.
*/
public function power(int $exponent) : BigRational
@@ -318,8 +284,6 @@ public function power(int $exponent) : BigRational
*
* The reciprocal has the numerator and denominator swapped.
*
- * @return BigRational
- *
* @throws DivisionByZeroException If the numerator is zero.
*/
public function reciprocal() : BigRational
@@ -329,8 +293,6 @@ public function reciprocal() : BigRational
/**
* Returns the absolute value of this BigRational.
- *
- * @return BigRational
*/
public function abs() : BigRational
{
@@ -339,8 +301,6 @@ public function abs() : BigRational
/**
* Returns the negated value of this BigRational.
- *
- * @return BigRational
*/
public function negated() : BigRational
{
@@ -349,8 +309,6 @@ public function negated() : BigRational
/**
* Returns the simplified value of this BigRational.
- *
- * @return BigRational
*/
public function simplified() : BigRational
{
@@ -362,25 +320,16 @@ public function simplified() : BigRational
return new BigRational($numerator, $denominator, false);
}
- /**
- * {@inheritdoc}
- */
- public function compareTo($that) : int
+ public function compareTo(BigNumber|int|float|string $that) : int
{
return $this->minus($that)->getSign();
}
- /**
- * {@inheritdoc}
- */
public function getSign() : int
{
return $this->numerator->getSign();
}
- /**
- * {@inheritdoc}
- */
public function toBigInteger() : BigInteger
{
$simplified = $this->simplified();
@@ -392,50 +341,32 @@ public function toBigInteger() : BigInteger
return $simplified->numerator;
}
- /**
- * {@inheritdoc}
- */
public function toBigDecimal() : BigDecimal
{
return $this->numerator->toBigDecimal()->exactlyDividedBy($this->denominator);
}
- /**
- * {@inheritdoc}
- */
public function toBigRational() : BigRational
{
return $this;
}
- /**
- * {@inheritdoc}
- */
- public function toScale(int $scale, int $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal
+ public function toScale(int $scale, RoundingMode $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal
{
return $this->numerator->toBigDecimal()->dividedBy($this->denominator, $scale, $roundingMode);
}
- /**
- * {@inheritdoc}
- */
public function toInt() : int
{
return $this->toBigInteger()->toInt();
}
- /**
- * {@inheritdoc}
- */
public function toFloat() : float
{
$simplified = $this->simplified();
return $simplified->numerator->toFloat() / $simplified->denominator->toFloat();
}
- /**
- * {@inheritdoc}
- */
public function __toString() : string
{
$numerator = (string) $this->numerator;
@@ -468,8 +399,6 @@ public function __serialize(): array
*
* @param array{numerator: BigInteger, denominator: BigInteger} $data
*
- * @return void
- *
* @throws \LogicException
*/
public function __unserialize(array $data): void
@@ -481,40 +410,4 @@ public function __unserialize(array $data): void
$this->numerator = $data['numerator'];
$this->denominator = $data['denominator'];
}
-
- /**
- * This method is required by interface Serializable and SHOULD NOT be accessed directly.
- *
- * @internal
- *
- * @return string
- */
- public function serialize() : string
- {
- return $this->numerator . '/' . $this->denominator;
- }
-
- /**
- * This method is only here to implement interface Serializable and cannot be accessed directly.
- *
- * @internal
- * @psalm-suppress RedundantPropertyInitializationCheck
- *
- * @param string $value
- *
- * @return void
- *
- * @throws \LogicException
- */
- public function unserialize($value) : void
- {
- if (isset($this->numerator)) {
- throw new \LogicException('unserialize() is an internal function, it must not be called directly.');
- }
-
- [$numerator, $denominator] = \explode('/', $value);
-
- $this->numerator = BigInteger::of($numerator);
- $this->denominator = BigInteger::of($denominator);
- }
}
diff --git a/api/vendor/brick/math/src/Exception/DivisionByZeroException.php b/api/vendor/brick/math/src/Exception/DivisionByZeroException.php
index a4e4431765..ce7769ac2e 100644
--- a/api/vendor/brick/math/src/Exception/DivisionByZeroException.php
+++ b/api/vendor/brick/math/src/Exception/DivisionByZeroException.php
@@ -10,8 +10,6 @@
class DivisionByZeroException extends MathException
{
/**
- * @return DivisionByZeroException
- *
* @psalm-pure
*/
public static function divisionByZero() : DivisionByZeroException
@@ -20,8 +18,6 @@ public static function divisionByZero() : DivisionByZeroException
}
/**
- * @return DivisionByZeroException
- *
* @psalm-pure
*/
public static function modulusMustNotBeZero() : DivisionByZeroException
@@ -30,8 +26,6 @@ public static function modulusMustNotBeZero() : DivisionByZeroException
}
/**
- * @return DivisionByZeroException
- *
* @psalm-pure
*/
public static function denominatorMustNotBeZero() : DivisionByZeroException
diff --git a/api/vendor/brick/math/src/Exception/IntegerOverflowException.php b/api/vendor/brick/math/src/Exception/IntegerOverflowException.php
index e0b07d3c73..c73b49097b 100644
--- a/api/vendor/brick/math/src/Exception/IntegerOverflowException.php
+++ b/api/vendor/brick/math/src/Exception/IntegerOverflowException.php
@@ -12,10 +12,6 @@
class IntegerOverflowException extends MathException
{
/**
- * @param BigInteger $value
- *
- * @return IntegerOverflowException
- *
* @psalm-pure
*/
public static function toIntOverflow(BigInteger $value) : IntegerOverflowException
diff --git a/api/vendor/brick/math/src/Exception/MathException.php b/api/vendor/brick/math/src/Exception/MathException.php
index 21fda90e18..46e9c3fe4d 100644
--- a/api/vendor/brick/math/src/Exception/MathException.php
+++ b/api/vendor/brick/math/src/Exception/MathException.php
@@ -6,9 +6,7 @@
/**
* Base class for all math exceptions.
- *
- * This class is abstract to ensure that only fine-grained exceptions are thrown throughout the code.
*/
-class MathException extends \RuntimeException
+class MathException extends \Exception
{
}
diff --git a/api/vendor/brick/math/src/Exception/NumberFormatException.php b/api/vendor/brick/math/src/Exception/NumberFormatException.php
index 2fd0be73a6..119cadbb43 100644
--- a/api/vendor/brick/math/src/Exception/NumberFormatException.php
+++ b/api/vendor/brick/math/src/Exception/NumberFormatException.php
@@ -9,11 +9,17 @@
*/
class NumberFormatException extends MathException
{
+ public static function invalidFormat(string $value) : self
+ {
+ return new self(\sprintf(
+ 'The given value "%s" does not represent a valid number.',
+ $value,
+ ));
+ }
+
/**
* @param string $char The failing character.
*
- * @return NumberFormatException
- *
* @psalm-pure
*/
public static function charNotInAlphabet(string $char) : self
@@ -30,6 +36,6 @@ public static function charNotInAlphabet(string $char) : self
$char = '"' . $char . '"';
}
- return new self(sprintf('Char %s is not a valid character in the given alphabet.', $char));
+ return new self(\sprintf('Char %s is not a valid character in the given alphabet.', $char));
}
}
diff --git a/api/vendor/brick/math/src/Exception/RoundingNecessaryException.php b/api/vendor/brick/math/src/Exception/RoundingNecessaryException.php
index 1c61005637..57bfcd8448 100644
--- a/api/vendor/brick/math/src/Exception/RoundingNecessaryException.php
+++ b/api/vendor/brick/math/src/Exception/RoundingNecessaryException.php
@@ -10,8 +10,6 @@
class RoundingNecessaryException extends MathException
{
/**
- * @return RoundingNecessaryException
- *
* @psalm-pure
*/
public static function roundingNecessary() : RoundingNecessaryException
diff --git a/api/vendor/brick/math/src/Internal/Calculator.php b/api/vendor/brick/math/src/Internal/Calculator.php
index 99bebbe5d8..44dd66924f 100644
--- a/api/vendor/brick/math/src/Internal/Calculator.php
+++ b/api/vendor/brick/math/src/Internal/Calculator.php
@@ -25,7 +25,7 @@ abstract class Calculator
/**
* The maximum exponent value allowed for the pow() method.
*/
- public const MAX_POWER = 1000000;
+ public const MAX_POWER = 1_000_000;
/**
* The alphabet for converting from and to base 2 to 36, lowercase.
@@ -43,8 +43,6 @@ abstract class Calculator
* An instance is typically set only in unit tests: the autodetect is usually the best option.
*
* @param Calculator|null $calculator The calculator instance, or NULL to revert to autodetect.
- *
- * @return void
*/
final public static function set(?Calculator $calculator) : void
{
@@ -56,8 +54,6 @@ final public static function set(?Calculator $calculator) : void
*
* If none has been explicitly set, the fastest available implementation will be returned.
*
- * @return Calculator
- *
* @psalm-pure
* @psalm-suppress ImpureStaticProperty
*/
@@ -75,8 +71,6 @@ final public static function get() : Calculator
* Returns the fastest available Calculator implementation.
*
* @codeCoverageIgnore
- *
- * @return Calculator
*/
private static function detect() : Calculator
{
@@ -94,9 +88,6 @@ private static function detect() : Calculator
/**
* Extracts the sign & digits of the operands.
*
- * @param string $a The first operand.
- * @param string $b The second operand.
- *
* @return array{bool, bool, string, string} Whether $a and $b are negative, followed by their digits.
*/
final protected function init(string $a, string $b) : array
@@ -112,10 +103,6 @@ final protected function init(string $a, string $b) : array
/**
* Returns the absolute value of a number.
- *
- * @param string $n The number.
- *
- * @return string The absolute value.
*/
final public function abs(string $n) : string
{
@@ -124,10 +111,6 @@ final public function abs(string $n) : string
/**
* Negates a number.
- *
- * @param string $n The number.
- *
- * @return string The negated value.
*/
final public function neg(string $n) : string
{
@@ -145,10 +128,9 @@ final public function neg(string $n) : string
/**
* Compares two numbers.
*
- * @param string $a The first number.
- * @param string $b The second number.
+ * @psalm-return -1|0|1
*
- * @return int [-1, 0, 1] If the first number is less than, equal to, or greater than the second number.
+ * @return int -1 if the first number is less than, 0 if equal to, 1 if greater than the second number.
*/
final public function cmp(string $a, string $b) : int
{
@@ -178,31 +160,16 @@ final public function cmp(string $a, string $b) : int
/**
* Adds two numbers.
- *
- * @param string $a The augend.
- * @param string $b The addend.
- *
- * @return string The sum.
*/
abstract public function add(string $a, string $b) : string;
/**
* Subtracts two numbers.
- *
- * @param string $a The minuend.
- * @param string $b The subtrahend.
- *
- * @return string The difference.
*/
abstract public function sub(string $a, string $b) : string;
/**
* Multiplies two numbers.
- *
- * @param string $a The multiplicand.
- * @param string $b The multiplier.
- *
- * @return string The product.
*/
abstract public function mul(string $a, string $b) : string;
@@ -247,10 +214,7 @@ abstract public function divQR(string $a, string $b) : array;
abstract public function pow(string $a, int $e) : string;
/**
- * @param string $a
* @param string $b The modulus; must not be zero.
- *
- * @return string
*/
public function mod(string $a, string $b) : string
{
@@ -264,10 +228,7 @@ public function mod(string $a, string $b) : string
*
* This method can be overridden by the concrete implementation if the underlying library has built-in support.
*
- * @param string $x
* @param string $m The modulus; must not be negative or zero.
- *
- * @return string|null
*/
public function modInverse(string $x, string $m) : ?string
{
@@ -296,8 +257,6 @@ public function modInverse(string $x, string $m) : ?string
* @param string $base The base number; must be positive or zero.
* @param string $exp The exponent; must be positive or zero.
* @param string $mod The modulus; must be strictly positive.
- *
- * @return string The power.
*/
abstract public function modPow(string $base, string $exp, string $mod) : string;
@@ -307,9 +266,6 @@ abstract public function modPow(string $base, string $exp, string $mod) : string
* This method can be overridden by the concrete implementation if the underlying library
* has built-in support for GCD calculations.
*
- * @param string $a The first number.
- * @param string $b The second number.
- *
* @return string The GCD, always positive, or zero if both arguments are zero.
*/
public function gcd(string $a, string $b) : string
@@ -347,10 +303,6 @@ private function gcdExtended(string $a, string $b) : array
*
* The result is the largest x such that x² ≤ n.
* The input MUST NOT be negative.
- *
- * @param string $n The number.
- *
- * @return string The square root.
*/
abstract public function sqrt(string $n) : string;
@@ -478,18 +430,16 @@ final public function toArbitraryBase(string $number, string $alphabet, int $bas
*
* Rounding is performed when the remainder of the division is not zero.
*
- * @param string $a The dividend.
- * @param string $b The divisor, must not be zero.
- * @param int $roundingMode The rounding mode.
- *
- * @return string
+ * @param string $a The dividend.
+ * @param string $b The divisor, must not be zero.
+ * @param RoundingMode $roundingMode The rounding mode.
*
* @throws \InvalidArgumentException If the rounding mode is invalid.
* @throws RoundingNecessaryException If RoundingMode::UNNECESSARY is provided but rounding is necessary.
*
* @psalm-suppress ImpureFunctionCall
*/
- final public function divRound(string $a, string $b, int $roundingMode) : string
+ final public function divRound(string $a, string $b, RoundingMode $roundingMode) : string
{
[$quotient, $remainder] = $this->divQR($a, $b);
@@ -565,11 +515,6 @@ final public function divRound(string $a, string $b, int $roundingMode) : string
*
* This method can be overridden by the concrete implementation if the underlying library
* has built-in support for bitwise operations.
- *
- * @param string $a
- * @param string $b
- *
- * @return string
*/
public function and(string $a, string $b) : string
{
@@ -581,11 +526,6 @@ public function and(string $a, string $b) : string
*
* This method can be overridden by the concrete implementation if the underlying library
* has built-in support for bitwise operations.
- *
- * @param string $a
- * @param string $b
- *
- * @return string
*/
public function or(string $a, string $b) : string
{
@@ -597,11 +537,6 @@ public function or(string $a, string $b) : string
*
* This method can be overridden by the concrete implementation if the underlying library
* has built-in support for bitwise operations.
- *
- * @param string $a
- * @param string $b
- *
- * @return string
*/
public function xor(string $a, string $b) : string
{
@@ -614,8 +549,6 @@ public function xor(string $a, string $b) : string
* @param 'and'|'or'|'xor' $operator The operator to use.
* @param string $a The left operand.
* @param string $b The right operand.
- *
- * @return string
*/
private function bitwise(string $operator, string $a, string $b) : string
{
@@ -640,27 +573,17 @@ private function bitwise(string $operator, string $a, string $b) : string
$bBin = $this->twosComplement($bBin);
}
- switch ($operator) {
- case 'and':
- $value = $aBin & $bBin;
- $negative = ($aNeg and $bNeg);
- break;
-
- case 'or':
- $value = $aBin | $bBin;
- $negative = ($aNeg or $bNeg);
- break;
-
- case 'xor':
- $value = $aBin ^ $bBin;
- $negative = ($aNeg xor $bNeg);
- break;
+ $value = match ($operator) {
+ 'and' => $aBin & $bBin,
+ 'or' => $aBin | $bBin,
+ 'xor' => $aBin ^ $bBin,
+ };
- // @codeCoverageIgnoreStart
- default:
- throw new \InvalidArgumentException('Invalid bitwise operator.');
- // @codeCoverageIgnoreEnd
- }
+ $negative = match ($operator) {
+ 'and' => $aNeg and $bNeg,
+ 'or' => $aNeg or $bNeg,
+ 'xor' => $aNeg xor $bNeg,
+ };
if ($negative) {
$value = $this->twosComplement($value);
@@ -673,8 +596,6 @@ private function bitwise(string $operator, string $a, string $b) : string
/**
* @param string $number A positive, binary number.
- *
- * @return string
*/
private function twosComplement(string $number) : string
{
@@ -704,8 +625,6 @@ private function twosComplement(string $number) : string
* Converts a decimal number to a binary string.
*
* @param string $number The number to convert, positive or zero, only digits.
- *
- * @return string
*/
private function toBinary(string $number) : string
{
@@ -723,8 +642,6 @@ private function toBinary(string $number) : string
* Returns the positive decimal representation of a binary number.
*
* @param string $bytes The bytes representing the number.
- *
- * @return string
*/
private function toDecimal(string $bytes) : string
{
diff --git a/api/vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php b/api/vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php
index 34078687d2..067085e21a 100644
--- a/api/vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php
+++ b/api/vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php
@@ -15,94 +15,49 @@
*/
class BcMathCalculator extends Calculator
{
- /**
- * {@inheritdoc}
- */
public function add(string $a, string $b) : string
{
return \bcadd($a, $b, 0);
}
- /**
- * {@inheritdoc}
- */
public function sub(string $a, string $b) : string
{
return \bcsub($a, $b, 0);
}
- /**
- * {@inheritdoc}
- */
public function mul(string $a, string $b) : string
{
return \bcmul($a, $b, 0);
}
- /**
- * {@inheritdoc}
- *
- * @psalm-suppress InvalidNullableReturnType
- * @psalm-suppress NullableReturnStatement
- */
public function divQ(string $a, string $b) : string
{
return \bcdiv($a, $b, 0);
}
- /**
- * {@inheritdoc}
- *
- * @psalm-suppress InvalidNullableReturnType
- * @psalm-suppress NullableReturnStatement
- */
public function divR(string $a, string $b) : string
{
- if (version_compare(PHP_VERSION, '7.2') >= 0) {
- return \bcmod($a, $b, 0);
- }
-
- return \bcmod($a, $b);
+ return \bcmod($a, $b, 0);
}
- /**
- * {@inheritdoc}
- */
public function divQR(string $a, string $b) : array
{
$q = \bcdiv($a, $b, 0);
-
- if (version_compare(PHP_VERSION, '7.2') >= 0) {
- $r = \bcmod($a, $b, 0);
- } else {
- $r = \bcmod($a, $b);
- }
-
- assert($q !== null);
- assert($r !== null);
+ $r = \bcmod($a, $b, 0);
return [$q, $r];
}
- /**
- * {@inheritdoc}
- */
public function pow(string $a, int $e) : string
{
return \bcpow($a, (string) $e, 0);
}
- /**
- * {@inheritdoc}
- */
public function modPow(string $base, string $exp, string $mod) : string
{
return \bcpowmod($base, $exp, $mod, 0);
}
- /**
- * {@inheritDoc}
- */
public function sqrt(string $n) : string
{
return \bcsqrt($n, 0);
diff --git a/api/vendor/brick/math/src/Internal/Calculator/GmpCalculator.php b/api/vendor/brick/math/src/Internal/Calculator/GmpCalculator.php
index 52d18800a6..42d4c69274 100644
--- a/api/vendor/brick/math/src/Internal/Calculator/GmpCalculator.php
+++ b/api/vendor/brick/math/src/Internal/Calculator/GmpCalculator.php
@@ -15,49 +15,31 @@
*/
class GmpCalculator extends Calculator
{
- /**
- * {@inheritdoc}
- */
public function add(string $a, string $b) : string
{
return \gmp_strval(\gmp_add($a, $b));
}
- /**
- * {@inheritdoc}
- */
public function sub(string $a, string $b) : string
{
return \gmp_strval(\gmp_sub($a, $b));
}
- /**
- * {@inheritdoc}
- */
public function mul(string $a, string $b) : string
{
return \gmp_strval(\gmp_mul($a, $b));
}
- /**
- * {@inheritdoc}
- */
public function divQ(string $a, string $b) : string
{
return \gmp_strval(\gmp_div_q($a, $b));
}
- /**
- * {@inheritdoc}
- */
public function divR(string $a, string $b) : string
{
return \gmp_strval(\gmp_div_r($a, $b));
}
- /**
- * {@inheritdoc}
- */
public function divQR(string $a, string $b) : array
{
[$q, $r] = \gmp_div_qr($a, $b);
@@ -68,17 +50,11 @@ public function divQR(string $a, string $b) : array
];
}
- /**
- * {@inheritdoc}
- */
public function pow(string $a, int $e) : string
{
return \gmp_strval(\gmp_pow($a, $e));
}
- /**
- * {@inheritdoc}
- */
public function modInverse(string $x, string $m) : ?string
{
$result = \gmp_invert($x, $m);
@@ -90,65 +66,41 @@ public function modInverse(string $x, string $m) : ?string
return \gmp_strval($result);
}
- /**
- * {@inheritdoc}
- */
public function modPow(string $base, string $exp, string $mod) : string
{
return \gmp_strval(\gmp_powm($base, $exp, $mod));
}
- /**
- * {@inheritdoc}
- */
public function gcd(string $a, string $b) : string
{
return \gmp_strval(\gmp_gcd($a, $b));
}
- /**
- * {@inheritdoc}
- */
public function fromBase(string $number, int $base) : string
{
return \gmp_strval(\gmp_init($number, $base));
}
- /**
- * {@inheritdoc}
- */
public function toBase(string $number, int $base) : string
{
return \gmp_strval($number, $base);
}
- /**
- * {@inheritdoc}
- */
public function and(string $a, string $b) : string
{
return \gmp_strval(\gmp_and($a, $b));
}
- /**
- * {@inheritdoc}
- */
public function or(string $a, string $b) : string
{
return \gmp_strval(\gmp_or($a, $b));
}
- /**
- * {@inheritdoc}
- */
public function xor(string $a, string $b) : string
{
return \gmp_strval(\gmp_xor($a, $b));
}
- /**
- * {@inheritDoc}
- */
public function sqrt(string $n) : string
{
return \gmp_strval(\gmp_sqrt($n));
diff --git a/api/vendor/brick/math/src/Internal/Calculator/NativeCalculator.php b/api/vendor/brick/math/src/Internal/Calculator/NativeCalculator.php
index a7eb23b90b..6acd063828 100644
--- a/api/vendor/brick/math/src/Internal/Calculator/NativeCalculator.php
+++ b/api/vendor/brick/math/src/Internal/Calculator/NativeCalculator.php
@@ -19,36 +19,24 @@ class NativeCalculator extends Calculator
* The max number of digits the platform can natively add, subtract, multiply or divide without overflow.
* For multiplication, this represents the max sum of the lengths of both operands.
*
- * For addition, it is assumed that an extra digit can hold a carry (1) without overflowing.
+ * In addition, it is assumed that an extra digit can hold a carry (1) without overflowing.
* Example: 32-bit: max number 1,999,999,999 (9 digits + carry)
* 64-bit: max number 1,999,999,999,999,999,999 (18 digits + carry)
*/
- private int $maxDigits;
+ private readonly int $maxDigits;
/**
- * Class constructor.
- *
* @codeCoverageIgnore
*/
public function __construct()
{
- switch (PHP_INT_SIZE) {
- case 4:
- $this->maxDigits = 9;
- break;
-
- case 8:
- $this->maxDigits = 18;
- break;
-
- default:
- throw new \RuntimeException('The platform is not 32-bit or 64-bit as expected.');
- }
+ $this->maxDigits = match (PHP_INT_SIZE) {
+ 4 => 9,
+ 8 => 18,
+ default => throw new \RuntimeException('The platform is not 32-bit or 64-bit as expected.')
+ };
}
- /**
- * {@inheritdoc}
- */
public function add(string $a, string $b) : string
{
/**
@@ -80,17 +68,11 @@ public function add(string $a, string $b) : string
return $result;
}
- /**
- * {@inheritdoc}
- */
public function sub(string $a, string $b) : string
{
return $this->add($a, $this->neg($b));
}
- /**
- * {@inheritdoc}
- */
public function mul(string $a, string $b) : string
{
/**
@@ -134,25 +116,16 @@ public function mul(string $a, string $b) : string
return $result;
}
- /**
- * {@inheritdoc}
- */
public function divQ(string $a, string $b) : string
{
return $this->divQR($a, $b)[0];
}
- /**
- * {@inheritdoc}
- */
public function divR(string $a, string $b): string
{
return $this->divQR($a, $b)[1];
}
- /**
- * {@inheritdoc}
- */
public function divQR(string $a, string $b) : array
{
if ($a === '0') {
@@ -181,10 +154,8 @@ public function divQR(string $a, string $b) : array
if (is_int($nb)) {
// the only division that may overflow is PHP_INT_MIN / -1,
// which cannot happen here as we've already handled a divisor of -1 above.
+ $q = intdiv($na, $nb);
$r = $na % $nb;
- $q = ($na - $r) / $nb;
-
- assert(is_int($q));
return [
(string) $q,
@@ -208,9 +179,6 @@ public function divQR(string $a, string $b) : array
return [$q, $r];
}
- /**
- * {@inheritdoc}
- */
public function pow(string $a, int $e) : string
{
if ($e === 0) {
@@ -238,8 +206,6 @@ public function pow(string $a, int $e) : string
/**
* Algorithm from: https://www.geeksforgeeks.org/modular-exponentiation-power-in-modular-arithmetic/
- *
- * {@inheritdoc}
*/
public function modPow(string $base, string $exp, string $mod) : string
{
@@ -274,8 +240,6 @@ public function modPow(string $base, string $exp, string $mod) : string
/**
* Adapted from https://cp-algorithms.com/num_methods/roots_newton.html
- *
- * {@inheritDoc}
*/
public function sqrt(string $n) : string
{
@@ -304,11 +268,6 @@ public function sqrt(string $n) : string
/**
* Performs the addition of two non-signed large integers.
- *
- * @param string $a The first operand.
- * @param string $b The second operand.
- *
- * @return string
*/
private function doAdd(string $a, string $b) : string
{
@@ -361,11 +320,6 @@ private function doAdd(string $a, string $b) : string
/**
* Performs the subtraction of two non-signed large integers.
- *
- * @param string $a The first operand.
- * @param string $b The second operand.
- *
- * @return string
*/
private function doSub(string $a, string $b) : string
{
@@ -443,11 +397,6 @@ private function doSub(string $a, string $b) : string
/**
* Performs the multiplication of two non-signed large integers.
- *
- * @param string $a The first operand.
- * @param string $b The second operand.
- *
- * @return string
*/
private function doMul(string $a, string $b) : string
{
@@ -520,9 +469,6 @@ private function doMul(string $a, string $b) : string
/**
* Performs the division of two non-signed large integers.
*
- * @param string $a The first operand.
- * @param string $b The second operand.
- *
* @return string[] The quotient and remainder.
*/
private function doDiv(string $a, string $b) : array
@@ -581,10 +527,7 @@ private function doDiv(string $a, string $b) : array
/**
* Compares two non-signed large numbers.
*
- * @param string $a The first operand.
- * @param string $b The second operand.
- *
- * @return int [-1, 0, 1]
+ * @psalm-return -1|0|1
*/
private function doCmp(string $a, string $b) : int
{
@@ -597,7 +540,7 @@ private function doCmp(string $a, string $b) : int
return $cmp;
}
- return \strcmp($a, $b) <=> 0; // enforce [-1, 0, 1]
+ return \strcmp($a, $b) <=> 0; // enforce -1|0|1
}
/**
@@ -605,9 +548,6 @@ private function doCmp(string $a, string $b) : int
*
* The numbers must only consist of digits, without leading minus sign.
*
- * @param string $a The first operand.
- * @param string $b The second operand.
- *
* @return array{string, string, int}
*/
private function pad(string $a, string $b) : array
diff --git a/api/vendor/brick/math/src/RoundingMode.php b/api/vendor/brick/math/src/RoundingMode.php
index 06936d8db3..e8ee6a8b41 100644
--- a/api/vendor/brick/math/src/RoundingMode.php
+++ b/api/vendor/brick/math/src/RoundingMode.php
@@ -13,24 +13,15 @@
* regardless the digits' contribution to the value of the number. In other words, considered
* as a numerical value, the discarded fraction could have an absolute value greater than one.
*/
-final class RoundingMode
+enum RoundingMode
{
- /**
- * Private constructor. This class is not instantiable.
- *
- * @codeCoverageIgnore
- */
- private function __construct()
- {
- }
-
/**
* Asserts that the requested operation has an exact result, hence no rounding is necessary.
*
* If this rounding mode is specified on an operation that yields a result that
* cannot be represented at the requested scale, a RoundingNecessaryException is thrown.
*/
- public const UNNECESSARY = 0;
+ case UNNECESSARY;
/**
* Rounds away from zero.
@@ -38,7 +29,7 @@ private function __construct()
* Always increments the digit prior to a nonzero discarded fraction.
* Note that this rounding mode never decreases the magnitude of the calculated value.
*/
- public const UP = 1;
+ case UP;
/**
* Rounds towards zero.
@@ -46,7 +37,7 @@ private function __construct()
* Never increments the digit prior to a discarded fraction (i.e., truncates).
* Note that this rounding mode never increases the magnitude of the calculated value.
*/
- public const DOWN = 2;
+ case DOWN;
/**
* Rounds towards positive infinity.
@@ -54,7 +45,7 @@ private function __construct()
* If the result is positive, behaves as for UP; if negative, behaves as for DOWN.
* Note that this rounding mode never decreases the calculated value.
*/
- public const CEILING = 3;
+ case CEILING;
/**
* Rounds towards negative infinity.
@@ -62,7 +53,7 @@ private function __construct()
* If the result is positive, behave as for DOWN; if negative, behave as for UP.
* Note that this rounding mode never increases the calculated value.
*/
- public const FLOOR = 4;
+ case FLOOR;
/**
* Rounds towards "nearest neighbor" unless both neighbors are equidistant, in which case round up.
@@ -70,28 +61,28 @@ private function __construct()
* Behaves as for UP if the discarded fraction is >= 0.5; otherwise, behaves as for DOWN.
* Note that this is the rounding mode commonly taught at school.
*/
- public const HALF_UP = 5;
+ case HALF_UP;
/**
* Rounds towards "nearest neighbor" unless both neighbors are equidistant, in which case round down.
*
* Behaves as for UP if the discarded fraction is > 0.5; otherwise, behaves as for DOWN.
*/
- public const HALF_DOWN = 6;
+ case HALF_DOWN;
/**
* Rounds towards "nearest neighbor" unless both neighbors are equidistant, in which case round towards positive infinity.
*
* If the result is positive, behaves as for HALF_UP; if negative, behaves as for HALF_DOWN.
*/
- public const HALF_CEILING = 7;
+ case HALF_CEILING;
/**
* Rounds towards "nearest neighbor" unless both neighbors are equidistant, in which case round towards negative infinity.
*
* If the result is positive, behaves as for HALF_DOWN; if negative, behaves as for HALF_UP.
*/
- public const HALF_FLOOR = 8;
+ case HALF_FLOOR;
/**
* Rounds towards the "nearest neighbor" unless both neighbors are equidistant, in which case rounds towards the even neighbor.
@@ -103,5 +94,5 @@ private function __construct()
* cumulative error when applied repeatedly over a sequence of calculations.
* It is sometimes known as "Banker's rounding", and is chiefly used in the USA.
*/
- public const HALF_EVEN = 9;
+ case HALF_EVEN;
}
diff --git a/api/vendor/symfony/polyfill-php81/LICENSE b/api/vendor/carbonphp/carbon-doctrine-types/LICENSE
similarity index 88%
rename from api/vendor/symfony/polyfill-php81/LICENSE
rename to api/vendor/carbonphp/carbon-doctrine-types/LICENSE
index efb17f98e7..2ee1671db1 100644
--- a/api/vendor/symfony/polyfill-php81/LICENSE
+++ b/api/vendor/carbonphp/carbon-doctrine-types/LICENSE
@@ -1,11 +1,13 @@
-Copyright (c) 2021 Fabien Potencier
+MIT License
+
+Copyright (c) 2023 Carbon
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is furnished
-to do so, subject to the following conditions:
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
@@ -15,5 +17,5 @@ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/api/vendor/carbonphp/carbon-doctrine-types/README.md b/api/vendor/carbonphp/carbon-doctrine-types/README.md
new file mode 100644
index 0000000000..5a18121b6c
--- /dev/null
+++ b/api/vendor/carbonphp/carbon-doctrine-types/README.md
@@ -0,0 +1,14 @@
+# carbonphp/carbon-doctrine-types
+
+Types to use Carbon in Doctrine
+
+## Documentation
+
+[Check how to use in the official Carbon documentation](https://carbon.nesbot.com/symfony/)
+
+This package is an externalization of [src/Carbon/Doctrine](https://github.com/briannesbitt/Carbon/tree/2.71.0/src/Carbon/Doctrine)
+from `nestbot/carbon` package.
+
+Externalization allows to better deal with different versions of dbal. With
+version 4.0 of dbal, it no longer sustainable to be compatible with all version
+using a single code.
diff --git a/api/vendor/carbonphp/carbon-doctrine-types/composer.json b/api/vendor/carbonphp/carbon-doctrine-types/composer.json
new file mode 100644
index 0000000000..abf45c5fb5
--- /dev/null
+++ b/api/vendor/carbonphp/carbon-doctrine-types/composer.json
@@ -0,0 +1,36 @@
+{
+ "name": "carbonphp/carbon-doctrine-types",
+ "description": "Types to use Carbon in Doctrine",
+ "type": "library",
+ "keywords": [
+ "date",
+ "time",
+ "DateTime",
+ "Carbon",
+ "Doctrine"
+ ],
+ "require": {
+ "php": "^8.1"
+ },
+ "require-dev": {
+ "doctrine/dbal": "^4.0.0",
+ "nesbot/carbon": "^2.71.0 || ^3.0.0",
+ "phpunit/phpunit": "^10.3"
+ },
+ "conflict": {
+ "doctrine/dbal": "<4.0.0 || >=5.0.0"
+ },
+ "license": "MIT",
+ "autoload": {
+ "psr-4": {
+ "Carbon\\Doctrine\\": "src/Carbon/Doctrine/"
+ }
+ },
+ "authors": [
+ {
+ "name": "KyleKatarn",
+ "email": "kylekatarnls@gmail.com"
+ }
+ ],
+ "minimum-stability": "dev"
+}
diff --git a/api/vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/CarbonDoctrineType.php b/api/vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/CarbonDoctrineType.php
new file mode 100644
index 0000000000..a63a9b8d27
--- /dev/null
+++ b/api/vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/CarbonDoctrineType.php
@@ -0,0 +1,16 @@
+
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
+declare(strict_types=1);
namespace Carbon\Doctrine;
@@ -15,7 +8,12 @@
use Carbon\CarbonInterface;
use DateTimeInterface;
use Doctrine\DBAL\Platforms\AbstractPlatform;
-use Doctrine\DBAL\Types\ConversionException;
+use Doctrine\DBAL\Platforms\DB2Platform;
+use Doctrine\DBAL\Platforms\OraclePlatform;
+use Doctrine\DBAL\Platforms\SQLitePlatform;
+use Doctrine\DBAL\Platforms\SQLServerPlatform;
+use Doctrine\DBAL\Types\Exception\InvalidType;
+use Doctrine\DBAL\Types\Exception\ValueNotConvertible;
use Exception;
/**
@@ -23,6 +21,14 @@
*/
trait CarbonTypeConverter
{
+ /**
+ * This property differentiates types installed by carbonphp/carbon-doctrine-types
+ * from the ones embedded previously in nesbot/carbon source directly.
+ *
+ * @readonly
+ */
+ public bool $external = true;
+
/**
* @return class-string
*/
@@ -31,20 +37,12 @@ protected function getCarbonClassName(): string
return Carbon::class;
}
- /**
- * @return string
- */
- public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)
+ public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform): string
{
- $precision = $fieldDeclaration['precision'] ?: 10;
-
- if ($fieldDeclaration['secondPrecision'] ?? false) {
- $precision = 0;
- }
-
- if ($precision === 10) {
- $precision = DateTimeDefaultPrecision::get();
- }
+ $precision = min(
+ $fieldDeclaration['precision'] ?? DateTimeDefaultPrecision::get(),
+ $this->getMaximumPrecision($platform),
+ );
$type = parent::getSQLDeclaration($fieldDeclaration, $platform);
@@ -63,10 +61,25 @@ public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $pla
/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
- *
- * @return T|null
*/
- public function convertToPHPValue($value, AbstractPlatform $platform)
+ public function convertToDatabaseValue($value, AbstractPlatform $platform): ?string
+ {
+ if ($value === null) {
+ return $value;
+ }
+
+ if ($value instanceof DateTimeInterface) {
+ return $value->format('Y-m-d H:i:s.u');
+ }
+
+ throw InvalidType::new(
+ $value,
+ static::class,
+ ['null', 'DateTime', 'Carbon']
+ );
+ }
+
+ private function doConvertToPHPValue(mixed $value)
{
$class = $this->getCarbonClassName();
@@ -88,9 +101,9 @@ public function convertToPHPValue($value, AbstractPlatform $platform)
}
if (!$date) {
- throw ConversionException::conversionFailedFormat(
+ throw ValueNotConvertible::new(
$value,
- $this->getName(),
+ static::class,
'Y-m-d H:i:s.u or any format supported by '.$class.'::parse()',
$error
);
@@ -99,25 +112,20 @@ public function convertToPHPValue($value, AbstractPlatform $platform)
return $date;
}
- /**
- * @SuppressWarnings(PHPMD.UnusedFormalParameter)
- *
- * @return string|null
- */
- public function convertToDatabaseValue($value, AbstractPlatform $platform)
+ private function getMaximumPrecision(AbstractPlatform $platform): int
{
- if ($value === null) {
- return $value;
+ if ($platform instanceof DB2Platform) {
+ return 12;
}
- if ($value instanceof DateTimeInterface) {
- return $value->format('Y-m-d H:i:s.u');
+ if ($platform instanceof OraclePlatform) {
+ return 9;
}
- throw ConversionException::conversionFailedInvalidType(
- $value,
- $this->getName(),
- ['null', 'DateTime', 'Carbon']
- );
+ if ($platform instanceof SQLServerPlatform || $platform instanceof SQLitePlatform) {
+ return 3;
+ }
+
+ return 6;
}
}
diff --git a/api/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeDefaultPrecision.php b/api/vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/DateTimeDefaultPrecision.php
similarity index 70%
rename from api/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeDefaultPrecision.php
rename to api/vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/DateTimeDefaultPrecision.php
index 642fd41354..cd9896f9ca 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeDefaultPrecision.php
+++ b/api/vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/DateTimeDefaultPrecision.php
@@ -1,13 +1,6 @@
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
+declare(strict_types=1);
namespace Carbon\Doctrine;
diff --git a/api/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeImmutableType.php b/api/vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/DateTimeImmutableType.php
similarity index 58%
rename from api/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeImmutableType.php
rename to api/vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/DateTimeImmutableType.php
index 499271031e..fd6467e3dc 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeImmutableType.php
+++ b/api/vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/DateTimeImmutableType.php
@@ -1,12 +1,12 @@
*/
use CarbonTypeConverter;
+ /**
+ * @SuppressWarnings(PHPMD.UnusedFormalParameter)
+ */
+ public function convertToPHPValue(mixed $value, AbstractPlatform $platform): ?CarbonImmutable
+ {
+ return $this->doConvertToPHPValue($value);
+ }
+
/**
* @return class-string
*/
diff --git a/api/vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/DateTimeType.php b/api/vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/DateTimeType.php
new file mode 100644
index 0000000000..89e4b7903a
--- /dev/null
+++ b/api/vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/DateTimeType.php
@@ -0,0 +1,24 @@
+ */
+ use CarbonTypeConverter;
+
+ /**
+ * @SuppressWarnings(PHPMD.UnusedFormalParameter)
+ */
+ public function convertToPHPValue(mixed $value, AbstractPlatform $platform): ?Carbon
+ {
+ return $this->doConvertToPHPValue($value);
+ }
+}
diff --git a/api/vendor/composer/ClassLoader.php b/api/vendor/composer/ClassLoader.php
index 6d0c3f2d00..7824d8f7ea 100644
--- a/api/vendor/composer/ClassLoader.php
+++ b/api/vendor/composer/ClassLoader.php
@@ -42,30 +42,76 @@
*/
class ClassLoader
{
+ /** @var \Closure(string):void */
+ private static $includeFile;
+
+ /** @var string|null */
private $vendorDir;
// PSR-4
+ /**
+ * @var array>
+ */
private $prefixLengthsPsr4 = array();
+ /**
+ * @var array>
+ */
private $prefixDirsPsr4 = array();
+ /**
+ * @var list
+ */
private $fallbackDirsPsr4 = array();
// PSR-0
+ /**
+ * List of PSR-0 prefixes
+ *
+ * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2')))
+ *
+ * @var array>>
+ */
private $prefixesPsr0 = array();
+ /**
+ * @var list
+ */
private $fallbackDirsPsr0 = array();
+ /** @var bool */
private $useIncludePath = false;
+
+ /**
+ * @var array
+ */
private $classMap = array();
+
+ /** @var bool */
private $classMapAuthoritative = false;
+
+ /**
+ * @var array
+ */
private $missingClasses = array();
+
+ /** @var string|null */
private $apcuPrefix;
+ /**
+ * @var array
+ */
private static $registeredLoaders = array();
+ /**
+ * @param string|null $vendorDir
+ */
public function __construct($vendorDir = null)
{
$this->vendorDir = $vendorDir;
+ self::initializeIncludeClosure();
}
+ /**
+ * @return array>
+ */
public function getPrefixes()
{
if (!empty($this->prefixesPsr0)) {
@@ -75,28 +121,42 @@ public function getPrefixes()
return array();
}
+ /**
+ * @return array>
+ */
public function getPrefixesPsr4()
{
return $this->prefixDirsPsr4;
}
+ /**
+ * @return list
+ */
public function getFallbackDirs()
{
return $this->fallbackDirsPsr0;
}
+ /**
+ * @return list
+ */
public function getFallbackDirsPsr4()
{
return $this->fallbackDirsPsr4;
}
+ /**
+ * @return array Array of classname => path
+ */
public function getClassMap()
{
return $this->classMap;
}
/**
- * @param array $classMap Class to filename map
+ * @param array $classMap Class to filename map
+ *
+ * @return void
*/
public function addClassMap(array $classMap)
{
@@ -111,22 +171,25 @@ public function addClassMap(array $classMap)
* Registers a set of PSR-0 directories for a given prefix, either
* appending or prepending to the ones previously set for this prefix.
*
- * @param string $prefix The prefix
- * @param array|string $paths The PSR-0 root directories
- * @param bool $prepend Whether to prepend the directories
+ * @param string $prefix The prefix
+ * @param list|string $paths The PSR-0 root directories
+ * @param bool $prepend Whether to prepend the directories
+ *
+ * @return void
*/
public function add($prefix, $paths, $prepend = false)
{
+ $paths = (array) $paths;
if (!$prefix) {
if ($prepend) {
$this->fallbackDirsPsr0 = array_merge(
- (array) $paths,
+ $paths,
$this->fallbackDirsPsr0
);
} else {
$this->fallbackDirsPsr0 = array_merge(
$this->fallbackDirsPsr0,
- (array) $paths
+ $paths
);
}
@@ -135,19 +198,19 @@ public function add($prefix, $paths, $prepend = false)
$first = $prefix[0];
if (!isset($this->prefixesPsr0[$first][$prefix])) {
- $this->prefixesPsr0[$first][$prefix] = (array) $paths;
+ $this->prefixesPsr0[$first][$prefix] = $paths;
return;
}
if ($prepend) {
$this->prefixesPsr0[$first][$prefix] = array_merge(
- (array) $paths,
+ $paths,
$this->prefixesPsr0[$first][$prefix]
);
} else {
$this->prefixesPsr0[$first][$prefix] = array_merge(
$this->prefixesPsr0[$first][$prefix],
- (array) $paths
+ $paths
);
}
}
@@ -156,25 +219,28 @@ public function add($prefix, $paths, $prepend = false)
* Registers a set of PSR-4 directories for a given namespace, either
* appending or prepending to the ones previously set for this namespace.
*
- * @param string $prefix The prefix/namespace, with trailing '\\'
- * @param array|string $paths The PSR-4 base directories
- * @param bool $prepend Whether to prepend the directories
+ * @param string $prefix The prefix/namespace, with trailing '\\'
+ * @param list|string $paths The PSR-4 base directories
+ * @param bool $prepend Whether to prepend the directories
*
* @throws \InvalidArgumentException
+ *
+ * @return void
*/
public function addPsr4($prefix, $paths, $prepend = false)
{
+ $paths = (array) $paths;
if (!$prefix) {
// Register directories for the root namespace.
if ($prepend) {
$this->fallbackDirsPsr4 = array_merge(
- (array) $paths,
+ $paths,
$this->fallbackDirsPsr4
);
} else {
$this->fallbackDirsPsr4 = array_merge(
$this->fallbackDirsPsr4,
- (array) $paths
+ $paths
);
}
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
@@ -184,18 +250,18 @@ public function addPsr4($prefix, $paths, $prepend = false)
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
}
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
- $this->prefixDirsPsr4[$prefix] = (array) $paths;
+ $this->prefixDirsPsr4[$prefix] = $paths;
} elseif ($prepend) {
// Prepend directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge(
- (array) $paths,
+ $paths,
$this->prefixDirsPsr4[$prefix]
);
} else {
// Append directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge(
$this->prefixDirsPsr4[$prefix],
- (array) $paths
+ $paths
);
}
}
@@ -204,8 +270,10 @@ public function addPsr4($prefix, $paths, $prepend = false)
* Registers a set of PSR-0 directories for a given prefix,
* replacing any others previously set for this prefix.
*
- * @param string $prefix The prefix
- * @param array|string $paths The PSR-0 base directories
+ * @param string $prefix The prefix
+ * @param list|string $paths The PSR-0 base directories
+ *
+ * @return void
*/
public function set($prefix, $paths)
{
@@ -220,10 +288,12 @@ public function set($prefix, $paths)
* Registers a set of PSR-4 directories for a given namespace,
* replacing any others previously set for this namespace.
*
- * @param string $prefix The prefix/namespace, with trailing '\\'
- * @param array|string $paths The PSR-4 base directories
+ * @param string $prefix The prefix/namespace, with trailing '\\'
+ * @param list|string $paths The PSR-4 base directories
*
* @throws \InvalidArgumentException
+ *
+ * @return void
*/
public function setPsr4($prefix, $paths)
{
@@ -243,6 +313,8 @@ public function setPsr4($prefix, $paths)
* Turns on searching the include path for class files.
*
* @param bool $useIncludePath
+ *
+ * @return void
*/
public function setUseIncludePath($useIncludePath)
{
@@ -265,6 +337,8 @@ public function getUseIncludePath()
* that have not been registered with the class map.
*
* @param bool $classMapAuthoritative
+ *
+ * @return void
*/
public function setClassMapAuthoritative($classMapAuthoritative)
{
@@ -285,6 +359,8 @@ public function isClassMapAuthoritative()
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
*
* @param string|null $apcuPrefix
+ *
+ * @return void
*/
public function setApcuPrefix($apcuPrefix)
{
@@ -305,6 +381,8 @@ public function getApcuPrefix()
* Registers this instance as an autoloader.
*
* @param bool $prepend Whether to prepend the autoloader or not
+ *
+ * @return void
*/
public function register($prepend = false)
{
@@ -324,6 +402,8 @@ public function register($prepend = false)
/**
* Unregisters this instance as an autoloader.
+ *
+ * @return void
*/
public function unregister()
{
@@ -343,7 +423,8 @@ public function unregister()
public function loadClass($class)
{
if ($file = $this->findFile($class)) {
- includeFile($file);
+ $includeFile = self::$includeFile;
+ $includeFile($file);
return true;
}
@@ -394,15 +475,20 @@ public function findFile($class)
}
/**
- * Returns the currently registered loaders indexed by their corresponding vendor directories.
+ * Returns the currently registered loaders keyed by their corresponding vendor directories.
*
- * @return self[]
+ * @return array
*/
public static function getRegisteredLoaders()
{
return self::$registeredLoaders;
}
+ /**
+ * @param string $class
+ * @param string $ext
+ * @return string|false
+ */
private function findFileWithExtension($class, $ext)
{
// PSR-4 lookup
@@ -468,14 +554,26 @@ private function findFileWithExtension($class, $ext)
return false;
}
-}
-/**
- * Scope isolated include.
- *
- * Prevents access to $this/self from included files.
- */
-function includeFile($file)
-{
- include $file;
+ /**
+ * @return void
+ */
+ private static function initializeIncludeClosure()
+ {
+ if (self::$includeFile !== null) {
+ return;
+ }
+
+ /**
+ * Scope isolated include.
+ *
+ * Prevents access to $this/self from included files.
+ *
+ * @param string $file
+ * @return void
+ */
+ self::$includeFile = \Closure::bind(static function($file) {
+ include $file;
+ }, null, null);
+ }
}
diff --git a/api/vendor/composer/InstalledVersions.php b/api/vendor/composer/InstalledVersions.php
index b3a4e1611e..51e734a774 100644
--- a/api/vendor/composer/InstalledVersions.php
+++ b/api/vendor/composer/InstalledVersions.php
@@ -20,12 +20,27 @@
*
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
*
- * To require it's presence, you can require `composer-runtime-api ^2.0`
+ * To require its presence, you can require `composer-runtime-api ^2.0`
+ *
+ * @final
*/
class InstalledVersions
{
+ /**
+ * @var mixed[]|null
+ * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array}|array{}|null
+ */
private static $installed;
+
+ /**
+ * @var bool|null
+ */
private static $canGetVendors;
+
+ /**
+ * @var array[]
+ * @psalm-var array}>
+ */
private static $installedByVendor = array();
/**
@@ -83,7 +98,7 @@ public static function isInstalled($packageName, $includeDevRequirements = true)
{
foreach (self::getInstalled() as $installed) {
if (isset($installed['versions'][$packageName])) {
- return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
+ return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false;
}
}
@@ -104,7 +119,7 @@ public static function isInstalled($packageName, $includeDevRequirements = true)
*/
public static function satisfies(VersionParser $parser, $packageName, $constraint)
{
- $constraint = $parser->parseConstraints($constraint);
+ $constraint = $parser->parseConstraints((string) $constraint);
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
return $provided->matches($constraint);
@@ -228,7 +243,7 @@ public static function getInstallPath($packageName)
/**
* @return array
- * @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}
+ * @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}
*/
public static function getRootPackage()
{
@@ -242,7 +257,7 @@ public static function getRootPackage()
*
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
* @return array[]
- * @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array}
+ * @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array}
*/
public static function getRawData()
{
@@ -265,7 +280,7 @@ public static function getRawData()
* Returns the raw data of all installed.php which are currently loaded for custom implementations
*
* @return array[]
- * @psalm-return list}>
+ * @psalm-return list}>
*/
public static function getAllRawData()
{
@@ -288,7 +303,7 @@ public static function getAllRawData()
* @param array[] $data A vendor/composer/installed.php data set
* @return void
*
- * @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array} $data
+ * @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $data
*/
public static function reload($data)
{
@@ -298,7 +313,7 @@ public static function reload($data)
/**
* @return array[]
- * @psalm-return list}>
+ * @psalm-return list}>
*/
private static function getInstalled()
{
@@ -313,7 +328,9 @@ private static function getInstalled()
if (isset(self::$installedByVendor[$vendorDir])) {
$installed[] = self::$installedByVendor[$vendorDir];
} elseif (is_file($vendorDir.'/composer/installed.php')) {
- $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
+ /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */
+ $required = require $vendorDir.'/composer/installed.php';
+ $installed[] = self::$installedByVendor[$vendorDir] = $required;
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
self::$installed = $installed[count($installed) - 1];
}
@@ -325,12 +342,17 @@ private static function getInstalled()
// only require the installed.php file if this file is loaded from its dumped location,
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
if (substr(__DIR__, -8, 1) !== 'C') {
- self::$installed = require __DIR__ . '/installed.php';
+ /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */
+ $required = require __DIR__ . '/installed.php';
+ self::$installed = $required;
} else {
self::$installed = array();
}
}
- $installed[] = self::$installed;
+
+ if (self::$installed !== array()) {
+ $installed[] = self::$installed;
+ }
return $installed;
}
diff --git a/api/vendor/composer/autoload_classmap.php b/api/vendor/composer/autoload_classmap.php
index 5799e1349d..09b0c03786 100644
--- a/api/vendor/composer/autoload_classmap.php
+++ b/api/vendor/composer/autoload_classmap.php
@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir);
return array(
@@ -77,13 +77,13 @@
'Carbon\\CarbonPeriodImmutable' => $vendorDir . '/nesbot/carbon/src/Carbon/CarbonPeriodImmutable.php',
'Carbon\\CarbonTimeZone' => $vendorDir . '/nesbot/carbon/src/Carbon/CarbonTimeZone.php',
'Carbon\\Cli\\Invoker' => $vendorDir . '/nesbot/carbon/src/Carbon/Cli/Invoker.php',
- 'Carbon\\Doctrine\\CarbonDoctrineType' => $vendorDir . '/nesbot/carbon/src/Carbon/Doctrine/CarbonDoctrineType.php',
- 'Carbon\\Doctrine\\CarbonImmutableType' => $vendorDir . '/nesbot/carbon/src/Carbon/Doctrine/CarbonImmutableType.php',
- 'Carbon\\Doctrine\\CarbonType' => $vendorDir . '/nesbot/carbon/src/Carbon/Doctrine/CarbonType.php',
- 'Carbon\\Doctrine\\CarbonTypeConverter' => $vendorDir . '/nesbot/carbon/src/Carbon/Doctrine/CarbonTypeConverter.php',
- 'Carbon\\Doctrine\\DateTimeDefaultPrecision' => $vendorDir . '/nesbot/carbon/src/Carbon/Doctrine/DateTimeDefaultPrecision.php',
- 'Carbon\\Doctrine\\DateTimeImmutableType' => $vendorDir . '/nesbot/carbon/src/Carbon/Doctrine/DateTimeImmutableType.php',
- 'Carbon\\Doctrine\\DateTimeType' => $vendorDir . '/nesbot/carbon/src/Carbon/Doctrine/DateTimeType.php',
+ 'Carbon\\Doctrine\\CarbonDoctrineType' => $vendorDir . '/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/CarbonDoctrineType.php',
+ 'Carbon\\Doctrine\\CarbonImmutableType' => $vendorDir . '/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/CarbonImmutableType.php',
+ 'Carbon\\Doctrine\\CarbonType' => $vendorDir . '/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/CarbonType.php',
+ 'Carbon\\Doctrine\\CarbonTypeConverter' => $vendorDir . '/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/CarbonTypeConverter.php',
+ 'Carbon\\Doctrine\\DateTimeDefaultPrecision' => $vendorDir . '/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/DateTimeDefaultPrecision.php',
+ 'Carbon\\Doctrine\\DateTimeImmutableType' => $vendorDir . '/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/DateTimeImmutableType.php',
+ 'Carbon\\Doctrine\\DateTimeType' => $vendorDir . '/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/DateTimeType.php',
'Carbon\\Exceptions\\BadComparisonUnitException' => $vendorDir . '/nesbot/carbon/src/Carbon/Exceptions/BadComparisonUnitException.php',
'Carbon\\Exceptions\\BadFluentConstructorException' => $vendorDir . '/nesbot/carbon/src/Carbon/Exceptions/BadFluentConstructorException.php',
'Carbon\\Exceptions\\BadFluentSetterException' => $vendorDir . '/nesbot/carbon/src/Carbon/Exceptions/BadFluentSetterException.php',
@@ -166,6 +166,7 @@
'DeepCopy\\DeepCopy' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/DeepCopy.php',
'DeepCopy\\Exception\\CloneException' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php',
'DeepCopy\\Exception\\PropertyException' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Exception/PropertyException.php',
+ 'DeepCopy\\Filter\\ChainableFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/ChainableFilter.php',
'DeepCopy\\Filter\\Doctrine\\DoctrineCollectionFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineCollectionFilter.php',
'DeepCopy\\Filter\\Doctrine\\DoctrineEmptyCollectionFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php',
'DeepCopy\\Filter\\Doctrine\\DoctrineProxyFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.php',
@@ -180,6 +181,7 @@
'DeepCopy\\Matcher\\PropertyTypeMatcher' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyTypeMatcher.php',
'DeepCopy\\Reflection\\ReflectionHelper' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Reflection/ReflectionHelper.php',
'DeepCopy\\TypeFilter\\Date\\DateIntervalFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php',
+ 'DeepCopy\\TypeFilter\\Date\\DatePeriodFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DatePeriodFilter.php',
'DeepCopy\\TypeFilter\\ReplaceFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php',
'DeepCopy\\TypeFilter\\ShallowCopyFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php',
'DeepCopy\\TypeFilter\\Spl\\ArrayObjectFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/ArrayObjectFilter.php',
@@ -747,6 +749,7 @@
'Faker\\Provider\\nl_BE\\Payment' => $vendorDir . '/fakerphp/faker/src/Faker/Provider/nl_BE/Payment.php',
'Faker\\Provider\\nl_BE\\Person' => $vendorDir . '/fakerphp/faker/src/Faker/Provider/nl_BE/Person.php',
'Faker\\Provider\\nl_BE\\PhoneNumber' => $vendorDir . '/fakerphp/faker/src/Faker/Provider/nl_BE/PhoneNumber.php',
+ 'Faker\\Provider\\nl_BE\\Text' => $vendorDir . '/fakerphp/faker/src/Faker/Provider/nl_BE/Text.php',
'Faker\\Provider\\nl_NL\\Address' => $vendorDir . '/fakerphp/faker/src/Faker/Provider/nl_NL/Address.php',
'Faker\\Provider\\nl_NL\\Color' => $vendorDir . '/fakerphp/faker/src/Faker/Provider/nl_NL/Color.php',
'Faker\\Provider\\nl_NL\\Company' => $vendorDir . '/fakerphp/faker/src/Faker/Provider/nl_NL/Company.php',
@@ -756,6 +759,7 @@
'Faker\\Provider\\nl_NL\\PhoneNumber' => $vendorDir . '/fakerphp/faker/src/Faker/Provider/nl_NL/PhoneNumber.php',
'Faker\\Provider\\nl_NL\\Text' => $vendorDir . '/fakerphp/faker/src/Faker/Provider/nl_NL/Text.php',
'Faker\\Provider\\pl_PL\\Address' => $vendorDir . '/fakerphp/faker/src/Faker/Provider/pl_PL/Address.php',
+ 'Faker\\Provider\\pl_PL\\Color' => $vendorDir . '/fakerphp/faker/src/Faker/Provider/pl_PL/Color.php',
'Faker\\Provider\\pl_PL\\Company' => $vendorDir . '/fakerphp/faker/src/Faker/Provider/pl_PL/Company.php',
'Faker\\Provider\\pl_PL\\Internet' => $vendorDir . '/fakerphp/faker/src/Faker/Provider/pl_PL/Internet.php',
'Faker\\Provider\\pl_PL\\LicensePlate' => $vendorDir . '/fakerphp/faker/src/Faker/Provider/pl_PL/LicensePlate.php',
@@ -1814,7 +1818,6 @@
'Laravel\\SerializableClosure\\Support\\ReflectionClosure' => $vendorDir . '/laravel/serializable-closure/src/Support/ReflectionClosure.php',
'Laravel\\SerializableClosure\\Support\\SelfReference' => $vendorDir . '/laravel/serializable-closure/src/Support/SelfReference.php',
'Laravel\\SerializableClosure\\UnsignedSerializableClosure' => $vendorDir . '/laravel/serializable-closure/src/UnsignedSerializableClosure.php',
- 'Mockery' => $vendorDir . '/mockery/mockery/library/Mockery.php',
'Mockery\\Adapter\\Phpunit\\MockeryPHPUnitIntegration' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryPHPUnitIntegration.php',
'Mockery\\Adapter\\Phpunit\\MockeryPHPUnitIntegrationAssertPostConditions' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryPHPUnitIntegrationAssertPostConditions.php',
'Mockery\\Adapter\\Phpunit\\MockeryTestCase' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryTestCase.php',
@@ -1828,6 +1831,7 @@
'Mockery\\CountValidator\\AtLeast' => $vendorDir . '/mockery/mockery/library/Mockery/CountValidator/AtLeast.php',
'Mockery\\CountValidator\\AtMost' => $vendorDir . '/mockery/mockery/library/Mockery/CountValidator/AtMost.php',
'Mockery\\CountValidator\\CountValidatorAbstract' => $vendorDir . '/mockery/mockery/library/Mockery/CountValidator/CountValidatorAbstract.php',
+ 'Mockery\\CountValidator\\CountValidatorInterface' => $vendorDir . '/mockery/mockery/library/Mockery/CountValidator/CountValidatorInterface.php',
'Mockery\\CountValidator\\Exact' => $vendorDir . '/mockery/mockery/library/Mockery/CountValidator/Exact.php',
'Mockery\\CountValidator\\Exception' => $vendorDir . '/mockery/mockery/library/Mockery/CountValidator/Exception.php',
'Mockery\\Exception' => $vendorDir . '/mockery/mockery/library/Mockery/Exception.php',
@@ -1835,6 +1839,7 @@
'Mockery\\Exception\\InvalidArgumentException' => $vendorDir . '/mockery/mockery/library/Mockery/Exception/InvalidArgumentException.php',
'Mockery\\Exception\\InvalidCountException' => $vendorDir . '/mockery/mockery/library/Mockery/Exception/InvalidCountException.php',
'Mockery\\Exception\\InvalidOrderException' => $vendorDir . '/mockery/mockery/library/Mockery/Exception/InvalidOrderException.php',
+ 'Mockery\\Exception\\MockeryExceptionInterface' => $vendorDir . '/mockery/mockery/library/Mockery/Exception/MockeryExceptionInterface.php',
'Mockery\\Exception\\NoMatchingExpectationException' => $vendorDir . '/mockery/mockery/library/Mockery/Exception/NoMatchingExpectationException.php',
'Mockery\\Exception\\RuntimeException' => $vendorDir . '/mockery/mockery/library/Mockery/Exception/RuntimeException.php',
'Mockery\\Expectation' => $vendorDir . '/mockery/mockery/library/Mockery/Expectation.php',
@@ -1853,6 +1858,7 @@
'Mockery\\Generator\\StringManipulationGenerator' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulationGenerator.php',
'Mockery\\Generator\\StringManipulation\\Pass\\AvoidMethodClashPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/AvoidMethodClashPass.php',
'Mockery\\Generator\\StringManipulation\\Pass\\CallTypeHintPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/CallTypeHintPass.php',
+ 'Mockery\\Generator\\StringManipulation\\Pass\\ClassAttributesPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassAttributesPass.php',
'Mockery\\Generator\\StringManipulation\\Pass\\ClassNamePass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassNamePass.php',
'Mockery\\Generator\\StringManipulation\\Pass\\ClassPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassPass.php',
'Mockery\\Generator\\StringManipulation\\Pass\\ConstantsPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ConstantsPass.php',
@@ -1883,7 +1889,10 @@
'Mockery\\Matcher\\Ducktype' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/Ducktype.php',
'Mockery\\Matcher\\HasKey' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/HasKey.php',
'Mockery\\Matcher\\HasValue' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/HasValue.php',
+ 'Mockery\\Matcher\\IsEqual' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/IsEqual.php',
+ 'Mockery\\Matcher\\IsSame' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/IsSame.php',
'Mockery\\Matcher\\MatcherAbstract' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/MatcherAbstract.php',
+ 'Mockery\\Matcher\\MatcherInterface' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/MatcherInterface.php',
'Mockery\\Matcher\\MultiArgumentClosure' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/MultiArgumentClosure.php',
'Mockery\\Matcher\\MustBe' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/MustBe.php',
'Mockery\\Matcher\\NoArgs' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/NoArgs.php',
@@ -2144,6 +2153,7 @@
'PHPUnit\\Framework\\Constraint\\LogicalXor' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalXor.php',
'PHPUnit\\Framework\\Constraint\\ObjectEquals' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Object/ObjectEquals.php',
'PHPUnit\\Framework\\Constraint\\ObjectHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Object/ObjectHasAttribute.php',
+ 'PHPUnit\\Framework\\Constraint\\ObjectHasProperty' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Object/ObjectHasProperty.php',
'PHPUnit\\Framework\\Constraint\\Operator' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Operator/Operator.php',
'PHPUnit\\Framework\\Constraint\\RegularExpression' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/String/RegularExpression.php',
'PHPUnit\\Framework\\Constraint\\SameSize' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Cardinality/SameSize.php',
@@ -2374,8 +2384,8 @@
'PHPUnit\\TextUI\\XmlConfiguration\\Migrator' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrator.php',
'PHPUnit\\TextUI\\XmlConfiguration\\MoveAttributesFromFilterWhitelistToCoverage' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveAttributesFromFilterWhitelistToCoverage.php',
'PHPUnit\\TextUI\\XmlConfiguration\\MoveAttributesFromRootToCoverage' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveAttributesFromRootToCoverage.php',
- 'PHPUnit\\TextUI\\XmlConfiguration\\MoveWhitelistDirectoriesToCoverage' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistDirectoriesToCoverage.php',
'PHPUnit\\TextUI\\XmlConfiguration\\MoveWhitelistExcludesToCoverage' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistExcludesToCoverage.php',
+ 'PHPUnit\\TextUI\\XmlConfiguration\\MoveWhitelistIncludesToCoverage' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistIncludesToCoverage.php',
'PHPUnit\\TextUI\\XmlConfiguration\\PHPUnit' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHPUnit/PHPUnit.php',
'PHPUnit\\TextUI\\XmlConfiguration\\Php' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/Php.php',
'PHPUnit\\TextUI\\XmlConfiguration\\PhpHandler' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/PhpHandler.php',
@@ -2482,6 +2492,7 @@
'PharIo\\Manifest\\ManifestLoader' => $vendorDir . '/phar-io/manifest/src/ManifestLoader.php',
'PharIo\\Manifest\\ManifestLoaderException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestLoaderException.php',
'PharIo\\Manifest\\ManifestSerializer' => $vendorDir . '/phar-io/manifest/src/ManifestSerializer.php',
+ 'PharIo\\Manifest\\NoEmailAddressException' => $vendorDir . '/phar-io/manifest/src/exceptions/NoEmailAddressException.php',
'PharIo\\Manifest\\PhpElement' => $vendorDir . '/phar-io/manifest/src/xml/PhpElement.php',
'PharIo\\Manifest\\PhpExtensionRequirement' => $vendorDir . '/phar-io/manifest/src/values/PhpExtensionRequirement.php',
'PharIo\\Manifest\\PhpVersionRequirement' => $vendorDir . '/phar-io/manifest/src/values/PhpVersionRequirement.php',
@@ -2546,24 +2557,24 @@
'PhpParser\\Internal\\DiffElem' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Internal/DiffElem.php',
'PhpParser\\Internal\\Differ' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Internal/Differ.php',
'PhpParser\\Internal\\PrintableNewAnonClassNode' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php',
+ 'PhpParser\\Internal\\TokenPolyfill' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Internal/TokenPolyfill.php',
'PhpParser\\Internal\\TokenStream' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php',
'PhpParser\\JsonDecoder' => $vendorDir . '/nikic/php-parser/lib/PhpParser/JsonDecoder.php',
'PhpParser\\Lexer' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer.php',
'PhpParser\\Lexer\\Emulative' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php',
+ 'PhpParser\\Lexer\\TokenEmulator\\AsymmetricVisibilityTokenEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AsymmetricVisibilityTokenEmulator.php',
'PhpParser\\Lexer\\TokenEmulator\\AttributeEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AttributeEmulator.php',
- 'PhpParser\\Lexer\\TokenEmulator\\CoaleseEqualTokenEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/CoaleseEqualTokenEmulator.php',
'PhpParser\\Lexer\\TokenEmulator\\EnumTokenEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/EnumTokenEmulator.php',
'PhpParser\\Lexer\\TokenEmulator\\ExplicitOctalEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ExplicitOctalEmulator.php',
- 'PhpParser\\Lexer\\TokenEmulator\\FlexibleDocStringEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FlexibleDocStringEmulator.php',
- 'PhpParser\\Lexer\\TokenEmulator\\FnTokenEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FnTokenEmulator.php',
'PhpParser\\Lexer\\TokenEmulator\\KeywordEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php',
'PhpParser\\Lexer\\TokenEmulator\\MatchTokenEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/MatchTokenEmulator.php',
'PhpParser\\Lexer\\TokenEmulator\\NullsafeTokenEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NullsafeTokenEmulator.php',
- 'PhpParser\\Lexer\\TokenEmulator\\NumericLiteralSeparatorEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NumericLiteralSeparatorEmulator.php',
+ 'PhpParser\\Lexer\\TokenEmulator\\PropertyTokenEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/PropertyTokenEmulator.php',
'PhpParser\\Lexer\\TokenEmulator\\ReadonlyFunctionTokenEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyFunctionTokenEmulator.php',
'PhpParser\\Lexer\\TokenEmulator\\ReadonlyTokenEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyTokenEmulator.php',
'PhpParser\\Lexer\\TokenEmulator\\ReverseEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReverseEmulator.php',
'PhpParser\\Lexer\\TokenEmulator\\TokenEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulator.php',
+ 'PhpParser\\Modifiers' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Modifiers.php',
'PhpParser\\NameContext' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NameContext.php',
'PhpParser\\Node' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node.php',
'PhpParser\\NodeAbstract' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeAbstract.php',
@@ -2574,19 +2585,22 @@
'PhpParser\\NodeVisitor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor.php',
'PhpParser\\NodeVisitorAbstract' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php',
'PhpParser\\NodeVisitor\\CloningVisitor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor/CloningVisitor.php',
+ 'PhpParser\\NodeVisitor\\CommentAnnotatingVisitor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor/CommentAnnotatingVisitor.php',
'PhpParser\\NodeVisitor\\FindingVisitor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php',
'PhpParser\\NodeVisitor\\FirstFindingVisitor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php',
'PhpParser\\NodeVisitor\\NameResolver' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php',
'PhpParser\\NodeVisitor\\NodeConnectingVisitor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php',
'PhpParser\\NodeVisitor\\ParentConnectingVisitor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php',
'PhpParser\\Node\\Arg' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Arg.php',
+ 'PhpParser\\Node\\ArrayItem' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/ArrayItem.php',
'PhpParser\\Node\\Attribute' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Attribute.php',
'PhpParser\\Node\\AttributeGroup' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/AttributeGroup.php',
+ 'PhpParser\\Node\\ClosureUse' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/ClosureUse.php',
'PhpParser\\Node\\ComplexType' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/ComplexType.php',
'PhpParser\\Node\\Const_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Const_.php',
+ 'PhpParser\\Node\\DeclareItem' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/DeclareItem.php',
'PhpParser\\Node\\Expr' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr.php',
'PhpParser\\Node\\Expr\\ArrayDimFetch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php',
- 'PhpParser\\Node\\Expr\\ArrayItem' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php',
'PhpParser\\Node\\Expr\\Array_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php',
'PhpParser\\Node\\Expr\\ArrowFunction' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php',
'PhpParser\\Node\\Expr\\Assign' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php',
@@ -2647,7 +2661,6 @@
'PhpParser\\Node\\Expr\\ClassConstFetch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php',
'PhpParser\\Node\\Expr\\Clone_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php',
'PhpParser\\Node\\Expr\\Closure' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php',
- 'PhpParser\\Node\\Expr\\ClosureUse' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php',
'PhpParser\\Node\\Expr\\ConstFetch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php',
'PhpParser\\Node\\Expr\\Empty_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php',
'PhpParser\\Node\\Expr\\Error' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php',
@@ -2682,6 +2695,7 @@
'PhpParser\\Node\\Expr\\Yield_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php',
'PhpParser\\Node\\FunctionLike' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php',
'PhpParser\\Node\\Identifier' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Identifier.php',
+ 'PhpParser\\Node\\InterpolatedStringPart' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/InterpolatedStringPart.php',
'PhpParser\\Node\\IntersectionType' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/IntersectionType.php',
'PhpParser\\Node\\MatchArm' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/MatchArm.php',
'PhpParser\\Node\\Name' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Name.php',
@@ -2689,11 +2703,12 @@
'PhpParser\\Node\\Name\\Relative' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php',
'PhpParser\\Node\\NullableType' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/NullableType.php',
'PhpParser\\Node\\Param' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Param.php',
+ 'PhpParser\\Node\\PropertyHook' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/PropertyHook.php',
+ 'PhpParser\\Node\\PropertyItem' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/PropertyItem.php',
'PhpParser\\Node\\Scalar' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar.php',
- 'PhpParser\\Node\\Scalar\\DNumber' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php',
- 'PhpParser\\Node\\Scalar\\Encapsed' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php',
- 'PhpParser\\Node\\Scalar\\EncapsedStringPart' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php',
- 'PhpParser\\Node\\Scalar\\LNumber' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php',
+ 'PhpParser\\Node\\Scalar\\Float_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/Float_.php',
+ 'PhpParser\\Node\\Scalar\\Int_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/Int_.php',
+ 'PhpParser\\Node\\Scalar\\InterpolatedString' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/InterpolatedString.php',
'PhpParser\\Node\\Scalar\\MagicConst' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php',
'PhpParser\\Node\\Scalar\\MagicConst\\Class_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php',
'PhpParser\\Node\\Scalar\\MagicConst\\Dir' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Dir.php',
@@ -2702,9 +2717,12 @@
'PhpParser\\Node\\Scalar\\MagicConst\\Line' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Line.php',
'PhpParser\\Node\\Scalar\\MagicConst\\Method' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Method.php',
'PhpParser\\Node\\Scalar\\MagicConst\\Namespace_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Namespace_.php',
+ 'PhpParser\\Node\\Scalar\\MagicConst\\Property' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Property.php',
'PhpParser\\Node\\Scalar\\MagicConst\\Trait_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Trait_.php',
'PhpParser\\Node\\Scalar\\String_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php',
+ 'PhpParser\\Node\\StaticVar' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/StaticVar.php',
'PhpParser\\Node\\Stmt' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt.php',
+ 'PhpParser\\Node\\Stmt\\Block' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Block.php',
'PhpParser\\Node\\Stmt\\Break_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php',
'PhpParser\\Node\\Stmt\\Case_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php',
'PhpParser\\Node\\Stmt\\Catch_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php',
@@ -2714,7 +2732,6 @@
'PhpParser\\Node\\Stmt\\Class_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php',
'PhpParser\\Node\\Stmt\\Const_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php',
'PhpParser\\Node\\Stmt\\Continue_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php',
- 'PhpParser\\Node\\Stmt\\DeclareDeclare' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php',
'PhpParser\\Node\\Stmt\\Declare_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php',
'PhpParser\\Node\\Stmt\\Do_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php',
'PhpParser\\Node\\Stmt\\Echo_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php',
@@ -2738,12 +2755,9 @@
'PhpParser\\Node\\Stmt\\Namespace_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php',
'PhpParser\\Node\\Stmt\\Nop' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php',
'PhpParser\\Node\\Stmt\\Property' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php',
- 'PhpParser\\Node\\Stmt\\PropertyProperty' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php',
'PhpParser\\Node\\Stmt\\Return_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php',
- 'PhpParser\\Node\\Stmt\\StaticVar' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php',
'PhpParser\\Node\\Stmt\\Static_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php',
'PhpParser\\Node\\Stmt\\Switch_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php',
- 'PhpParser\\Node\\Stmt\\Throw_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Throw_.php',
'PhpParser\\Node\\Stmt\\TraitUse' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php',
'PhpParser\\Node\\Stmt\\TraitUseAdaptation' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php',
'PhpParser\\Node\\Stmt\\TraitUseAdaptation\\Alias' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php',
@@ -2751,26 +2765,28 @@
'PhpParser\\Node\\Stmt\\Trait_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php',
'PhpParser\\Node\\Stmt\\TryCatch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php',
'PhpParser\\Node\\Stmt\\Unset_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php',
- 'PhpParser\\Node\\Stmt\\UseUse' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php',
'PhpParser\\Node\\Stmt\\Use_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php',
'PhpParser\\Node\\Stmt\\While_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php',
'PhpParser\\Node\\UnionType' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/UnionType.php',
+ 'PhpParser\\Node\\UseItem' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/UseItem.php',
'PhpParser\\Node\\VarLikeIdentifier' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/VarLikeIdentifier.php',
'PhpParser\\Node\\VariadicPlaceholder' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/VariadicPlaceholder.php',
'PhpParser\\Parser' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Parser.php',
'PhpParser\\ParserAbstract' => $vendorDir . '/nikic/php-parser/lib/PhpParser/ParserAbstract.php',
'PhpParser\\ParserFactory' => $vendorDir . '/nikic/php-parser/lib/PhpParser/ParserFactory.php',
- 'PhpParser\\Parser\\Multiple' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Parser/Multiple.php',
- 'PhpParser\\Parser\\Php5' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Parser/Php5.php',
'PhpParser\\Parser\\Php7' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Parser/Php7.php',
- 'PhpParser\\Parser\\Tokens' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Parser/Tokens.php',
+ 'PhpParser\\Parser\\Php8' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Parser/Php8.php',
+ 'PhpParser\\PhpVersion' => $vendorDir . '/nikic/php-parser/lib/PhpParser/PhpVersion.php',
+ 'PhpParser\\PrettyPrinter' => $vendorDir . '/nikic/php-parser/lib/PhpParser/PrettyPrinter.php',
'PhpParser\\PrettyPrinterAbstract' => $vendorDir . '/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php',
'PhpParser\\PrettyPrinter\\Standard' => $vendorDir . '/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php',
+ 'PhpParser\\Token' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Token.php',
'PhpToken' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/PhpToken.php',
'Psr\\Cache\\CacheException' => $vendorDir . '/psr/cache/src/CacheException.php',
'Psr\\Cache\\CacheItemInterface' => $vendorDir . '/psr/cache/src/CacheItemInterface.php',
'Psr\\Cache\\CacheItemPoolInterface' => $vendorDir . '/psr/cache/src/CacheItemPoolInterface.php',
'Psr\\Cache\\InvalidArgumentException' => $vendorDir . '/psr/cache/src/InvalidArgumentException.php',
+ 'Psr\\Clock\\ClockInterface' => $vendorDir . '/psr/clock/src/ClockInterface.php',
'Psr\\Container\\ContainerExceptionInterface' => $vendorDir . '/psr/container/src/ContainerExceptionInterface.php',
'Psr\\Container\\ContainerInterface' => $vendorDir . '/psr/container/src/ContainerInterface.php',
'Psr\\Container\\NotFoundExceptionInterface' => $vendorDir . '/psr/container/src/NotFoundExceptionInterface.php',
@@ -2796,13 +2812,13 @@
'Ramsey\\Collection\\CollectionInterface' => $vendorDir . '/ramsey/collection/src/CollectionInterface.php',
'Ramsey\\Collection\\DoubleEndedQueue' => $vendorDir . '/ramsey/collection/src/DoubleEndedQueue.php',
'Ramsey\\Collection\\DoubleEndedQueueInterface' => $vendorDir . '/ramsey/collection/src/DoubleEndedQueueInterface.php',
+ 'Ramsey\\Collection\\Exception\\CollectionException' => $vendorDir . '/ramsey/collection/src/Exception/CollectionException.php',
'Ramsey\\Collection\\Exception\\CollectionMismatchException' => $vendorDir . '/ramsey/collection/src/Exception/CollectionMismatchException.php',
'Ramsey\\Collection\\Exception\\InvalidArgumentException' => $vendorDir . '/ramsey/collection/src/Exception/InvalidArgumentException.php',
- 'Ramsey\\Collection\\Exception\\InvalidSortOrderException' => $vendorDir . '/ramsey/collection/src/Exception/InvalidSortOrderException.php',
+ 'Ramsey\\Collection\\Exception\\InvalidPropertyOrMethod' => $vendorDir . '/ramsey/collection/src/Exception/InvalidPropertyOrMethod.php',
'Ramsey\\Collection\\Exception\\NoSuchElementException' => $vendorDir . '/ramsey/collection/src/Exception/NoSuchElementException.php',
'Ramsey\\Collection\\Exception\\OutOfBoundsException' => $vendorDir . '/ramsey/collection/src/Exception/OutOfBoundsException.php',
'Ramsey\\Collection\\Exception\\UnsupportedOperationException' => $vendorDir . '/ramsey/collection/src/Exception/UnsupportedOperationException.php',
- 'Ramsey\\Collection\\Exception\\ValueExtractionException' => $vendorDir . '/ramsey/collection/src/Exception/ValueExtractionException.php',
'Ramsey\\Collection\\GenericArray' => $vendorDir . '/ramsey/collection/src/GenericArray.php',
'Ramsey\\Collection\\Map\\AbstractMap' => $vendorDir . '/ramsey/collection/src/Map/AbstractMap.php',
'Ramsey\\Collection\\Map\\AbstractTypedMap' => $vendorDir . '/ramsey/collection/src/Map/AbstractTypedMap.php',
@@ -2814,6 +2830,7 @@
'Ramsey\\Collection\\Queue' => $vendorDir . '/ramsey/collection/src/Queue.php',
'Ramsey\\Collection\\QueueInterface' => $vendorDir . '/ramsey/collection/src/QueueInterface.php',
'Ramsey\\Collection\\Set' => $vendorDir . '/ramsey/collection/src/Set.php',
+ 'Ramsey\\Collection\\Sort' => $vendorDir . '/ramsey/collection/src/Sort.php',
'Ramsey\\Collection\\Tool\\TypeTrait' => $vendorDir . '/ramsey/collection/src/Tool/TypeTrait.php',
'Ramsey\\Collection\\Tool\\ValueExtractorTrait' => $vendorDir . '/ramsey/collection/src/Tool/ValueExtractorTrait.php',
'Ramsey\\Collection\\Tool\\ValueToStringTrait' => $vendorDir . '/ramsey/collection/src/Tool/ValueToStringTrait.php',
@@ -2929,7 +2946,6 @@
'Ramsey\\Uuid\\UuidInterface' => $vendorDir . '/ramsey/uuid/src/UuidInterface.php',
'Ramsey\\Uuid\\Validator\\GenericValidator' => $vendorDir . '/ramsey/uuid/src/Validator/GenericValidator.php',
'Ramsey\\Uuid\\Validator\\ValidatorInterface' => $vendorDir . '/ramsey/uuid/src/Validator/ValidatorInterface.php',
- 'ReturnTypeWillChange' => $vendorDir . '/symfony/polyfill-php81/Resources/stubs/ReturnTypeWillChange.php',
'SebastianBergmann\\CliParser\\AmbiguousOptionException' => $vendorDir . '/sebastian/cli-parser/src/exceptions/AmbiguousOptionException.php',
'SebastianBergmann\\CliParser\\Exception' => $vendorDir . '/sebastian/cli-parser/src/exceptions/Exception.php',
'SebastianBergmann\\CliParser\\OptionDoesNotAllowArgumentException' => $vendorDir . '/sebastian/cli-parser/src/exceptions/OptionDoesNotAllowArgumentException.php',
@@ -3633,6 +3649,7 @@
'Symfony\\Component\\String\\Slugger\\AsciiSlugger' => $vendorDir . '/symfony/string/Slugger/AsciiSlugger.php',
'Symfony\\Component\\String\\Slugger\\SluggerInterface' => $vendorDir . '/symfony/string/Slugger/SluggerInterface.php',
'Symfony\\Component\\String\\UnicodeString' => $vendorDir . '/symfony/string/UnicodeString.php',
+ 'Symfony\\Component\\Translation\\CatalogueMetadataAwareInterface' => $vendorDir . '/symfony/translation/CatalogueMetadataAwareInterface.php',
'Symfony\\Component\\Translation\\Catalogue\\AbstractOperation' => $vendorDir . '/symfony/translation/Catalogue/AbstractOperation.php',
'Symfony\\Component\\Translation\\Catalogue\\MergeOperation' => $vendorDir . '/symfony/translation/Catalogue/MergeOperation.php',
'Symfony\\Component\\Translation\\Catalogue\\OperationInterface' => $vendorDir . '/symfony/translation/Catalogue/OperationInterface.php',
@@ -3643,6 +3660,8 @@
'Symfony\\Component\\Translation\\Command\\XliffLintCommand' => $vendorDir . '/symfony/translation/Command/XliffLintCommand.php',
'Symfony\\Component\\Translation\\DataCollectorTranslator' => $vendorDir . '/symfony/translation/DataCollectorTranslator.php',
'Symfony\\Component\\Translation\\DataCollector\\TranslationDataCollector' => $vendorDir . '/symfony/translation/DataCollector/TranslationDataCollector.php',
+ 'Symfony\\Component\\Translation\\DependencyInjection\\DataCollectorTranslatorPass' => $vendorDir . '/symfony/translation/DependencyInjection/DataCollectorTranslatorPass.php',
+ 'Symfony\\Component\\Translation\\DependencyInjection\\LoggingTranslatorPass' => $vendorDir . '/symfony/translation/DependencyInjection/LoggingTranslatorPass.php',
'Symfony\\Component\\Translation\\DependencyInjection\\TranslationDumperPass' => $vendorDir . '/symfony/translation/DependencyInjection/TranslationDumperPass.php',
'Symfony\\Component\\Translation\\DependencyInjection\\TranslationExtractorPass' => $vendorDir . '/symfony/translation/DependencyInjection/TranslationExtractorPass.php',
'Symfony\\Component\\Translation\\DependencyInjection\\TranslatorPass' => $vendorDir . '/symfony/translation/DependencyInjection/TranslatorPass.php',
@@ -3673,8 +3692,13 @@
'Symfony\\Component\\Translation\\Extractor\\AbstractFileExtractor' => $vendorDir . '/symfony/translation/Extractor/AbstractFileExtractor.php',
'Symfony\\Component\\Translation\\Extractor\\ChainExtractor' => $vendorDir . '/symfony/translation/Extractor/ChainExtractor.php',
'Symfony\\Component\\Translation\\Extractor\\ExtractorInterface' => $vendorDir . '/symfony/translation/Extractor/ExtractorInterface.php',
+ 'Symfony\\Component\\Translation\\Extractor\\PhpAstExtractor' => $vendorDir . '/symfony/translation/Extractor/PhpAstExtractor.php',
'Symfony\\Component\\Translation\\Extractor\\PhpExtractor' => $vendorDir . '/symfony/translation/Extractor/PhpExtractor.php',
'Symfony\\Component\\Translation\\Extractor\\PhpStringTokenParser' => $vendorDir . '/symfony/translation/Extractor/PhpStringTokenParser.php',
+ 'Symfony\\Component\\Translation\\Extractor\\Visitor\\AbstractVisitor' => $vendorDir . '/symfony/translation/Extractor/Visitor/AbstractVisitor.php',
+ 'Symfony\\Component\\Translation\\Extractor\\Visitor\\ConstraintVisitor' => $vendorDir . '/symfony/translation/Extractor/Visitor/ConstraintVisitor.php',
+ 'Symfony\\Component\\Translation\\Extractor\\Visitor\\TransMethodVisitor' => $vendorDir . '/symfony/translation/Extractor/Visitor/TransMethodVisitor.php',
+ 'Symfony\\Component\\Translation\\Extractor\\Visitor\\TranslatableMessageVisitor' => $vendorDir . '/symfony/translation/Extractor/Visitor/TranslatableMessageVisitor.php',
'Symfony\\Component\\Translation\\Formatter\\IntlFormatter' => $vendorDir . '/symfony/translation/Formatter/IntlFormatter.php',
'Symfony\\Component\\Translation\\Formatter\\IntlFormatterInterface' => $vendorDir . '/symfony/translation/Formatter/IntlFormatterInterface.php',
'Symfony\\Component\\Translation\\Formatter\\MessageFormatter' => $vendorDir . '/symfony/translation/Formatter/MessageFormatter.php',
@@ -3694,6 +3718,7 @@
'Symfony\\Component\\Translation\\Loader\\QtFileLoader' => $vendorDir . '/symfony/translation/Loader/QtFileLoader.php',
'Symfony\\Component\\Translation\\Loader\\XliffFileLoader' => $vendorDir . '/symfony/translation/Loader/XliffFileLoader.php',
'Symfony\\Component\\Translation\\Loader\\YamlFileLoader' => $vendorDir . '/symfony/translation/Loader/YamlFileLoader.php',
+ 'Symfony\\Component\\Translation\\LocaleSwitcher' => $vendorDir . '/symfony/translation/LocaleSwitcher.php',
'Symfony\\Component\\Translation\\LoggingTranslator' => $vendorDir . '/symfony/translation/LoggingTranslator.php',
'Symfony\\Component\\Translation\\MessageCatalogue' => $vendorDir . '/symfony/translation/MessageCatalogue.php',
'Symfony\\Component\\Translation\\MessageCatalogueInterface' => $vendorDir . '/symfony/translation/MessageCatalogueInterface.php',
@@ -3800,13 +3825,13 @@
'Symfony\\Contracts\\Service\\Attribute\\Required' => $vendorDir . '/symfony/service-contracts/Attribute/Required.php',
'Symfony\\Contracts\\Service\\Attribute\\SubscribedService' => $vendorDir . '/symfony/service-contracts/Attribute/SubscribedService.php',
'Symfony\\Contracts\\Service\\ResetInterface' => $vendorDir . '/symfony/service-contracts/ResetInterface.php',
+ 'Symfony\\Contracts\\Service\\ServiceCollectionInterface' => $vendorDir . '/symfony/service-contracts/ServiceCollectionInterface.php',
'Symfony\\Contracts\\Service\\ServiceLocatorTrait' => $vendorDir . '/symfony/service-contracts/ServiceLocatorTrait.php',
+ 'Symfony\\Contracts\\Service\\ServiceMethodsSubscriberTrait' => $vendorDir . '/symfony/service-contracts/ServiceMethodsSubscriberTrait.php',
'Symfony\\Contracts\\Service\\ServiceProviderInterface' => $vendorDir . '/symfony/service-contracts/ServiceProviderInterface.php',
'Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberInterface.php',
'Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberTrait.php',
- 'Symfony\\Contracts\\Service\\Test\\ServiceLocatorTest' => $vendorDir . '/symfony/service-contracts/Test/ServiceLocatorTest.php',
'Symfony\\Contracts\\Translation\\LocaleAwareInterface' => $vendorDir . '/symfony/translation-contracts/LocaleAwareInterface.php',
- 'Symfony\\Contracts\\Translation\\Test\\TranslatorTest' => $vendorDir . '/symfony/translation-contracts/Test/TranslatorTest.php',
'Symfony\\Contracts\\Translation\\TranslatableInterface' => $vendorDir . '/symfony/translation-contracts/TranslatableInterface.php',
'Symfony\\Contracts\\Translation\\TranslatorInterface' => $vendorDir . '/symfony/translation-contracts/TranslatorInterface.php',
'Symfony\\Contracts\\Translation\\TranslatorTrait' => $vendorDir . '/symfony/translation-contracts/TranslatorTrait.php',
@@ -3818,11 +3843,9 @@
'Symfony\\Polyfill\\Intl\\Idn\\Resources\\unidata\\Regex' => $vendorDir . '/symfony/polyfill-intl-idn/Resources/unidata/Regex.php',
'Symfony\\Polyfill\\Intl\\Normalizer\\Normalizer' => $vendorDir . '/symfony/polyfill-intl-normalizer/Normalizer.php',
'Symfony\\Polyfill\\Mbstring\\Mbstring' => $vendorDir . '/symfony/polyfill-mbstring/Mbstring.php',
- 'Symfony\\Polyfill\\Php72\\Php72' => $vendorDir . '/symfony/polyfill-php72/Php72.php',
'Symfony\\Polyfill\\Php73\\Php73' => $vendorDir . '/symfony/polyfill-php73/Php73.php',
'Symfony\\Polyfill\\Php80\\Php80' => $vendorDir . '/symfony/polyfill-php80/Php80.php',
'Symfony\\Polyfill\\Php80\\PhpToken' => $vendorDir . '/symfony/polyfill-php80/PhpToken.php',
- 'Symfony\\Polyfill\\Php81\\Php81' => $vendorDir . '/symfony/polyfill-php81/Php81.php',
'TestCase' => $baseDir . '/tests/TestCase.php',
'TheSeer\\Tokenizer\\Exception' => $vendorDir . '/theseer/tokenizer/src/Exception.php',
'TheSeer\\Tokenizer\\NamespaceUri' => $vendorDir . '/theseer/tokenizer/src/NamespaceUri.php',
diff --git a/api/vendor/composer/autoload_files.php b/api/vendor/composer/autoload_files.php
index 30d4dd6853..4a98d3ec3a 100644
--- a/api/vendor/composer/autoload_files.php
+++ b/api/vendor/composer/autoload_files.php
@@ -2,33 +2,33 @@
// autoload_files.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir);
return array(
- '6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php',
- 'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php',
- 'ec07570ca5a812141189b1fa81503674' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert/Functions.php',
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
- 'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php',
- '25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',
- 'f598d06aa772fa33d905e87be6398fb1' => $vendorDir . '/symfony/polyfill-intl-idn/bootstrap.php',
- '0d59ee240a4cd96ddbb4ff164fccea4d' => $vendorDir . '/symfony/polyfill-php73/bootstrap.php',
- '320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',
+ 'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php',
+ '6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php',
'60799491728b879e74601d83e38b2cad' => $vendorDir . '/illuminate/collections/helpers.php',
'a1105708a18b76903365ca1c4aa61b02' => $vendorDir . '/symfony/translation/Resources/functions.php',
'72579e7bd17821bb1321b87411366eae' => $vendorDir . '/illuminate/support/helpers.php',
+ 'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php',
+ '320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',
+ '0d59ee240a4cd96ddbb4ff164fccea4d' => $vendorDir . '/symfony/polyfill-php73/bootstrap.php',
+ '8825ede83f2f289127722d4e842cf7e8' => $vendorDir . '/symfony/polyfill-intl-grapheme/bootstrap.php',
+ 'b6b991a57620e2fb6b2f66f03fe9ddc2' => $vendorDir . '/symfony/string/Resources/functions.php',
+ 'f598d06aa772fa33d905e87be6398fb1' => $vendorDir . '/symfony/polyfill-intl-idn/bootstrap.php',
'667aeda72477189d0494fecd327c3641' => $vendorDir . '/symfony/var-dumper/Resources/functions/dump.php',
- '23c18046f52bef3eea034657bafda50f' => $vendorDir . '/symfony/polyfill-php81/bootstrap.php',
'538ca81a9a966a6716601ecf48f4eaef' => $vendorDir . '/opis/closure/functions.php',
'e39a8b23c42d4e1452234d762b03835a' => $vendorDir . '/ramsey/uuid/src/functions.php',
'ef65a1626449d89d0811cf9befce46f0' => $vendorDir . '/illuminate/events/functions.php',
'253c157292f75eb38082b5acb06f3f01' => $vendorDir . '/nikic/fast-route/src/functions.php',
- '8825ede83f2f289127722d4e842cf7e8' => $vendorDir . '/symfony/polyfill-intl-grapheme/bootstrap.php',
'bee9632da3ca00a99623b9c35d0c4f8b' => $vendorDir . '/laravel/lumen-framework/src/helpers.php',
'6124b4c8570aa390c21fafd04a26c69f' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php',
- 'b6b991a57620e2fb6b2f66f03fe9ddc2' => $vendorDir . '/symfony/string/Resources/functions.php',
'0ccdf99b8f62f02c52cba55802e0c2e7' => $vendorDir . '/zircote/swagger-php/src/functions.php',
'3585c46f9622c6b622ab0011d4d72b3a' => $vendorDir . '/darkaonline/swagger-lume/src/helpers.php',
+ 'c72349b1fe8d0deeedd3a52e8aa814d8' => $vendorDir . '/mockery/mockery/library/helpers.php',
+ 'ce9671a430e4846b44e1c68c7611f9f5' => $vendorDir . '/mockery/mockery/library/Mockery.php',
+ 'ec07570ca5a812141189b1fa81503674' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert/Functions.php',
'e54f50f1f018f3f5bdd79170d9f301b2' => $baseDir . '/app/Helpers/OccurrenceHelper.php',
);
diff --git a/api/vendor/composer/autoload_namespaces.php b/api/vendor/composer/autoload_namespaces.php
index 631bf71bfe..15a2ff3ad6 100644
--- a/api/vendor/composer/autoload_namespaces.php
+++ b/api/vendor/composer/autoload_namespaces.php
@@ -2,9 +2,8 @@
// autoload_namespaces.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir);
return array(
- 'Mockery' => array($vendorDir . '/mockery/mockery/library'),
);
diff --git a/api/vendor/composer/autoload_psr4.php b/api/vendor/composer/autoload_psr4.php
index db0d5537da..1b6979a852 100644
--- a/api/vendor/composer/autoload_psr4.php
+++ b/api/vendor/composer/autoload_psr4.php
@@ -2,16 +2,14 @@
// autoload_psr4.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir);
return array(
'voku\\' => array($vendorDir . '/voku/portable-ascii/src/voku'),
'Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'),
- 'Symfony\\Polyfill\\Php81\\' => array($vendorDir . '/symfony/polyfill-php81'),
'Symfony\\Polyfill\\Php80\\' => array($vendorDir . '/symfony/polyfill-php80'),
'Symfony\\Polyfill\\Php73\\' => array($vendorDir . '/symfony/polyfill-php73'),
- 'Symfony\\Polyfill\\Php72\\' => array($vendorDir . '/symfony/polyfill-php72'),
'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
'Symfony\\Polyfill\\Intl\\Normalizer\\' => array($vendorDir . '/symfony/polyfill-intl-normalizer'),
'Symfony\\Polyfill\\Intl\\Idn\\' => array($vendorDir . '/symfony/polyfill-intl-idn'),
@@ -39,12 +37,14 @@
'Psr\\Log\\' => array($vendorDir . '/psr/log/src'),
'Psr\\EventDispatcher\\' => array($vendorDir . '/psr/event-dispatcher/src'),
'Psr\\Container\\' => array($vendorDir . '/psr/container/src'),
+ 'Psr\\Clock\\' => array($vendorDir . '/psr/clock/src'),
'Psr\\Cache\\' => array($vendorDir . '/psr/cache/src'),
'PhpParser\\' => array($vendorDir . '/nikic/php-parser/lib/PhpParser'),
'PhpOption\\' => array($vendorDir . '/phpoption/phpoption/src/PhpOption'),
'Opis\\Closure\\' => array($vendorDir . '/opis/closure/src'),
'OpenApi\\' => array($vendorDir . '/zircote/swagger-php/src'),
'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'),
+ 'Mockery\\' => array($vendorDir . '/mockery/mockery/library/Mockery'),
'Laravel\\SerializableClosure\\' => array($vendorDir . '/laravel/serializable-closure/src'),
'Laravel\\Lumen\\' => array($vendorDir . '/laravel/lumen-framework/src'),
'Illuminate\\View\\' => array($vendorDir . '/illuminate/view'),
@@ -84,6 +84,7 @@
'Database\\Seeders\\' => array($baseDir . '/database/seeders'),
'Database\\Factories\\' => array($baseDir . '/database/factories'),
'Cron\\' => array($vendorDir . '/dragonmantank/cron-expression/src/Cron'),
+ 'Carbon\\Doctrine\\' => array($vendorDir . '/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine'),
'Carbon\\' => array($vendorDir . '/nesbot/carbon/src/Carbon'),
'Brick\\Math\\' => array($vendorDir . '/brick/math/src'),
'App\\' => array($baseDir . '/app'),
diff --git a/api/vendor/composer/autoload_real.php b/api/vendor/composer/autoload_real.php
index 878970f9f8..d9e1707c03 100644
--- a/api/vendor/composer/autoload_real.php
+++ b/api/vendor/composer/autoload_real.php
@@ -23,51 +23,26 @@ public static function getLoader()
}
spl_autoload_register(array('ComposerAutoloaderInite18bd6b57182fc88f4b9d0452696caaa', 'loadClassLoader'), true, true);
- self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
+ self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
spl_autoload_unregister(array('ComposerAutoloaderInite18bd6b57182fc88f4b9d0452696caaa', 'loadClassLoader'));
- $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
- if ($useStaticLoader) {
- require __DIR__ . '/autoload_static.php';
+ require __DIR__ . '/autoload_static.php';
+ call_user_func(\Composer\Autoload\ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa::getInitializer($loader));
- call_user_func(\Composer\Autoload\ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa::getInitializer($loader));
- } else {
- $map = require __DIR__ . '/autoload_namespaces.php';
- foreach ($map as $namespace => $path) {
- $loader->set($namespace, $path);
- }
+ $loader->register(true);
- $map = require __DIR__ . '/autoload_psr4.php';
- foreach ($map as $namespace => $path) {
- $loader->setPsr4($namespace, $path);
- }
+ $filesToLoad = \Composer\Autoload\ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa::$files;
+ $requireFile = \Closure::bind(static function ($fileIdentifier, $file) {
+ if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
+ $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
+ require $file;
}
- }
-
- $loader->register(true);
-
- if ($useStaticLoader) {
- $includeFiles = Composer\Autoload\ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa::$files;
- } else {
- $includeFiles = require __DIR__ . '/autoload_files.php';
- }
- foreach ($includeFiles as $fileIdentifier => $file) {
- composerRequiree18bd6b57182fc88f4b9d0452696caaa($fileIdentifier, $file);
+ }, null, null);
+ foreach ($filesToLoad as $fileIdentifier => $file) {
+ $requireFile($fileIdentifier, $file);
}
return $loader;
}
}
-
-function composerRequiree18bd6b57182fc88f4b9d0452696caaa($fileIdentifier, $file)
-{
- if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
- require $file;
-
- $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
- }
-}
diff --git a/api/vendor/composer/autoload_static.php b/api/vendor/composer/autoload_static.php
index a86a2ece57..c8f9247ef8 100644
--- a/api/vendor/composer/autoload_static.php
+++ b/api/vendor/composer/autoload_static.php
@@ -7,30 +7,30 @@
class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
{
public static $files = array (
- '6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php',
- 'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
- 'ec07570ca5a812141189b1fa81503674' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Assert/Functions.php',
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
- 'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php',
- '25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
- 'f598d06aa772fa33d905e87be6398fb1' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/bootstrap.php',
- '0d59ee240a4cd96ddbb4ff164fccea4d' => __DIR__ . '/..' . '/symfony/polyfill-php73/bootstrap.php',
- '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
+ 'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
+ '6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php',
'60799491728b879e74601d83e38b2cad' => __DIR__ . '/..' . '/illuminate/collections/helpers.php',
'a1105708a18b76903365ca1c4aa61b02' => __DIR__ . '/..' . '/symfony/translation/Resources/functions.php',
'72579e7bd17821bb1321b87411366eae' => __DIR__ . '/..' . '/illuminate/support/helpers.php',
+ 'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php',
+ '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
+ '0d59ee240a4cd96ddbb4ff164fccea4d' => __DIR__ . '/..' . '/symfony/polyfill-php73/bootstrap.php',
+ '8825ede83f2f289127722d4e842cf7e8' => __DIR__ . '/..' . '/symfony/polyfill-intl-grapheme/bootstrap.php',
+ 'b6b991a57620e2fb6b2f66f03fe9ddc2' => __DIR__ . '/..' . '/symfony/string/Resources/functions.php',
+ 'f598d06aa772fa33d905e87be6398fb1' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/bootstrap.php',
'667aeda72477189d0494fecd327c3641' => __DIR__ . '/..' . '/symfony/var-dumper/Resources/functions/dump.php',
- '23c18046f52bef3eea034657bafda50f' => __DIR__ . '/..' . '/symfony/polyfill-php81/bootstrap.php',
'538ca81a9a966a6716601ecf48f4eaef' => __DIR__ . '/..' . '/opis/closure/functions.php',
'e39a8b23c42d4e1452234d762b03835a' => __DIR__ . '/..' . '/ramsey/uuid/src/functions.php',
'ef65a1626449d89d0811cf9befce46f0' => __DIR__ . '/..' . '/illuminate/events/functions.php',
'253c157292f75eb38082b5acb06f3f01' => __DIR__ . '/..' . '/nikic/fast-route/src/functions.php',
- '8825ede83f2f289127722d4e842cf7e8' => __DIR__ . '/..' . '/symfony/polyfill-intl-grapheme/bootstrap.php',
'bee9632da3ca00a99623b9c35d0c4f8b' => __DIR__ . '/..' . '/laravel/lumen-framework/src/helpers.php',
'6124b4c8570aa390c21fafd04a26c69f' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php',
- 'b6b991a57620e2fb6b2f66f03fe9ddc2' => __DIR__ . '/..' . '/symfony/string/Resources/functions.php',
'0ccdf99b8f62f02c52cba55802e0c2e7' => __DIR__ . '/..' . '/zircote/swagger-php/src/functions.php',
'3585c46f9622c6b622ab0011d4d72b3a' => __DIR__ . '/..' . '/darkaonline/swagger-lume/src/helpers.php',
+ 'c72349b1fe8d0deeedd3a52e8aa814d8' => __DIR__ . '/..' . '/mockery/mockery/library/helpers.php',
+ 'ce9671a430e4846b44e1c68c7611f9f5' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery.php',
+ 'ec07570ca5a812141189b1fa81503674' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Assert/Functions.php',
'e54f50f1f018f3f5bdd79170d9f301b2' => __DIR__ . '/../..' . '/app/Helpers/OccurrenceHelper.php',
);
@@ -45,10 +45,8 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
),
'S' =>
array (
- 'Symfony\\Polyfill\\Php81\\' => 23,
'Symfony\\Polyfill\\Php80\\' => 23,
'Symfony\\Polyfill\\Php73\\' => 23,
- 'Symfony\\Polyfill\\Php72\\' => 23,
'Symfony\\Polyfill\\Mbstring\\' => 26,
'Symfony\\Polyfill\\Intl\\Normalizer\\' => 33,
'Symfony\\Polyfill\\Intl\\Idn\\' => 26,
@@ -82,6 +80,7 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'Psr\\Log\\' => 8,
'Psr\\EventDispatcher\\' => 20,
'Psr\\Container\\' => 14,
+ 'Psr\\Clock\\' => 10,
'Psr\\Cache\\' => 10,
'PhpParser\\' => 10,
'PhpOption\\' => 10,
@@ -94,6 +93,7 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'M' =>
array (
'Monolog\\' => 8,
+ 'Mockery\\' => 8,
),
'L' =>
array (
@@ -154,6 +154,7 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'C' =>
array (
'Cron\\' => 5,
+ 'Carbon\\Doctrine\\' => 16,
'Carbon\\' => 7,
),
'B' =>
@@ -175,10 +176,6 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
array (
0 => __DIR__ . '/..' . '/webmozart/assert/src',
),
- 'Symfony\\Polyfill\\Php81\\' =>
- array (
- 0 => __DIR__ . '/..' . '/symfony/polyfill-php81',
- ),
'Symfony\\Polyfill\\Php80\\' =>
array (
0 => __DIR__ . '/..' . '/symfony/polyfill-php80',
@@ -187,10 +184,6 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
array (
0 => __DIR__ . '/..' . '/symfony/polyfill-php73',
),
- 'Symfony\\Polyfill\\Php72\\' =>
- array (
- 0 => __DIR__ . '/..' . '/symfony/polyfill-php72',
- ),
'Symfony\\Polyfill\\Mbstring\\' =>
array (
0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring',
@@ -299,6 +292,10 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
array (
0 => __DIR__ . '/..' . '/psr/container/src',
),
+ 'Psr\\Clock\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/psr/clock/src',
+ ),
'Psr\\Cache\\' =>
array (
0 => __DIR__ . '/..' . '/psr/cache/src',
@@ -323,6 +320,10 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
array (
0 => __DIR__ . '/..' . '/monolog/monolog/src/Monolog',
),
+ 'Mockery\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/mockery/mockery/library/Mockery',
+ ),
'Laravel\\SerializableClosure\\' =>
array (
0 => __DIR__ . '/..' . '/laravel/serializable-closure/src',
@@ -481,6 +482,10 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
array (
0 => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron',
),
+ 'Carbon\\Doctrine\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine',
+ ),
'Carbon\\' =>
array (
0 => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon',
@@ -495,16 +500,6 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
),
);
- public static $prefixesPsr0 = array (
- 'M' =>
- array (
- 'Mockery' =>
- array (
- 0 => __DIR__ . '/..' . '/mockery/mockery/library',
- ),
- ),
- );
-
public static $classMap = array (
'App\\Console\\Kernel' => __DIR__ . '/../..' . '/app/Console/Kernel.php',
'App\\Events\\Event' => __DIR__ . '/../..' . '/app/Events/Event.php',
@@ -577,13 +572,13 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'Carbon\\CarbonPeriodImmutable' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/CarbonPeriodImmutable.php',
'Carbon\\CarbonTimeZone' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/CarbonTimeZone.php',
'Carbon\\Cli\\Invoker' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Cli/Invoker.php',
- 'Carbon\\Doctrine\\CarbonDoctrineType' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Doctrine/CarbonDoctrineType.php',
- 'Carbon\\Doctrine\\CarbonImmutableType' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Doctrine/CarbonImmutableType.php',
- 'Carbon\\Doctrine\\CarbonType' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Doctrine/CarbonType.php',
- 'Carbon\\Doctrine\\CarbonTypeConverter' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Doctrine/CarbonTypeConverter.php',
- 'Carbon\\Doctrine\\DateTimeDefaultPrecision' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Doctrine/DateTimeDefaultPrecision.php',
- 'Carbon\\Doctrine\\DateTimeImmutableType' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Doctrine/DateTimeImmutableType.php',
- 'Carbon\\Doctrine\\DateTimeType' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Doctrine/DateTimeType.php',
+ 'Carbon\\Doctrine\\CarbonDoctrineType' => __DIR__ . '/..' . '/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/CarbonDoctrineType.php',
+ 'Carbon\\Doctrine\\CarbonImmutableType' => __DIR__ . '/..' . '/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/CarbonImmutableType.php',
+ 'Carbon\\Doctrine\\CarbonType' => __DIR__ . '/..' . '/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/CarbonType.php',
+ 'Carbon\\Doctrine\\CarbonTypeConverter' => __DIR__ . '/..' . '/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/CarbonTypeConverter.php',
+ 'Carbon\\Doctrine\\DateTimeDefaultPrecision' => __DIR__ . '/..' . '/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/DateTimeDefaultPrecision.php',
+ 'Carbon\\Doctrine\\DateTimeImmutableType' => __DIR__ . '/..' . '/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/DateTimeImmutableType.php',
+ 'Carbon\\Doctrine\\DateTimeType' => __DIR__ . '/..' . '/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/DateTimeType.php',
'Carbon\\Exceptions\\BadComparisonUnitException' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Exceptions/BadComparisonUnitException.php',
'Carbon\\Exceptions\\BadFluentConstructorException' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Exceptions/BadFluentConstructorException.php',
'Carbon\\Exceptions\\BadFluentSetterException' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Exceptions/BadFluentSetterException.php',
@@ -666,6 +661,7 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'DeepCopy\\DeepCopy' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/DeepCopy.php',
'DeepCopy\\Exception\\CloneException' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php',
'DeepCopy\\Exception\\PropertyException' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Exception/PropertyException.php',
+ 'DeepCopy\\Filter\\ChainableFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/ChainableFilter.php',
'DeepCopy\\Filter\\Doctrine\\DoctrineCollectionFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineCollectionFilter.php',
'DeepCopy\\Filter\\Doctrine\\DoctrineEmptyCollectionFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php',
'DeepCopy\\Filter\\Doctrine\\DoctrineProxyFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.php',
@@ -680,6 +676,7 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'DeepCopy\\Matcher\\PropertyTypeMatcher' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyTypeMatcher.php',
'DeepCopy\\Reflection\\ReflectionHelper' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Reflection/ReflectionHelper.php',
'DeepCopy\\TypeFilter\\Date\\DateIntervalFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php',
+ 'DeepCopy\\TypeFilter\\Date\\DatePeriodFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DatePeriodFilter.php',
'DeepCopy\\TypeFilter\\ReplaceFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php',
'DeepCopy\\TypeFilter\\ShallowCopyFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php',
'DeepCopy\\TypeFilter\\Spl\\ArrayObjectFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/ArrayObjectFilter.php',
@@ -1247,6 +1244,7 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'Faker\\Provider\\nl_BE\\Payment' => __DIR__ . '/..' . '/fakerphp/faker/src/Faker/Provider/nl_BE/Payment.php',
'Faker\\Provider\\nl_BE\\Person' => __DIR__ . '/..' . '/fakerphp/faker/src/Faker/Provider/nl_BE/Person.php',
'Faker\\Provider\\nl_BE\\PhoneNumber' => __DIR__ . '/..' . '/fakerphp/faker/src/Faker/Provider/nl_BE/PhoneNumber.php',
+ 'Faker\\Provider\\nl_BE\\Text' => __DIR__ . '/..' . '/fakerphp/faker/src/Faker/Provider/nl_BE/Text.php',
'Faker\\Provider\\nl_NL\\Address' => __DIR__ . '/..' . '/fakerphp/faker/src/Faker/Provider/nl_NL/Address.php',
'Faker\\Provider\\nl_NL\\Color' => __DIR__ . '/..' . '/fakerphp/faker/src/Faker/Provider/nl_NL/Color.php',
'Faker\\Provider\\nl_NL\\Company' => __DIR__ . '/..' . '/fakerphp/faker/src/Faker/Provider/nl_NL/Company.php',
@@ -1256,6 +1254,7 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'Faker\\Provider\\nl_NL\\PhoneNumber' => __DIR__ . '/..' . '/fakerphp/faker/src/Faker/Provider/nl_NL/PhoneNumber.php',
'Faker\\Provider\\nl_NL\\Text' => __DIR__ . '/..' . '/fakerphp/faker/src/Faker/Provider/nl_NL/Text.php',
'Faker\\Provider\\pl_PL\\Address' => __DIR__ . '/..' . '/fakerphp/faker/src/Faker/Provider/pl_PL/Address.php',
+ 'Faker\\Provider\\pl_PL\\Color' => __DIR__ . '/..' . '/fakerphp/faker/src/Faker/Provider/pl_PL/Color.php',
'Faker\\Provider\\pl_PL\\Company' => __DIR__ . '/..' . '/fakerphp/faker/src/Faker/Provider/pl_PL/Company.php',
'Faker\\Provider\\pl_PL\\Internet' => __DIR__ . '/..' . '/fakerphp/faker/src/Faker/Provider/pl_PL/Internet.php',
'Faker\\Provider\\pl_PL\\LicensePlate' => __DIR__ . '/..' . '/fakerphp/faker/src/Faker/Provider/pl_PL/LicensePlate.php',
@@ -2314,7 +2313,6 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'Laravel\\SerializableClosure\\Support\\ReflectionClosure' => __DIR__ . '/..' . '/laravel/serializable-closure/src/Support/ReflectionClosure.php',
'Laravel\\SerializableClosure\\Support\\SelfReference' => __DIR__ . '/..' . '/laravel/serializable-closure/src/Support/SelfReference.php',
'Laravel\\SerializableClosure\\UnsignedSerializableClosure' => __DIR__ . '/..' . '/laravel/serializable-closure/src/UnsignedSerializableClosure.php',
- 'Mockery' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery.php',
'Mockery\\Adapter\\Phpunit\\MockeryPHPUnitIntegration' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryPHPUnitIntegration.php',
'Mockery\\Adapter\\Phpunit\\MockeryPHPUnitIntegrationAssertPostConditions' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryPHPUnitIntegrationAssertPostConditions.php',
'Mockery\\Adapter\\Phpunit\\MockeryTestCase' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryTestCase.php',
@@ -2328,6 +2326,7 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'Mockery\\CountValidator\\AtLeast' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/CountValidator/AtLeast.php',
'Mockery\\CountValidator\\AtMost' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/CountValidator/AtMost.php',
'Mockery\\CountValidator\\CountValidatorAbstract' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/CountValidator/CountValidatorAbstract.php',
+ 'Mockery\\CountValidator\\CountValidatorInterface' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/CountValidator/CountValidatorInterface.php',
'Mockery\\CountValidator\\Exact' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/CountValidator/Exact.php',
'Mockery\\CountValidator\\Exception' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/CountValidator/Exception.php',
'Mockery\\Exception' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Exception.php',
@@ -2335,6 +2334,7 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'Mockery\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Exception/InvalidArgumentException.php',
'Mockery\\Exception\\InvalidCountException' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Exception/InvalidCountException.php',
'Mockery\\Exception\\InvalidOrderException' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Exception/InvalidOrderException.php',
+ 'Mockery\\Exception\\MockeryExceptionInterface' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Exception/MockeryExceptionInterface.php',
'Mockery\\Exception\\NoMatchingExpectationException' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Exception/NoMatchingExpectationException.php',
'Mockery\\Exception\\RuntimeException' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Exception/RuntimeException.php',
'Mockery\\Expectation' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Expectation.php',
@@ -2353,6 +2353,7 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'Mockery\\Generator\\StringManipulationGenerator' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulationGenerator.php',
'Mockery\\Generator\\StringManipulation\\Pass\\AvoidMethodClashPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/AvoidMethodClashPass.php',
'Mockery\\Generator\\StringManipulation\\Pass\\CallTypeHintPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/CallTypeHintPass.php',
+ 'Mockery\\Generator\\StringManipulation\\Pass\\ClassAttributesPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassAttributesPass.php',
'Mockery\\Generator\\StringManipulation\\Pass\\ClassNamePass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassNamePass.php',
'Mockery\\Generator\\StringManipulation\\Pass\\ClassPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassPass.php',
'Mockery\\Generator\\StringManipulation\\Pass\\ConstantsPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ConstantsPass.php',
@@ -2383,7 +2384,10 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'Mockery\\Matcher\\Ducktype' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/Ducktype.php',
'Mockery\\Matcher\\HasKey' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/HasKey.php',
'Mockery\\Matcher\\HasValue' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/HasValue.php',
+ 'Mockery\\Matcher\\IsEqual' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/IsEqual.php',
+ 'Mockery\\Matcher\\IsSame' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/IsSame.php',
'Mockery\\Matcher\\MatcherAbstract' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/MatcherAbstract.php',
+ 'Mockery\\Matcher\\MatcherInterface' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/MatcherInterface.php',
'Mockery\\Matcher\\MultiArgumentClosure' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/MultiArgumentClosure.php',
'Mockery\\Matcher\\MustBe' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/MustBe.php',
'Mockery\\Matcher\\NoArgs' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/NoArgs.php',
@@ -2644,6 +2648,7 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'PHPUnit\\Framework\\Constraint\\LogicalXor' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalXor.php',
'PHPUnit\\Framework\\Constraint\\ObjectEquals' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Object/ObjectEquals.php',
'PHPUnit\\Framework\\Constraint\\ObjectHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Object/ObjectHasAttribute.php',
+ 'PHPUnit\\Framework\\Constraint\\ObjectHasProperty' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Object/ObjectHasProperty.php',
'PHPUnit\\Framework\\Constraint\\Operator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Operator/Operator.php',
'PHPUnit\\Framework\\Constraint\\RegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/String/RegularExpression.php',
'PHPUnit\\Framework\\Constraint\\SameSize' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Cardinality/SameSize.php',
@@ -2874,8 +2879,8 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'PHPUnit\\TextUI\\XmlConfiguration\\Migrator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrator.php',
'PHPUnit\\TextUI\\XmlConfiguration\\MoveAttributesFromFilterWhitelistToCoverage' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveAttributesFromFilterWhitelistToCoverage.php',
'PHPUnit\\TextUI\\XmlConfiguration\\MoveAttributesFromRootToCoverage' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveAttributesFromRootToCoverage.php',
- 'PHPUnit\\TextUI\\XmlConfiguration\\MoveWhitelistDirectoriesToCoverage' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistDirectoriesToCoverage.php',
'PHPUnit\\TextUI\\XmlConfiguration\\MoveWhitelistExcludesToCoverage' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistExcludesToCoverage.php',
+ 'PHPUnit\\TextUI\\XmlConfiguration\\MoveWhitelistIncludesToCoverage' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistIncludesToCoverage.php',
'PHPUnit\\TextUI\\XmlConfiguration\\PHPUnit' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHPUnit/PHPUnit.php',
'PHPUnit\\TextUI\\XmlConfiguration\\Php' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/Php.php',
'PHPUnit\\TextUI\\XmlConfiguration\\PhpHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/PhpHandler.php',
@@ -2982,6 +2987,7 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'PharIo\\Manifest\\ManifestLoader' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestLoader.php',
'PharIo\\Manifest\\ManifestLoaderException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestLoaderException.php',
'PharIo\\Manifest\\ManifestSerializer' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestSerializer.php',
+ 'PharIo\\Manifest\\NoEmailAddressException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/NoEmailAddressException.php',
'PharIo\\Manifest\\PhpElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/PhpElement.php',
'PharIo\\Manifest\\PhpExtensionRequirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/PhpExtensionRequirement.php',
'PharIo\\Manifest\\PhpVersionRequirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/PhpVersionRequirement.php',
@@ -3046,24 +3052,24 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'PhpParser\\Internal\\DiffElem' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Internal/DiffElem.php',
'PhpParser\\Internal\\Differ' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Internal/Differ.php',
'PhpParser\\Internal\\PrintableNewAnonClassNode' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php',
+ 'PhpParser\\Internal\\TokenPolyfill' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Internal/TokenPolyfill.php',
'PhpParser\\Internal\\TokenStream' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php',
'PhpParser\\JsonDecoder' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/JsonDecoder.php',
'PhpParser\\Lexer' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer.php',
'PhpParser\\Lexer\\Emulative' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php',
+ 'PhpParser\\Lexer\\TokenEmulator\\AsymmetricVisibilityTokenEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AsymmetricVisibilityTokenEmulator.php',
'PhpParser\\Lexer\\TokenEmulator\\AttributeEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AttributeEmulator.php',
- 'PhpParser\\Lexer\\TokenEmulator\\CoaleseEqualTokenEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/CoaleseEqualTokenEmulator.php',
'PhpParser\\Lexer\\TokenEmulator\\EnumTokenEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/EnumTokenEmulator.php',
'PhpParser\\Lexer\\TokenEmulator\\ExplicitOctalEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ExplicitOctalEmulator.php',
- 'PhpParser\\Lexer\\TokenEmulator\\FlexibleDocStringEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FlexibleDocStringEmulator.php',
- 'PhpParser\\Lexer\\TokenEmulator\\FnTokenEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FnTokenEmulator.php',
'PhpParser\\Lexer\\TokenEmulator\\KeywordEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php',
'PhpParser\\Lexer\\TokenEmulator\\MatchTokenEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/MatchTokenEmulator.php',
'PhpParser\\Lexer\\TokenEmulator\\NullsafeTokenEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NullsafeTokenEmulator.php',
- 'PhpParser\\Lexer\\TokenEmulator\\NumericLiteralSeparatorEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NumericLiteralSeparatorEmulator.php',
+ 'PhpParser\\Lexer\\TokenEmulator\\PropertyTokenEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/PropertyTokenEmulator.php',
'PhpParser\\Lexer\\TokenEmulator\\ReadonlyFunctionTokenEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyFunctionTokenEmulator.php',
'PhpParser\\Lexer\\TokenEmulator\\ReadonlyTokenEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyTokenEmulator.php',
'PhpParser\\Lexer\\TokenEmulator\\ReverseEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReverseEmulator.php',
'PhpParser\\Lexer\\TokenEmulator\\TokenEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulator.php',
+ 'PhpParser\\Modifiers' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Modifiers.php',
'PhpParser\\NameContext' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NameContext.php',
'PhpParser\\Node' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node.php',
'PhpParser\\NodeAbstract' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeAbstract.php',
@@ -3074,19 +3080,22 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'PhpParser\\NodeVisitor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor.php',
'PhpParser\\NodeVisitorAbstract' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php',
'PhpParser\\NodeVisitor\\CloningVisitor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor/CloningVisitor.php',
+ 'PhpParser\\NodeVisitor\\CommentAnnotatingVisitor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor/CommentAnnotatingVisitor.php',
'PhpParser\\NodeVisitor\\FindingVisitor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php',
'PhpParser\\NodeVisitor\\FirstFindingVisitor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php',
'PhpParser\\NodeVisitor\\NameResolver' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php',
'PhpParser\\NodeVisitor\\NodeConnectingVisitor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php',
'PhpParser\\NodeVisitor\\ParentConnectingVisitor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php',
'PhpParser\\Node\\Arg' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Arg.php',
+ 'PhpParser\\Node\\ArrayItem' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/ArrayItem.php',
'PhpParser\\Node\\Attribute' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Attribute.php',
'PhpParser\\Node\\AttributeGroup' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/AttributeGroup.php',
+ 'PhpParser\\Node\\ClosureUse' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/ClosureUse.php',
'PhpParser\\Node\\ComplexType' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/ComplexType.php',
'PhpParser\\Node\\Const_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Const_.php',
+ 'PhpParser\\Node\\DeclareItem' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/DeclareItem.php',
'PhpParser\\Node\\Expr' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr.php',
'PhpParser\\Node\\Expr\\ArrayDimFetch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php',
- 'PhpParser\\Node\\Expr\\ArrayItem' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php',
'PhpParser\\Node\\Expr\\Array_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php',
'PhpParser\\Node\\Expr\\ArrowFunction' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php',
'PhpParser\\Node\\Expr\\Assign' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php',
@@ -3147,7 +3156,6 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'PhpParser\\Node\\Expr\\ClassConstFetch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php',
'PhpParser\\Node\\Expr\\Clone_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php',
'PhpParser\\Node\\Expr\\Closure' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php',
- 'PhpParser\\Node\\Expr\\ClosureUse' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php',
'PhpParser\\Node\\Expr\\ConstFetch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php',
'PhpParser\\Node\\Expr\\Empty_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php',
'PhpParser\\Node\\Expr\\Error' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php',
@@ -3182,6 +3190,7 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'PhpParser\\Node\\Expr\\Yield_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php',
'PhpParser\\Node\\FunctionLike' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php',
'PhpParser\\Node\\Identifier' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Identifier.php',
+ 'PhpParser\\Node\\InterpolatedStringPart' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/InterpolatedStringPart.php',
'PhpParser\\Node\\IntersectionType' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/IntersectionType.php',
'PhpParser\\Node\\MatchArm' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/MatchArm.php',
'PhpParser\\Node\\Name' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Name.php',
@@ -3189,11 +3198,12 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'PhpParser\\Node\\Name\\Relative' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php',
'PhpParser\\Node\\NullableType' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/NullableType.php',
'PhpParser\\Node\\Param' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Param.php',
+ 'PhpParser\\Node\\PropertyHook' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/PropertyHook.php',
+ 'PhpParser\\Node\\PropertyItem' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/PropertyItem.php',
'PhpParser\\Node\\Scalar' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar.php',
- 'PhpParser\\Node\\Scalar\\DNumber' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php',
- 'PhpParser\\Node\\Scalar\\Encapsed' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php',
- 'PhpParser\\Node\\Scalar\\EncapsedStringPart' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php',
- 'PhpParser\\Node\\Scalar\\LNumber' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php',
+ 'PhpParser\\Node\\Scalar\\Float_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/Float_.php',
+ 'PhpParser\\Node\\Scalar\\Int_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/Int_.php',
+ 'PhpParser\\Node\\Scalar\\InterpolatedString' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/InterpolatedString.php',
'PhpParser\\Node\\Scalar\\MagicConst' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php',
'PhpParser\\Node\\Scalar\\MagicConst\\Class_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php',
'PhpParser\\Node\\Scalar\\MagicConst\\Dir' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Dir.php',
@@ -3202,9 +3212,12 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'PhpParser\\Node\\Scalar\\MagicConst\\Line' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Line.php',
'PhpParser\\Node\\Scalar\\MagicConst\\Method' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Method.php',
'PhpParser\\Node\\Scalar\\MagicConst\\Namespace_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Namespace_.php',
+ 'PhpParser\\Node\\Scalar\\MagicConst\\Property' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Property.php',
'PhpParser\\Node\\Scalar\\MagicConst\\Trait_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Trait_.php',
'PhpParser\\Node\\Scalar\\String_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php',
+ 'PhpParser\\Node\\StaticVar' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/StaticVar.php',
'PhpParser\\Node\\Stmt' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt.php',
+ 'PhpParser\\Node\\Stmt\\Block' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Block.php',
'PhpParser\\Node\\Stmt\\Break_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php',
'PhpParser\\Node\\Stmt\\Case_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php',
'PhpParser\\Node\\Stmt\\Catch_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php',
@@ -3214,7 +3227,6 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'PhpParser\\Node\\Stmt\\Class_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php',
'PhpParser\\Node\\Stmt\\Const_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php',
'PhpParser\\Node\\Stmt\\Continue_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php',
- 'PhpParser\\Node\\Stmt\\DeclareDeclare' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php',
'PhpParser\\Node\\Stmt\\Declare_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php',
'PhpParser\\Node\\Stmt\\Do_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php',
'PhpParser\\Node\\Stmt\\Echo_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php',
@@ -3238,12 +3250,9 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'PhpParser\\Node\\Stmt\\Namespace_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php',
'PhpParser\\Node\\Stmt\\Nop' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php',
'PhpParser\\Node\\Stmt\\Property' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php',
- 'PhpParser\\Node\\Stmt\\PropertyProperty' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php',
'PhpParser\\Node\\Stmt\\Return_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php',
- 'PhpParser\\Node\\Stmt\\StaticVar' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php',
'PhpParser\\Node\\Stmt\\Static_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php',
'PhpParser\\Node\\Stmt\\Switch_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php',
- 'PhpParser\\Node\\Stmt\\Throw_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Throw_.php',
'PhpParser\\Node\\Stmt\\TraitUse' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php',
'PhpParser\\Node\\Stmt\\TraitUseAdaptation' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php',
'PhpParser\\Node\\Stmt\\TraitUseAdaptation\\Alias' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php',
@@ -3251,26 +3260,28 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'PhpParser\\Node\\Stmt\\Trait_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php',
'PhpParser\\Node\\Stmt\\TryCatch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php',
'PhpParser\\Node\\Stmt\\Unset_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php',
- 'PhpParser\\Node\\Stmt\\UseUse' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php',
'PhpParser\\Node\\Stmt\\Use_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php',
'PhpParser\\Node\\Stmt\\While_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php',
'PhpParser\\Node\\UnionType' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/UnionType.php',
+ 'PhpParser\\Node\\UseItem' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/UseItem.php',
'PhpParser\\Node\\VarLikeIdentifier' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/VarLikeIdentifier.php',
'PhpParser\\Node\\VariadicPlaceholder' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/VariadicPlaceholder.php',
'PhpParser\\Parser' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Parser.php',
'PhpParser\\ParserAbstract' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/ParserAbstract.php',
'PhpParser\\ParserFactory' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/ParserFactory.php',
- 'PhpParser\\Parser\\Multiple' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Parser/Multiple.php',
- 'PhpParser\\Parser\\Php5' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Parser/Php5.php',
'PhpParser\\Parser\\Php7' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Parser/Php7.php',
- 'PhpParser\\Parser\\Tokens' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Parser/Tokens.php',
+ 'PhpParser\\Parser\\Php8' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Parser/Php8.php',
+ 'PhpParser\\PhpVersion' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/PhpVersion.php',
+ 'PhpParser\\PrettyPrinter' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/PrettyPrinter.php',
'PhpParser\\PrettyPrinterAbstract' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php',
'PhpParser\\PrettyPrinter\\Standard' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php',
+ 'PhpParser\\Token' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Token.php',
'PhpToken' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/PhpToken.php',
'Psr\\Cache\\CacheException' => __DIR__ . '/..' . '/psr/cache/src/CacheException.php',
'Psr\\Cache\\CacheItemInterface' => __DIR__ . '/..' . '/psr/cache/src/CacheItemInterface.php',
'Psr\\Cache\\CacheItemPoolInterface' => __DIR__ . '/..' . '/psr/cache/src/CacheItemPoolInterface.php',
'Psr\\Cache\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/cache/src/InvalidArgumentException.php',
+ 'Psr\\Clock\\ClockInterface' => __DIR__ . '/..' . '/psr/clock/src/ClockInterface.php',
'Psr\\Container\\ContainerExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerExceptionInterface.php',
'Psr\\Container\\ContainerInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerInterface.php',
'Psr\\Container\\NotFoundExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/NotFoundExceptionInterface.php',
@@ -3296,13 +3307,13 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'Ramsey\\Collection\\CollectionInterface' => __DIR__ . '/..' . '/ramsey/collection/src/CollectionInterface.php',
'Ramsey\\Collection\\DoubleEndedQueue' => __DIR__ . '/..' . '/ramsey/collection/src/DoubleEndedQueue.php',
'Ramsey\\Collection\\DoubleEndedQueueInterface' => __DIR__ . '/..' . '/ramsey/collection/src/DoubleEndedQueueInterface.php',
+ 'Ramsey\\Collection\\Exception\\CollectionException' => __DIR__ . '/..' . '/ramsey/collection/src/Exception/CollectionException.php',
'Ramsey\\Collection\\Exception\\CollectionMismatchException' => __DIR__ . '/..' . '/ramsey/collection/src/Exception/CollectionMismatchException.php',
'Ramsey\\Collection\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/ramsey/collection/src/Exception/InvalidArgumentException.php',
- 'Ramsey\\Collection\\Exception\\InvalidSortOrderException' => __DIR__ . '/..' . '/ramsey/collection/src/Exception/InvalidSortOrderException.php',
+ 'Ramsey\\Collection\\Exception\\InvalidPropertyOrMethod' => __DIR__ . '/..' . '/ramsey/collection/src/Exception/InvalidPropertyOrMethod.php',
'Ramsey\\Collection\\Exception\\NoSuchElementException' => __DIR__ . '/..' . '/ramsey/collection/src/Exception/NoSuchElementException.php',
'Ramsey\\Collection\\Exception\\OutOfBoundsException' => __DIR__ . '/..' . '/ramsey/collection/src/Exception/OutOfBoundsException.php',
'Ramsey\\Collection\\Exception\\UnsupportedOperationException' => __DIR__ . '/..' . '/ramsey/collection/src/Exception/UnsupportedOperationException.php',
- 'Ramsey\\Collection\\Exception\\ValueExtractionException' => __DIR__ . '/..' . '/ramsey/collection/src/Exception/ValueExtractionException.php',
'Ramsey\\Collection\\GenericArray' => __DIR__ . '/..' . '/ramsey/collection/src/GenericArray.php',
'Ramsey\\Collection\\Map\\AbstractMap' => __DIR__ . '/..' . '/ramsey/collection/src/Map/AbstractMap.php',
'Ramsey\\Collection\\Map\\AbstractTypedMap' => __DIR__ . '/..' . '/ramsey/collection/src/Map/AbstractTypedMap.php',
@@ -3314,6 +3325,7 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'Ramsey\\Collection\\Queue' => __DIR__ . '/..' . '/ramsey/collection/src/Queue.php',
'Ramsey\\Collection\\QueueInterface' => __DIR__ . '/..' . '/ramsey/collection/src/QueueInterface.php',
'Ramsey\\Collection\\Set' => __DIR__ . '/..' . '/ramsey/collection/src/Set.php',
+ 'Ramsey\\Collection\\Sort' => __DIR__ . '/..' . '/ramsey/collection/src/Sort.php',
'Ramsey\\Collection\\Tool\\TypeTrait' => __DIR__ . '/..' . '/ramsey/collection/src/Tool/TypeTrait.php',
'Ramsey\\Collection\\Tool\\ValueExtractorTrait' => __DIR__ . '/..' . '/ramsey/collection/src/Tool/ValueExtractorTrait.php',
'Ramsey\\Collection\\Tool\\ValueToStringTrait' => __DIR__ . '/..' . '/ramsey/collection/src/Tool/ValueToStringTrait.php',
@@ -3429,7 +3441,6 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'Ramsey\\Uuid\\UuidInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/UuidInterface.php',
'Ramsey\\Uuid\\Validator\\GenericValidator' => __DIR__ . '/..' . '/ramsey/uuid/src/Validator/GenericValidator.php',
'Ramsey\\Uuid\\Validator\\ValidatorInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Validator/ValidatorInterface.php',
- 'ReturnTypeWillChange' => __DIR__ . '/..' . '/symfony/polyfill-php81/Resources/stubs/ReturnTypeWillChange.php',
'SebastianBergmann\\CliParser\\AmbiguousOptionException' => __DIR__ . '/..' . '/sebastian/cli-parser/src/exceptions/AmbiguousOptionException.php',
'SebastianBergmann\\CliParser\\Exception' => __DIR__ . '/..' . '/sebastian/cli-parser/src/exceptions/Exception.php',
'SebastianBergmann\\CliParser\\OptionDoesNotAllowArgumentException' => __DIR__ . '/..' . '/sebastian/cli-parser/src/exceptions/OptionDoesNotAllowArgumentException.php',
@@ -4133,6 +4144,7 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'Symfony\\Component\\String\\Slugger\\AsciiSlugger' => __DIR__ . '/..' . '/symfony/string/Slugger/AsciiSlugger.php',
'Symfony\\Component\\String\\Slugger\\SluggerInterface' => __DIR__ . '/..' . '/symfony/string/Slugger/SluggerInterface.php',
'Symfony\\Component\\String\\UnicodeString' => __DIR__ . '/..' . '/symfony/string/UnicodeString.php',
+ 'Symfony\\Component\\Translation\\CatalogueMetadataAwareInterface' => __DIR__ . '/..' . '/symfony/translation/CatalogueMetadataAwareInterface.php',
'Symfony\\Component\\Translation\\Catalogue\\AbstractOperation' => __DIR__ . '/..' . '/symfony/translation/Catalogue/AbstractOperation.php',
'Symfony\\Component\\Translation\\Catalogue\\MergeOperation' => __DIR__ . '/..' . '/symfony/translation/Catalogue/MergeOperation.php',
'Symfony\\Component\\Translation\\Catalogue\\OperationInterface' => __DIR__ . '/..' . '/symfony/translation/Catalogue/OperationInterface.php',
@@ -4143,6 +4155,8 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'Symfony\\Component\\Translation\\Command\\XliffLintCommand' => __DIR__ . '/..' . '/symfony/translation/Command/XliffLintCommand.php',
'Symfony\\Component\\Translation\\DataCollectorTranslator' => __DIR__ . '/..' . '/symfony/translation/DataCollectorTranslator.php',
'Symfony\\Component\\Translation\\DataCollector\\TranslationDataCollector' => __DIR__ . '/..' . '/symfony/translation/DataCollector/TranslationDataCollector.php',
+ 'Symfony\\Component\\Translation\\DependencyInjection\\DataCollectorTranslatorPass' => __DIR__ . '/..' . '/symfony/translation/DependencyInjection/DataCollectorTranslatorPass.php',
+ 'Symfony\\Component\\Translation\\DependencyInjection\\LoggingTranslatorPass' => __DIR__ . '/..' . '/symfony/translation/DependencyInjection/LoggingTranslatorPass.php',
'Symfony\\Component\\Translation\\DependencyInjection\\TranslationDumperPass' => __DIR__ . '/..' . '/symfony/translation/DependencyInjection/TranslationDumperPass.php',
'Symfony\\Component\\Translation\\DependencyInjection\\TranslationExtractorPass' => __DIR__ . '/..' . '/symfony/translation/DependencyInjection/TranslationExtractorPass.php',
'Symfony\\Component\\Translation\\DependencyInjection\\TranslatorPass' => __DIR__ . '/..' . '/symfony/translation/DependencyInjection/TranslatorPass.php',
@@ -4173,8 +4187,13 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'Symfony\\Component\\Translation\\Extractor\\AbstractFileExtractor' => __DIR__ . '/..' . '/symfony/translation/Extractor/AbstractFileExtractor.php',
'Symfony\\Component\\Translation\\Extractor\\ChainExtractor' => __DIR__ . '/..' . '/symfony/translation/Extractor/ChainExtractor.php',
'Symfony\\Component\\Translation\\Extractor\\ExtractorInterface' => __DIR__ . '/..' . '/symfony/translation/Extractor/ExtractorInterface.php',
+ 'Symfony\\Component\\Translation\\Extractor\\PhpAstExtractor' => __DIR__ . '/..' . '/symfony/translation/Extractor/PhpAstExtractor.php',
'Symfony\\Component\\Translation\\Extractor\\PhpExtractor' => __DIR__ . '/..' . '/symfony/translation/Extractor/PhpExtractor.php',
'Symfony\\Component\\Translation\\Extractor\\PhpStringTokenParser' => __DIR__ . '/..' . '/symfony/translation/Extractor/PhpStringTokenParser.php',
+ 'Symfony\\Component\\Translation\\Extractor\\Visitor\\AbstractVisitor' => __DIR__ . '/..' . '/symfony/translation/Extractor/Visitor/AbstractVisitor.php',
+ 'Symfony\\Component\\Translation\\Extractor\\Visitor\\ConstraintVisitor' => __DIR__ . '/..' . '/symfony/translation/Extractor/Visitor/ConstraintVisitor.php',
+ 'Symfony\\Component\\Translation\\Extractor\\Visitor\\TransMethodVisitor' => __DIR__ . '/..' . '/symfony/translation/Extractor/Visitor/TransMethodVisitor.php',
+ 'Symfony\\Component\\Translation\\Extractor\\Visitor\\TranslatableMessageVisitor' => __DIR__ . '/..' . '/symfony/translation/Extractor/Visitor/TranslatableMessageVisitor.php',
'Symfony\\Component\\Translation\\Formatter\\IntlFormatter' => __DIR__ . '/..' . '/symfony/translation/Formatter/IntlFormatter.php',
'Symfony\\Component\\Translation\\Formatter\\IntlFormatterInterface' => __DIR__ . '/..' . '/symfony/translation/Formatter/IntlFormatterInterface.php',
'Symfony\\Component\\Translation\\Formatter\\MessageFormatter' => __DIR__ . '/..' . '/symfony/translation/Formatter/MessageFormatter.php',
@@ -4194,6 +4213,7 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'Symfony\\Component\\Translation\\Loader\\QtFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/QtFileLoader.php',
'Symfony\\Component\\Translation\\Loader\\XliffFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/XliffFileLoader.php',
'Symfony\\Component\\Translation\\Loader\\YamlFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/YamlFileLoader.php',
+ 'Symfony\\Component\\Translation\\LocaleSwitcher' => __DIR__ . '/..' . '/symfony/translation/LocaleSwitcher.php',
'Symfony\\Component\\Translation\\LoggingTranslator' => __DIR__ . '/..' . '/symfony/translation/LoggingTranslator.php',
'Symfony\\Component\\Translation\\MessageCatalogue' => __DIR__ . '/..' . '/symfony/translation/MessageCatalogue.php',
'Symfony\\Component\\Translation\\MessageCatalogueInterface' => __DIR__ . '/..' . '/symfony/translation/MessageCatalogueInterface.php',
@@ -4300,13 +4320,13 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'Symfony\\Contracts\\Service\\Attribute\\Required' => __DIR__ . '/..' . '/symfony/service-contracts/Attribute/Required.php',
'Symfony\\Contracts\\Service\\Attribute\\SubscribedService' => __DIR__ . '/..' . '/symfony/service-contracts/Attribute/SubscribedService.php',
'Symfony\\Contracts\\Service\\ResetInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ResetInterface.php',
+ 'Symfony\\Contracts\\Service\\ServiceCollectionInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceCollectionInterface.php',
'Symfony\\Contracts\\Service\\ServiceLocatorTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceLocatorTrait.php',
+ 'Symfony\\Contracts\\Service\\ServiceMethodsSubscriberTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceMethodsSubscriberTrait.php',
'Symfony\\Contracts\\Service\\ServiceProviderInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceProviderInterface.php',
'Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberInterface.php',
'Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberTrait.php',
- 'Symfony\\Contracts\\Service\\Test\\ServiceLocatorTest' => __DIR__ . '/..' . '/symfony/service-contracts/Test/ServiceLocatorTest.php',
'Symfony\\Contracts\\Translation\\LocaleAwareInterface' => __DIR__ . '/..' . '/symfony/translation-contracts/LocaleAwareInterface.php',
- 'Symfony\\Contracts\\Translation\\Test\\TranslatorTest' => __DIR__ . '/..' . '/symfony/translation-contracts/Test/TranslatorTest.php',
'Symfony\\Contracts\\Translation\\TranslatableInterface' => __DIR__ . '/..' . '/symfony/translation-contracts/TranslatableInterface.php',
'Symfony\\Contracts\\Translation\\TranslatorInterface' => __DIR__ . '/..' . '/symfony/translation-contracts/TranslatorInterface.php',
'Symfony\\Contracts\\Translation\\TranslatorTrait' => __DIR__ . '/..' . '/symfony/translation-contracts/TranslatorTrait.php',
@@ -4318,11 +4338,9 @@ class ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa
'Symfony\\Polyfill\\Intl\\Idn\\Resources\\unidata\\Regex' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/Resources/unidata/Regex.php',
'Symfony\\Polyfill\\Intl\\Normalizer\\Normalizer' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/Normalizer.php',
'Symfony\\Polyfill\\Mbstring\\Mbstring' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/Mbstring.php',
- 'Symfony\\Polyfill\\Php72\\Php72' => __DIR__ . '/..' . '/symfony/polyfill-php72/Php72.php',
'Symfony\\Polyfill\\Php73\\Php73' => __DIR__ . '/..' . '/symfony/polyfill-php73/Php73.php',
'Symfony\\Polyfill\\Php80\\Php80' => __DIR__ . '/..' . '/symfony/polyfill-php80/Php80.php',
'Symfony\\Polyfill\\Php80\\PhpToken' => __DIR__ . '/..' . '/symfony/polyfill-php80/PhpToken.php',
- 'Symfony\\Polyfill\\Php81\\Php81' => __DIR__ . '/..' . '/symfony/polyfill-php81/Php81.php',
'TestCase' => __DIR__ . '/../..' . '/tests/TestCase.php',
'TheSeer\\Tokenizer\\Exception' => __DIR__ . '/..' . '/theseer/tokenizer/src/Exception.php',
'TheSeer\\Tokenizer\\NamespaceUri' => __DIR__ . '/..' . '/theseer/tokenizer/src/NamespaceUri.php',
@@ -4345,7 +4363,6 @@ public static function getInitializer(ClassLoader $loader)
return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa::$prefixDirsPsr4;
- $loader->prefixesPsr0 = ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa::$prefixesPsr0;
$loader->classMap = ComposerStaticInite18bd6b57182fc88f4b9d0452696caaa::$classMap;
}, null, ClassLoader::class);
diff --git a/api/vendor/composer/installed.json b/api/vendor/composer/installed.json
index 76ddf7ad72..9c7a0b6bbf 100644
--- a/api/vendor/composer/installed.json
+++ b/api/vendor/composer/installed.json
@@ -2,29 +2,28 @@
"packages": [
{
"name": "brick/math",
- "version": "0.10.2",
- "version_normalized": "0.10.2.0",
+ "version": "0.12.1",
+ "version_normalized": "0.12.1.0",
"source": {
"type": "git",
"url": "https://github.com/brick/math.git",
- "reference": "459f2781e1a08d52ee56b0b1444086e038561e3f"
+ "reference": "f510c0a40911935b77b86859eb5223d58d660df1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/brick/math/zipball/459f2781e1a08d52ee56b0b1444086e038561e3f",
- "reference": "459f2781e1a08d52ee56b0b1444086e038561e3f",
+ "url": "https://api.github.com/repos/brick/math/zipball/f510c0a40911935b77b86859eb5223d58d660df1",
+ "reference": "f510c0a40911935b77b86859eb5223d58d660df1",
"shasum": ""
},
"require": {
- "ext-json": "*",
- "php": "^7.4 || ^8.0"
+ "php": "^8.1"
},
"require-dev": {
"php-coveralls/php-coveralls": "^2.2",
- "phpunit/phpunit": "^9.0",
- "vimeo/psalm": "4.25.0"
+ "phpunit/phpunit": "^10.1",
+ "vimeo/psalm": "5.16.0"
},
- "time": "2022-08-10T22:54:19+00:00",
+ "time": "2023-11-29T23:19:16+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -44,12 +43,17 @@
"arithmetic",
"bigdecimal",
"bignum",
+ "bignumber",
"brick",
- "math"
+ "decimal",
+ "integer",
+ "math",
+ "mathematics",
+ "rational"
],
"support": {
"issues": "https://github.com/brick/math/issues",
- "source": "https://github.com/brick/math/tree/0.10.2"
+ "source": "https://github.com/brick/math/tree/0.12.1"
},
"funding": [
{
@@ -59,6 +63,78 @@
],
"install-path": "../brick/math"
},
+ {
+ "name": "carbonphp/carbon-doctrine-types",
+ "version": "3.2.0",
+ "version_normalized": "3.2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/CarbonPHP/carbon-doctrine-types.git",
+ "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
+ "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1"
+ },
+ "conflict": {
+ "doctrine/dbal": "<4.0.0 || >=5.0.0"
+ },
+ "require-dev": {
+ "doctrine/dbal": "^4.0.0",
+ "nesbot/carbon": "^2.71.0 || ^3.0.0",
+ "phpunit/phpunit": "^10.3"
+ },
+ "time": "2024-02-09T16:56:22+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Carbon\\Doctrine\\": "src/Carbon/Doctrine/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "KyleKatarn",
+ "email": "kylekatarnls@gmail.com"
+ }
+ ],
+ "description": "Types to use Carbon in Doctrine",
+ "keywords": [
+ "carbon",
+ "date",
+ "datetime",
+ "doctrine",
+ "time"
+ ],
+ "support": {
+ "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues",
+ "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/kylekatarnls",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/Carbon",
+ "type": "open_collective"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon",
+ "type": "tidelift"
+ }
+ ],
+ "install-path": "../carbonphp/carbon-doctrine-types"
+ },
{
"name": "darkaonline/swagger-lume",
"version": "8.0",
@@ -128,17 +204,17 @@
},
{
"name": "doctrine/annotations",
- "version": "1.14.3",
- "version_normalized": "1.14.3.0",
+ "version": "1.14.4",
+ "version_normalized": "1.14.4.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/annotations.git",
- "reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af"
+ "reference": "253dca476f70808a5aeed3a47cc2cc88c5cab915"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/annotations/zipball/fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af",
- "reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af",
+ "url": "https://api.github.com/repos/doctrine/annotations/zipball/253dca476f70808a5aeed3a47cc2cc88c5cab915",
+ "reference": "253dca476f70808a5aeed3a47cc2cc88c5cab915",
"shasum": ""
},
"require": {
@@ -149,16 +225,16 @@
},
"require-dev": {
"doctrine/cache": "^1.11 || ^2.0",
- "doctrine/coding-standard": "^9 || ^10",
- "phpstan/phpstan": "~1.4.10 || ^1.8.0",
+ "doctrine/coding-standard": "^9 || ^12",
+ "phpstan/phpstan": "~1.4.10 || ^1.10.28",
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "symfony/cache": "^4.4 || ^5.4 || ^6",
- "vimeo/psalm": "^4.10"
+ "symfony/cache": "^4.4 || ^5.4 || ^6.4 || ^7",
+ "vimeo/psalm": "^4.30 || ^5.14"
},
"suggest": {
"php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations"
},
- "time": "2023-02-01T09:20:38+00:00",
+ "time": "2024-09-05T10:15:52+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -201,37 +277,37 @@
],
"support": {
"issues": "https://github.com/doctrine/annotations/issues",
- "source": "https://github.com/doctrine/annotations/tree/1.14.3"
+ "source": "https://github.com/doctrine/annotations/tree/1.14.4"
},
"install-path": "../doctrine/annotations"
},
{
"name": "doctrine/inflector",
- "version": "2.0.6",
- "version_normalized": "2.0.6.0",
+ "version": "2.0.10",
+ "version_normalized": "2.0.10.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/inflector.git",
- "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024"
+ "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/inflector/zipball/d9d313a36c872fd6ee06d9a6cbcf713eaa40f024",
- "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024",
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc",
+ "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc",
"shasum": ""
},
"require": {
"php": "^7.2 || ^8.0"
},
"require-dev": {
- "doctrine/coding-standard": "^10",
+ "doctrine/coding-standard": "^11.0",
"phpstan/phpstan": "^1.8",
"phpstan/phpstan-phpunit": "^1.1",
"phpstan/phpstan-strict-rules": "^1.3",
"phpunit/phpunit": "^8.5 || ^9.5",
- "vimeo/psalm": "^4.25"
+ "vimeo/psalm": "^4.25 || ^5.4"
},
- "time": "2022-10-20T09:10:12+00:00",
+ "time": "2024-02-18T20:23:39+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -281,7 +357,7 @@
],
"support": {
"issues": "https://github.com/doctrine/inflector/issues",
- "source": "https://github.com/doctrine/inflector/tree/2.0.6"
+ "source": "https://github.com/doctrine/inflector/tree/2.0.10"
},
"funding": [
{
@@ -301,33 +377,33 @@
},
{
"name": "doctrine/instantiator",
- "version": "1.5.0",
- "version_normalized": "1.5.0.0",
+ "version": "2.0.0",
+ "version_normalized": "2.0.0.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/instantiator.git",
- "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b"
+ "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b",
- "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b",
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
+ "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
"shasum": ""
},
"require": {
- "php": "^7.1 || ^8.0"
+ "php": "^8.1"
},
"require-dev": {
- "doctrine/coding-standard": "^9 || ^11",
+ "doctrine/coding-standard": "^11",
"ext-pdo": "*",
"ext-phar": "*",
- "phpbench/phpbench": "^0.16 || ^1",
- "phpstan/phpstan": "^1.4",
- "phpstan/phpstan-phpunit": "^1",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "vimeo/psalm": "^4.30 || ^5.4"
+ "phpbench/phpbench": "^1.2",
+ "phpstan/phpstan": "^1.9.4",
+ "phpstan/phpstan-phpunit": "^1.3",
+ "phpunit/phpunit": "^9.5.27",
+ "vimeo/psalm": "^5.4"
},
- "time": "2022-12-30T00:15:36+00:00",
+ "time": "2022-12-30T00:23:10+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -354,7 +430,7 @@
],
"support": {
"issues": "https://github.com/doctrine/instantiator/issues",
- "source": "https://github.com/doctrine/instantiator/tree/1.5.0"
+ "source": "https://github.com/doctrine/instantiator/tree/2.0.0"
},
"funding": [
{
@@ -453,17 +529,17 @@
},
{
"name": "dragonmantank/cron-expression",
- "version": "v3.3.2",
- "version_normalized": "3.3.2.0",
+ "version": "v3.4.0",
+ "version_normalized": "3.4.0.0",
"source": {
"type": "git",
"url": "https://github.com/dragonmantank/cron-expression.git",
- "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8"
+ "reference": "8c784d071debd117328803d86b2097615b457500"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/782ca5968ab8b954773518e9e49a6f892a34b2a8",
- "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8",
+ "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/8c784d071debd117328803d86b2097615b457500",
+ "reference": "8c784d071debd117328803d86b2097615b457500",
"shasum": ""
},
"require": {
@@ -476,11 +552,15 @@
"require-dev": {
"phpstan/extension-installer": "^1.0",
"phpstan/phpstan": "^1.0",
- "phpstan/phpstan-webmozart-assert": "^1.0",
"phpunit/phpunit": "^7.0|^8.0|^9.0"
},
- "time": "2022-09-10T18:51:20+00:00",
+ "time": "2024-10-09T13:47:03+00:00",
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.x-dev"
+ }
+ },
"installation-source": "dist",
"autoload": {
"psr-4": {
@@ -505,7 +585,7 @@
],
"support": {
"issues": "https://github.com/dragonmantank/cron-expression/issues",
- "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.2"
+ "source": "https://github.com/dragonmantank/cron-expression/tree/v3.4.0"
},
"funding": [
{
@@ -588,17 +668,17 @@
},
{
"name": "fakerphp/faker",
- "version": "v1.21.0",
- "version_normalized": "1.21.0.0",
+ "version": "v1.24.1",
+ "version_normalized": "1.24.1.0",
"source": {
"type": "git",
"url": "https://github.com/FakerPHP/Faker.git",
- "reference": "92efad6a967f0b79c499705c69b662f738cc9e4d"
+ "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/92efad6a967f0b79c499705c69b662f738cc9e4d",
- "reference": "92efad6a967f0b79c499705c69b662f738cc9e4d",
+ "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5",
+ "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5",
"shasum": ""
},
"require": {
@@ -623,13 +703,8 @@
"ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.",
"ext-mbstring": "Required for multibyte Unicode string functionality."
},
- "time": "2022-12-13T13:54:32+00:00",
+ "time": "2024-11-21T13:46:39+00:00",
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "v1.21-dev"
- }
- },
"installation-source": "dist",
"autoload": {
"psr-4": {
@@ -653,33 +728,33 @@
],
"support": {
"issues": "https://github.com/FakerPHP/Faker/issues",
- "source": "https://github.com/FakerPHP/Faker/tree/v1.21.0"
+ "source": "https://github.com/FakerPHP/Faker/tree/v1.24.1"
},
"install-path": "../fakerphp/faker"
},
{
"name": "graham-campbell/result-type",
- "version": "v1.1.0",
- "version_normalized": "1.1.0.0",
+ "version": "v1.1.3",
+ "version_normalized": "1.1.3.0",
"source": {
"type": "git",
"url": "https://github.com/GrahamCampbell/Result-Type.git",
- "reference": "a878d45c1914464426dc94da61c9e1d36ae262a8"
+ "reference": "3ba905c11371512af9d9bdd27d99b782216b6945"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/a878d45c1914464426dc94da61c9e1d36ae262a8",
- "reference": "a878d45c1914464426dc94da61c9e1d36ae262a8",
+ "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/3ba905c11371512af9d9bdd27d99b782216b6945",
+ "reference": "3ba905c11371512af9d9bdd27d99b782216b6945",
"shasum": ""
},
"require": {
"php": "^7.2.5 || ^8.0",
- "phpoption/phpoption": "^1.9"
+ "phpoption/phpoption": "^1.9.3"
},
"require-dev": {
- "phpunit/phpunit": "^8.5.28 || ^9.5.21"
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28"
},
- "time": "2022-07-30T15:56:11+00:00",
+ "time": "2024-07-20T21:45:45+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -708,7 +783,7 @@
],
"support": {
"issues": "https://github.com/GrahamCampbell/Result-Type/issues",
- "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.0"
+ "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.3"
},
"funding": [
{
@@ -2393,29 +2468,30 @@
},
{
"name": "laravel/serializable-closure",
- "version": "v1.3.0",
- "version_normalized": "1.3.0.0",
+ "version": "v1.3.7",
+ "version_normalized": "1.3.7.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/serializable-closure.git",
- "reference": "f23fe9d4e95255dacee1bf3525e0810d1a1b0f37"
+ "reference": "4f48ade902b94323ca3be7646db16209ec76be3d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/f23fe9d4e95255dacee1bf3525e0810d1a1b0f37",
- "reference": "f23fe9d4e95255dacee1bf3525e0810d1a1b0f37",
+ "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/4f48ade902b94323ca3be7646db16209ec76be3d",
+ "reference": "4f48ade902b94323ca3be7646db16209ec76be3d",
"shasum": ""
},
"require": {
"php": "^7.3|^8.0"
},
"require-dev": {
- "nesbot/carbon": "^2.61",
+ "illuminate/support": "^8.0|^9.0|^10.0|^11.0",
+ "nesbot/carbon": "^2.61|^3.0",
"pestphp/pest": "^1.21.3",
"phpstan/phpstan": "^1.8.2",
- "symfony/var-dumper": "^5.4.11"
+ "symfony/var-dumper": "^5.4.11|^6.2.0|^7.0.0"
},
- "time": "2023-01-30T18:31:20+00:00",
+ "time": "2024-11-14T18:34:49+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -2456,41 +2532,41 @@
},
{
"name": "mockery/mockery",
- "version": "1.5.1",
- "version_normalized": "1.5.1.0",
+ "version": "1.6.12",
+ "version_normalized": "1.6.12.0",
"source": {
"type": "git",
"url": "https://github.com/mockery/mockery.git",
- "reference": "e92dcc83d5a51851baf5f5591d32cb2b16e3684e"
+ "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/mockery/mockery/zipball/e92dcc83d5a51851baf5f5591d32cb2b16e3684e",
- "reference": "e92dcc83d5a51851baf5f5591d32cb2b16e3684e",
+ "url": "https://api.github.com/repos/mockery/mockery/zipball/1f4efdd7d3beafe9807b08156dfcb176d18f1699",
+ "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699",
"shasum": ""
},
"require": {
"hamcrest/hamcrest-php": "^2.0.1",
"lib-pcre": ">=7.0",
- "php": "^7.3 || ^8.0"
+ "php": ">=7.3"
},
"conflict": {
"phpunit/phpunit": "<8.0"
},
"require-dev": {
- "phpunit/phpunit": "^8.5 || ^9.3"
+ "phpunit/phpunit": "^8.5 || ^9.6.17",
+ "symplify/easy-coding-standard": "^12.1.14"
},
- "time": "2022-09-07T15:32:08+00:00",
+ "time": "2024-05-16T03:13:13+00:00",
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.4.x-dev"
- }
- },
"installation-source": "dist",
"autoload": {
- "psr-0": {
- "Mockery": "library/"
+ "files": [
+ "library/helpers.php",
+ "library/Mockery.php"
+ ],
+ "psr-4": {
+ "Mockery\\": "library/Mockery"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -2501,12 +2577,20 @@
{
"name": "Pádraic Brady",
"email": "padraic.brady@gmail.com",
- "homepage": "http://blog.astrumfutura.com"
+ "homepage": "https://github.com/padraic",
+ "role": "Author"
},
{
"name": "Dave Marshall",
"email": "dave.marshall@atstsolutions.co.uk",
- "homepage": "http://davedevelopment.co.uk"
+ "homepage": "https://davedevelopment.co.uk",
+ "role": "Developer"
+ },
+ {
+ "name": "Nathanael Esayeas",
+ "email": "nathanael.esayeas@protonmail.com",
+ "homepage": "https://github.com/ghostwriter",
+ "role": "Lead Developer"
}
],
"description": "Mockery is a simple yet flexible PHP mock object framework",
@@ -2524,24 +2608,27 @@
"testing"
],
"support": {
+ "docs": "https://docs.mockery.io/",
"issues": "https://github.com/mockery/mockery/issues",
- "source": "https://github.com/mockery/mockery/tree/1.5.1"
+ "rss": "https://github.com/mockery/mockery/releases.atom",
+ "security": "https://github.com/mockery/mockery/security/advisories",
+ "source": "https://github.com/mockery/mockery"
},
"install-path": "../mockery/mockery"
},
{
"name": "monolog/monolog",
- "version": "2.8.0",
- "version_normalized": "2.8.0.0",
+ "version": "2.10.0",
+ "version_normalized": "2.10.0.0",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
- "reference": "720488632c590286b88b80e62aa3d3d551ad4a50"
+ "reference": "5cf826f2991858b54d5c3809bee745560a1042a7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Seldaek/monolog/zipball/720488632c590286b88b80e62aa3d3d551ad4a50",
- "reference": "720488632c590286b88b80e62aa3d3d551ad4a50",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/5cf826f2991858b54d5c3809bee745560a1042a7",
+ "reference": "5cf826f2991858b54d5c3809bee745560a1042a7",
"shasum": ""
},
"require": {
@@ -2556,14 +2643,14 @@
"doctrine/couchdb": "~1.0@dev",
"elasticsearch/elasticsearch": "^7 || ^8",
"ext-json": "*",
- "graylog2/gelf-php": "^1.4.2",
+ "graylog2/gelf-php": "^1.4.2 || ^2@dev",
"guzzlehttp/guzzle": "^7.4",
"guzzlehttp/psr7": "^2.2",
"mongodb/mongodb": "^1.8",
"php-amqplib/php-amqplib": "~2.4 || ^3",
"phpspec/prophecy": "^1.15",
- "phpstan/phpstan": "^0.12.91",
- "phpunit/phpunit": "^8.5.14",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^8.5.38 || ^9.6.19",
"predis/predis": "^1.1 || ^2.0",
"rollbar/rollbar": "^1.3 || ^2 || ^3",
"ruflin/elastica": "^7",
@@ -2587,7 +2674,7 @@
"rollbar/rollbar": "Allow sending log messages to Rollbar",
"ruflin/elastica": "Allow sending log messages to an Elastic Search server"
},
- "time": "2022-07-24T11:55:47+00:00",
+ "time": "2024-11-12T12:43:37+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -2620,7 +2707,7 @@
],
"support": {
"issues": "https://github.com/Seldaek/monolog/issues",
- "source": "https://github.com/Seldaek/monolog/tree/2.8.0"
+ "source": "https://github.com/Seldaek/monolog/tree/2.10.0"
},
"funding": [
{
@@ -2636,17 +2723,17 @@
},
{
"name": "myclabs/deep-copy",
- "version": "1.11.0",
- "version_normalized": "1.11.0.0",
+ "version": "1.12.1",
+ "version_normalized": "1.12.1.0",
"source": {
"type": "git",
"url": "https://github.com/myclabs/DeepCopy.git",
- "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614"
+ "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614",
- "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/123267b2c49fbf30d78a7b2d333f6be754b94845",
+ "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845",
"shasum": ""
},
"require": {
@@ -2654,14 +2741,15 @@
},
"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"
},
- "time": "2022-03-03T13:19:32+00:00",
+ "time": "2024-11-08T17:47:46+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -2686,7 +2774,7 @@
],
"support": {
"issues": "https://github.com/myclabs/DeepCopy/issues",
- "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0"
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.12.1"
},
"funding": [
{
@@ -2698,29 +2786,34 @@
},
{
"name": "nesbot/carbon",
- "version": "2.66.0",
- "version_normalized": "2.66.0.0",
+ "version": "2.72.5",
+ "version_normalized": "2.72.5.0",
"source": {
"type": "git",
"url": "https://github.com/briannesbitt/Carbon.git",
- "reference": "496712849902241f04902033b0441b269effe001"
+ "reference": "afd46589c216118ecd48ff2b95d77596af1e57ed"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/496712849902241f04902033b0441b269effe001",
- "reference": "496712849902241f04902033b0441b269effe001",
+ "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/afd46589c216118ecd48ff2b95d77596af1e57ed",
+ "reference": "afd46589c216118ecd48ff2b95d77596af1e57ed",
"shasum": ""
},
"require": {
+ "carbonphp/carbon-doctrine-types": "*",
"ext-json": "*",
"php": "^7.1.8 || ^8.0",
+ "psr/clock": "^1.0",
"symfony/polyfill-mbstring": "^1.0",
"symfony/polyfill-php80": "^1.16",
"symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0"
},
+ "provide": {
+ "psr/clock-implementation": "1.0"
+ },
"require-dev": {
- "doctrine/dbal": "^2.0 || ^3.1.4",
- "doctrine/orm": "^2.7",
+ "doctrine/dbal": "^2.0 || ^3.1.4 || ^4.0",
+ "doctrine/orm": "^2.7 || ^3.0",
"friendsofphp/php-cs-fixer": "^3.0",
"kylekatarnls/multi-tester": "^2.0",
"ondrejmirtes/better-reflection": "*",
@@ -2731,15 +2824,15 @@
"phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20",
"squizlabs/php_codesniffer": "^3.4"
},
- "time": "2023-01-29T18:53:47+00:00",
+ "time": "2024-06-03T19:18:41+00:00",
"bin": [
"bin/carbon"
],
"type": "library",
"extra": {
"branch-alias": {
- "dev-3.x": "3.x-dev",
- "dev-master": "2.x-dev"
+ "dev-master": "3.x-dev",
+ "dev-2.x": "2.x-dev"
},
"laravel": {
"providers": [
@@ -2856,35 +2949,37 @@
},
{
"name": "nikic/php-parser",
- "version": "v4.15.3",
- "version_normalized": "4.15.3.0",
+ "version": "v5.3.1",
+ "version_normalized": "5.3.1.0",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "570e980a201d8ed0236b0a62ddf2c9cbb2034039"
+ "reference": "8eea230464783aa9671db8eea6f8c6ac5285794b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/570e980a201d8ed0236b0a62ddf2c9cbb2034039",
- "reference": "570e980a201d8ed0236b0a62ddf2c9cbb2034039",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/8eea230464783aa9671db8eea6f8c6ac5285794b",
+ "reference": "8eea230464783aa9671db8eea6f8c6ac5285794b",
"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": "^9.0"
},
- "time": "2023-01-16T22:05:37+00:00",
+ "time": "2024-10-08T18:51:32+00:00",
"bin": [
"bin/php-parse"
],
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.9-dev"
+ "dev-master": "5.0-dev"
}
},
"installation-source": "dist",
@@ -2909,7 +3004,7 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.3"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v5.3.1"
},
"install-path": "../nikic/php-parser"
},
@@ -2983,27 +3078,28 @@
},
{
"name": "phar-io/manifest",
- "version": "2.0.3",
- "version_normalized": "2.0.3.0",
+ "version": "2.0.4",
+ "version_normalized": "2.0.4.0",
"source": {
"type": "git",
"url": "https://github.com/phar-io/manifest.git",
- "reference": "97803eca37d319dfa7826cc2437fc020857acb53"
+ "reference": "54750ef60c58e43759730615a392c31c80e23176"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53",
- "reference": "97803eca37d319dfa7826cc2437fc020857acb53",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176",
+ "reference": "54750ef60c58e43759730615a392c31c80e23176",
"shasum": ""
},
"require": {
"ext-dom": "*",
+ "ext-libxml": "*",
"ext-phar": "*",
"ext-xmlwriter": "*",
"phar-io/version": "^3.0.1",
"php": "^7.2 || ^8.0"
},
- "time": "2021-07-20T11:28:43+00:00",
+ "time": "2024-03-03T12:33:53+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -3040,8 +3136,14 @@
"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/2.0.3"
+ "source": "https://github.com/phar-io/manifest/tree/2.0.4"
},
+ "funding": [
+ {
+ "url": "https://github.com/theseer",
+ "type": "github"
+ }
+ ],
"install-path": "../phar-io/manifest"
},
{
@@ -3100,32 +3202,32 @@
},
{
"name": "phpoption/phpoption",
- "version": "1.9.0",
- "version_normalized": "1.9.0.0",
+ "version": "1.9.3",
+ "version_normalized": "1.9.3.0",
"source": {
"type": "git",
"url": "https://github.com/schmittjoh/php-option.git",
- "reference": "dc5ff11e274a90cc1c743f66c9ad700ce50db9ab"
+ "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/dc5ff11e274a90cc1c743f66c9ad700ce50db9ab",
- "reference": "dc5ff11e274a90cc1c743f66c9ad700ce50db9ab",
+ "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/e3fac8b24f56113f7cb96af14958c0dd16330f54",
+ "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54",
"shasum": ""
},
"require": {
"php": "^7.2.5 || ^8.0"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.8",
- "phpunit/phpunit": "^8.5.28 || ^9.5.21"
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28"
},
- "time": "2022-07-30T15:51:26+00:00",
+ "time": "2024-07-20T21:41:07+00:00",
"type": "library",
"extra": {
"bamarni-bin": {
"bin-links": true,
- "forward-command": true
+ "forward-command": false
},
"branch-alias": {
"dev-master": "1.9-dev"
@@ -3162,7 +3264,7 @@
],
"support": {
"issues": "https://github.com/schmittjoh/php-option/issues",
- "source": "https://github.com/schmittjoh/php-option/tree/1.9.0"
+ "source": "https://github.com/schmittjoh/php-option/tree/1.9.3"
},
"funding": [
{
@@ -3178,46 +3280,46 @@
},
{
"name": "phpunit/php-code-coverage",
- "version": "9.2.24",
- "version_normalized": "9.2.24.0",
+ "version": "9.2.32",
+ "version_normalized": "9.2.32.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "2cf940ebc6355a9d430462811b5aaa308b174bed"
+ "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2cf940ebc6355a9d430462811b5aaa308b174bed",
- "reference": "2cf940ebc6355a9d430462811b5aaa308b174bed",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/85402a822d1ecf1db1096959413d35e1c37cf1a5",
+ "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-libxml": "*",
"ext-xmlwriter": "*",
- "nikic/php-parser": "^4.14",
+ "nikic/php-parser": "^4.19.1 || ^5.1.0",
"php": ">=7.3",
- "phpunit/php-file-iterator": "^3.0.3",
- "phpunit/php-text-template": "^2.0.2",
- "sebastian/code-unit-reverse-lookup": "^2.0.2",
- "sebastian/complexity": "^2.0",
- "sebastian/environment": "^5.1.2",
- "sebastian/lines-of-code": "^1.0.3",
- "sebastian/version": "^3.0.1",
- "theseer/tokenizer": "^1.2.0"
+ "phpunit/php-file-iterator": "^3.0.6",
+ "phpunit/php-text-template": "^2.0.4",
+ "sebastian/code-unit-reverse-lookup": "^2.0.3",
+ "sebastian/complexity": "^2.0.3",
+ "sebastian/environment": "^5.1.5",
+ "sebastian/lines-of-code": "^1.0.4",
+ "sebastian/version": "^3.0.2",
+ "theseer/tokenizer": "^1.2.3"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^9.6"
},
"suggest": {
- "ext-pcov": "*",
- "ext-xdebug": "*"
+ "ext-pcov": "PHP extension that provides line coverage",
+ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
},
- "time": "2023-01-26T08:26:55+00:00",
+ "time": "2024-08-22T04:23:01+00:00",
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "9.2-dev"
+ "dev-main": "9.2.x-dev"
}
},
"installation-source": "dist",
@@ -3246,7 +3348,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.24"
+ "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.32"
},
"funding": [
{
@@ -3511,53 +3614,53 @@
},
{
"name": "phpunit/phpunit",
- "version": "9.6.0",
- "version_normalized": "9.6.0.0",
+ "version": "9.6.22",
+ "version_normalized": "9.6.22.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "70fc8be1d0b9fad56a199a4df5f9cfabfc246f84"
+ "reference": "f80235cb4d3caa59ae09be3adf1ded27521d1a9c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/70fc8be1d0b9fad56a199a4df5f9cfabfc246f84",
- "reference": "70fc8be1d0b9fad56a199a4df5f9cfabfc246f84",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f80235cb4d3caa59ae09be3adf1ded27521d1a9c",
+ "reference": "f80235cb4d3caa59ae09be3adf1ded27521d1a9c",
"shasum": ""
},
"require": {
- "doctrine/instantiator": "^1.3.1 || ^2",
+ "doctrine/instantiator": "^1.5.0 || ^2",
"ext-dom": "*",
"ext-json": "*",
"ext-libxml": "*",
"ext-mbstring": "*",
"ext-xml": "*",
"ext-xmlwriter": "*",
- "myclabs/deep-copy": "^1.10.1",
- "phar-io/manifest": "^2.0.3",
- "phar-io/version": "^3.0.2",
+ "myclabs/deep-copy": "^1.12.1",
+ "phar-io/manifest": "^2.0.4",
+ "phar-io/version": "^3.2.1",
"php": ">=7.3",
- "phpunit/php-code-coverage": "^9.2.13",
- "phpunit/php-file-iterator": "^3.0.5",
+ "phpunit/php-code-coverage": "^9.2.32",
+ "phpunit/php-file-iterator": "^3.0.6",
"phpunit/php-invoker": "^3.1.1",
- "phpunit/php-text-template": "^2.0.3",
- "phpunit/php-timer": "^5.0.2",
- "sebastian/cli-parser": "^1.0.1",
- "sebastian/code-unit": "^1.0.6",
+ "phpunit/php-text-template": "^2.0.4",
+ "phpunit/php-timer": "^5.0.3",
+ "sebastian/cli-parser": "^1.0.2",
+ "sebastian/code-unit": "^1.0.8",
"sebastian/comparator": "^4.0.8",
- "sebastian/diff": "^4.0.3",
- "sebastian/environment": "^5.1.3",
- "sebastian/exporter": "^4.0.5",
- "sebastian/global-state": "^5.0.1",
- "sebastian/object-enumerator": "^4.0.3",
- "sebastian/resource-operations": "^3.0.3",
- "sebastian/type": "^3.2",
+ "sebastian/diff": "^4.0.6",
+ "sebastian/environment": "^5.1.5",
+ "sebastian/exporter": "^4.0.6",
+ "sebastian/global-state": "^5.0.7",
+ "sebastian/object-enumerator": "^4.0.4",
+ "sebastian/resource-operations": "^3.0.4",
+ "sebastian/type": "^3.2.1",
"sebastian/version": "^3.0.2"
},
"suggest": {
- "ext-soap": "*",
- "ext-xdebug": "*"
+ "ext-soap": "To be able to generate mocks based on WSDL files",
+ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
},
- "time": "2023-02-03T07:32:24+00:00",
+ "time": "2024-12-05T13:48:26+00:00",
"bin": [
"phpunit"
],
@@ -3596,7 +3699,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.0"
+ "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.22"
},
"funding": [
{
@@ -3666,6 +3770,57 @@
},
"install-path": "../psr/cache"
},
+ {
+ "name": "psr/clock",
+ "version": "1.0.0",
+ "version_normalized": "1.0.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/clock.git",
+ "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d",
+ "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0 || ^8.0"
+ },
+ "time": "2022-11-25T14:36:26+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Psr\\Clock\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for reading the clock.",
+ "homepage": "https://github.com/php-fig/clock",
+ "keywords": [
+ "clock",
+ "now",
+ "psr",
+ "psr-20",
+ "time"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/clock/issues",
+ "source": "https://github.com/php-fig/clock/tree/1.0.0"
+ },
+ "install-path": "../psr/clock"
+ },
{
"name": "psr/container",
"version": "1.1.2",
@@ -3879,22 +4034,21 @@
},
{
"name": "ramsey/collection",
- "version": "1.3.0",
- "version_normalized": "1.3.0.0",
+ "version": "2.0.0",
+ "version_normalized": "2.0.0.0",
"source": {
"type": "git",
"url": "https://github.com/ramsey/collection.git",
- "reference": "ad7475d1c9e70b190ecffc58f2d989416af339b4"
+ "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ramsey/collection/zipball/ad7475d1c9e70b190ecffc58f2d989416af339b4",
- "reference": "ad7475d1c9e70b190ecffc58f2d989416af339b4",
+ "url": "https://api.github.com/repos/ramsey/collection/zipball/a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5",
+ "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5",
"shasum": ""
},
"require": {
- "php": "^7.4 || ^8.0",
- "symfony/polyfill-php81": "^1.23"
+ "php": "^8.1"
},
"require-dev": {
"captainhook/plugin-composer": "^5.3",
@@ -3918,7 +4072,7 @@
"ramsey/conventional-commits": "^1.3",
"vimeo/psalm": "^5.4"
},
- "time": "2022-12-27T19:12:24+00:00",
+ "time": "2022-12-31T21:50:55+00:00",
"type": "library",
"extra": {
"captainhook": {
@@ -3956,7 +4110,7 @@
],
"support": {
"issues": "https://github.com/ramsey/collection/issues",
- "source": "https://github.com/ramsey/collection/tree/1.3.0"
+ "source": "https://github.com/ramsey/collection/tree/2.0.0"
},
"funding": [
{
@@ -3972,21 +4126,21 @@
},
{
"name": "ramsey/uuid",
- "version": "4.7.3",
- "version_normalized": "4.7.3.0",
+ "version": "4.7.6",
+ "version_normalized": "4.7.6.0",
"source": {
"type": "git",
"url": "https://github.com/ramsey/uuid.git",
- "reference": "433b2014e3979047db08a17a205f410ba3869cf2"
+ "reference": "91039bc1faa45ba123c4328958e620d382ec7088"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ramsey/uuid/zipball/433b2014e3979047db08a17a205f410ba3869cf2",
- "reference": "433b2014e3979047db08a17a205f410ba3869cf2",
+ "url": "https://api.github.com/repos/ramsey/uuid/zipball/91039bc1faa45ba123c4328958e620d382ec7088",
+ "reference": "91039bc1faa45ba123c4328958e620d382ec7088",
"shasum": ""
},
"require": {
- "brick/math": "^0.8.8 || ^0.9 || ^0.10",
+ "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12",
"ext-json": "*",
"php": "^8.0",
"ramsey/collection": "^1.2 || ^2.0"
@@ -4023,7 +4177,7 @@
"paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
"ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type."
},
- "time": "2023-01-12T18:13:24+00:00",
+ "time": "2024-04-27T21:32:50+00:00",
"type": "library",
"extra": {
"captainhook": {
@@ -4051,7 +4205,7 @@
],
"support": {
"issues": "https://github.com/ramsey/uuid/issues",
- "source": "https://github.com/ramsey/uuid/tree/4.7.3"
+ "source": "https://github.com/ramsey/uuid/tree/4.7.6"
},
"funding": [
{
@@ -4067,17 +4221,17 @@
},
{
"name": "sebastian/cli-parser",
- "version": "1.0.1",
- "version_normalized": "1.0.1.0",
+ "version": "1.0.2",
+ "version_normalized": "1.0.2.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/cli-parser.git",
- "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2"
+ "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2",
- "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b",
+ "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b",
"shasum": ""
},
"require": {
@@ -4086,7 +4240,7 @@
"require-dev": {
"phpunit/phpunit": "^9.3"
},
- "time": "2020-09-28T06:08:49+00:00",
+ "time": "2024-03-02T06:27:43+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -4114,7 +4268,7 @@
"homepage": "https://github.com/sebastianbergmann/cli-parser",
"support": {
"issues": "https://github.com/sebastianbergmann/cli-parser/issues",
- "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1"
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.2"
},
"funding": [
{
@@ -4320,27 +4474,27 @@
},
{
"name": "sebastian/complexity",
- "version": "2.0.2",
- "version_normalized": "2.0.2.0",
+ "version": "2.0.3",
+ "version_normalized": "2.0.3.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/complexity.git",
- "reference": "739b35e53379900cc9ac327b2147867b8b6efd88"
+ "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88",
- "reference": "739b35e53379900cc9ac327b2147867b8b6efd88",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a",
+ "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.7",
+ "nikic/php-parser": "^4.18 || ^5.0",
"php": ">=7.3"
},
"require-dev": {
"phpunit/phpunit": "^9.3"
},
- "time": "2020-10-26T15:52:27+00:00",
+ "time": "2023-12-22T06:19:30+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -4368,7 +4522,7 @@
"homepage": "https://github.com/sebastianbergmann/complexity",
"support": {
"issues": "https://github.com/sebastianbergmann/complexity/issues",
- "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2"
+ "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3"
},
"funding": [
{
@@ -4380,17 +4534,17 @@
},
{
"name": "sebastian/diff",
- "version": "4.0.4",
- "version_normalized": "4.0.4.0",
+ "version": "4.0.6",
+ "version_normalized": "4.0.6.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d"
+ "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d",
- "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc",
+ "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc",
"shasum": ""
},
"require": {
@@ -4400,7 +4554,7 @@
"phpunit/phpunit": "^9.3",
"symfony/process": "^4.2 || ^5"
},
- "time": "2020-10-26T13:10:38+00:00",
+ "time": "2024-03-02T06:30:58+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -4437,7 +4591,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/diff/issues",
- "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4"
+ "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6"
},
"funding": [
{
@@ -4515,17 +4669,17 @@
},
{
"name": "sebastian/exporter",
- "version": "4.0.5",
- "version_normalized": "4.0.5.0",
+ "version": "4.0.6",
+ "version_normalized": "4.0.6.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d"
+ "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
- "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72",
+ "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72",
"shasum": ""
},
"require": {
@@ -4536,7 +4690,7 @@
"ext-mbstring": "*",
"phpunit/phpunit": "^9.3"
},
- "time": "2022-09-14T06:03:37+00:00",
+ "time": "2024-03-02T06:33:00+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -4583,7 +4737,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
- "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5"
+ "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6"
},
"funding": [
{
@@ -4595,17 +4749,17 @@
},
{
"name": "sebastian/global-state",
- "version": "5.0.5",
- "version_normalized": "5.0.5.0",
+ "version": "5.0.7",
+ "version_normalized": "5.0.7.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2"
+ "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2",
- "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9",
+ "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9",
"shasum": ""
},
"require": {
@@ -4620,7 +4774,7 @@
"suggest": {
"ext-uopz": "*"
},
- "time": "2022-02-14T08:28:10+00:00",
+ "time": "2024-03-02T06:35:11+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -4650,7 +4804,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/global-state/issues",
- "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5"
+ "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.7"
},
"funding": [
{
@@ -4662,27 +4816,27 @@
},
{
"name": "sebastian/lines-of-code",
- "version": "1.0.3",
- "version_normalized": "1.0.3.0",
+ "version": "1.0.4",
+ "version_normalized": "1.0.4.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/lines-of-code.git",
- "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc"
+ "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc",
- "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5",
+ "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.6",
+ "nikic/php-parser": "^4.18 || ^5.0",
"php": ">=7.3"
},
"require-dev": {
"phpunit/phpunit": "^9.3"
},
- "time": "2020-11-28T06:42:11+00:00",
+ "time": "2023-12-22T06:20:34+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -4710,7 +4864,7 @@
"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/1.0.3"
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4"
},
"funding": [
{
@@ -4906,17 +5060,17 @@
},
{
"name": "sebastian/resource-operations",
- "version": "3.0.3",
- "version_normalized": "3.0.3.0",
+ "version": "3.0.4",
+ "version_normalized": "3.0.4.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/resource-operations.git",
- "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8"
+ "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
- "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
+ "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/05d5692a7993ecccd56a03e40cd7e5b09b1d404e",
+ "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e",
"shasum": ""
},
"require": {
@@ -4925,11 +5079,11 @@
"require-dev": {
"phpunit/phpunit": "^9.0"
},
- "time": "2020-09-28T06:45:17+00:00",
+ "time": "2024-03-14T16:00:52+00:00",
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0-dev"
+ "dev-main": "3.0-dev"
}
},
"installation-source": "dist",
@@ -4951,8 +5105,7 @@
"description": "Provides a list of PHP built-in functions that operate on resources",
"homepage": "https://www.github.com/sebastianbergmann/resource-operations",
"support": {
- "issues": "https://github.com/sebastianbergmann/resource-operations/issues",
- "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3"
+ "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.4"
},
"funding": [
{
@@ -5143,17 +5296,17 @@
},
{
"name": "symfony/console",
- "version": "v5.4.19",
- "version_normalized": "5.4.19.0",
+ "version": "v5.4.47",
+ "version_normalized": "5.4.47.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "dccb8d251a9017d5994c988b034d3e18aaabf740"
+ "reference": "c4ba980ca61a9eb18ee6bcc73f28e475852bb1ed"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/dccb8d251a9017d5994c988b034d3e18aaabf740",
- "reference": "dccb8d251a9017d5994c988b034d3e18aaabf740",
+ "url": "https://api.github.com/repos/symfony/console/zipball/c4ba980ca61a9eb18ee6bcc73f28e475852bb1ed",
+ "reference": "c4ba980ca61a9eb18ee6bcc73f28e475852bb1ed",
"shasum": ""
},
"require": {
@@ -5191,7 +5344,7 @@
"symfony/lock": "",
"symfony/process": ""
},
- "time": "2023-01-01T08:32:19+00:00",
+ "time": "2024-11-06T11:30:55+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -5220,12 +5373,12 @@
"homepage": "https://symfony.com",
"keywords": [
"cli",
- "command line",
+ "command-line",
"console",
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v5.4.19"
+ "source": "https://github.com/symfony/console/tree/v5.4.47"
},
"funding": [
{
@@ -5245,27 +5398,27 @@
},
{
"name": "symfony/deprecation-contracts",
- "version": "v3.0.2",
- "version_normalized": "3.0.2.0",
+ "version": "v3.5.1",
+ "version_normalized": "3.5.1.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c"
+ "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/26954b3d62a6c5fd0ea8a2a00c0353a14978d05c",
- "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
+ "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
"shasum": ""
},
"require": {
- "php": ">=8.0.2"
+ "php": ">=8.1"
},
- "time": "2022-01-02T09:55:41+00:00",
+ "time": "2024-09-25T14:20:29+00:00",
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.0-dev"
+ "dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -5295,7 +5448,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.0.2"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -5315,17 +5468,17 @@
},
{
"name": "symfony/error-handler",
- "version": "v5.4.19",
- "version_normalized": "5.4.19.0",
+ "version": "v5.4.46",
+ "version_normalized": "5.4.46.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
- "reference": "438ef3e5e6481244785da3ce8cf8f4e74e7f2822"
+ "reference": "d19ede7a2cafb386be9486c580649d0f9e3d0363"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/error-handler/zipball/438ef3e5e6481244785da3ce8cf8f4e74e7f2822",
- "reference": "438ef3e5e6481244785da3ce8cf8f4e74e7f2822",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/d19ede7a2cafb386be9486c580649d0f9e3d0363",
+ "reference": "d19ede7a2cafb386be9486c580649d0f9e3d0363",
"shasum": ""
},
"require": {
@@ -5338,7 +5491,7 @@
"symfony/http-kernel": "^4.4|^5.0|^6.0",
"symfony/serializer": "^4.4|^5.0|^6.0"
},
- "time": "2023-01-01T08:32:19+00:00",
+ "time": "2024-11-05T14:17:06+00:00",
"bin": [
"Resources/bin/patch-type-declarations"
],
@@ -5369,7 +5522,7 @@
"description": "Provides tools to manage errors and ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/error-handler/tree/v5.4.19"
+ "source": "https://github.com/symfony/error-handler/tree/v5.4.46"
},
"funding": [
{
@@ -5389,25 +5542,26 @@
},
{
"name": "symfony/event-dispatcher",
- "version": "v6.0.19",
- "version_normalized": "6.0.19.0",
+ "version": "v6.4.13",
+ "version_normalized": "6.4.13.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "2eaf8e63bc5b8cefabd4a800157f0d0c094f677a"
+ "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/2eaf8e63bc5b8cefabd4a800157f0d0c094f677a",
- "reference": "2eaf8e63bc5b8cefabd4a800157f0d0c094f677a",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e",
+ "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
- "symfony/event-dispatcher-contracts": "^2|^3"
+ "php": ">=8.1",
+ "symfony/event-dispatcher-contracts": "^2.5|^3"
},
"conflict": {
- "symfony/dependency-injection": "<5.4"
+ "symfony/dependency-injection": "<5.4",
+ "symfony/service-contracts": "<2.5"
},
"provide": {
"psr/event-dispatcher-implementation": "1.0",
@@ -5415,19 +5569,15 @@
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/http-foundation": "^5.4|^6.0",
- "symfony/service-contracts": "^1.1|^2|^3",
- "symfony/stopwatch": "^5.4|^6.0"
- },
- "suggest": {
- "symfony/dependency-injection": "",
- "symfony/http-kernel": ""
- },
- "time": "2023-01-01T08:36:10+00:00",
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/error-handler": "^5.4|^6.0|^7.0",
+ "symfony/expression-language": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^5.4|^6.0|^7.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/stopwatch": "^5.4|^6.0|^7.0"
+ },
+ "time": "2024-09-25T14:18:03+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -5455,7 +5605,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v6.0.19"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.13"
},
"funding": [
{
@@ -5475,31 +5625,28 @@
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v3.0.2",
- "version_normalized": "3.0.2.0",
+ "version": "v3.5.1",
+ "version_normalized": "3.5.1.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "7bc61cc2db649b4637d331240c5346dcc7708051"
+ "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7bc61cc2db649b4637d331240c5346dcc7708051",
- "reference": "7bc61cc2db649b4637d331240c5346dcc7708051",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7642f5e970b672283b7823222ae8ef8bbc160b9f",
+ "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
+ "php": ">=8.1",
"psr/event-dispatcher": "^1"
},
- "suggest": {
- "symfony/event-dispatcher-implementation": ""
- },
- "time": "2022-01-02T09:55:41+00:00",
+ "time": "2024-09-25T14:20:29+00:00",
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.0-dev"
+ "dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -5537,7 +5684,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.0.2"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -5557,17 +5704,17 @@
},
{
"name": "symfony/finder",
- "version": "v5.4.19",
- "version_normalized": "5.4.19.0",
+ "version": "v5.4.45",
+ "version_normalized": "5.4.45.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "6071aebf810ad13fe8200c224f36103abb37cf1f"
+ "reference": "63741784cd7b9967975eec610b256eed3ede022b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/6071aebf810ad13fe8200c224f36103abb37cf1f",
- "reference": "6071aebf810ad13fe8200c224f36103abb37cf1f",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/63741784cd7b9967975eec610b256eed3ede022b",
+ "reference": "63741784cd7b9967975eec610b256eed3ede022b",
"shasum": ""
},
"require": {
@@ -5575,7 +5722,7 @@
"symfony/deprecation-contracts": "^2.1|^3",
"symfony/polyfill-php80": "^1.16"
},
- "time": "2023-01-14T19:14:44+00:00",
+ "time": "2024-09-28T13:32:08+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -5603,7 +5750,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v5.4.19"
+ "source": "https://github.com/symfony/finder/tree/v5.4.45"
},
"funding": [
{
@@ -5623,17 +5770,17 @@
},
{
"name": "symfony/http-foundation",
- "version": "v5.4.20",
- "version_normalized": "5.4.20.0",
+ "version": "v5.4.48",
+ "version_normalized": "5.4.48.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "d0435363362a47c14e9cf50663cb8ffbf491875a"
+ "reference": "3f38b8af283b830e1363acd79e5bc3412d055341"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d0435363362a47c14e9cf50663cb8ffbf491875a",
- "reference": "d0435363362a47c14e9cf50663cb8ffbf491875a",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/3f38b8af283b830e1363acd79e5bc3412d055341",
+ "reference": "3f38b8af283b830e1363acd79e5bc3412d055341",
"shasum": ""
},
"require": {
@@ -5643,7 +5790,7 @@
"symfony/polyfill-php80": "^1.16"
},
"require-dev": {
- "predis/predis": "~1.0",
+ "predis/predis": "^1.0|^2.0",
"symfony/cache": "^4.4|^5.0|^6.0",
"symfony/dependency-injection": "^5.4|^6.0",
"symfony/expression-language": "^4.4|^5.0|^6.0",
@@ -5654,7 +5801,7 @@
"suggest": {
"symfony/mime": "To use the file extension guesser"
},
- "time": "2023-01-29T11:11:52+00:00",
+ "time": "2024-11-13T18:58:02+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -5682,7 +5829,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-foundation/tree/v5.4.20"
+ "source": "https://github.com/symfony/http-foundation/tree/v5.4.48"
},
"funding": [
{
@@ -5817,17 +5964,17 @@
},
{
"name": "symfony/mime",
- "version": "v5.4.19",
- "version_normalized": "5.4.19.0",
+ "version": "v5.4.45",
+ "version_normalized": "5.4.45.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
- "reference": "a858429a9c704edc53fe057228cf9ca282ba48eb"
+ "reference": "8c1b9b3e5b52981551fc6044539af1d974e39064"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/a858429a9c704edc53fe057228cf9ca282ba48eb",
- "reference": "a858429a9c704edc53fe057228cf9ca282ba48eb",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/8c1b9b3e5b52981551fc6044539af1d974e39064",
+ "reference": "8c1b9b3e5b52981551fc6044539af1d974e39064",
"shasum": ""
},
"require": {
@@ -5842,17 +5989,18 @@
"phpdocumentor/reflection-docblock": "<3.2.2",
"phpdocumentor/type-resolver": "<1.4.0",
"symfony/mailer": "<4.4",
- "symfony/serializer": "<5.4.14|>=6.0,<6.0.14|>=6.1,<6.1.6"
+ "symfony/serializer": "<5.4.35|>=6,<6.3.12|>=6.4,<6.4.3"
},
"require-dev": {
"egulias/email-validator": "^2.1.10|^3.1|^4",
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
"symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/process": "^5.4|^6.4",
"symfony/property-access": "^4.4|^5.1|^6.0",
"symfony/property-info": "^4.4|^5.1|^6.0",
- "symfony/serializer": "^5.4.14|~6.0.14|^6.1.6"
+ "symfony/serializer": "^5.4.35|~6.3.12|^6.4.3"
},
- "time": "2023-01-09T05:43:46+00:00",
+ "time": "2024-10-23T20:18:32+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -5884,7 +6032,7 @@
"mime-type"
],
"support": {
- "source": "https://github.com/symfony/mime/tree/v5.4.19"
+ "source": "https://github.com/symfony/mime/tree/v5.4.45"
},
"funding": [
{
@@ -5904,21 +6052,21 @@
},
{
"name": "symfony/polyfill-ctype",
- "version": "v1.27.0",
- "version_normalized": "1.27.0.0",
+ "version": "v1.31.0",
+ "version_normalized": "1.31.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "5bbc823adecdae860bb64756d639ecfec17b050a"
+ "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a",
- "reference": "5bbc823adecdae860bb64756d639ecfec17b050a",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638",
+ "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"provide": {
"ext-ctype": "*"
@@ -5926,15 +6074,12 @@
"suggest": {
"ext-ctype": "For best performance"
},
- "time": "2022-11-03T14:55:06+00:00",
+ "time": "2024-09-09T11:45:10+00:00",
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"installation-source": "dist",
@@ -5969,7 +6114,7 @@
"portable"
],
"support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0"
},
"funding": [
{
@@ -5989,34 +6134,31 @@
},
{
"name": "symfony/polyfill-intl-grapheme",
- "version": "v1.27.0",
- "version_normalized": "1.27.0.0",
+ "version": "v1.31.0",
+ "version_normalized": "1.31.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "511a08c03c1960e08a883f4cffcacd219b758354"
+ "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354",
- "reference": "511a08c03c1960e08a883f4cffcacd219b758354",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
+ "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"suggest": {
"ext-intl": "For best performance"
},
- "time": "2022-11-03T14:55:06+00:00",
+ "time": "2024-09-09T11:45:10+00:00",
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"installation-source": "dist",
@@ -6053,7 +6195,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0"
},
"funding": [
{
@@ -6073,33 +6215,29 @@
},
{
"name": "symfony/polyfill-intl-idn",
- "version": "v1.27.0",
- "version_normalized": "1.27.0.0",
+ "version": "v1.31.0",
+ "version_normalized": "1.31.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-idn.git",
- "reference": "639084e360537a19f9ee352433b84ce831f3d2da"
+ "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da",
- "reference": "639084e360537a19f9ee352433b84ce831f3d2da",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/c36586dcf89a12315939e00ec9b4474adcb1d773",
+ "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773",
"shasum": ""
},
"require": {
- "php": ">=7.1",
- "symfony/polyfill-intl-normalizer": "^1.10",
- "symfony/polyfill-php72": "^1.10"
+ "php": ">=7.2",
+ "symfony/polyfill-intl-normalizer": "^1.10"
},
"suggest": {
"ext-intl": "For best performance"
},
- "time": "2022-11-03T14:55:06+00:00",
+ "time": "2024-09-09T11:45:10+00:00",
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -6143,7 +6281,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.31.0"
},
"funding": [
{
@@ -6163,34 +6301,31 @@
},
{
"name": "symfony/polyfill-intl-normalizer",
- "version": "v1.27.0",
- "version_normalized": "1.27.0.0",
+ "version": "v1.31.0",
+ "version_normalized": "1.31.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6"
+ "reference": "3833d7255cc303546435cb650316bff708a1c75c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6",
- "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c",
+ "reference": "3833d7255cc303546435cb650316bff708a1c75c",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"suggest": {
"ext-intl": "For best performance"
},
- "time": "2022-11-03T14:55:06+00:00",
+ "time": "2024-09-09T11:45:10+00:00",
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"installation-source": "dist",
@@ -6230,7 +6365,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0"
},
"funding": [
{
@@ -6250,21 +6385,21 @@
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.27.0",
- "version_normalized": "1.27.0.0",
+ "version": "v1.31.0",
+ "version_normalized": "1.31.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534"
+ "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
- "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341",
+ "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"provide": {
"ext-mbstring": "*"
@@ -6272,12 +6407,9 @@
"suggest": {
"ext-mbstring": "For best performance"
},
- "time": "2022-11-03T14:55:06+00:00",
+ "time": "2024-09-09T11:45:10+00:00",
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -6316,7 +6448,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0"
},
"funding": [
{
@@ -6334,112 +6466,30 @@
],
"install-path": "../symfony/polyfill-mbstring"
},
- {
- "name": "symfony/polyfill-php72",
- "version": "v1.27.0",
- "version_normalized": "1.27.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php72.git",
- "reference": "869329b1e9894268a8a61dabb69153029b7a8c97"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/869329b1e9894268a8a61dabb69153029b7a8c97",
- "reference": "869329b1e9894268a8a61dabb69153029b7a8c97",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "time": "2022-11-03T14:55:06+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Php72\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-php72/tree/v1.27.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "install-path": "../symfony/polyfill-php72"
- },
{
"name": "symfony/polyfill-php73",
- "version": "v1.27.0",
- "version_normalized": "1.27.0.0",
+ "version": "v1.31.0",
+ "version_normalized": "1.31.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php73.git",
- "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9"
+ "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9",
- "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9",
+ "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/0f68c03565dcaaf25a890667542e8bd75fe7e5bb",
+ "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
- "time": "2022-11-03T14:55:06+00:00",
+ "time": "2024-09-09T11:45:10+00:00",
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"installation-source": "dist",
@@ -6477,7 +6527,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php73/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-php73/tree/v1.31.0"
},
"funding": [
{
@@ -6497,31 +6547,28 @@
},
{
"name": "symfony/polyfill-php80",
- "version": "v1.27.0",
- "version_normalized": "1.27.0.0",
+ "version": "v1.31.0",
+ "version_normalized": "1.31.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936"
+ "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
- "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
+ "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
- "time": "2022-11-03T14:55:06+00:00",
+ "time": "2024-09-09T11:45:10+00:00",
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"installation-source": "dist",
@@ -6563,7 +6610,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0"
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0"
},
"funding": [
{
@@ -6581,108 +6628,26 @@
],
"install-path": "../symfony/polyfill-php80"
},
- {
- "name": "symfony/polyfill-php81",
- "version": "v1.27.0",
- "version_normalized": "1.27.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php81.git",
- "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a",
- "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "time": "2022-11-03T14:55:06+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Php81\\": ""
- },
- "classmap": [
- "Resources/stubs"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "install-path": "../symfony/polyfill-php81"
- },
{
"name": "symfony/process",
- "version": "v5.4.19",
- "version_normalized": "5.4.19.0",
+ "version": "v5.4.47",
+ "version_normalized": "5.4.47.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "c5ba874c9b636dbccf761e22ce750e88ec3f55e1"
+ "reference": "5d1662fb32ebc94f17ddb8d635454a776066733d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/c5ba874c9b636dbccf761e22ce750e88ec3f55e1",
- "reference": "c5ba874c9b636dbccf761e22ce750e88ec3f55e1",
+ "url": "https://api.github.com/repos/symfony/process/zipball/5d1662fb32ebc94f17ddb8d635454a776066733d",
+ "reference": "5d1662fb32ebc94f17ddb8d635454a776066733d",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
"symfony/polyfill-php80": "^1.16"
},
- "time": "2023-01-01T08:32:19+00:00",
+ "time": "2024-11-06T11:36:42+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -6710,7 +6675,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v5.4.19"
+ "source": "https://github.com/symfony/process/tree/v5.4.47"
},
"funding": [
{
@@ -6730,35 +6695,32 @@
},
{
"name": "symfony/service-contracts",
- "version": "v2.5.2",
- "version_normalized": "2.5.2.0",
+ "version": "v3.5.1",
+ "version_normalized": "3.5.1.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c"
+ "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
- "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e53260aabf78fb3d63f8d79d69ece59f80d5eda0",
+ "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "psr/container": "^1.1",
- "symfony/deprecation-contracts": "^2.1|^3"
+ "php": ">=8.1",
+ "psr/container": "^1.1|^2.0",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
"conflict": {
"ext-psr": "<1.1|>=2"
},
- "suggest": {
- "symfony/service-implementation": ""
- },
- "time": "2022-05-30T19:17:29+00:00",
+ "time": "2024-09-25T14:20:29+00:00",
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.5-dev"
+ "dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -6769,7 +6731,10 @@
"autoload": {
"psr-4": {
"Symfony\\Contracts\\Service\\": ""
- }
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -6796,7 +6761,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v2.5.2"
+ "source": "https://github.com/symfony/service-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -6816,36 +6781,37 @@
},
{
"name": "symfony/string",
- "version": "v6.0.19",
- "version_normalized": "6.0.19.0",
+ "version": "v6.4.15",
+ "version_normalized": "6.4.15.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a"
+ "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/d9e72497367c23e08bf94176d2be45b00a9d232a",
- "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a",
+ "url": "https://api.github.com/repos/symfony/string/zipball/73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f",
+ "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
+ "php": ">=8.1",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-intl-grapheme": "~1.0",
"symfony/polyfill-intl-normalizer": "~1.0",
"symfony/polyfill-mbstring": "~1.0"
},
"conflict": {
- "symfony/translation-contracts": "<2.0"
+ "symfony/translation-contracts": "<2.5"
},
"require-dev": {
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/http-client": "^5.4|^6.0",
- "symfony/translation-contracts": "^2.0|^3.0",
- "symfony/var-exporter": "^5.4|^6.0"
+ "symfony/error-handler": "^5.4|^6.0|^7.0",
+ "symfony/http-client": "^5.4|^6.0|^7.0",
+ "symfony/intl": "^6.2|^7.0",
+ "symfony/translation-contracts": "^2.5|^3.0",
+ "symfony/var-exporter": "^5.4|^6.0|^7.0"
},
- "time": "2023-01-01T08:36:10+00:00",
+ "time": "2024-11-13T13:31:12+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -6884,7 +6850,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v6.0.19"
+ "source": "https://github.com/symfony/string/tree/v6.4.15"
},
"funding": [
{
@@ -6904,29 +6870,32 @@
},
{
"name": "symfony/translation",
- "version": "v6.0.19",
- "version_normalized": "6.0.19.0",
+ "version": "v6.4.13",
+ "version_normalized": "6.4.13.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
- "reference": "9c24b3fdbbe9fb2ef3a6afd8bbaadfd72dad681f"
+ "reference": "bee9bfabfa8b4045a66bf82520e492cddbaffa66"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/9c24b3fdbbe9fb2ef3a6afd8bbaadfd72dad681f",
- "reference": "9c24b3fdbbe9fb2ef3a6afd8bbaadfd72dad681f",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/bee9bfabfa8b4045a66bf82520e492cddbaffa66",
+ "reference": "bee9bfabfa8b4045a66bf82520e492cddbaffa66",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "~1.0",
- "symfony/translation-contracts": "^2.3|^3.0"
+ "symfony/translation-contracts": "^2.5|^3.0"
},
"conflict": {
"symfony/config": "<5.4",
"symfony/console": "<5.4",
"symfony/dependency-injection": "<5.4",
+ "symfony/http-client-contracts": "<2.5",
"symfony/http-kernel": "<5.4",
+ "symfony/service-contracts": "<2.5",
"symfony/twig-bundle": "<5.4",
"symfony/yaml": "<5.4"
},
@@ -6934,24 +6903,21 @@
"symfony/translation-implementation": "2.3|3.0"
},
"require-dev": {
+ "nikic/php-parser": "^4.18|^5.0",
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0",
- "symfony/console": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/finder": "^5.4|^6.0",
- "symfony/http-client-contracts": "^1.1|^2.0|^3.0",
- "symfony/http-kernel": "^5.4|^6.0",
- "symfony/intl": "^5.4|^6.0",
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/finder": "^5.4|^6.0|^7.0",
+ "symfony/http-client-contracts": "^2.5|^3.0",
+ "symfony/http-kernel": "^5.4|^6.0|^7.0",
+ "symfony/intl": "^5.4|^6.0|^7.0",
"symfony/polyfill-intl-icu": "^1.21",
- "symfony/service-contracts": "^1.1.2|^2|^3",
- "symfony/yaml": "^5.4|^6.0"
- },
- "suggest": {
- "psr/log-implementation": "To use logging capability in translator",
- "symfony/config": "",
- "symfony/yaml": ""
+ "symfony/routing": "^5.4|^6.0|^7.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/yaml": "^5.4|^6.0|^7.0"
},
- "time": "2023-01-01T08:36:10+00:00",
+ "time": "2024-09-27T18:14:25+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -6982,7 +6948,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/translation/tree/v6.0.19"
+ "source": "https://github.com/symfony/translation/tree/v6.4.13"
},
"funding": [
{
@@ -7002,30 +6968,27 @@
},
{
"name": "symfony/translation-contracts",
- "version": "v3.0.2",
- "version_normalized": "3.0.2.0",
+ "version": "v3.5.1",
+ "version_normalized": "3.5.1.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
- "reference": "acbfbb274e730e5a0236f619b6168d9dedb3e282"
+ "reference": "4667ff3bd513750603a09c8dedbea942487fb07c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/acbfbb274e730e5a0236f619b6168d9dedb3e282",
- "reference": "acbfbb274e730e5a0236f619b6168d9dedb3e282",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/4667ff3bd513750603a09c8dedbea942487fb07c",
+ "reference": "4667ff3bd513750603a09c8dedbea942487fb07c",
"shasum": ""
},
"require": {
- "php": ">=8.0.2"
- },
- "suggest": {
- "symfony/translation-implementation": ""
+ "php": ">=8.1"
},
- "time": "2022-06-27T17:10:44+00:00",
+ "time": "2024-09-25T14:20:29+00:00",
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.0-dev"
+ "dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -7036,7 +6999,10 @@
"autoload": {
"psr-4": {
"Symfony\\Contracts\\Translation\\": ""
- }
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -7063,7 +7029,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/translation-contracts/tree/v3.0.2"
+ "source": "https://github.com/symfony/translation-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -7083,17 +7049,17 @@
},
{
"name": "symfony/var-dumper",
- "version": "v5.4.19",
- "version_normalized": "5.4.19.0",
+ "version": "v5.4.48",
+ "version_normalized": "5.4.48.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "2944bbc23f5f8da2b962fbcbf7c4a6109b2f4b7b"
+ "reference": "42f18f170aa86d612c3559cfb3bd11a375df32c8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/2944bbc23f5f8da2b962fbcbf7c4a6109b2f4b7b",
- "reference": "2944bbc23f5f8da2b962fbcbf7c4a6109b2f4b7b",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/42f18f170aa86d612c3559cfb3bd11a375df32c8",
+ "reference": "42f18f170aa86d612c3559cfb3bd11a375df32c8",
"shasum": ""
},
"require": {
@@ -7102,12 +7068,12 @@
"symfony/polyfill-php80": "^1.16"
},
"conflict": {
- "phpunit/phpunit": "<5.4.3",
"symfony/console": "<4.4"
},
"require-dev": {
"ext-iconv": "*",
"symfony/console": "^4.4|^5.0|^6.0",
+ "symfony/http-kernel": "^4.4|^5.0|^6.0",
"symfony/process": "^4.4|^5.0|^6.0",
"symfony/uid": "^5.1|^6.0",
"twig/twig": "^2.13|^3.0.4"
@@ -7117,7 +7083,7 @@
"ext-intl": "To show region name in time zone dump",
"symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script"
},
- "time": "2023-01-16T10:52:33+00:00",
+ "time": "2024-11-08T15:21:10+00:00",
"bin": [
"Resources/bin/var-dump-server"
],
@@ -7155,7 +7121,7 @@
"dump"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v5.4.19"
+ "source": "https://github.com/symfony/var-dumper/tree/v5.4.48"
},
"funding": [
{
@@ -7175,33 +7141,31 @@
},
{
"name": "symfony/yaml",
- "version": "v6.0.19",
- "version_normalized": "6.0.19.0",
+ "version": "v6.4.13",
+ "version_normalized": "6.4.13.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "deec3a812a0305a50db8ae689b183f43d915c884"
+ "reference": "e99b4e94d124b29ee4cf3140e1b537d2dad8cec9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/deec3a812a0305a50db8ae689b183f43d915c884",
- "reference": "deec3a812a0305a50db8ae689b183f43d915c884",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/e99b4e94d124b29ee4cf3140e1b537d2dad8cec9",
+ "reference": "e99b4e94d124b29ee4cf3140e1b537d2dad8cec9",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-ctype": "^1.8"
},
"conflict": {
"symfony/console": "<5.4"
},
"require-dev": {
- "symfony/console": "^5.4|^6.0"
- },
- "suggest": {
- "symfony/console": "For validating YAML files using the lint command"
+ "symfony/console": "^5.4|^6.0|^7.0"
},
- "time": "2023-01-11T11:50:03+00:00",
+ "time": "2024-09-25T14:18:03+00:00",
"bin": [
"Resources/bin/yaml-lint"
],
@@ -7232,7 +7196,7 @@
"description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/yaml/tree/v6.0.19"
+ "source": "https://github.com/symfony/yaml/tree/v6.4.13"
},
"funding": [
{
@@ -7252,17 +7216,17 @@
},
{
"name": "theseer/tokenizer",
- "version": "1.2.1",
- "version_normalized": "1.2.1.0",
+ "version": "1.2.3",
+ "version_normalized": "1.2.3.0",
"source": {
"type": "git",
"url": "https://github.com/theseer/tokenizer.git",
- "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e"
+ "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e",
- "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+ "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
"shasum": ""
},
"require": {
@@ -7271,7 +7235,7 @@
"ext-xmlwriter": "*",
"php": "^7.2 || ^8.0"
},
- "time": "2021-07-28T10:34:58+00:00",
+ "time": "2024-03-03T12:36:25+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -7293,7 +7257,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.3"
},
"funding": [
{
@@ -7305,45 +7269,45 @@
},
{
"name": "vlucas/phpdotenv",
- "version": "v5.5.0",
- "version_normalized": "5.5.0.0",
+ "version": "v5.6.1",
+ "version_normalized": "5.6.1.0",
"source": {
"type": "git",
"url": "https://github.com/vlucas/phpdotenv.git",
- "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7"
+ "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7",
- "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7",
+ "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/a59a13791077fe3d44f90e7133eb68e7d22eaff2",
+ "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2",
"shasum": ""
},
"require": {
"ext-pcre": "*",
- "graham-campbell/result-type": "^1.0.2",
- "php": "^7.1.3 || ^8.0",
- "phpoption/phpoption": "^1.8",
- "symfony/polyfill-ctype": "^1.23",
- "symfony/polyfill-mbstring": "^1.23.1",
- "symfony/polyfill-php80": "^1.23.1"
+ "graham-campbell/result-type": "^1.1.3",
+ "php": "^7.2.5 || ^8.0",
+ "phpoption/phpoption": "^1.9.3",
+ "symfony/polyfill-ctype": "^1.24",
+ "symfony/polyfill-mbstring": "^1.24",
+ "symfony/polyfill-php80": "^1.24"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.4.1",
+ "bamarni/composer-bin-plugin": "^1.8.2",
"ext-filter": "*",
- "phpunit/phpunit": "^7.5.20 || ^8.5.30 || ^9.5.25"
+ "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2"
},
"suggest": {
"ext-filter": "Required to use the boolean validator."
},
- "time": "2022-10-16T01:01:54+00:00",
+ "time": "2024-07-20T21:52:34+00:00",
"type": "library",
"extra": {
"bamarni-bin": {
"bin-links": true,
- "forward-command": true
+ "forward-command": false
},
"branch-alias": {
- "dev-master": "5.5-dev"
+ "dev-master": "5.6-dev"
}
},
"installation-source": "dist",
@@ -7376,7 +7340,7 @@
],
"support": {
"issues": "https://github.com/vlucas/phpdotenv/issues",
- "source": "https://github.com/vlucas/phpdotenv/tree/v5.5.0"
+ "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.1"
},
"funding": [
{
diff --git a/api/vendor/composer/installed.php b/api/vendor/composer/installed.php
index ac3bdb454e..880cc19201 100644
--- a/api/vendor/composer/installed.php
+++ b/api/vendor/composer/installed.php
@@ -1,22 +1,31 @@
array(
+ 'name' => 'laravel/lumen',
'pretty_version' => 'dev-master',
'version' => 'dev-master',
+ 'reference' => '5ddef81ff28df2f72c63cd255cc90a2e525050ad',
'type' => 'project',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
- 'reference' => '89e2a7edceda6e092a6ec77af3b8232232b0b462',
- 'name' => 'laravel/lumen',
'dev' => true,
),
'versions' => array(
'brick/math' => array(
- 'pretty_version' => '0.10.2',
- 'version' => '0.10.2.0',
+ 'pretty_version' => '0.12.1',
+ 'version' => '0.12.1.0',
+ 'reference' => 'f510c0a40911935b77b86859eb5223d58d660df1',
'type' => 'library',
'install_path' => __DIR__ . '/../brick/math',
'aliases' => array(),
- 'reference' => '459f2781e1a08d52ee56b0b1444086e038561e3f',
+ 'dev_requirement' => false,
+ ),
+ 'carbonphp/carbon-doctrine-types' => array(
+ 'pretty_version' => '3.2.0',
+ 'version' => '3.2.0.0',
+ 'reference' => '18ba5ddfec8976260ead6e866180bd5d2f71aa1d',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../carbonphp/carbon-doctrine-types',
+ 'aliases' => array(),
'dev_requirement' => false,
),
'cordoval/hamcrest-php' => array(
@@ -28,10 +37,10 @@
'darkaonline/swagger-lume' => array(
'pretty_version' => '8.0',
'version' => '8.0.0.0',
+ 'reference' => '5ee548ccaf487b4561880eb9741975dad3c3dd1a',
'type' => 'library',
'install_path' => __DIR__ . '/../darkaonline/swagger-lume',
'aliases' => array(),
- 'reference' => '5ee548ccaf487b4561880eb9741975dad3c3dd1a',
'dev_requirement' => false,
),
'davedevelopment/hamcrest-php' => array(
@@ -41,318 +50,318 @@
),
),
'doctrine/annotations' => array(
- 'pretty_version' => '1.14.3',
- 'version' => '1.14.3.0',
+ 'pretty_version' => '1.14.4',
+ 'version' => '1.14.4.0',
+ 'reference' => '253dca476f70808a5aeed3a47cc2cc88c5cab915',
'type' => 'library',
'install_path' => __DIR__ . '/../doctrine/annotations',
'aliases' => array(),
- 'reference' => 'fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af',
'dev_requirement' => false,
),
'doctrine/inflector' => array(
- 'pretty_version' => '2.0.6',
- 'version' => '2.0.6.0',
+ 'pretty_version' => '2.0.10',
+ 'version' => '2.0.10.0',
+ 'reference' => '5817d0659c5b50c9b950feb9af7b9668e2c436bc',
'type' => 'library',
'install_path' => __DIR__ . '/../doctrine/inflector',
'aliases' => array(),
- 'reference' => 'd9d313a36c872fd6ee06d9a6cbcf713eaa40f024',
'dev_requirement' => false,
),
'doctrine/instantiator' => array(
- 'pretty_version' => '1.5.0',
- 'version' => '1.5.0.0',
+ 'pretty_version' => '2.0.0',
+ 'version' => '2.0.0.0',
+ 'reference' => 'c6222283fa3f4ac679f8b9ced9a4e23f163e80d0',
'type' => 'library',
'install_path' => __DIR__ . '/../doctrine/instantiator',
'aliases' => array(),
- 'reference' => '0a0fa9780f5d4e507415a065172d26a98d02047b',
'dev_requirement' => true,
),
'doctrine/lexer' => array(
'pretty_version' => '1.2.3',
'version' => '1.2.3.0',
+ 'reference' => 'c268e882d4dbdd85e36e4ad69e02dc284f89d229',
'type' => 'library',
'install_path' => __DIR__ . '/../doctrine/lexer',
'aliases' => array(),
- 'reference' => 'c268e882d4dbdd85e36e4ad69e02dc284f89d229',
'dev_requirement' => false,
),
'dragonmantank/cron-expression' => array(
- 'pretty_version' => 'v3.3.2',
- 'version' => '3.3.2.0',
+ 'pretty_version' => 'v3.4.0',
+ 'version' => '3.4.0.0',
+ 'reference' => '8c784d071debd117328803d86b2097615b457500',
'type' => 'library',
'install_path' => __DIR__ . '/../dragonmantank/cron-expression',
'aliases' => array(),
- 'reference' => '782ca5968ab8b954773518e9e49a6f892a34b2a8',
'dev_requirement' => false,
),
'egulias/email-validator' => array(
'pretty_version' => '2.1.25',
'version' => '2.1.25.0',
+ 'reference' => '0dbf5d78455d4d6a41d186da50adc1122ec066f4',
'type' => 'library',
'install_path' => __DIR__ . '/../egulias/email-validator',
'aliases' => array(),
- 'reference' => '0dbf5d78455d4d6a41d186da50adc1122ec066f4',
'dev_requirement' => false,
),
'fakerphp/faker' => array(
- 'pretty_version' => 'v1.21.0',
- 'version' => '1.21.0.0',
+ 'pretty_version' => 'v1.24.1',
+ 'version' => '1.24.1.0',
+ 'reference' => 'e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5',
'type' => 'library',
'install_path' => __DIR__ . '/../fakerphp/faker',
'aliases' => array(),
- 'reference' => '92efad6a967f0b79c499705c69b662f738cc9e4d',
'dev_requirement' => true,
),
'graham-campbell/result-type' => array(
- 'pretty_version' => 'v1.1.0',
- 'version' => '1.1.0.0',
+ 'pretty_version' => 'v1.1.3',
+ 'version' => '1.1.3.0',
+ 'reference' => '3ba905c11371512af9d9bdd27d99b782216b6945',
'type' => 'library',
'install_path' => __DIR__ . '/../graham-campbell/result-type',
'aliases' => array(),
- 'reference' => 'a878d45c1914464426dc94da61c9e1d36ae262a8',
'dev_requirement' => false,
),
'hamcrest/hamcrest-php' => array(
'pretty_version' => 'v2.0.1',
'version' => '2.0.1.0',
+ 'reference' => '8c3d0a3f6af734494ad8f6fbbee0ba92422859f3',
'type' => 'library',
'install_path' => __DIR__ . '/../hamcrest/hamcrest-php',
'aliases' => array(),
- 'reference' => '8c3d0a3f6af734494ad8f6fbbee0ba92422859f3',
'dev_requirement' => true,
),
'illuminate/auth' => array(
'pretty_version' => 'v8.83.27',
'version' => '8.83.27.0',
+ 'reference' => '28e3e57f777685018374bb59bbaa54598dbdf441',
'type' => 'library',
'install_path' => __DIR__ . '/../illuminate/auth',
'aliases' => array(),
- 'reference' => '28e3e57f777685018374bb59bbaa54598dbdf441',
'dev_requirement' => false,
),
'illuminate/broadcasting' => array(
'pretty_version' => 'v8.83.27',
'version' => '8.83.27.0',
+ 'reference' => 'd7c0c81bcc679c294746b161f4b834997e904cf4',
'type' => 'library',
'install_path' => __DIR__ . '/../illuminate/broadcasting',
'aliases' => array(),
- 'reference' => 'd7c0c81bcc679c294746b161f4b834997e904cf4',
'dev_requirement' => false,
),
'illuminate/bus' => array(
'pretty_version' => 'v8.83.27',
'version' => '8.83.27.0',
+ 'reference' => 'd2a8ae4bfd881086e55455e470776358eab27eae',
'type' => 'library',
'install_path' => __DIR__ . '/../illuminate/bus',
'aliases' => array(),
- 'reference' => 'd2a8ae4bfd881086e55455e470776358eab27eae',
'dev_requirement' => false,
),
'illuminate/cache' => array(
'pretty_version' => 'v8.83.27',
'version' => '8.83.27.0',
+ 'reference' => '7ae5b3661413dad7264b5c69037190d766bae50f',
'type' => 'library',
'install_path' => __DIR__ . '/../illuminate/cache',
'aliases' => array(),
- 'reference' => '7ae5b3661413dad7264b5c69037190d766bae50f',
'dev_requirement' => false,
),
'illuminate/collections' => array(
'pretty_version' => 'v8.83.27',
'version' => '8.83.27.0',
+ 'reference' => '705a4e1ef93cd492c45b9b3e7911cccc990a07f4',
'type' => 'library',
'install_path' => __DIR__ . '/../illuminate/collections',
'aliases' => array(),
- 'reference' => '705a4e1ef93cd492c45b9b3e7911cccc990a07f4',
'dev_requirement' => false,
),
'illuminate/config' => array(
'pretty_version' => 'v8.83.27',
'version' => '8.83.27.0',
+ 'reference' => 'feac56ab7a5c70cf2dc60dffe4323eb9851f51a8',
'type' => 'library',
'install_path' => __DIR__ . '/../illuminate/config',
'aliases' => array(),
- 'reference' => 'feac56ab7a5c70cf2dc60dffe4323eb9851f51a8',
'dev_requirement' => false,
),
'illuminate/console' => array(
'pretty_version' => 'v8.83.27',
'version' => '8.83.27.0',
+ 'reference' => '4aaa93223eb3bd8119157c95f58c022967826035',
'type' => 'library',
'install_path' => __DIR__ . '/../illuminate/console',
'aliases' => array(),
- 'reference' => '4aaa93223eb3bd8119157c95f58c022967826035',
'dev_requirement' => false,
),
'illuminate/container' => array(
'pretty_version' => 'v8.83.27',
'version' => '8.83.27.0',
+ 'reference' => '14062628d05f75047c5a1360b9350028427d568e',
'type' => 'library',
'install_path' => __DIR__ . '/../illuminate/container',
'aliases' => array(),
- 'reference' => '14062628d05f75047c5a1360b9350028427d568e',
'dev_requirement' => false,
),
'illuminate/contracts' => array(
'pretty_version' => 'v8.83.27',
'version' => '8.83.27.0',
+ 'reference' => '5e0fd287a1b22a6b346a9f7cd484d8cf0234585d',
'type' => 'library',
'install_path' => __DIR__ . '/../illuminate/contracts',
'aliases' => array(),
- 'reference' => '5e0fd287a1b22a6b346a9f7cd484d8cf0234585d',
'dev_requirement' => false,
),
'illuminate/database' => array(
'pretty_version' => 'v8.83.27',
'version' => '8.83.27.0',
+ 'reference' => '1a5b0e4e6913415464fa2aab554a38b9e6fa44b1',
'type' => 'library',
'install_path' => __DIR__ . '/../illuminate/database',
'aliases' => array(),
- 'reference' => '1a5b0e4e6913415464fa2aab554a38b9e6fa44b1',
'dev_requirement' => false,
),
'illuminate/encryption' => array(
'pretty_version' => 'v8.83.27',
'version' => '8.83.27.0',
+ 'reference' => '00280dc6aa204b1b6c6d4bf75936d122bd856c15',
'type' => 'library',
'install_path' => __DIR__ . '/../illuminate/encryption',
'aliases' => array(),
- 'reference' => '00280dc6aa204b1b6c6d4bf75936d122bd856c15',
'dev_requirement' => false,
),
'illuminate/events' => array(
'pretty_version' => 'v8.83.27',
'version' => '8.83.27.0',
+ 'reference' => 'b7f06cafb6c09581617f2ca05d69e9b159e5a35d',
'type' => 'library',
'install_path' => __DIR__ . '/../illuminate/events',
'aliases' => array(),
- 'reference' => 'b7f06cafb6c09581617f2ca05d69e9b159e5a35d',
'dev_requirement' => false,
),
'illuminate/filesystem' => array(
'pretty_version' => 'v8.83.27',
'version' => '8.83.27.0',
+ 'reference' => '73db3e9a233ed587ba54f52ab8580f3c7bc872b2',
'type' => 'library',
'install_path' => __DIR__ . '/../illuminate/filesystem',
'aliases' => array(),
- 'reference' => '73db3e9a233ed587ba54f52ab8580f3c7bc872b2',
'dev_requirement' => false,
),
'illuminate/hashing' => array(
'pretty_version' => 'v8.83.27',
'version' => '8.83.27.0',
+ 'reference' => '2617f4de8d0150a3f8641b086fafac8c1e0cdbf2',
'type' => 'library',
'install_path' => __DIR__ . '/../illuminate/hashing',
'aliases' => array(),
- 'reference' => '2617f4de8d0150a3f8641b086fafac8c1e0cdbf2',
'dev_requirement' => false,
),
'illuminate/http' => array(
'pretty_version' => 'v8.83.27',
'version' => '8.83.27.0',
+ 'reference' => '38b8b0c8ca5d5231df9c515f3a3e7aac5f0da9f4',
'type' => 'library',
'install_path' => __DIR__ . '/../illuminate/http',
'aliases' => array(),
- 'reference' => '38b8b0c8ca5d5231df9c515f3a3e7aac5f0da9f4',
'dev_requirement' => false,
),
'illuminate/log' => array(
'pretty_version' => 'v8.83.27',
'version' => '8.83.27.0',
+ 'reference' => '1dbdc6aca24d1d2b5903f865bb206039d4b800b2',
'type' => 'library',
'install_path' => __DIR__ . '/../illuminate/log',
'aliases' => array(),
- 'reference' => '1dbdc6aca24d1d2b5903f865bb206039d4b800b2',
'dev_requirement' => false,
),
'illuminate/macroable' => array(
'pretty_version' => 'v8.83.27',
'version' => '8.83.27.0',
+ 'reference' => 'aed81891a6e046fdee72edd497f822190f61c162',
'type' => 'library',
'install_path' => __DIR__ . '/../illuminate/macroable',
'aliases' => array(),
- 'reference' => 'aed81891a6e046fdee72edd497f822190f61c162',
'dev_requirement' => false,
),
'illuminate/pagination' => array(
'pretty_version' => 'v8.83.27',
'version' => '8.83.27.0',
+ 'reference' => '16fe8dc35f9d18c58a3471469af656a02e9ab692',
'type' => 'library',
'install_path' => __DIR__ . '/../illuminate/pagination',
'aliases' => array(),
- 'reference' => '16fe8dc35f9d18c58a3471469af656a02e9ab692',
'dev_requirement' => false,
),
'illuminate/pipeline' => array(
'pretty_version' => 'v8.83.27',
'version' => '8.83.27.0',
+ 'reference' => '23aeff5b26ae4aee3f370835c76bd0f4e93f71d2',
'type' => 'library',
'install_path' => __DIR__ . '/../illuminate/pipeline',
'aliases' => array(),
- 'reference' => '23aeff5b26ae4aee3f370835c76bd0f4e93f71d2',
'dev_requirement' => false,
),
'illuminate/queue' => array(
'pretty_version' => 'v8.83.27',
'version' => '8.83.27.0',
+ 'reference' => '0023daabf67743f7a2bd8328ca2b5537d93e4ae7',
'type' => 'library',
'install_path' => __DIR__ . '/../illuminate/queue',
'aliases' => array(),
- 'reference' => '0023daabf67743f7a2bd8328ca2b5537d93e4ae7',
'dev_requirement' => false,
),
'illuminate/session' => array(
'pretty_version' => 'v8.83.27',
'version' => '8.83.27.0',
+ 'reference' => '9c9988d7229d888c098eebbbb9fcb8c68580411c',
'type' => 'library',
'install_path' => __DIR__ . '/../illuminate/session',
'aliases' => array(),
- 'reference' => '9c9988d7229d888c098eebbbb9fcb8c68580411c',
'dev_requirement' => false,
),
'illuminate/support' => array(
'pretty_version' => 'v8.83.27',
'version' => '8.83.27.0',
+ 'reference' => '1c79242468d3bbd9a0f7477df34f9647dde2a09b',
'type' => 'library',
'install_path' => __DIR__ . '/../illuminate/support',
'aliases' => array(),
- 'reference' => '1c79242468d3bbd9a0f7477df34f9647dde2a09b',
'dev_requirement' => false,
),
'illuminate/testing' => array(
'pretty_version' => 'v8.83.27',
'version' => '8.83.27.0',
+ 'reference' => '1c9ec9902df3b7a38b983bbf2242ce3c088de400',
'type' => 'library',
'install_path' => __DIR__ . '/../illuminate/testing',
'aliases' => array(),
- 'reference' => '1c9ec9902df3b7a38b983bbf2242ce3c088de400',
'dev_requirement' => false,
),
'illuminate/translation' => array(
'pretty_version' => 'v8.83.27',
'version' => '8.83.27.0',
+ 'reference' => 'e119d1e55351bd846579c333dd24f9a042b724b2',
'type' => 'library',
'install_path' => __DIR__ . '/../illuminate/translation',
'aliases' => array(),
- 'reference' => 'e119d1e55351bd846579c333dd24f9a042b724b2',
'dev_requirement' => false,
),
'illuminate/validation' => array(
'pretty_version' => 'v8.83.27',
'version' => '8.83.27.0',
+ 'reference' => 'bb104f15545a55664755f58a278c7013f835918a',
'type' => 'library',
'install_path' => __DIR__ . '/../illuminate/validation',
'aliases' => array(),
- 'reference' => 'bb104f15545a55664755f58a278c7013f835918a',
'dev_requirement' => false,
),
'illuminate/view' => array(
'pretty_version' => 'v8.83.27',
'version' => '8.83.27.0',
+ 'reference' => '5e73eef48d9242532f81fadc14c816a01bfb1388',
'type' => 'library',
'install_path' => __DIR__ . '/../illuminate/view',
'aliases' => array(),
- 'reference' => '5e73eef48d9242532f81fadc14c816a01bfb1388',
'dev_requirement' => false,
),
'kodova/hamcrest-php' => array(
@@ -364,46 +373,46 @@
'laravel/lumen' => array(
'pretty_version' => 'dev-master',
'version' => 'dev-master',
+ 'reference' => '5ddef81ff28df2f72c63cd255cc90a2e525050ad',
'type' => 'project',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
- 'reference' => '89e2a7edceda6e092a6ec77af3b8232232b0b462',
'dev_requirement' => false,
),
'laravel/lumen-framework' => array(
'pretty_version' => 'v8.3.4',
'version' => '8.3.4.0',
+ 'reference' => '733d1199d3344be337743f11df31b4048ec7fd1c',
'type' => 'library',
'install_path' => __DIR__ . '/../laravel/lumen-framework',
'aliases' => array(),
- 'reference' => '733d1199d3344be337743f11df31b4048ec7fd1c',
'dev_requirement' => false,
),
'laravel/serializable-closure' => array(
- 'pretty_version' => 'v1.3.0',
- 'version' => '1.3.0.0',
+ 'pretty_version' => 'v1.3.7',
+ 'version' => '1.3.7.0',
+ 'reference' => '4f48ade902b94323ca3be7646db16209ec76be3d',
'type' => 'library',
'install_path' => __DIR__ . '/../laravel/serializable-closure',
'aliases' => array(),
- 'reference' => 'f23fe9d4e95255dacee1bf3525e0810d1a1b0f37',
'dev_requirement' => false,
),
'mockery/mockery' => array(
- 'pretty_version' => '1.5.1',
- 'version' => '1.5.1.0',
+ 'pretty_version' => '1.6.12',
+ 'version' => '1.6.12.0',
+ 'reference' => '1f4efdd7d3beafe9807b08156dfcb176d18f1699',
'type' => 'library',
'install_path' => __DIR__ . '/../mockery/mockery',
'aliases' => array(),
- 'reference' => 'e92dcc83d5a51851baf5f5591d32cb2b16e3684e',
'dev_requirement' => true,
),
'monolog/monolog' => array(
- 'pretty_version' => '2.8.0',
- 'version' => '2.8.0.0',
+ 'pretty_version' => '2.10.0',
+ 'version' => '2.10.0.0',
+ 'reference' => '5cf826f2991858b54d5c3809bee745560a1042a7',
'type' => 'library',
'install_path' => __DIR__ . '/../monolog/monolog',
'aliases' => array(),
- 'reference' => '720488632c590286b88b80e62aa3d3d551ad4a50',
'dev_requirement' => false,
),
'mtdowling/cron-expression' => array(
@@ -413,147 +422,162 @@
),
),
'myclabs/deep-copy' => array(
- 'pretty_version' => '1.11.0',
- 'version' => '1.11.0.0',
+ 'pretty_version' => '1.12.1',
+ 'version' => '1.12.1.0',
+ 'reference' => '123267b2c49fbf30d78a7b2d333f6be754b94845',
'type' => 'library',
'install_path' => __DIR__ . '/../myclabs/deep-copy',
'aliases' => array(),
- 'reference' => '14daed4296fae74d9e3201d2c4925d1acb7aa614',
'dev_requirement' => true,
),
'nesbot/carbon' => array(
- 'pretty_version' => '2.66.0',
- 'version' => '2.66.0.0',
+ 'pretty_version' => '2.72.5',
+ 'version' => '2.72.5.0',
+ 'reference' => 'afd46589c216118ecd48ff2b95d77596af1e57ed',
'type' => 'library',
'install_path' => __DIR__ . '/../nesbot/carbon',
'aliases' => array(),
- 'reference' => '496712849902241f04902033b0441b269effe001',
'dev_requirement' => false,
),
'nikic/fast-route' => array(
'pretty_version' => 'v1.3.0',
'version' => '1.3.0.0',
+ 'reference' => '181d480e08d9476e61381e04a71b34dc0432e812',
'type' => 'library',
'install_path' => __DIR__ . '/../nikic/fast-route',
'aliases' => array(),
- 'reference' => '181d480e08d9476e61381e04a71b34dc0432e812',
'dev_requirement' => false,
),
'nikic/php-parser' => array(
- 'pretty_version' => 'v4.15.3',
- 'version' => '4.15.3.0',
+ 'pretty_version' => 'v5.3.1',
+ 'version' => '5.3.1.0',
+ 'reference' => '8eea230464783aa9671db8eea6f8c6ac5285794b',
'type' => 'library',
'install_path' => __DIR__ . '/../nikic/php-parser',
'aliases' => array(),
- 'reference' => '570e980a201d8ed0236b0a62ddf2c9cbb2034039',
'dev_requirement' => true,
),
'opis/closure' => array(
'pretty_version' => '3.6.3',
'version' => '3.6.3.0',
+ 'reference' => '3d81e4309d2a927abbe66df935f4bb60082805ad',
'type' => 'library',
'install_path' => __DIR__ . '/../opis/closure',
'aliases' => array(),
- 'reference' => '3d81e4309d2a927abbe66df935f4bb60082805ad',
'dev_requirement' => false,
),
'phar-io/manifest' => array(
- 'pretty_version' => '2.0.3',
- 'version' => '2.0.3.0',
+ 'pretty_version' => '2.0.4',
+ 'version' => '2.0.4.0',
+ 'reference' => '54750ef60c58e43759730615a392c31c80e23176',
'type' => 'library',
'install_path' => __DIR__ . '/../phar-io/manifest',
'aliases' => array(),
- 'reference' => '97803eca37d319dfa7826cc2437fc020857acb53',
'dev_requirement' => true,
),
'phar-io/version' => array(
'pretty_version' => '3.2.1',
'version' => '3.2.1.0',
+ 'reference' => '4f7fd7836c6f332bb2933569e566a0d6c4cbed74',
'type' => 'library',
'install_path' => __DIR__ . '/../phar-io/version',
'aliases' => array(),
- 'reference' => '4f7fd7836c6f332bb2933569e566a0d6c4cbed74',
'dev_requirement' => true,
),
'phpoption/phpoption' => array(
- 'pretty_version' => '1.9.0',
- 'version' => '1.9.0.0',
+ 'pretty_version' => '1.9.3',
+ 'version' => '1.9.3.0',
+ 'reference' => 'e3fac8b24f56113f7cb96af14958c0dd16330f54',
'type' => 'library',
'install_path' => __DIR__ . '/../phpoption/phpoption',
'aliases' => array(),
- 'reference' => 'dc5ff11e274a90cc1c743f66c9ad700ce50db9ab',
'dev_requirement' => false,
),
'phpunit/php-code-coverage' => array(
- 'pretty_version' => '9.2.24',
- 'version' => '9.2.24.0',
+ 'pretty_version' => '9.2.32',
+ 'version' => '9.2.32.0',
+ 'reference' => '85402a822d1ecf1db1096959413d35e1c37cf1a5',
'type' => 'library',
'install_path' => __DIR__ . '/../phpunit/php-code-coverage',
'aliases' => array(),
- 'reference' => '2cf940ebc6355a9d430462811b5aaa308b174bed',
'dev_requirement' => true,
),
'phpunit/php-file-iterator' => array(
'pretty_version' => '3.0.6',
'version' => '3.0.6.0',
+ 'reference' => 'cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf',
'type' => 'library',
'install_path' => __DIR__ . '/../phpunit/php-file-iterator',
'aliases' => array(),
- 'reference' => 'cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf',
'dev_requirement' => true,
),
'phpunit/php-invoker' => array(
'pretty_version' => '3.1.1',
'version' => '3.1.1.0',
+ 'reference' => '5a10147d0aaf65b58940a0b72f71c9ac0423cc67',
'type' => 'library',
'install_path' => __DIR__ . '/../phpunit/php-invoker',
'aliases' => array(),
- 'reference' => '5a10147d0aaf65b58940a0b72f71c9ac0423cc67',
'dev_requirement' => true,
),
'phpunit/php-text-template' => array(
'pretty_version' => '2.0.4',
'version' => '2.0.4.0',
+ 'reference' => '5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28',
'type' => 'library',
'install_path' => __DIR__ . '/../phpunit/php-text-template',
'aliases' => array(),
- 'reference' => '5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28',
'dev_requirement' => true,
),
'phpunit/php-timer' => array(
'pretty_version' => '5.0.3',
'version' => '5.0.3.0',
+ 'reference' => '5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2',
'type' => 'library',
'install_path' => __DIR__ . '/../phpunit/php-timer',
'aliases' => array(),
- 'reference' => '5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2',
'dev_requirement' => true,
),
'phpunit/phpunit' => array(
- 'pretty_version' => '9.6.0',
- 'version' => '9.6.0.0',
+ 'pretty_version' => '9.6.22',
+ 'version' => '9.6.22.0',
+ 'reference' => 'f80235cb4d3caa59ae09be3adf1ded27521d1a9c',
'type' => 'library',
'install_path' => __DIR__ . '/../phpunit/phpunit',
'aliases' => array(),
- 'reference' => '70fc8be1d0b9fad56a199a4df5f9cfabfc246f84',
'dev_requirement' => true,
),
'psr/cache' => array(
'pretty_version' => '3.0.0',
'version' => '3.0.0.0',
+ 'reference' => 'aa5030cfa5405eccfdcb1083ce040c2cb8d253bf',
'type' => 'library',
'install_path' => __DIR__ . '/../psr/cache',
'aliases' => array(),
- 'reference' => 'aa5030cfa5405eccfdcb1083ce040c2cb8d253bf',
'dev_requirement' => false,
),
+ 'psr/clock' => array(
+ 'pretty_version' => '1.0.0',
+ 'version' => '1.0.0.0',
+ 'reference' => 'e41a24703d4560fd0acb709162f73b8adfc3aa0d',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../psr/clock',
+ 'aliases' => array(),
+ 'dev_requirement' => false,
+ ),
+ 'psr/clock-implementation' => array(
+ 'dev_requirement' => false,
+ 'provided' => array(
+ 0 => '1.0',
+ ),
+ ),
'psr/container' => array(
'pretty_version' => '1.1.2',
'version' => '1.1.2.0',
+ 'reference' => '513e0666f7216c7459170d56df27dfcefe1689ea',
'type' => 'library',
'install_path' => __DIR__ . '/../psr/container',
'aliases' => array(),
- 'reference' => '513e0666f7216c7459170d56df27dfcefe1689ea',
'dev_requirement' => false,
),
'psr/container-implementation' => array(
@@ -565,10 +589,10 @@
'psr/event-dispatcher' => array(
'pretty_version' => '1.0.0',
'version' => '1.0.0.0',
+ 'reference' => 'dbefd12671e8a14ec7f180cab83036ed26714bb0',
'type' => 'library',
'install_path' => __DIR__ . '/../psr/event-dispatcher',
'aliases' => array(),
- 'reference' => 'dbefd12671e8a14ec7f180cab83036ed26714bb0',
'dev_requirement' => false,
),
'psr/event-dispatcher-implementation' => array(
@@ -580,10 +604,10 @@
'psr/log' => array(
'pretty_version' => '2.0.0',
'version' => '2.0.0.0',
+ 'reference' => 'ef29f6d262798707a9edd554e2b82517ef3a9376',
'type' => 'library',
'install_path' => __DIR__ . '/../psr/log',
'aliases' => array(),
- 'reference' => 'ef29f6d262798707a9edd554e2b82517ef3a9376',
'dev_requirement' => false,
),
'psr/log-implementation' => array(
@@ -596,10 +620,10 @@
'psr/simple-cache' => array(
'pretty_version' => '1.0.1',
'version' => '1.0.1.0',
+ 'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b',
'type' => 'library',
'install_path' => __DIR__ . '/../psr/simple-cache',
'aliases' => array(),
- 'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b',
'dev_requirement' => false,
),
'psr/simple-cache-implementation' => array(
@@ -609,225 +633,225 @@
),
),
'ramsey/collection' => array(
- 'pretty_version' => '1.3.0',
- 'version' => '1.3.0.0',
+ 'pretty_version' => '2.0.0',
+ 'version' => '2.0.0.0',
+ 'reference' => 'a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5',
'type' => 'library',
'install_path' => __DIR__ . '/../ramsey/collection',
'aliases' => array(),
- 'reference' => 'ad7475d1c9e70b190ecffc58f2d989416af339b4',
'dev_requirement' => false,
),
'ramsey/uuid' => array(
- 'pretty_version' => '4.7.3',
- 'version' => '4.7.3.0',
+ 'pretty_version' => '4.7.6',
+ 'version' => '4.7.6.0',
+ 'reference' => '91039bc1faa45ba123c4328958e620d382ec7088',
'type' => 'library',
'install_path' => __DIR__ . '/../ramsey/uuid',
'aliases' => array(),
- 'reference' => '433b2014e3979047db08a17a205f410ba3869cf2',
'dev_requirement' => false,
),
'rhumsaa/uuid' => array(
'dev_requirement' => false,
'replaced' => array(
- 0 => '4.7.3',
+ 0 => '4.7.6',
),
),
'sebastian/cli-parser' => array(
- 'pretty_version' => '1.0.1',
- 'version' => '1.0.1.0',
+ 'pretty_version' => '1.0.2',
+ 'version' => '1.0.2.0',
+ 'reference' => '2b56bea83a09de3ac06bb18b92f068e60cc6f50b',
'type' => 'library',
'install_path' => __DIR__ . '/../sebastian/cli-parser',
'aliases' => array(),
- 'reference' => '442e7c7e687e42adc03470c7b668bc4b2402c0b2',
'dev_requirement' => true,
),
'sebastian/code-unit' => array(
'pretty_version' => '1.0.8',
'version' => '1.0.8.0',
+ 'reference' => '1fc9f64c0927627ef78ba436c9b17d967e68e120',
'type' => 'library',
'install_path' => __DIR__ . '/../sebastian/code-unit',
'aliases' => array(),
- 'reference' => '1fc9f64c0927627ef78ba436c9b17d967e68e120',
'dev_requirement' => true,
),
'sebastian/code-unit-reverse-lookup' => array(
'pretty_version' => '2.0.3',
'version' => '2.0.3.0',
+ 'reference' => 'ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5',
'type' => 'library',
'install_path' => __DIR__ . '/../sebastian/code-unit-reverse-lookup',
'aliases' => array(),
- 'reference' => 'ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5',
'dev_requirement' => true,
),
'sebastian/comparator' => array(
'pretty_version' => '4.0.8',
'version' => '4.0.8.0',
+ 'reference' => 'fa0f136dd2334583309d32b62544682ee972b51a',
'type' => 'library',
'install_path' => __DIR__ . '/../sebastian/comparator',
'aliases' => array(),
- 'reference' => 'fa0f136dd2334583309d32b62544682ee972b51a',
'dev_requirement' => true,
),
'sebastian/complexity' => array(
- 'pretty_version' => '2.0.2',
- 'version' => '2.0.2.0',
+ 'pretty_version' => '2.0.3',
+ 'version' => '2.0.3.0',
+ 'reference' => '25f207c40d62b8b7aa32f5ab026c53561964053a',
'type' => 'library',
'install_path' => __DIR__ . '/../sebastian/complexity',
'aliases' => array(),
- 'reference' => '739b35e53379900cc9ac327b2147867b8b6efd88',
'dev_requirement' => true,
),
'sebastian/diff' => array(
- 'pretty_version' => '4.0.4',
- 'version' => '4.0.4.0',
+ 'pretty_version' => '4.0.6',
+ 'version' => '4.0.6.0',
+ 'reference' => 'ba01945089c3a293b01ba9badc29ad55b106b0bc',
'type' => 'library',
'install_path' => __DIR__ . '/../sebastian/diff',
'aliases' => array(),
- 'reference' => '3461e3fccc7cfdfc2720be910d3bd73c69be590d',
'dev_requirement' => true,
),
'sebastian/environment' => array(
'pretty_version' => '5.1.5',
'version' => '5.1.5.0',
+ 'reference' => '830c43a844f1f8d5b7a1f6d6076b784454d8b7ed',
'type' => 'library',
'install_path' => __DIR__ . '/../sebastian/environment',
'aliases' => array(),
- 'reference' => '830c43a844f1f8d5b7a1f6d6076b784454d8b7ed',
'dev_requirement' => true,
),
'sebastian/exporter' => array(
- 'pretty_version' => '4.0.5',
- 'version' => '4.0.5.0',
+ 'pretty_version' => '4.0.6',
+ 'version' => '4.0.6.0',
+ 'reference' => '78c00df8f170e02473b682df15bfcdacc3d32d72',
'type' => 'library',
'install_path' => __DIR__ . '/../sebastian/exporter',
'aliases' => array(),
- 'reference' => 'ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d',
'dev_requirement' => true,
),
'sebastian/global-state' => array(
- 'pretty_version' => '5.0.5',
- 'version' => '5.0.5.0',
+ 'pretty_version' => '5.0.7',
+ 'version' => '5.0.7.0',
+ 'reference' => 'bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9',
'type' => 'library',
'install_path' => __DIR__ . '/../sebastian/global-state',
'aliases' => array(),
- 'reference' => '0ca8db5a5fc9c8646244e629625ac486fa286bf2',
'dev_requirement' => true,
),
'sebastian/lines-of-code' => array(
- 'pretty_version' => '1.0.3',
- 'version' => '1.0.3.0',
+ 'pretty_version' => '1.0.4',
+ 'version' => '1.0.4.0',
+ 'reference' => 'e1e4a170560925c26d424b6a03aed157e7dcc5c5',
'type' => 'library',
'install_path' => __DIR__ . '/../sebastian/lines-of-code',
'aliases' => array(),
- 'reference' => 'c1c2e997aa3146983ed888ad08b15470a2e22ecc',
'dev_requirement' => true,
),
'sebastian/object-enumerator' => array(
'pretty_version' => '4.0.4',
'version' => '4.0.4.0',
+ 'reference' => '5c9eeac41b290a3712d88851518825ad78f45c71',
'type' => 'library',
'install_path' => __DIR__ . '/../sebastian/object-enumerator',
'aliases' => array(),
- 'reference' => '5c9eeac41b290a3712d88851518825ad78f45c71',
'dev_requirement' => true,
),
'sebastian/object-reflector' => array(
'pretty_version' => '2.0.4',
'version' => '2.0.4.0',
+ 'reference' => 'b4f479ebdbf63ac605d183ece17d8d7fe49c15c7',
'type' => 'library',
'install_path' => __DIR__ . '/../sebastian/object-reflector',
'aliases' => array(),
- 'reference' => 'b4f479ebdbf63ac605d183ece17d8d7fe49c15c7',
'dev_requirement' => true,
),
'sebastian/recursion-context' => array(
'pretty_version' => '4.0.5',
'version' => '4.0.5.0',
+ 'reference' => 'e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1',
'type' => 'library',
'install_path' => __DIR__ . '/../sebastian/recursion-context',
'aliases' => array(),
- 'reference' => 'e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1',
'dev_requirement' => true,
),
'sebastian/resource-operations' => array(
- 'pretty_version' => '3.0.3',
- 'version' => '3.0.3.0',
+ 'pretty_version' => '3.0.4',
+ 'version' => '3.0.4.0',
+ 'reference' => '05d5692a7993ecccd56a03e40cd7e5b09b1d404e',
'type' => 'library',
'install_path' => __DIR__ . '/../sebastian/resource-operations',
'aliases' => array(),
- 'reference' => '0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8',
'dev_requirement' => true,
),
'sebastian/type' => array(
'pretty_version' => '3.2.1',
'version' => '3.2.1.0',
+ 'reference' => '75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7',
'type' => 'library',
'install_path' => __DIR__ . '/../sebastian/type',
'aliases' => array(),
- 'reference' => '75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7',
'dev_requirement' => true,
),
'sebastian/version' => array(
'pretty_version' => '3.0.2',
'version' => '3.0.2.0',
+ 'reference' => 'c6c1022351a901512170118436c764e473f6de8c',
'type' => 'library',
'install_path' => __DIR__ . '/../sebastian/version',
'aliases' => array(),
- 'reference' => 'c6c1022351a901512170118436c764e473f6de8c',
'dev_requirement' => true,
),
'swagger-api/swagger-ui' => array(
'pretty_version' => 'v3.52.5',
'version' => '3.52.5.0',
+ 'reference' => 'f1ad60dc92e7edb0898583e16c3e66fe3e9eada2',
'type' => 'library',
'install_path' => __DIR__ . '/../swagger-api/swagger-ui',
'aliases' => array(),
- 'reference' => 'f1ad60dc92e7edb0898583e16c3e66fe3e9eada2',
'dev_requirement' => false,
),
'symfony/console' => array(
- 'pretty_version' => 'v5.4.19',
- 'version' => '5.4.19.0',
+ 'pretty_version' => 'v5.4.47',
+ 'version' => '5.4.47.0',
+ 'reference' => 'c4ba980ca61a9eb18ee6bcc73f28e475852bb1ed',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/console',
'aliases' => array(),
- 'reference' => 'dccb8d251a9017d5994c988b034d3e18aaabf740',
'dev_requirement' => false,
),
'symfony/deprecation-contracts' => array(
- 'pretty_version' => 'v3.0.2',
- 'version' => '3.0.2.0',
+ 'pretty_version' => 'v3.5.1',
+ 'version' => '3.5.1.0',
+ 'reference' => '74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/deprecation-contracts',
'aliases' => array(),
- 'reference' => '26954b3d62a6c5fd0ea8a2a00c0353a14978d05c',
'dev_requirement' => false,
),
'symfony/error-handler' => array(
- 'pretty_version' => 'v5.4.19',
- 'version' => '5.4.19.0',
+ 'pretty_version' => 'v5.4.46',
+ 'version' => '5.4.46.0',
+ 'reference' => 'd19ede7a2cafb386be9486c580649d0f9e3d0363',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/error-handler',
'aliases' => array(),
- 'reference' => '438ef3e5e6481244785da3ce8cf8f4e74e7f2822',
'dev_requirement' => false,
),
'symfony/event-dispatcher' => array(
- 'pretty_version' => 'v6.0.19',
- 'version' => '6.0.19.0',
+ 'pretty_version' => 'v6.4.13',
+ 'version' => '6.4.13.0',
+ 'reference' => '0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/event-dispatcher',
'aliases' => array(),
- 'reference' => '2eaf8e63bc5b8cefabd4a800157f0d0c094f677a',
'dev_requirement' => false,
),
'symfony/event-dispatcher-contracts' => array(
- 'pretty_version' => 'v3.0.2',
- 'version' => '3.0.2.0',
+ 'pretty_version' => 'v3.5.1',
+ 'version' => '3.5.1.0',
+ 'reference' => '7642f5e970b672283b7823222ae8ef8bbc160b9f',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/event-dispatcher-contracts',
'aliases' => array(),
- 'reference' => '7bc61cc2db649b4637d331240c5346dcc7708051',
'dev_requirement' => false,
),
'symfony/event-dispatcher-implementation' => array(
@@ -837,165 +861,147 @@
),
),
'symfony/finder' => array(
- 'pretty_version' => 'v5.4.19',
- 'version' => '5.4.19.0',
+ 'pretty_version' => 'v5.4.45',
+ 'version' => '5.4.45.0',
+ 'reference' => '63741784cd7b9967975eec610b256eed3ede022b',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/finder',
'aliases' => array(),
- 'reference' => '6071aebf810ad13fe8200c224f36103abb37cf1f',
'dev_requirement' => false,
),
'symfony/http-foundation' => array(
- 'pretty_version' => 'v5.4.20',
- 'version' => '5.4.20.0',
+ 'pretty_version' => 'v5.4.48',
+ 'version' => '5.4.48.0',
+ 'reference' => '3f38b8af283b830e1363acd79e5bc3412d055341',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/http-foundation',
'aliases' => array(),
- 'reference' => 'd0435363362a47c14e9cf50663cb8ffbf491875a',
'dev_requirement' => false,
),
'symfony/http-kernel' => array(
'pretty_version' => 'v5.4.20',
'version' => '5.4.20.0',
+ 'reference' => 'aaeec341582d3c160cc9ecfa8b2419ba6c69954e',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/http-kernel',
'aliases' => array(),
- 'reference' => 'aaeec341582d3c160cc9ecfa8b2419ba6c69954e',
'dev_requirement' => false,
),
'symfony/mime' => array(
- 'pretty_version' => 'v5.4.19',
- 'version' => '5.4.19.0',
+ 'pretty_version' => 'v5.4.45',
+ 'version' => '5.4.45.0',
+ 'reference' => '8c1b9b3e5b52981551fc6044539af1d974e39064',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/mime',
'aliases' => array(),
- 'reference' => 'a858429a9c704edc53fe057228cf9ca282ba48eb',
'dev_requirement' => false,
),
'symfony/polyfill-ctype' => array(
- 'pretty_version' => 'v1.27.0',
- 'version' => '1.27.0.0',
+ 'pretty_version' => 'v1.31.0',
+ 'version' => '1.31.0.0',
+ 'reference' => 'a3cc8b044a6ea513310cbd48ef7333b384945638',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/polyfill-ctype',
'aliases' => array(),
- 'reference' => '5bbc823adecdae860bb64756d639ecfec17b050a',
'dev_requirement' => false,
),
'symfony/polyfill-intl-grapheme' => array(
- 'pretty_version' => 'v1.27.0',
- 'version' => '1.27.0.0',
+ 'pretty_version' => 'v1.31.0',
+ 'version' => '1.31.0.0',
+ 'reference' => 'b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme',
'aliases' => array(),
- 'reference' => '511a08c03c1960e08a883f4cffcacd219b758354',
'dev_requirement' => false,
),
'symfony/polyfill-intl-idn' => array(
- 'pretty_version' => 'v1.27.0',
- 'version' => '1.27.0.0',
+ 'pretty_version' => 'v1.31.0',
+ 'version' => '1.31.0.0',
+ 'reference' => 'c36586dcf89a12315939e00ec9b4474adcb1d773',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/polyfill-intl-idn',
'aliases' => array(),
- 'reference' => '639084e360537a19f9ee352433b84ce831f3d2da',
'dev_requirement' => false,
),
'symfony/polyfill-intl-normalizer' => array(
- 'pretty_version' => 'v1.27.0',
- 'version' => '1.27.0.0',
+ 'pretty_version' => 'v1.31.0',
+ 'version' => '1.31.0.0',
+ 'reference' => '3833d7255cc303546435cb650316bff708a1c75c',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/polyfill-intl-normalizer',
'aliases' => array(),
- 'reference' => '19bd1e4fcd5b91116f14d8533c57831ed00571b6',
'dev_requirement' => false,
),
'symfony/polyfill-mbstring' => array(
- 'pretty_version' => 'v1.27.0',
- 'version' => '1.27.0.0',
+ 'pretty_version' => 'v1.31.0',
+ 'version' => '1.31.0.0',
+ 'reference' => '85181ba99b2345b0ef10ce42ecac37612d9fd341',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/polyfill-mbstring',
'aliases' => array(),
- 'reference' => '8ad114f6b39e2c98a8b0e3bd907732c207c2b534',
- 'dev_requirement' => false,
- ),
- 'symfony/polyfill-php72' => array(
- 'pretty_version' => 'v1.27.0',
- 'version' => '1.27.0.0',
- 'type' => 'library',
- 'install_path' => __DIR__ . '/../symfony/polyfill-php72',
- 'aliases' => array(),
- 'reference' => '869329b1e9894268a8a61dabb69153029b7a8c97',
'dev_requirement' => false,
),
'symfony/polyfill-php73' => array(
- 'pretty_version' => 'v1.27.0',
- 'version' => '1.27.0.0',
+ 'pretty_version' => 'v1.31.0',
+ 'version' => '1.31.0.0',
+ 'reference' => '0f68c03565dcaaf25a890667542e8bd75fe7e5bb',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/polyfill-php73',
'aliases' => array(),
- 'reference' => '9e8ecb5f92152187c4799efd3c96b78ccab18ff9',
'dev_requirement' => false,
),
'symfony/polyfill-php80' => array(
- 'pretty_version' => 'v1.27.0',
- 'version' => '1.27.0.0',
+ 'pretty_version' => 'v1.31.0',
+ 'version' => '1.31.0.0',
+ 'reference' => '60328e362d4c2c802a54fcbf04f9d3fb892b4cf8',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/polyfill-php80',
'aliases' => array(),
- 'reference' => '7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936',
- 'dev_requirement' => false,
- ),
- 'symfony/polyfill-php81' => array(
- 'pretty_version' => 'v1.27.0',
- 'version' => '1.27.0.0',
- 'type' => 'library',
- 'install_path' => __DIR__ . '/../symfony/polyfill-php81',
- 'aliases' => array(),
- 'reference' => '707403074c8ea6e2edaf8794b0157a0bfa52157a',
'dev_requirement' => false,
),
'symfony/process' => array(
- 'pretty_version' => 'v5.4.19',
- 'version' => '5.4.19.0',
+ 'pretty_version' => 'v5.4.47',
+ 'version' => '5.4.47.0',
+ 'reference' => '5d1662fb32ebc94f17ddb8d635454a776066733d',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/process',
'aliases' => array(),
- 'reference' => 'c5ba874c9b636dbccf761e22ce750e88ec3f55e1',
'dev_requirement' => false,
),
'symfony/service-contracts' => array(
- 'pretty_version' => 'v2.5.2',
- 'version' => '2.5.2.0',
+ 'pretty_version' => 'v3.5.1',
+ 'version' => '3.5.1.0',
+ 'reference' => 'e53260aabf78fb3d63f8d79d69ece59f80d5eda0',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/service-contracts',
'aliases' => array(),
- 'reference' => '4b426aac47d6427cc1a1d0f7e2ac724627f5966c',
'dev_requirement' => false,
),
'symfony/string' => array(
- 'pretty_version' => 'v6.0.19',
- 'version' => '6.0.19.0',
+ 'pretty_version' => 'v6.4.15',
+ 'version' => '6.4.15.0',
+ 'reference' => '73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/string',
'aliases' => array(),
- 'reference' => 'd9e72497367c23e08bf94176d2be45b00a9d232a',
'dev_requirement' => false,
),
'symfony/translation' => array(
- 'pretty_version' => 'v6.0.19',
- 'version' => '6.0.19.0',
+ 'pretty_version' => 'v6.4.13',
+ 'version' => '6.4.13.0',
+ 'reference' => 'bee9bfabfa8b4045a66bf82520e492cddbaffa66',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/translation',
'aliases' => array(),
- 'reference' => '9c24b3fdbbe9fb2ef3a6afd8bbaadfd72dad681f',
'dev_requirement' => false,
),
'symfony/translation-contracts' => array(
- 'pretty_version' => 'v3.0.2',
- 'version' => '3.0.2.0',
+ 'pretty_version' => 'v3.5.1',
+ 'version' => '3.5.1.0',
+ 'reference' => '4667ff3bd513750603a09c8dedbea942487fb07c',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/translation-contracts',
'aliases' => array(),
- 'reference' => 'acbfbb274e730e5a0236f619b6168d9dedb3e282',
'dev_requirement' => false,
),
'symfony/translation-implementation' => array(
@@ -1005,66 +1011,66 @@
),
),
'symfony/var-dumper' => array(
- 'pretty_version' => 'v5.4.19',
- 'version' => '5.4.19.0',
+ 'pretty_version' => 'v5.4.48',
+ 'version' => '5.4.48.0',
+ 'reference' => '42f18f170aa86d612c3559cfb3bd11a375df32c8',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/var-dumper',
'aliases' => array(),
- 'reference' => '2944bbc23f5f8da2b962fbcbf7c4a6109b2f4b7b',
'dev_requirement' => false,
),
'symfony/yaml' => array(
- 'pretty_version' => 'v6.0.19',
- 'version' => '6.0.19.0',
+ 'pretty_version' => 'v6.4.13',
+ 'version' => '6.4.13.0',
+ 'reference' => 'e99b4e94d124b29ee4cf3140e1b537d2dad8cec9',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/yaml',
'aliases' => array(),
- 'reference' => 'deec3a812a0305a50db8ae689b183f43d915c884',
'dev_requirement' => false,
),
'theseer/tokenizer' => array(
- 'pretty_version' => '1.2.1',
- 'version' => '1.2.1.0',
+ 'pretty_version' => '1.2.3',
+ 'version' => '1.2.3.0',
+ 'reference' => '737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2',
'type' => 'library',
'install_path' => __DIR__ . '/../theseer/tokenizer',
'aliases' => array(),
- 'reference' => '34a41e998c2183e22995f158c581e7b5e755ab9e',
'dev_requirement' => true,
),
'vlucas/phpdotenv' => array(
- 'pretty_version' => 'v5.5.0',
- 'version' => '5.5.0.0',
+ 'pretty_version' => 'v5.6.1',
+ 'version' => '5.6.1.0',
+ 'reference' => 'a59a13791077fe3d44f90e7133eb68e7d22eaff2',
'type' => 'library',
'install_path' => __DIR__ . '/../vlucas/phpdotenv',
'aliases' => array(),
- 'reference' => '1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7',
'dev_requirement' => false,
),
'voku/portable-ascii' => array(
'pretty_version' => '1.6.1',
'version' => '1.6.1.0',
+ 'reference' => '87337c91b9dfacee02452244ee14ab3c43bc485a',
'type' => 'library',
'install_path' => __DIR__ . '/../voku/portable-ascii',
'aliases' => array(),
- 'reference' => '87337c91b9dfacee02452244ee14ab3c43bc485a',
'dev_requirement' => false,
),
'webmozart/assert' => array(
'pretty_version' => '1.11.0',
'version' => '1.11.0.0',
+ 'reference' => '11cb2199493b2f8a3b53e7f19068fc6aac760991',
'type' => 'library',
'install_path' => __DIR__ . '/../webmozart/assert',
'aliases' => array(),
- 'reference' => '11cb2199493b2f8a3b53e7f19068fc6aac760991',
'dev_requirement' => false,
),
'zircote/swagger-php' => array(
'pretty_version' => '3.3.7',
'version' => '3.3.7.0',
+ 'reference' => 'e8c3bb316e385e93a0c7e8b2aa0681079244c381',
'type' => 'library',
'install_path' => __DIR__ . '/../zircote/swagger-php',
'aliases' => array(),
- 'reference' => 'e8c3bb316e385e93a0c7e8b2aa0681079244c381',
'dev_requirement' => false,
),
),
diff --git a/api/vendor/doctrine/annotations/README.md b/api/vendor/doctrine/annotations/README.md
index 6b8c0359be..f1b53b5733 100644
--- a/api/vendor/doctrine/annotations/README.md
+++ b/api/vendor/doctrine/annotations/README.md
@@ -4,6 +4,13 @@ which are a native replacement for annotations. As such, this library is
considered feature complete, and should receive exclusively bugfixes and
security fixes.
+We do not recommend using this library in new projects and encourage authors
+of downstream libraries to offer support for attributes as an alternative to
+Doctrine Annotations.
+
+Have a look at [our blog](https://www.doctrine-project.org/2022/11/04/annotations-to-attributes.html)
+to learn more.
+
# Doctrine Annotations
[![Build Status](https://github.com/doctrine/annotations/workflows/Continuous%20Integration/badge.svg?label=build)](https://github.com/doctrine/persistence/actions)
diff --git a/api/vendor/doctrine/annotations/composer.json b/api/vendor/doctrine/annotations/composer.json
index e322d82fcf..a1ed4760e1 100644
--- a/api/vendor/doctrine/annotations/composer.json
+++ b/api/vendor/doctrine/annotations/composer.json
@@ -39,11 +39,11 @@
},
"require-dev": {
"doctrine/cache": "^1.11 || ^2.0",
- "doctrine/coding-standard": "^9 || ^10",
- "phpstan/phpstan": "~1.4.10 || ^1.8.0",
+ "doctrine/coding-standard": "^9 || ^12",
+ "phpstan/phpstan": "~1.4.10 || ^1.10.28",
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "symfony/cache": "^4.4 || ^5.4 || ^6",
- "vimeo/psalm": "^4.10"
+ "symfony/cache": "^4.4 || ^5.4 || ^6.4 || ^7",
+ "vimeo/psalm": "^4.30 || ^5.14"
},
"suggest": {
"php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations"
diff --git a/api/vendor/doctrine/annotations/docs/en/index.rst b/api/vendor/doctrine/annotations/docs/en/index.rst
index 7caffb50ae..ef173ffa9e 100644
--- a/api/vendor/doctrine/annotations/docs/en/index.rst
+++ b/api/vendor/doctrine/annotations/docs/en/index.rst
@@ -7,6 +7,13 @@ which are a native replacement for annotations. As such, this library is
considered feature complete, and should receive exclusively bugfixes and
security fixes.
+We do not recommend using this library in new projects and encourage authors
+of downstream libraries to offer support for attributes as an alternative to
+Doctrine Annotations.
+
+Have a look at [our blog](https://www.doctrine-project.org/2022/11/04/annotations-to-attributes.html)
+to learn more.
+
Introduction
============
@@ -38,7 +45,7 @@ You can install the Annotation component with composer:
.. code-block::
- $ composer require doctrine/annotations
+ $ composer require doctrine/annotations
Create an annotation class
==========================
diff --git a/api/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php b/api/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php
index 1f538ee534..566fcd42f5 100644
--- a/api/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php
+++ b/api/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php
@@ -12,8 +12,11 @@
use function array_merge;
use function class_exists;
use function extension_loaded;
+use function filter_var;
use function ini_get;
+use const FILTER_VALIDATE_BOOLEAN;
+
/**
* A reader for docblock annotations.
*/
@@ -109,13 +112,17 @@ public static function addGlobalIgnoredNamespace($namespace)
public function __construct(?DocParser $parser = null)
{
if (
- extension_loaded('Zend Optimizer+') && (ini_get('zend_optimizerplus.save_comments') === '0' ||
- ini_get('opcache.save_comments') === '0')
+ extension_loaded('Zend Optimizer+') &&
+ (filter_var(ini_get('zend_optimizerplus.save_comments'), FILTER_VALIDATE_BOOLEAN) === false ||
+ filter_var(ini_get('opcache.save_comments'), FILTER_VALIDATE_BOOLEAN) === false)
) {
throw AnnotationException::optimizerPlusSaveComments();
}
- if (extension_loaded('Zend OPcache') && ini_get('opcache.save_comments') === 0) {
+ if (
+ extension_loaded('Zend OPcache') &&
+ filter_var(ini_get('opcache.save_comments'), FILTER_VALIDATE_BOOLEAN) === false
+ ) {
throw AnnotationException::optimizerPlusSaveComments();
}
diff --git a/api/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php b/api/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php
index 85dbefab5a..6bd6be3a9c 100644
--- a/api/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php
+++ b/api/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php
@@ -11,6 +11,7 @@
use function array_merge;
use function assert;
use function filemtime;
+use function is_file;
use function max;
use function time;
@@ -229,7 +230,7 @@ private function getLastModification(ReflectionClass $class): int
$parent = $class->getParentClass();
$lastModification = max(array_merge(
- [$filename ? filemtime($filename) : 0],
+ [$filename !== false && is_file($filename) ? filemtime($filename) : 0],
array_map(function (ReflectionClass $reflectionTrait): int {
return $this->getTraitLastModificationTime($reflectionTrait);
}, $class->getTraits()),
@@ -253,7 +254,7 @@ private function getTraitLastModificationTime(ReflectionClass $reflectionTrait):
}
$lastModificationTime = max(array_merge(
- [$fileName ? filemtime($fileName) : 0],
+ [$fileName !== false && is_file($fileName) ? filemtime($fileName) : 0],
array_map(function (ReflectionClass $reflectionTrait): int {
return $this->getTraitLastModificationTime($reflectionTrait);
}, $reflectionTrait->getTraits())
diff --git a/api/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php b/api/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php
index dbba52522e..3aa4c7aa40 100644
--- a/api/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php
+++ b/api/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php
@@ -74,7 +74,7 @@ public function nextTokenIsAdjacent(): bool
}
/**
- * {@inheritdoc}
+ * {@inheritDoc}
*/
protected function getCatchablePatterns()
{
@@ -86,7 +86,7 @@ protected function getCatchablePatterns()
}
/**
- * {@inheritdoc}
+ * {@inheritDoc}
*/
protected function getNonCatchablePatterns()
{
@@ -94,7 +94,7 @@ protected function getNonCatchablePatterns()
}
/**
- * {@inheritdoc}
+ * {@inheritDoc}
*/
protected function getType(&$value)
{
diff --git a/api/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php b/api/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php
index 5ec150d3e1..fbbde94ae4 100644
--- a/api/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php
+++ b/api/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php
@@ -49,6 +49,8 @@
* A parser for docblock annotations.
*
* It is strongly discouraged to change the default annotation parsing process.
+ *
+ * @psalm-type Arguments = array{positional_arguments?: array, named_arguments?: array}
*/
final class DocParser
{
@@ -1038,7 +1040,7 @@ private function Annotation()
/**
* MethodCall ::= ["(" [Values] ")"]
*
- * @return mixed[]
+ * @psalm-return Arguments
*
* @throws AnnotationException
* @throws ReflectionException
@@ -1065,7 +1067,7 @@ private function MethodCall(): array
/**
* Values ::= Array | Value {"," Value}* [","]
*
- * @return mixed[]
+ * @psalm-return Arguments
*
* @throws AnnotationException
* @throws ReflectionException
@@ -1427,7 +1429,7 @@ private function isIgnoredAnnotation(string $name): bool
/**
* Resolve positional arguments (without name) to named ones
*
- * @param array $arguments
+ * @psalm-param Arguments $arguments
*
* @return array
*/
diff --git a/api/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PsrCachedReader.php b/api/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PsrCachedReader.php
index a7099d5790..b42da39a72 100644
--- a/api/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PsrCachedReader.php
+++ b/api/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PsrCachedReader.php
@@ -12,6 +12,7 @@
use function array_merge;
use function assert;
use function filemtime;
+use function is_file;
use function max;
use function rawurlencode;
use function time;
@@ -195,7 +196,7 @@ private function getLastModification(ReflectionClass $class): int
$parent = $class->getParentClass();
$lastModification = max(array_merge(
- [$filename ? filemtime($filename) : 0],
+ [$filename !== false && is_file($filename) ? filemtime($filename) : 0],
array_map(function (ReflectionClass $reflectionTrait): int {
return $this->getTraitLastModificationTime($reflectionTrait);
}, $class->getTraits()),
@@ -219,7 +220,7 @@ private function getTraitLastModificationTime(ReflectionClass $reflectionTrait):
}
$lastModificationTime = max(array_merge(
- [$fileName ? filemtime($fileName) : 0],
+ [$fileName !== false && is_file($fileName) ? filemtime($fileName) : 0],
array_map(function (ReflectionClass $reflectionTrait): int {
return $this->getTraitLastModificationTime($reflectionTrait);
}, $reflectionTrait->getTraits())
diff --git a/api/vendor/doctrine/annotations/psalm.xml b/api/vendor/doctrine/annotations/psalm.xml
index e6af389238..e0eefe97ec 100644
--- a/api/vendor/doctrine/annotations/psalm.xml
+++ b/api/vendor/doctrine/annotations/psalm.xml
@@ -1,7 +1,10 @@
+
+
+
+
+
+
+
+
diff --git a/api/vendor/doctrine/inflector/composer.json b/api/vendor/doctrine/inflector/composer.json
index 862ea5c35d..91d77071e5 100644
--- a/api/vendor/doctrine/inflector/composer.json
+++ b/api/vendor/doctrine/inflector/composer.json
@@ -16,12 +16,12 @@
"php": "^7.2 || ^8.0"
},
"require-dev": {
- "doctrine/coding-standard": "^10",
+ "doctrine/coding-standard": "^11.0",
"phpstan/phpstan": "^1.8",
"phpstan/phpstan-phpunit": "^1.1",
"phpstan/phpstan-strict-rules": "^1.3",
"phpunit/phpunit": "^8.5 || ^9.5",
- "vimeo/psalm": "^4.25"
+ "vimeo/psalm": "^4.25 || ^5.4"
},
"autoload": {
"psr-4": {
diff --git a/api/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Inflectible.php b/api/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Inflectible.php
index db884ca043..8bf02a2920 100644
--- a/api/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Inflectible.php
+++ b/api/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Inflectible.php
@@ -47,7 +47,7 @@ public static function getSingular(): iterable
yield new Transformation(new Pattern('(analy|diagno|^ba|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$'), '\1\2sis');
yield new Transformation(new Pattern('(tax)a$'), '\1on');
yield new Transformation(new Pattern('(c)riteria$'), '\1riterion');
- yield new Transformation(new Pattern('([ti])a$'), '\1um');
+ yield new Transformation(new Pattern('([ti])a(?getName()
+ $reflectionClass->getName(),
));
}
@@ -44,7 +46,7 @@ public static function fromEnum(string $className): self
{
return new self(sprintf(
'The provided class "%s" is an enum, and cannot be instantiated',
- $className
+ $className,
));
}
}
diff --git a/api/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php b/api/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php
index 4e55ac5250..4f70ded200 100644
--- a/api/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php
+++ b/api/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php
@@ -1,5 +1,7 @@
getName()
+ $reflectionClass->getName(),
),
0,
- $exception
+ $exception,
);
}
@@ -42,7 +44,7 @@ public static function fromUncleanUnSerialization(
string $errorString,
int $errorCode,
string $errorFile,
- int $errorLine
+ int $errorLine,
): self {
return new self(
sprintf(
@@ -50,10 +52,10 @@ public static function fromUncleanUnSerialization(
. 'in file "%s" at line "%d"',
$reflectionClass->getName(),
$errorFile,
- $errorLine
+ $errorLine,
),
0,
- new Exception($errorString, $errorCode)
+ new Exception($errorString, $errorCode),
);
}
}
diff --git a/api/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php b/api/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php
index 10067a0f49..f803f89aa7 100644
--- a/api/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php
+++ b/api/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php
@@ -1,5 +1,7 @@
$className
*
- * @return object
* @phpstan-return T
*
* @throws ExceptionInterface
*
* @template T of object
*/
- public function instantiate($className)
+ public function instantiate(string $className): object
{
if (isset(self::$cachedCloneables[$className])) {
/** @phpstan-var T */
@@ -84,12 +80,11 @@ public function instantiate($className)
*
* @phpstan-param class-string $className
*
- * @return object
* @phpstan-return T
*
* @template T of object
*/
- private function buildAndCacheFromFactory(string $className)
+ private function buildAndCacheFromFactory(string $className): object
{
$factory = self::$cachedInstantiators[$className] = $this->buildFactory($className);
$instance = $factory();
@@ -127,14 +122,12 @@ private function buildFactory(string $className): callable
'%s:%d:"%s":0:{}',
is_subclass_of($className, Serializable::class) ? self::SERIALIZATION_FORMAT_USE_UNSERIALIZER : self::SERIALIZATION_FORMAT_AVOID_UNSERIALIZER,
strlen($className),
- $className
+ $className,
);
$this->checkIfUnSerializationIsSupported($reflectionClass, $serializedString);
- return static function () use ($serializedString) {
- return unserialize($serializedString);
- };
+ return static fn () => unserialize($serializedString);
}
/**
@@ -153,7 +146,7 @@ private function getReflectionClass(string $className): ReflectionClass
throw InvalidArgumentException::fromNonExistingClass($className);
}
- if (PHP_VERSION_ID >= 80100 && enum_exists($className, false)) {
+ if (enum_exists($className, false)) {
throw InvalidArgumentException::fromEnum($className);
}
@@ -181,7 +174,7 @@ private function checkIfUnSerializationIsSupported(ReflectionClass $reflectionCl
$message,
$code,
$file,
- $line
+ $line,
);
return true;
diff --git a/api/vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php b/api/vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php
index 10508b562e..c6ebe351b5 100644
--- a/api/vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php
+++ b/api/vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php
@@ -1,5 +1,7 @@
$className
*
- * @return object
* @phpstan-return T
*
* @throws ExceptionInterface
*
* @template T of object
*/
- public function instantiate($className);
+ public function instantiate(string $className): object;
}
diff --git a/api/vendor/dragonmantank/cron-expression/CHANGELOG.md b/api/vendor/dragonmantank/cron-expression/CHANGELOG.md
index 7b6df4b1cb..17ab2ce44d 100644
--- a/api/vendor/dragonmantank/cron-expression/CHANGELOG.md
+++ b/api/vendor/dragonmantank/cron-expression/CHANGELOG.md
@@ -1,5 +1,17 @@
# Change Log
+## [3.3.3] - 2024-08-10
+
+### Added
+- N/A
+
+### Changed
+- N/A
+
+### Fixed
+- Added fixes for making sure `?` is not passed for both DOM and DOW (#148, thank you https://github.com/LeoVie)
+- Fixed bug in Next Execution Time by sorting minutes properly (#160, thank you https://github.com/imyip)
+
## [3.3.2] - 2022-09-19
### Added
diff --git a/api/vendor/dragonmantank/cron-expression/README.md b/api/vendor/dragonmantank/cron-expression/README.md
index e853ad4555..b9df3db5fb 100644
--- a/api/vendor/dragonmantank/cron-expression/README.md
+++ b/api/vendor/dragonmantank/cron-expression/README.md
@@ -1,7 +1,7 @@
PHP Cron Expression Parser
==========================
-[![Latest Stable Version](https://poser.pugx.org/dragonmantank/cron-expression/v/stable.png)](https://packagist.org/packages/dragonmantank/cron-expression) [![Total Downloads](https://poser.pugx.org/dragonmantank/cron-expression/downloads.png)](https://packagist.org/packages/dragonmantank/cron-expression) [![Build Status](https://secure.travis-ci.org/dragonmantank/cron-expression.png)](http://travis-ci.org/dragonmantank/cron-expression) [![StyleCI](https://github.styleci.io/repos/103715337/shield?branch=master)](https://github.styleci.io/repos/103715337)
+[![Latest Stable Version](https://poser.pugx.org/dragonmantank/cron-expression/v/stable.png)](https://packagist.org/packages/dragonmantank/cron-expression) [![Total Downloads](https://poser.pugx.org/dragonmantank/cron-expression/downloads.png)](https://packagist.org/packages/dragonmantank/cron-expression) [![Tests](https://github.com/dragonmantank/cron-expression/actions/workflows/tests.yml/badge.svg)](https://github.com/dragonmantank/cron-expression/actions/workflows/tests.yml) [![StyleCI](https://github.styleci.io/repos/103715337/shield?branch=master)](https://github.styleci.io/repos/103715337)
The PHP cron expression parser can parse a CRON expression, determine if it is
due to run, calculate the next run date of the expression, and calculate the previous
@@ -55,23 +55,65 @@ CRON Expressions
A CRON expression is a string representing the schedule for a particular command to execute. The parts of a CRON schedule are as follows:
- * * * * *
- - - - - -
- | | | | |
- | | | | |
- | | | | +----- day of week (0 - 7) (Sunday=0 or 7)
- | | | +---------- month (1 - 12)
- | | +--------------- day of month (1 - 31)
- | +-------------------- hour (0 - 23)
- +------------------------- min (0 - 59)
-
-This library also supports a few macros:
+```
+* * * * *
+- - - - -
+| | | | |
+| | | | |
+| | | | +----- day of week (0-7) (Sunday = 0 or 7) (or SUN-SAT)
+| | | +--------- month (1-12) (or JAN-DEC)
+| | +------------- day of month (1-31)
+| +----------------- hour (0-23)
++--------------------- minute (0-59)
+```
-* `@yearly`, `@annually` - Run once a year, midnight, Jan. 1 - `0 0 1 1 *`
-* `@monthly` - Run once a month, midnight, first of month - `0 0 1 * *`
-* `@weekly` - Run once a week, midnight on Sun - `0 0 * * 0`
-* `@daily`, `@midnight` - Run once a day, midnight - `0 0 * * *`
-* `@hourly` - Run once an hour, first minute - `0 * * * *`
+Each part of expression can also use wildcard, lists, ranges and steps:
+
+- wildcard - match always
+ - `* * * * *` - At every minute.
+ - day of week and day of month also support `?`, an alias to `*`
+- lists - match list of values, ranges and steps
+ - e.g. `15,30 * * * *` - At minute 15 and 30.
+- ranges - match values in range
+ - e.g. `1-9 * * * *` - At every minute from 1 through 9.
+- steps - match every nth value in range
+ - e.g. `*/5 * * * *` - At every 5th minute.
+ - e.g. `0-30/5 * * * *` - At every 5th minute from 0 through 30.
+- combinations
+ - e.g. `0-14,30-44 * * * *` - At every minute from 0 through 14 and every minute from 30 through 44.
+
+You can also use macro instead of an expression:
+
+- `@yearly`, `@annually` - At 00:00 on 1st of January. (same as `0 0 1 1 *`)
+- `@monthly` - At 00:00 on day-of-month 1. (same as `0 0 1 * *`)
+- `@weekly` - At 00:00 on Sunday. (same as `0 0 * * 0`)
+- `@daily`, `@midnight` - At 00:00. (same as `0 0 * * *`)
+- `@hourly` - At minute 0. (same as `0 * * * *`)
+
+Day of month extra features:
+
+- nearest weekday - weekday (Monday-Friday) nearest to the given day
+ - e.g. `* * 15W * *` - At every minute on a weekday nearest to the 15th.
+ - If you were to specify `15W` as the value, the meaning is: "the nearest weekday to the 15th of the month"
+ So if the 15th is a Saturday, the trigger will fire on Friday the 14th.
+ If the 15th is a Sunday, the trigger will fire on Monday the 16th.
+ If the 15th is a Tuesday, then it will fire on Tuesday the 15th.
+ - However, if you specify `1W` as the value for day-of-month,
+ and the 1st is a Saturday, the trigger will fire on Monday the 3rd,
+ as it will not 'jump' over the boundary of a month's days.
+- last day of the month
+ - e.g. `* * L * *` - At every minute on a last day-of-month.
+- last weekday of the month
+ - e.g. `* * LW * *` - At every minute on a last weekday.
+
+Day of week extra features:
+
+- nth day
+ - e.g. `* * * * 7#4` - At every minute on 4th Sunday.
+ - 1-5
+ - Every day of week repeats 4-5 times a month. To target the last one, use "last day" feature instead.
+- last day
+ - e.g. `* * * * 7L` - At every minute on the last Sunday.
Requirements
============
@@ -84,4 +126,6 @@ Projects that Use cron-expression
=================================
* Part of the [Laravel Framework](https://github.com/laravel/framework/)
* Available as a [Symfony Bundle - setono/cron-expression-bundle](https://github.com/Setono/CronExpressionBundle)
-* Framework agnostic, PHP-based job scheduler - [Crunz](https://github.com/lavary/crunz)
+* Framework agnostic, PHP-based job scheduler - [Crunz](https://github.com/crunzphp/crunz)
+* Framework agnostic job scheduler - with locks, parallelism, per-second scheduling and more - [orisai/scheduler](https://github.com/orisai/scheduler)
+* Explain expression in English (and other languages) with [orisai/cron-expression-explainer](https://github.com/orisai/cron-expression-explainer)
diff --git a/api/vendor/dragonmantank/cron-expression/composer.json b/api/vendor/dragonmantank/cron-expression/composer.json
index 657a5b47cd..fdb46ee41e 100644
--- a/api/vendor/dragonmantank/cron-expression/composer.json
+++ b/api/vendor/dragonmantank/cron-expression/composer.json
@@ -18,7 +18,6 @@
"require-dev": {
"phpstan/phpstan": "^1.0",
"phpunit/phpunit": "^7.0|^8.0|^9.0",
- "phpstan/phpstan-webmozart-assert": "^1.0",
"phpstan/extension-installer": "^1.0"
},
"autoload": {
@@ -38,6 +37,11 @@
"phpstan": "./vendor/bin/phpstan analyze",
"test": "phpunit"
},
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.x-dev"
+ }
+ },
"config": {
"allow-plugins": {
"ocramius/package-versions": true,
diff --git a/api/vendor/dragonmantank/cron-expression/phpstan.neon b/api/vendor/dragonmantank/cron-expression/phpstan.neon
deleted file mode 100644
index bea9cb0dad..0000000000
--- a/api/vendor/dragonmantank/cron-expression/phpstan.neon
+++ /dev/null
@@ -1,15 +0,0 @@
-parameters:
- checkMissingIterableValueType: false
-
- ignoreErrors:
- - '#Call to an undefined method DateTimeInterface::add\(\)#'
- - '#Call to an undefined method DateTimeInterface::modify\(\)#'
- - '#Call to an undefined method DateTimeInterface::setDate\(\)#'
- - '#Call to an undefined method DateTimeInterface::setTime\(\)#'
- - '#Call to an undefined method DateTimeInterface::setTimezone\(\)#'
- - '#Call to an undefined method DateTimeInterface::sub\(\)#'
-
- level: max
-
- paths:
- - src/
diff --git a/api/vendor/dragonmantank/cron-expression/src/Cron/CronExpression.php b/api/vendor/dragonmantank/cron-expression/src/Cron/CronExpression.php
index d5337cc57f..f3d8eb003f 100644
--- a/api/vendor/dragonmantank/cron-expression/src/Cron/CronExpression.php
+++ b/api/vendor/dragonmantank/cron-expression/src/Cron/CronExpression.php
@@ -12,7 +12,6 @@
use InvalidArgumentException;
use LogicException;
use RuntimeException;
-use Webmozart\Assert\Assert;
/**
* CRON expression parser that can determine whether or not a CRON expression is
@@ -148,7 +147,7 @@ public static function getAliases(): array
/**
* @deprecated since version 3.0.2, use __construct instead.
*/
- public static function factory(string $expression, FieldFactoryInterface $fieldFactory = null): CronExpression
+ public static function factory(string $expression, ?FieldFactoryInterface $fieldFactory = null): CronExpression
{
/** @phpstan-ignore-next-line */
return new static($expression, $fieldFactory);
@@ -177,8 +176,9 @@ public static function isValidExpression(string $expression): bool
*
* @param string $expression CRON expression (e.g. '8 * * * *')
* @param null|FieldFactoryInterface $fieldFactory Factory to create cron fields
+ * @throws InvalidArgumentException
*/
- public function __construct(string $expression, FieldFactoryInterface $fieldFactory = null)
+ public function __construct(string $expression, ?FieldFactoryInterface $fieldFactory = null)
{
$shortcut = strtolower($expression);
$expression = self::$registeredAliases[$shortcut] ?? $expression;
@@ -199,15 +199,29 @@ public function __construct(string $expression, FieldFactoryInterface $fieldFact
public function setExpression(string $value): CronExpression
{
$split = preg_split('/\s/', $value, -1, PREG_SPLIT_NO_EMPTY);
- Assert::isArray($split);
- $this->cronParts = $split;
- if (\count($this->cronParts) < 5) {
+ if (!\is_array($split)) {
+ throw new InvalidArgumentException(
+ $value . ' is not a valid CRON expression'
+ );
+ }
+
+ $notEnoughParts = \count($split) < 5;
+
+ $questionMarkInInvalidPart = array_key_exists(0, $split) && $split[0] === '?'
+ || array_key_exists(1, $split) && $split[1] === '?'
+ || array_key_exists(3, $split) && $split[3] === '?';
+
+ $tooManyQuestionMarks = array_key_exists(2, $split) && $split[2] === '?'
+ && array_key_exists(4, $split) && $split[4] === '?';
+
+ if ($notEnoughParts || $questionMarkInInvalidPart || $tooManyQuestionMarks) {
throw new InvalidArgumentException(
$value . ' is not a valid CRON expression'
);
}
+ $this->cronParts = $split;
foreach ($this->cronParts as $position => $part) {
$this->setPart($position, $part);
}
@@ -324,7 +338,10 @@ public function getMultipleRunDates(int $total, $currentTime = 'now', bool $inve
$currentTime = new DateTime($currentTime);
}
- Assert::isInstanceOf($currentTime, DateTime::class);
+ if (!$currentTime instanceof DateTime) {
+ throw new InvalidArgumentException('invalid current time');
+ }
+
$currentTime->setTimezone(new DateTimeZone($timeZone));
$matches = [];
@@ -410,7 +427,10 @@ public function isDue($currentTime = 'now', $timeZone = null): bool
$currentTime = new DateTime($currentTime);
}
- Assert::isInstanceOf($currentTime, DateTime::class);
+ if (!$currentTime instanceof DateTime) {
+ throw new InvalidArgumentException('invalid current time');
+ }
+
$currentTime->setTimezone(new DateTimeZone($timeZone));
// drop the seconds to 0
@@ -452,7 +472,10 @@ protected function getRunDate($currentTime = null, int $nth = 0, bool $invert =
$currentDate = new DateTime('now');
}
- Assert::isInstanceOf($currentDate, DateTime::class);
+ if (!$currentDate instanceof DateTime) {
+ throw new InvalidArgumentException('invalid current date');
+ }
+
$currentDate->setTimezone(new DateTimeZone($timeZone));
// Workaround for setTime causing an offset change: https://bugs.php.net/bug.php?id=81074
$currentDate = DateTime::createFromFormat("!Y-m-d H:iO", $currentDate->format("Y-m-d H:iP"), $currentDate->getTimezone());
diff --git a/api/vendor/dragonmantank/cron-expression/src/Cron/MinutesField.php b/api/vendor/dragonmantank/cron-expression/src/Cron/MinutesField.php
index eda91098e8..f077e6ec51 100644
--- a/api/vendor/dragonmantank/cron-expression/src/Cron/MinutesField.php
+++ b/api/vendor/dragonmantank/cron-expression/src/Cron/MinutesField.php
@@ -49,6 +49,7 @@ public function increment(DateTimeInterface &$date, $invert = false, $parts = nu
$current_minute = (int) $date->format('i');
$parts = false !== strpos($parts, ',') ? explode(',', $parts) : [$parts];
+ sort($parts);
$minutes = [];
foreach ($parts as $part) {
$minutes = array_merge($minutes, $this->getRangeForExpression($part, 59));
diff --git a/api/vendor/fakerphp/faker/CHANGELOG.md b/api/vendor/fakerphp/faker/CHANGELOG.md
index 566ad322c7..d3e37221b2 100644
--- a/api/vendor/fakerphp/faker/CHANGELOG.md
+++ b/api/vendor/fakerphp/faker/CHANGELOG.md
@@ -1,6 +1,34 @@
# CHANGELOG
-## [Unreleased](https://github.com/FakerPHP/Faker/compare/v1.20.0...main)
+## [Unreleased](https://github.com/FakerPHP/Faker/compare/v1.24.0...1.24.1)
+
+- Removed domain `gmail.com.au` from `Provider\en_AU\Internet` (#886)
+
+## [2024-11-09, v1.24.0](https://github.com/FakerPHP/Faker/compare/v1.23.1..v1.24.0)
+
+- Fix internal deprecations in Doctrine's populator by @gnutix in (#889)
+- Fix mobile phone number pattern for France by @ker0x in (#859)
+- PHP 8.4 Support by @Jubeki in (#904)
+
+- Added support for PHP 8.4 (#904)
+
+## [2023-09-29, v1.23.1](https://github.com/FakerPHP/Faker/compare/v1.23.0..v1.23.1)
+
+- Fixed double `а` female lastName in `ru_RU/Person::name()` (#832)
+- Fixed polish license plates (#685)
+- Stopped using `static` in callables in `Provider\pt_BR\PhoneNumber` (#785)
+- Fixed incorrect female name (#794)
+- Stopped using the deprecated `MT_RAND_PHP` constant to seed the random generator on PHP 8.3 (#844)
+
+## [2023-06-12, v1.23.0](https://github.com/FakerPHP/Faker/compare/v1.22.0..v1.23.0)
+
+- Update `randomElements` to return random number of elements when no count is provided (#658)
+
+## [2023-05-14, v1.22.0](https://github.com/FakerPHP/Faker/compare/v1.21.0..v1.22.0)
+
+- Fixed `randomElements()` to accept empty iterator (#605)
+- Added support for passing an `Enum` to `randomElement()` and `randomElements()` (#620)
+- Started rejecting invalid arguments passed to `randomElement()` and `randomElements()` (#642)
## [2022-12-13, v1.21.0](https://github.com/FakerPHP/Faker/compare/v1.20.0..v1.21.0)
diff --git a/api/vendor/fakerphp/faker/README.md b/api/vendor/fakerphp/faker/README.md
index c3c199d5c1..2c6a26843e 100644
--- a/api/vendor/fakerphp/faker/README.md
+++ b/api/vendor/fakerphp/faker/README.md
@@ -81,11 +81,18 @@ to run `rector/rector`.
*Note:* do not forget to replace `src/` with the path to your source directory.
-Another way is to use it in your `rector.php` file:
+Alternatively, import the configuration in your `rector.php` file:
```php
-$rectorConfig->import('vendor/fakerphp/faker/rector-migrate.php');
-$faker($rectorConfig);
+import('vendor/fakerphp/faker/rector-migrate.php');
+};
```
## License
diff --git a/api/vendor/fakerphp/faker/composer.json b/api/vendor/fakerphp/faker/composer.json
index 9b85ce9d43..88724f2a60 100644
--- a/api/vendor/fakerphp/faker/composer.json
+++ b/api/vendor/fakerphp/faker/composer.json
@@ -52,10 +52,5 @@
"composer/package-versions-deprecated": true
},
"sort-packages": true
- },
- "extra": {
- "branch-alias": {
- "dev-main": "v1.21-dev"
- }
}
}
diff --git a/api/vendor/fakerphp/faker/psalm.baseline.xml b/api/vendor/fakerphp/faker/psalm.baseline.xml
deleted file mode 100644
index 7c3b4e8717..0000000000
--- a/api/vendor/fakerphp/faker/psalm.baseline.xml
+++ /dev/null
@@ -1,247 +0,0 @@
-
-
-
-
- 0
-
-
- string
-
-
-
-
- $this->uniqueGenerator
- new ChanceGenerator($this, $weight, $default)
- new ValidGenerator($this, $validator, $maxRetries)
-
-
- self
- self
- self
-
-
-
-
- TableRegistry
-
-
-
-
- $this->class
- \Doctrine\ODM\MongoDB\Mapping\ClassMetadata
- \Doctrine\ODM\MongoDB\Mapping\ClassMetadata
- \Doctrine\ODM\MongoDB\Mapping\ClassMetadata
- \Doctrine\ORM\Mapping\ClassMetadata
- \Doctrine\ORM\Mapping\ClassMetadata
-
-
- createQueryBuilder
- getAssociationMappings
- newInstance
-
-
-
-
- Mandango
- Mandango
-
-
-
-
- $this->mandango
- Mandango
-
-
-
-
- \ColumnMap
-
-
-
-
- $columnMap
- $columnMap
- $columnMap
- $columnMap
- $columnMap
- $columnMap
- $columnMap
- $columnMap
- \ColumnMap
-
-
-
-
- \Propel
-
-
- PropelPDO
-
-
-
-
- ColumnMap
-
-
-
-
- $columnMap
- $columnMap
- $columnMap
- $columnMap
- $columnMap
- $columnMap
- $columnMap
- $columnMap
- ColumnMap
-
-
-
-
- Propel
-
-
- PropelPDO
-
-
-
-
- $this->mapper
-
-
- string
-
-
- $relation
- $relation
- BelongsTo
- Locator
- Mapper
-
-
- $locator
- $this->mapper
- $this->mapper
- $this->mapper
- $this->mapper
- $this->mapper
- Locator
- Mapper
-
-
-
-
- $this->locator
- Locator
-
-
- Locator
-
-
-
-
- [static::class, 'randomDigit']
-
-
- $array
-
-
- Closure
-
-
-
-
- false
-
-
-
-
- $element->ownerDocument
- $element->ownerDocument
- $element->ownerDocument
- $element->ownerDocument
- $element->ownerDocument
- $element->ownerDocument
- $element->ownerDocument
- $element->ownerDocument
- $element->ownerDocument
- $element->ownerDocument
- $element->ownerDocument
- $root->ownerDocument
-
-
-
-
- $imei
-
-
- int
-
-
-
-
- static::$cityPrefix
-
-
-
-
- static::birthNumber(static::GENDER_FEMALE)
- static::birthNumber(static::GENDER_MALE)
-
-
-
-
- $weights[$i]
-
-
-
-
- $ref[$i]
-
-
-
-
- static::split($text)
-
-
-
-
- $multipliers[$i - 1]
-
-
-
-
- $weights[$i]
- $weights[$i]
-
-
-
-
- $weights[$i]
-
-
-
-
- $high[$i]
- $low[$i]
- $result[$i]
- $weights[$i + 3]
- $weights[$i]
- $weights[$i]
-
-
- DateTime
-
-
-
-
- $multipliers[$i]
-
-
-
-
- static::lastName()
- static::lastName()
-
-
-
diff --git a/api/vendor/fakerphp/faker/src/Faker/Calculator/Ean.php b/api/vendor/fakerphp/faker/src/Faker/Calculator/Ean.php
index 9c3daf1757..fbf11fcdad 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Calculator/Ean.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Calculator/Ean.php
@@ -17,11 +17,9 @@ class Ean
*
* @see https://en.wikipedia.org/wiki/International_Article_Number
*
- * @param string $digits
- *
* @return int
*/
- public static function checksum($digits)
+ public static function checksum(string $digits)
{
$sequence = (strlen($digits) + 1) === 8 ? [3, 1] : [1, 3];
$sums = 0;
@@ -41,7 +39,7 @@ public static function checksum($digits)
*
* @return bool
*/
- public static function isValid($ean)
+ public static function isValid(string $ean)
{
if (!preg_match(self::PATTERN, $ean)) {
return false;
diff --git a/api/vendor/fakerphp/faker/src/Faker/Calculator/Iban.php b/api/vendor/fakerphp/faker/src/Faker/Calculator/Iban.php
index b00b18f010..19068fd775 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Calculator/Iban.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Calculator/Iban.php
@@ -7,11 +7,9 @@ class Iban
/**
* Generates IBAN Checksum
*
- * @param string $iban
- *
* @return string Checksum (numeric string)
*/
- public static function checksum($iban)
+ public static function checksum(string $iban)
{
// Move first four digits to end and set checksum to '00'
$checkString = substr($iban, 4) . substr($iban, 0, 2) . '00';
@@ -34,11 +32,9 @@ static function (array $matches): string {
/**
* Converts letter to number
*
- * @param string $char
- *
* @return int
*/
- public static function alphaToNumber($char)
+ public static function alphaToNumber(string $char)
{
return ord($char) - 55;
}
@@ -50,7 +46,7 @@ public static function alphaToNumber($char)
*
* @return int
*/
- public static function mod97($number)
+ public static function mod97(string $number)
{
$checksum = (int) $number[0];
@@ -64,11 +60,9 @@ public static function mod97($number)
/**
* Checks whether an IBAN has a valid checksum
*
- * @param string $iban
- *
* @return bool
*/
- public static function isValid($iban)
+ public static function isValid(string $iban)
{
return self::checksum($iban) === substr($iban, 2, 2);
}
diff --git a/api/vendor/fakerphp/faker/src/Faker/Calculator/Luhn.php b/api/vendor/fakerphp/faker/src/Faker/Calculator/Luhn.php
index 3a048fb082..4c1e6f5054 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Calculator/Luhn.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Calculator/Luhn.php
@@ -13,11 +13,9 @@
class Luhn
{
/**
- * @param string $number
- *
* @return int
*/
- private static function checksum($number)
+ private static function checksum(string $number)
{
$number = (string) $number;
$length = strlen($number);
@@ -35,16 +33,14 @@ private static function checksum($number)
}
/**
- * @param string $partialNumber
- *
* @return string
*/
- public static function computeCheckDigit($partialNumber)
+ public static function computeCheckDigit(string $partialNumber)
{
$checkDigit = self::checksum($partialNumber . '0');
if ($checkDigit === 0) {
- return 0;
+ return '0';
}
return (string) (10 - $checkDigit);
@@ -53,11 +49,9 @@ public static function computeCheckDigit($partialNumber)
/**
* Checks whether a number (partial number + check digit) is Luhn compliant
*
- * @param string $number
- *
* @return bool
*/
- public static function isValid($number)
+ public static function isValid(string $number)
{
return self::checksum($number) === 0;
}
@@ -65,11 +59,9 @@ public static function isValid($number)
/**
* Generate a Luhn compliant number.
*
- * @param string $partialValue
- *
* @return string
*/
- public static function generateLuhnNumber($partialValue)
+ public static function generateLuhnNumber(string $partialValue)
{
if (!preg_match('/^\d+$/', $partialValue)) {
throw new \InvalidArgumentException('Argument should be an integer.');
diff --git a/api/vendor/fakerphp/faker/src/Faker/Container/Container.php b/api/vendor/fakerphp/faker/src/Faker/Container/Container.php
index 2dd2d974d7..9b361845f2 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Container/Container.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Container/Container.php
@@ -16,9 +16,9 @@ final class Container implements ContainerInterface
/**
* @var array
*/
- private $definitions;
+ private array $definitions;
- private $services = [];
+ private array $services = [];
/**
* Create a container object with a set of definitions. The array value MUST
@@ -63,7 +63,7 @@ public function get($id): Extension
$definition = $this->definitions[$id];
- $service = $this->services[$id] = $this->getService($id, $definition);
+ $service = $this->getService($id, $definition);
if (!$service instanceof Extension) {
throw new \RuntimeException(sprintf(
@@ -73,6 +73,8 @@ public function get($id): Extension
));
}
+ $this->services[$id] = $service;
+
return $service;
}
@@ -81,7 +83,7 @@ public function get($id): Extension
*
* @param callable|object|string $definition
*/
- private function getService($id, $definition)
+ private function getService(string $id, $definition)
{
if (is_callable($definition)) {
try {
@@ -134,12 +136,4 @@ public function has($id): bool
return array_key_exists($id, $this->definitions);
}
-
- /**
- * Get the bindings between Extension interfaces and implementations.
- */
- public function getDefinitions(): array
- {
- return $this->definitions;
- }
}
diff --git a/api/vendor/fakerphp/faker/src/Faker/Container/ContainerBuilder.php b/api/vendor/fakerphp/faker/src/Faker/Container/ContainerBuilder.php
index 3fb335fff5..f2545e944b 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Container/ContainerBuilder.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Container/ContainerBuilder.php
@@ -5,14 +5,7 @@
namespace Faker\Container;
use Faker\Core;
-use Faker\Extension\BarcodeExtension;
-use Faker\Extension\BloodExtension;
-use Faker\Extension\ColorExtension;
-use Faker\Extension\DateTimeExtension;
-use Faker\Extension\FileExtension;
-use Faker\Extension\NumberExtension;
-use Faker\Extension\UuidExtension;
-use Faker\Extension\VersionExtension;
+use Faker\Extension;
/**
* @experimental This class is experimental and does not fall under our BC promise
@@ -22,36 +15,23 @@ final class ContainerBuilder
/**
* @var array
*/
- private $definitions = [];
+ private array $definitions = [];
/**
- * @param callable|object|string $value
+ * @param callable|object|string $definition
*
* @throws \InvalidArgumentException
*/
- public function add($value, string $name = null): self
+ public function add(string $id, $definition): self
{
- if (!is_string($value) && !is_callable($value) && !is_object($value)) {
+ if (!is_string($definition) && !is_callable($definition) && !is_object($definition)) {
throw new \InvalidArgumentException(sprintf(
'First argument to "%s::add()" must be a string, callable or object.',
self::class,
));
}
- if ($name === null) {
- if (is_string($value)) {
- $name = $value;
- } elseif (is_object($value)) {
- $name = get_class($value);
- } else {
- throw new \InvalidArgumentException(sprintf(
- 'Second argument to "%s::add()" is required not passing a string or object as first argument',
- self::class,
- ));
- }
- }
-
- $this->definitions[$name] = $value;
+ $this->definitions[$id] = $definition;
return $this;
}
@@ -61,32 +41,28 @@ public function build(): ContainerInterface
return new Container($this->definitions);
}
- /**
- * Get an array with extension that represent the default English
- * functionality.
- */
- public static function defaultExtensions(): array
+ private static function defaultExtensions(): array
{
return [
- BarcodeExtension::class => Core\Barcode::class,
- BloodExtension::class => Core\Blood::class,
- ColorExtension::class => Core\Color::class,
- DateTimeExtension::class => Core\DateTime::class,
- FileExtension::class => Core\File::class,
- NumberExtension::class => Core\Number::class,
- VersionExtension::class => Core\Version::class,
- UuidExtension::class => Core\Uuid::class,
+ Extension\BarcodeExtension::class => Core\Barcode::class,
+ Extension\BloodExtension::class => Core\Blood::class,
+ Extension\ColorExtension::class => Core\Color::class,
+ Extension\DateTimeExtension::class => Core\DateTime::class,
+ Extension\FileExtension::class => Core\File::class,
+ Extension\NumberExtension::class => Core\Number::class,
+ Extension\UuidExtension::class => Core\Uuid::class,
+ Extension\VersionExtension::class => Core\Version::class,
];
}
- public static function getDefault(): ContainerInterface
+ public static function withDefaultExtensions(): self
{
$instance = new self();
foreach (self::defaultExtensions() as $id => $definition) {
- $instance->add($definition, $id);
+ $instance->add($id, $definition);
}
- return $instance->build();
+ return $instance;
}
}
diff --git a/api/vendor/fakerphp/faker/src/Faker/Container/ContainerInterface.php b/api/vendor/fakerphp/faker/src/Faker/Container/ContainerInterface.php
index d34f4a8967..9e5237d341 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Container/ContainerInterface.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Container/ContainerInterface.php
@@ -6,8 +6,4 @@
interface ContainerInterface extends BaseContainerInterface
{
- /**
- * Get the bindings between Extension interfaces and implementations.
- */
- public function getDefinitions(): array;
}
diff --git a/api/vendor/fakerphp/faker/src/Faker/Core/Barcode.php b/api/vendor/fakerphp/faker/src/Faker/Core/Barcode.php
index 89f801a5a0..4ad17e17a5 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Core/Barcode.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Core/Barcode.php
@@ -12,6 +12,13 @@
*/
final class Barcode implements Extension\BarcodeExtension
{
+ private Extension\NumberExtension $numberExtension;
+
+ public function __construct(?Extension\NumberExtension $numberExtension = null)
+ {
+ $this->numberExtension = $numberExtension ?: new Number();
+ }
+
private function ean(int $length = 13): string
{
$code = Extension\Helper::numerify(str_repeat('#', $length - 1));
@@ -38,7 +45,7 @@ public function isbn10(): string
public function isbn13(): string
{
- $code = '97' . mt_rand(8, 9) . Extension\Helper::numerify(str_repeat('#', 9));
+ $code = '97' . $this->numberExtension->numberBetween(8, 9) . Extension\Helper::numerify(str_repeat('#', 9));
return sprintf('%s%s', $code, Calculator\Ean::checksum($code));
}
diff --git a/api/vendor/fakerphp/faker/src/Faker/Core/Blood.php b/api/vendor/fakerphp/faker/src/Faker/Core/Blood.php
index 50a5806c6b..03e563fc12 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Core/Blood.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Core/Blood.php
@@ -14,12 +14,12 @@ final class Blood implements Extension\BloodExtension
/**
* @var string[]
*/
- private $bloodTypes = ['A', 'AB', 'B', 'O'];
+ private array $bloodTypes = ['A', 'AB', 'B', 'O'];
/**
* @var string[]
*/
- private $bloodRhFactors = ['+', '-'];
+ private array $bloodRhFactors = ['+', '-'];
public function bloodType(): string
{
diff --git a/api/vendor/fakerphp/faker/src/Faker/Core/Color.php b/api/vendor/fakerphp/faker/src/Faker/Core/Color.php
index 6e4e350e6d..c6cac0d33a 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Core/Color.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Core/Color.php
@@ -12,19 +12,20 @@
*/
final class Color implements Extension\ColorExtension
{
+ private Extension\NumberExtension $numberExtension;
+
/**
* @var string[]
*/
- private $safeColorNames = [
+ private array $safeColorNames = [
'black', 'maroon', 'green', 'navy', 'olive',
'purple', 'teal', 'lime', 'blue', 'silver',
'gray', 'yellow', 'fuchsia', 'aqua', 'white',
];
-
/**
* @var string[]
*/
- private $allColorNames = [
+ private array $allColorNames = [
'AliceBlue', 'AntiqueWhite', 'Aqua', 'Aquamarine',
'Azure', 'Beige', 'Bisque', 'Black', 'BlanchedAlmond',
'Blue', 'BlueViolet', 'Brown', 'BurlyWood', 'CadetBlue',
@@ -53,14 +54,17 @@ final class Color implements Extension\ColorExtension
'Turquoise', 'Violet', 'Wheat', 'White', 'WhiteSmoke', 'Yellow', 'YellowGreen',
];
+ public function __construct(?Extension\NumberExtension $numberExtension = null)
+ {
+ $this->numberExtension = $numberExtension ?: new Number();
+ }
+
/**
* @example '#fa3cc2'
*/
public function hexColor(): string
{
- $number = new Number();
-
- return '#' . str_pad(dechex($number->numberBetween(1, 16777215)), 6, '0', STR_PAD_LEFT);
+ return '#' . str_pad(dechex($this->numberExtension->numberBetween(1, 16777215)), 6, '0', STR_PAD_LEFT);
}
/**
@@ -68,8 +72,7 @@ public function hexColor(): string
*/
public function safeHexColor(): string
{
- $number = new Number();
- $color = str_pad(dechex($number->numberBetween(0, 255)), 3, '0', STR_PAD_LEFT);
+ $color = str_pad(dechex($this->numberExtension->numberBetween(0, 255)), 3, '0', STR_PAD_LEFT);
return sprintf(
'#%s%s%s%s%s%s',
@@ -122,12 +125,10 @@ public function rgbCssColor(): string
*/
public function rgbaCssColor(): string
{
- $number = new Number();
-
return sprintf(
'rgba(%s,%s)',
$this->rgbColor(),
- $number->randomFloat(1, 0, 1),
+ $this->numberExtension->randomFloat(1, 0, 1),
);
}
@@ -152,13 +153,11 @@ public function colorName(): string
*/
public function hslColor(): string
{
- $number = new Number();
-
return sprintf(
'%s,%s,%s',
- $number->numberBetween(0, 360),
- $number->numberBetween(0, 100),
- $number->numberBetween(0, 100),
+ $this->numberExtension->numberBetween(0, 360),
+ $this->numberExtension->numberBetween(0, 100),
+ $this->numberExtension->numberBetween(0, 100),
);
}
@@ -169,12 +168,10 @@ public function hslColor(): string
*/
public function hslColorAsArray(): array
{
- $number = new Number();
-
return [
- $number->numberBetween(0, 360),
- $number->numberBetween(0, 100),
- $number->numberBetween(0, 100),
+ $this->numberExtension->numberBetween(0, 360),
+ $this->numberExtension->numberBetween(0, 100),
+ $this->numberExtension->numberBetween(0, 100),
];
}
}
diff --git a/api/vendor/fakerphp/faker/src/Faker/Core/Coordinates.php b/api/vendor/fakerphp/faker/src/Faker/Core/Coordinates.php
index 40a26589f7..bc0678f67e 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Core/Coordinates.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Core/Coordinates.php
@@ -4,10 +4,20 @@
namespace Faker\Core;
-use Faker\Extension\Extension;
+use Faker\Extension;
-class Coordinates implements Extension
+/**
+ * @experimental This class is experimental and does not fall under our BC promise
+ */
+final class Coordinates implements Extension\Extension
{
+ private Extension\NumberExtension $numberExtension;
+
+ public function __construct(?Extension\NumberExtension $numberExtension = null)
+ {
+ $this->numberExtension = $numberExtension ?: new Number();
+ }
+
/**
* @example '77.147489'
*
@@ -52,8 +62,8 @@ public function longitude(float $min = -180.0, float $max = 180.0): float
public function localCoordinates(): array
{
return [
- 'latitude' => static::latitude(),
- 'longitude' => static::longitude(),
+ 'latitude' => $this->latitude(),
+ 'longitude' => $this->longitude(),
];
}
@@ -63,6 +73,6 @@ private function randomFloat(int $nbMaxDecimals, float $min, float $max): float
throw new \LogicException('Invalid coordinates boundaries');
}
- return round($min + mt_rand() / mt_getrandmax() * ($max - $min), $nbMaxDecimals);
+ return $this->numberExtension->randomFloat($nbMaxDecimals, $min, $max);
}
}
diff --git a/api/vendor/fakerphp/faker/src/Faker/Core/DateTime.php b/api/vendor/fakerphp/faker/src/Faker/Core/DateTime.php
index f3d7877654..6e02c6670e 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Core/DateTime.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Core/DateTime.php
@@ -8,7 +8,7 @@
use Faker\Extension\Helper;
/**
- * @experimental
+ * @experimental This class is experimental and does not fall under our BC promise
*
* @since 1.20.0
*/
@@ -19,12 +19,9 @@ final class DateTime implements DateTimeExtension, GeneratorAwareExtension
/**
* @var string[]
*/
- private $centuries = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X', 'XI', 'XII', 'XIII', 'XIV', 'XV', 'XVI', 'XVII', 'XVIII', 'XIX', 'XX', 'XXI'];
+ private array $centuries = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X', 'XI', 'XII', 'XIII', 'XIV', 'XV', 'XVI', 'XVII', 'XVIII', 'XIX', 'XX', 'XXI'];
- /**
- * @var string
- */
- private $defaultTimezone = null;
+ private ?string $defaultTimezone = null;
/**
* Get the POSIX-timestamp of a DateTime, int or string.
@@ -33,7 +30,7 @@ final class DateTime implements DateTimeExtension, GeneratorAwareExtension
*
* @return false|int
*/
- protected function getTimestamp($until = 'now')
+ private function getTimestamp($until = 'now')
{
if (is_numeric($until)) {
return (int) $until;
@@ -51,22 +48,12 @@ protected function getTimestamp($until = 'now')
*
* @param int $timestamp the UNIX / POSIX-compatible timestamp
*/
- protected function getTimestampDateTime(int $timestamp): \DateTime
+ private function getTimestampDateTime(int $timestamp): \DateTime
{
return new \DateTime('@' . $timestamp);
}
- protected function setDefaultTimezone(string $timezone = null): void
- {
- $this->defaultTimezone = $timezone;
- }
-
- protected function getDefaultTimezone(): ?string
- {
- return $this->defaultTimezone;
- }
-
- protected function resolveTimezone(?string $timezone): string
+ private function resolveTimezone(?string $timezone): string
{
if ($timezone !== null) {
return $timezone;
@@ -78,14 +65,14 @@ protected function resolveTimezone(?string $timezone): string
/**
* Internal method to set the timezone on a DateTime object.
*/
- protected function setTimezone(\DateTime $dateTime, ?string $timezone): \DateTime
+ private function setTimezone(\DateTime $dateTime, ?string $timezone): \DateTime
{
$timezone = $this->resolveTimezone($timezone);
return $dateTime->setTimezone(new \DateTimeZone($timezone));
}
- public function dateTime($until = 'now', string $timezone = null): \DateTime
+ public function dateTime($until = 'now', ?string $timezone = null): \DateTime
{
return $this->setTimezone(
$this->getTimestampDateTime($this->unixTime($until)),
@@ -93,7 +80,7 @@ public function dateTime($until = 'now', string $timezone = null): \DateTime
);
}
- public function dateTimeAD($until = 'now', string $timezone = null): \DateTime
+ public function dateTimeAD($until = 'now', ?string $timezone = null): \DateTime
{
$min = (PHP_INT_SIZE > 4) ? -62135597361 : -PHP_INT_MAX;
@@ -103,7 +90,7 @@ public function dateTimeAD($until = 'now', string $timezone = null): \DateTime
);
}
- public function dateTimeBetween($from = '-30 years', $until = 'now', string $timezone = null): \DateTime
+ public function dateTimeBetween($from = '-30 years', $until = 'now', ?string $timezone = null): \DateTime
{
$start = $this->getTimestamp($from);
$end = $this->getTimestamp($until);
@@ -120,7 +107,7 @@ public function dateTimeBetween($from = '-30 years', $until = 'now', string $tim
);
}
- public function dateTimeInInterval($from = '-30 years', string $interval = '+5 days', string $timezone = null): \DateTime
+ public function dateTimeInInterval($from = '-30 years', string $interval = '+5 days', ?string $timezone = null): \DateTime
{
$intervalObject = \DateInterval::createFromDateString($interval);
$datetime = $from instanceof \DateTime ? $from : new \DateTime($from);
@@ -133,29 +120,29 @@ public function dateTimeInInterval($from = '-30 years', string $interval = '+5 d
return $this->dateTimeBetween($begin, $end, $timezone);
}
- public function dateTimeThisWeek($until = 'sunday this week', string $timezone = null): \DateTime
+ public function dateTimeThisWeek($until = 'sunday this week', ?string $timezone = null): \DateTime
{
return $this->dateTimeBetween('monday this week', $until, $timezone);
}
- public function dateTimeThisMonth($until = 'last day of this month', string $timezone = null): \DateTime
+ public function dateTimeThisMonth($until = 'last day of this month', ?string $timezone = null): \DateTime
{
return $this->dateTimeBetween('first day of this month', $until, $timezone);
}
- public function dateTimeThisYear($until = 'last day of december', string $timezone = null): \DateTime
+ public function dateTimeThisYear($until = 'last day of december', ?string $timezone = null): \DateTime
{
return $this->dateTimeBetween('first day of january', $until, $timezone);
}
- public function dateTimeThisDecade($until = 'now', string $timezone = null): \DateTime
+ public function dateTimeThisDecade($until = 'now', ?string $timezone = null): \DateTime
{
$year = floor(date('Y') / 10) * 10;
return $this->dateTimeBetween("first day of january $year", $until, $timezone);
}
- public function dateTimeThisCentury($until = 'now', string $timezone = null): \DateTime
+ public function dateTimeThisCentury($until = 'now', ?string $timezone = null): \DateTime
{
$year = floor(date('Y') / 100) * 100;
@@ -217,7 +204,7 @@ public function century(): string
return Helper::randomElement($this->centuries);
}
- public function timezone(string $countryCode = null): string
+ public function timezone(?string $countryCode = null): string
{
if ($countryCode) {
$timezones = \DateTimeZone::listIdentifiers(\DateTimeZone::PER_COUNTRY, $countryCode);
diff --git a/api/vendor/fakerphp/faker/src/Faker/Core/File.php b/api/vendor/fakerphp/faker/src/Faker/Core/File.php
index adddb0cb33..5151e900f3 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Core/File.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Core/File.php
@@ -18,7 +18,7 @@ final class File implements Extension\FileExtension
*
* @see http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types
*/
- private $mimeTypes = [
+ private array $mimeTypes = [
'application/atom+xml' => 'atom',
'application/ecmascript' => 'ecma',
'application/emma+xml' => 'emma',
diff --git a/api/vendor/fakerphp/faker/src/Faker/Core/Number.php b/api/vendor/fakerphp/faker/src/Faker/Core/Number.php
index f67c042675..4334dcfa4e 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Core/Number.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Core/Number.php
@@ -21,12 +21,12 @@ public function numberBetween(int $min = 0, int $max = 2147483647): int
public function randomDigit(): int
{
- return mt_rand(0, 9);
+ return $this->numberBetween(0, 9);
}
public function randomDigitNot(int $except): int
{
- $result = self::numberBetween(0, 8);
+ $result = $this->numberBetween(0, 8);
if ($result >= $except) {
++$result;
@@ -37,7 +37,7 @@ public function randomDigitNot(int $except): int
public function randomDigitNotZero(): int
{
- return mt_rand(1, 9);
+ return $this->numberBetween(1, 9);
}
public function randomFloat(?int $nbMaxDecimals = null, float $min = 0, ?float $max = null): float
@@ -60,10 +60,10 @@ public function randomFloat(?int $nbMaxDecimals = null, float $min = 0, ?float $
$max = $tmp;
}
- return round($min + mt_rand() / mt_getrandmax() * ($max - $min), $nbMaxDecimals);
+ return round($min + $this->numberBetween() / mt_getrandmax() * ($max - $min), $nbMaxDecimals);
}
- public function randomNumber(int $nbDigits = null, bool $strict = false): int
+ public function randomNumber(?int $nbDigits = null, bool $strict = false): int
{
if (null === $nbDigits) {
$nbDigits = $this->randomDigitNotZero();
@@ -75,9 +75,9 @@ public function randomNumber(int $nbDigits = null, bool $strict = false): int
}
if ($strict) {
- return mt_rand(10 ** ($nbDigits - 1), $max);
+ return $this->numberBetween(10 ** ($nbDigits - 1), $max);
}
- return mt_rand(0, $max);
+ return $this->numberBetween(0, $max);
}
}
diff --git a/api/vendor/fakerphp/faker/src/Faker/Core/Uuid.php b/api/vendor/fakerphp/faker/src/Faker/Core/Uuid.php
index 5e3b633a26..4580460448 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Core/Uuid.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Core/Uuid.php
@@ -2,17 +2,26 @@
namespace Faker\Core;
-use Faker\Extension\UuidExtension;
+use Faker\Extension;
-final class Uuid implements UuidExtension
+/**
+ * @experimental This class is experimental and does not fall under our BC promise
+ */
+final class Uuid implements Extension\UuidExtension
{
- public function uuid3(): string
+ private Extension\NumberExtension $numberExtension;
+
+ public function __construct(?Extension\NumberExtension $numberExtension = null)
{
- $number = new Number();
+ $this->numberExtension = $numberExtension ?: new Number();
+ }
+
+ public function uuid3(): string
+ {
// fix for compatibility with 32bit architecture; each mt_rand call is restricted to 32bit
// two such calls will cause 64bits of randomness regardless of architecture
- $seed = $number->numberBetween(0, 2147483647) . '#' . $number->numberBetween(0, 2147483647);
+ $seed = $this->numberExtension->numberBetween(0, 2147483647) . '#' . $this->numberExtension->numberBetween(0, 2147483647);
// Hash the seed and convert to a byte array
$val = md5($seed, true);
diff --git a/api/vendor/fakerphp/faker/src/Faker/Core/Version.php b/api/vendor/fakerphp/faker/src/Faker/Core/Version.php
index ce484e6ad8..7c321e00ee 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Core/Version.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Core/Version.php
@@ -4,16 +4,25 @@
namespace Faker\Core;
-use Faker\Extension\Helper;
-use Faker\Extension\VersionExtension;
+use Faker\Extension;
use Faker\Provider\DateTime;
-final class Version implements VersionExtension
+/**
+ * @experimental This class is experimental and does not fall under our BC promise
+ */
+final class Version implements Extension\VersionExtension
{
+ private Extension\NumberExtension $numberExtension;
/**
* @var string[]
*/
- private $semverCommonPreReleaseIdentifiers = ['alpha', 'beta', 'rc'];
+ private array $semverCommonPreReleaseIdentifiers = ['alpha', 'beta', 'rc'];
+
+ public function __construct(?Extension\NumberExtension $numberExtension = null)
+ {
+
+ $this->numberExtension = $numberExtension ?: new Number();
+ }
/**
* Represents v2.0.0 of the semantic versioning: https://semver.org/spec/v2.0.0.html
@@ -22,11 +31,11 @@ public function semver(bool $preRelease = false, bool $build = false): string
{
return sprintf(
'%d.%d.%d%s%s',
- mt_rand(0, 9),
- mt_rand(0, 99),
- mt_rand(0, 99),
- $preRelease && mt_rand(0, 1) ? '-' . $this->semverPreReleaseIdentifier() : '',
- $build && mt_rand(0, 1) ? '+' . $this->semverBuildIdentifier() : '',
+ $this->numberExtension->numberBetween(0, 9),
+ $this->numberExtension->numberBetween(0, 99),
+ $this->numberExtension->numberBetween(0, 99),
+ $preRelease && $this->numberExtension->numberBetween(0, 1) === 1 ? '-' . $this->semverPreReleaseIdentifier() : '',
+ $build && $this->numberExtension->numberBetween(0, 1) === 1 ? '+' . $this->semverBuildIdentifier() : '',
);
}
@@ -35,13 +44,13 @@ public function semver(bool $preRelease = false, bool $build = false): string
*/
private function semverPreReleaseIdentifier(): string
{
- $ident = Helper::randomElement($this->semverCommonPreReleaseIdentifiers);
+ $ident = Extension\Helper::randomElement($this->semverCommonPreReleaseIdentifiers);
- if (!mt_rand(0, 1)) {
+ if ($this->numberExtension->numberBetween(0, 1) !== 1) {
return $ident;
}
- return $ident . '.' . mt_rand(1, 99);
+ return $ident . '.' . $this->numberExtension->numberBetween(1, 99);
}
/**
@@ -49,9 +58,9 @@ private function semverPreReleaseIdentifier(): string
*/
private function semverBuildIdentifier(): string
{
- if (mt_rand(0, 1)) {
+ if ($this->numberExtension->numberBetween(0, 1) === 1) {
// short git revision syntax: https://git-scm.com/book/en/v2/Git-Tools-Revision-Selection
- return substr(sha1(Helper::lexify('??????')), 0, 7);
+ return substr(sha1(Extension\Helper::lexify('??????')), 0, 7);
}
// date syntax
diff --git a/api/vendor/fakerphp/faker/src/Faker/Extension/DateTimeExtension.php b/api/vendor/fakerphp/faker/src/Faker/Extension/DateTimeExtension.php
index 9a27cce0e7..b7c76ba4b6 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Extension/DateTimeExtension.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Extension/DateTimeExtension.php
@@ -25,7 +25,7 @@ interface DateTimeExtension
*
* @example DateTime('2005-08-16 20:39:21')
*/
- public function dateTime($until = 'now', string $timezone = null): \DateTime;
+ public function dateTime($until = 'now', ?string $timezone = null): \DateTime;
/**
* Get a DateTime object for a date between January 1, 0001, and now.
@@ -38,7 +38,7 @@ public function dateTime($until = 'now', string $timezone = null): \DateTime;
* @see http://php.net/manual/en/timezones.php
* @see http://php.net/manual/en/function.date-default-timezone-get.php
*/
- public function dateTimeAD($until = 'now', string $timezone = null): \DateTime;
+ public function dateTimeAD($until = 'now', ?string $timezone = null): \DateTime;
/**
* Get a DateTime object a random date between `$from` and `$until`.
@@ -52,7 +52,7 @@ public function dateTimeAD($until = 'now', string $timezone = null): \DateTime;
* @see http://php.net/manual/en/timezones.php
* @see http://php.net/manual/en/function.date-default-timezone-get.php
*/
- public function dateTimeBetween($from = '-30 years', $until = 'now', string $timezone = null): \DateTime;
+ public function dateTimeBetween($from = '-30 years', $until = 'now', ?string $timezone = null): \DateTime;
/**
* Get a DateTime object based on a random date between `$from` and an interval.
@@ -66,7 +66,7 @@ public function dateTimeBetween($from = '-30 years', $until = 'now', string $tim
* @see http://php.net/manual/en/timezones.php
* @see http://php.net/manual/en/function.date-default-timezone-get.php
*/
- public function dateTimeInInterval($from = '-30 years', string $interval = '+5 days', string $timezone = null): \DateTime;
+ public function dateTimeInInterval($from = '-30 years', string $interval = '+5 days', ?string $timezone = null): \DateTime;
/**
* Get a date time object somewhere inside the current week.
@@ -78,7 +78,7 @@ public function dateTimeInInterval($from = '-30 years', string $interval = '+5 d
* @see http://php.net/manual/en/timezones.php
* @see http://php.net/manual/en/function.date-default-timezone-get.php
*/
- public function dateTimeThisWeek($until = 'now', string $timezone = null): \DateTime;
+ public function dateTimeThisWeek($until = 'now', ?string $timezone = null): \DateTime;
/**
* Get a date time object somewhere inside the current month.
@@ -90,7 +90,7 @@ public function dateTimeThisWeek($until = 'now', string $timezone = null): \Date
* @see http://php.net/manual/en/timezones.php
* @see http://php.net/manual/en/function.date-default-timezone-get.php
*/
- public function dateTimeThisMonth($until = 'now', string $timezone = null): \DateTime;
+ public function dateTimeThisMonth($until = 'now', ?string $timezone = null): \DateTime;
/**
* Get a date time object somewhere inside the current year.
@@ -102,7 +102,7 @@ public function dateTimeThisMonth($until = 'now', string $timezone = null): \Dat
* @see http://php.net/manual/en/timezones.php
* @see http://php.net/manual/en/function.date-default-timezone-get.php
*/
- public function dateTimeThisYear($until = 'now', string $timezone = null): \DateTime;
+ public function dateTimeThisYear($until = 'now', ?string $timezone = null): \DateTime;
/**
* Get a date time object somewhere inside the current decade.
@@ -114,7 +114,7 @@ public function dateTimeThisYear($until = 'now', string $timezone = null): \Date
* @see http://php.net/manual/en/timezones.php
* @see http://php.net/manual/en/function.date-default-timezone-get.php
*/
- public function dateTimeThisDecade($until = 'now', string $timezone = null): \DateTime;
+ public function dateTimeThisDecade($until = 'now', ?string $timezone = null): \DateTime;
/**
* Get a date time object somewhere inside the current century.
@@ -126,7 +126,7 @@ public function dateTimeThisDecade($until = 'now', string $timezone = null): \Da
* @see http://php.net/manual/en/timezones.php
* @see http://php.net/manual/en/function.date-default-timezone-get.php
*/
- public function dateTimeThisCentury($until = 'now', string $timezone = null): \DateTime;
+ public function dateTimeThisCentury($until = 'now', ?string $timezone = null): \DateTime;
/**
* Get a date string between January 1, 1970, and `$until`.
@@ -238,5 +238,5 @@ public function century(): string;
*
* @example 'Europe/Rome'
*/
- public function timezone(string $countryCode = null): string;
+ public function timezone(?string $countryCode = null): string;
}
diff --git a/api/vendor/fakerphp/faker/src/Faker/Extension/Helper.php b/api/vendor/fakerphp/faker/src/Faker/Extension/Helper.php
index 27a66143fe..47200e90c6 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Extension/Helper.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Extension/Helper.php
@@ -83,10 +83,10 @@ public static function lexify(string $string): string
public static function bothify(string $string): string
{
$string = self::replaceWildcard($string, '*', static function () {
- return mt_rand(0, 1) ? '#' : '?';
+ return mt_rand(0, 1) === 1 ? '#' : '?';
});
- return static::lexify(static::numerify($string));
+ return self::lexify(self::numerify($string));
}
private static function replaceWildcard(string $string, string $wildcard, callable $callback): string
diff --git a/api/vendor/fakerphp/faker/src/Faker/Factory.php b/api/vendor/fakerphp/faker/src/Faker/Factory.php
index 7d29de75b2..e9d201432d 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Factory.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Factory.php
@@ -38,10 +38,12 @@ protected static function getProviderClassname($provider, $locale = '')
if ($providerClass = self::findProviderClassname($provider, $locale)) {
return $providerClass;
}
+
// fallback to default locale
if ($providerClass = self::findProviderClassname($provider, static::DEFAULT_LOCALE)) {
return $providerClass;
}
+
// fallback to no locale
if ($providerClass = self::findProviderClassname($provider)) {
return $providerClass;
diff --git a/api/vendor/fakerphp/faker/src/Faker/Generator.php b/api/vendor/fakerphp/faker/src/Faker/Generator.php
index ec77c08749..d1320312b1 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Generator.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Generator.php
@@ -275,11 +275,11 @@
*
* @property string $imageUrl
*
- * @method string imageUrl($width = 640, $height = 480, $category = null, $randomize = true, $word = null, $gray = false)
+ * @method string imageUrl($width = 640, $height = 480, $category = null, $randomize = true, $word = null, $gray = false, string $format = 'png')
*
* @property string $image
*
- * @method string image($dir = null, $width = 640, $height = 480, $category = null, $fullPath = true, $randomize = true, $word = null, $gray = false)
+ * @method string image($dir = null, $width = 640, $height = 480, $category = null, $fullPath = true, $randomize = true, $word = null, $gray = false, string $format = 'png')
*
* @property string $email
*
@@ -463,7 +463,7 @@
*
* @property string $lastName
*
- * @method string lastName()
+ * @method string lastName($gender = null)
*
* @property string $title
*
@@ -565,9 +565,9 @@ class Generator
*/
private $uniqueGenerator;
- public function __construct(ContainerInterface $container = null)
+ public function __construct(?ContainerInterface $container = null)
{
- $this->container = $container ?: Container\ContainerBuilder::getDefault();
+ $this->container = $container ?: Container\ContainerBuilder::withDefaultExtensions()->build();
}
/**
@@ -687,10 +687,22 @@ public function seed($seed = null)
if ($seed === null) {
mt_srand();
} else {
- mt_srand((int) $seed, MT_RAND_PHP);
+ mt_srand((int) $seed, self::mode());
}
}
+ /**
+ * @see https://www.php.net/manual/en/migration83.deprecated.php#migration83.deprecated.random
+ */
+ private static function mode(): int
+ {
+ if (PHP_VERSION_ID < 80300) {
+ return MT_RAND_PHP;
+ }
+
+ return MT_RAND_MT19937;
+ }
+
public function format($format, $arguments = [])
{
return call_user_func_array($this->getFormatter($format), $arguments);
diff --git a/api/vendor/fakerphp/faker/src/Faker/Guesser/Name.php b/api/vendor/fakerphp/faker/src/Faker/Guesser/Name.php
index ddb048bcf5..1f98c4f810 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Guesser/Name.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Guesser/Name.php
@@ -26,37 +26,37 @@ public function guessFormat($name, $size = null)
if (preg_match('/^is[_A-Z]/', $name)) {
return static function () use ($generator) {
- return $generator->boolean;
+ return $generator->boolean();
};
}
if (preg_match('/(_a|A)t$/', $name)) {
return static function () use ($generator) {
- return $generator->dateTime;
+ return $generator->dateTime();
};
}
switch (str_replace('_', '', $name)) {
case 'firstname':
return static function () use ($generator) {
- return $generator->firstName;
+ return $generator->firstName();
};
case 'lastname':
return static function () use ($generator) {
- return $generator->lastName;
+ return $generator->lastName();
};
case 'username':
case 'login':
return static function () use ($generator) {
- return $generator->userName;
+ return $generator->userName();
};
case 'email':
case 'emailaddress':
return static function () use ($generator) {
- return $generator->email;
+ return $generator->email();
};
case 'phonenumber':
@@ -64,68 +64,68 @@ public function guessFormat($name, $size = null)
case 'telephone':
case 'telnumber':
return static function () use ($generator) {
- return $generator->phoneNumber;
+ return $generator->phoneNumber();
};
case 'address':
return static function () use ($generator) {
- return $generator->address;
+ return $generator->address();
};
case 'city':
case 'town':
return static function () use ($generator) {
- return $generator->city;
+ return $generator->city();
};
case 'streetaddress':
return static function () use ($generator) {
- return $generator->streetAddress;
+ return $generator->streetAddress();
};
case 'postcode':
case 'zipcode':
return static function () use ($generator) {
- return $generator->postcode;
+ return $generator->postcode();
};
case 'state':
return static function () use ($generator) {
- return $generator->state;
+ return $generator->state();
};
case 'county':
if ($this->generator->locale == 'en_US') {
return static function () use ($generator) {
- return sprintf('%s County', $generator->city);
+ return sprintf('%s County', $generator->city());
};
}
return static function () use ($generator) {
- return $generator->state;
+ return $generator->state();
};
case 'country':
switch ($size) {
case 2:
return static function () use ($generator) {
- return $generator->countryCode;
+ return $generator->countryCode();
};
case 3:
return static function () use ($generator) {
- return $generator->countryISOAlpha3;
+ return $generator->countryISOAlpha3();
};
case 5:
case 6:
return static function () use ($generator) {
- return $generator->locale;
+ return $generator->locale();
};
default:
return static function () use ($generator) {
- return $generator->country;
+ return $generator->country();
};
}
@@ -133,37 +133,37 @@ public function guessFormat($name, $size = null)
case 'locale':
return static function () use ($generator) {
- return $generator->locale;
+ return $generator->locale();
};
case 'currency':
case 'currencycode':
return static function () use ($generator) {
- return $generator->currencyCode;
+ return $generator->currencyCode();
};
case 'url':
case 'website':
return static function () use ($generator) {
- return $generator->url;
+ return $generator->url();
};
case 'company':
case 'companyname':
case 'employer':
return static function () use ($generator) {
- return $generator->company;
+ return $generator->company();
};
case 'title':
if ($size !== null && $size <= 10) {
return static function () use ($generator) {
- return $generator->title;
+ return $generator->title();
};
}
return static function () use ($generator) {
- return $generator->sentence;
+ return $generator->sentence();
};
case 'body':
@@ -171,7 +171,7 @@ public function guessFormat($name, $size = null)
case 'article':
case 'description':
return static function () use ($generator) {
- return $generator->text;
+ return $generator->text();
};
}
diff --git a/api/vendor/fakerphp/faker/src/Faker/ORM/Doctrine/ColumnTypeGuesser.php b/api/vendor/fakerphp/faker/src/Faker/ORM/Doctrine/ColumnTypeGuesser.php
index 3267fe469b..024d8a9d9b 100644
--- a/api/vendor/fakerphp/faker/src/Faker/ORM/Doctrine/ColumnTypeGuesser.php
+++ b/api/vendor/fakerphp/faker/src/Faker/ORM/Doctrine/ColumnTypeGuesser.php
@@ -27,7 +27,7 @@ public function guessFormat($fieldName, ClassMetadata $class)
switch ($type) {
case 'boolean':
return static function () use ($generator) {
- return $generator->boolean;
+ return $generator->boolean();
};
case 'decimal':
@@ -66,14 +66,14 @@ public function guessFormat($fieldName, ClassMetadata $class)
case 'text':
return static function () use ($generator) {
- return $generator->text;
+ return $generator->text();
};
case 'datetime':
case 'date':
case 'time':
return static function () use ($generator) {
- return $generator->datetime;
+ return $generator->datetime();
};
case 'datetime_immutable':
diff --git a/api/vendor/fakerphp/faker/src/Faker/ORM/Doctrine/Populator.php b/api/vendor/fakerphp/faker/src/Faker/ORM/Doctrine/Populator.php
index 1bce6ab47c..61d4171e95 100644
--- a/api/vendor/fakerphp/faker/src/Faker/ORM/Doctrine/Populator.php
+++ b/api/vendor/fakerphp/faker/src/Faker/ORM/Doctrine/Populator.php
@@ -48,7 +48,7 @@ class Populator
*
* @param int $batchSize
*/
- public function __construct(Generator $generator, ObjectManager $manager = null, $batchSize = 1000)
+ public function __construct(Generator $generator, ?ObjectManager $manager = null, $batchSize = 1000)
{
$this->generator = $generator;
$this->manager = $manager;
diff --git a/api/vendor/fakerphp/faker/src/Faker/ORM/Spot/Populator.php b/api/vendor/fakerphp/faker/src/Faker/ORM/Spot/Populator.php
index b321f5c5a4..9ad3bfb621 100644
--- a/api/vendor/fakerphp/faker/src/Faker/ORM/Spot/Populator.php
+++ b/api/vendor/fakerphp/faker/src/Faker/ORM/Spot/Populator.php
@@ -17,7 +17,7 @@ class Populator
/**
* Populator constructor.
*/
- public function __construct(\Faker\Generator $generator, Locator $locator = null)
+ public function __construct(\Faker\Generator $generator, ?Locator $locator = null)
{
$this->generator = $generator;
$this->locator = $locator;
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/Base.php b/api/vendor/fakerphp/faker/src/Faker/Provider/Base.php
index e3713ce0e6..6b9876bc1d 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/Base.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/Base.php
@@ -179,67 +179,115 @@ public static function randomAscii()
/**
* Returns randomly ordered subsequence of $count elements from a provided array
*
- * @param array $array Array to take elements from. Defaults to a-c
- * @param int $count Number of elements to take.
- * @param bool $allowDuplicates Allow elements to be picked several times. Defaults to false
+ * @todo update default $count to `null` (BC) for next major version
*
- * @throws \LengthException When requesting more elements than provided
+ * @param array|class-string|\Traversable $array Array to take elements from. Defaults to a-c
+ * @param int|null $count Number of elements to take. If `null` then returns random number of elements
+ * @param bool $allowDuplicates Allow elements to be picked several times. Defaults to false
+ *
+ * @throws \InvalidArgumentException
+ * @throws \LengthException When requesting more elements than provided
*
* @return array New array with $count elements from $array
*/
public static function randomElements($array = ['a', 'b', 'c'], $count = 1, $allowDuplicates = false)
{
- $traversables = [];
+ $elements = $array;
+
+ if (is_string($array) && function_exists('enum_exists') && enum_exists($array)) {
+ $elements = $array::cases();
+ }
if ($array instanceof \Traversable) {
- foreach ($array as $element) {
- $traversables[] = $element;
- }
+ $elements = \iterator_to_array($array, false);
+ }
+
+ if (!is_array($elements)) {
+ throw new \InvalidArgumentException(sprintf(
+ 'Argument for parameter $array needs to be array, an instance of %s, or an instance of %s, got %s instead.',
+ \UnitEnum::class,
+ \Traversable::class,
+ is_object($array) ? get_class($array) : gettype($array),
+ ));
}
- $arr = count($traversables) ? $traversables : $array;
+ $numberOfElements = count($elements);
- $allKeys = array_keys($arr);
- $numKeys = count($allKeys);
+ if (!$allowDuplicates && null !== $count && $numberOfElements < $count) {
+ throw new \LengthException(sprintf(
+ 'Cannot get %d elements, only %d in array',
+ $count,
+ $numberOfElements,
+ ));
+ }
- if (!$allowDuplicates && $numKeys < $count) {
- throw new \LengthException(sprintf('Cannot get %d elements, only %d in array', $count, $numKeys));
+ if (null === $count) {
+ $count = mt_rand(1, $numberOfElements);
}
- $highKey = $numKeys - 1;
- $keys = $elements = [];
- $numElements = 0;
+ $randomElements = [];
+
+ $keys = array_keys($elements);
+ $maxIndex = $numberOfElements - 1;
+ $elementHasBeenSelectedAlready = [];
+ $numberOfRandomElements = 0;
- while ($numElements < $count) {
- $num = mt_rand(0, $highKey);
+ while ($numberOfRandomElements < $count) {
+ $index = mt_rand(0, $maxIndex);
if (!$allowDuplicates) {
- if (isset($keys[$num])) {
+ if (isset($elementHasBeenSelectedAlready[$index])) {
continue;
}
- $keys[$num] = true;
+
+ $elementHasBeenSelectedAlready[$index] = true;
}
- $elements[] = $arr[$allKeys[$num]];
- ++$numElements;
+ $key = $keys[$index];
+
+ $randomElements[] = $elements[$key];
+
+ ++$numberOfRandomElements;
}
- return $elements;
+ return $randomElements;
}
/**
* Returns a random element from a passed array
*
- * @param array $array
+ * @param array|class-string|\Traversable $array
+ *
+ * @throws \InvalidArgumentException
*/
public static function randomElement($array = ['a', 'b', 'c'])
{
- if (!$array || ($array instanceof \Traversable && !count($array))) {
+ $elements = $array;
+
+ if (is_string($array) && function_exists('enum_exists') && enum_exists($array)) {
+ $elements = $array::cases();
+ }
+
+ if ($array instanceof \Traversable) {
+ $elements = iterator_to_array($array, false);
+ }
+
+ if ($elements === []) {
return null;
}
- $elements = static::randomElements($array, 1);
- return $elements[0];
+ if (!is_array($elements)) {
+ throw new \InvalidArgumentException(sprintf(
+ 'Argument for parameter $array needs to be array, an instance of %s, or an instance of %s, got %s instead.',
+ \UnitEnum::class,
+ \Traversable::class,
+ is_object($array) ? get_class($array) : gettype($array),
+ ));
+ }
+
+ $randomElements = static::randomElements($elements, 1);
+
+ return $randomElements[0];
}
/**
@@ -443,7 +491,7 @@ public static function lexify($string = '????')
public static function bothify($string = '## ??')
{
$string = self::replaceWildcard($string, '*', static function () {
- return mt_rand(0, 1) ? '#' : '?';
+ return mt_rand(0, 1) === 1 ? '#' : '?';
});
return static::lexify(static::numerify($string));
@@ -528,6 +576,7 @@ public static function regexify($regex = '')
// remove backslashes (that are not followed by another backslash) because they are escape characters
$match = preg_replace('/\\\(?!\\\)/', '', $matches[1]);
$randomElement = Base::randomElement(str_split($match));
+
//[.] should not be a random character, but a literal .
return str_replace('.', '\.', $randomElement);
}, $regex);
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/DateTime.php b/api/vendor/fakerphp/faker/src/Faker/Provider/DateTime.php
index 46c3c90fec..a8a199252d 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/DateTime.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/DateTime.php
@@ -334,9 +334,15 @@ public static function century()
*
* @example 'Europe/Paris'
*/
- public static function timezone()
+ public static function timezone(?string $countryCode = null)
{
- return static::randomElement(\DateTimeZone::listIdentifiers());
+ if ($countryCode) {
+ $timezones = \DateTimeZone::listIdentifiers(\DateTimeZone::PER_COUNTRY, $countryCode);
+ } else {
+ $timezones = \DateTimeZone::listIdentifiers();
+ }
+
+ return static::randomElement($timezones);
}
/**
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/Image.php b/api/vendor/fakerphp/faker/src/Faker/Provider/Image.php
index 53f28dfcfa..e787142178 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/Image.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/Image.php
@@ -123,6 +123,7 @@ public static function image(
);
$dir = null === $dir ? sys_get_temp_dir() : $dir; // GNU/Linux / OS X / Windows compatible
+
// Validate directory path
if (!is_dir($dir) || !is_writable($dir)) {
throw new \InvalidArgumentException(sprintf('Cannot write to directory "%s"', $dir));
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/Lorem.php b/api/vendor/fakerphp/faker/src/Faker/Provider/Lorem.php
index a55144a586..2cfb70ea7c 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/Lorem.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/Lorem.php
@@ -184,7 +184,15 @@ public static function text($maxNbChars = 200)
throw new \InvalidArgumentException('text() can only generate text of at least 5 characters');
}
- $type = ($maxNbChars < 25) ? 'word' : (($maxNbChars < 100) ? 'sentence' : 'paragraph');
+ $type = 'paragraph';
+
+ if ($maxNbChars < 100) {
+ $type = 'sentence';
+ }
+
+ if ($maxNbChars < 25) {
+ $type = 'word';
+ }
$text = [];
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/Miscellaneous.php b/api/vendor/fakerphp/faker/src/Faker/Provider/Miscellaneous.php
index 91d992ec40..354f67bb3a 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/Miscellaneous.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/Miscellaneous.php
@@ -202,11 +202,12 @@ class Miscellaneous extends Base
/**
* @see https://en.wikipedia.org/wiki/ISO_4217
- * On date of 2019-09-27
+ * On date of 2023-01-01
*
* With the following exceptions:
* SVC has been replaced by the USD in 2001: https://en.wikipedia.org/wiki/Salvadoran_col%C3%B3n
* ZWL has been suspended since 2009: https://en.wikipedia.org/wiki/Zimbabwean_dollar
+ * HRK has been replaced by EUR since 2023: https://en.wikipedia.org/wiki/Croatian_kuna
*/
protected static $currencyCode = [
'AED', 'AFN', 'ALL', 'AMD', 'ANG', 'AOA', 'ARS', 'AUD', 'AWG', 'AZN',
@@ -214,17 +215,17 @@ class Miscellaneous extends Base
'BSD', 'BTN', 'BWP', 'BYN', 'BZD', 'CAD', 'CDF', 'CHF', 'CLP', 'CNY',
'COP', 'CRC', 'CUC', 'CUP', 'CVE', 'CZK', 'DJF', 'DKK', 'DOP', 'DZD',
'EGP', 'ERN', 'ETB', 'EUR', 'FJD', 'FKP', 'GBP', 'GEL', 'GHS', 'GIP',
- 'GMD', 'GNF', 'GTQ', 'GYD', 'HKD', 'HNL', 'HRK', 'HTG', 'HUF', 'IDR',
- 'ILS', 'INR', 'IQD', 'IRR', 'ISK', 'JMD', 'JOD', 'JPY', 'KES', 'KGS',
- 'KHR', 'KMF', 'KPW', 'KRW', 'KWD', 'KYD', 'KZT', 'LAK', 'LBP', 'LKR',
- 'LRD', 'LSL', 'LYD', 'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MNT', 'MOP',
- 'MRU', 'MUR', 'MVR', 'MWK', 'MXN', 'MYR', 'MZN', 'NAD', 'NGN', 'NIO',
- 'NOK', 'NPR', 'NZD', 'OMR', 'PAB', 'PEN', 'PGK', 'PHP', 'PKR', 'PLN',
- 'PYG', 'QAR', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SBD', 'SCR', 'SDG',
- 'SEK', 'SGD', 'SHP', 'SLL', 'SOS', 'SRD', 'SSP', 'STN', 'SYP', 'SZL',
- 'THB', 'TJS', 'TMT', 'TND', 'TOP', 'TRY', 'TTD', 'TWD', 'TZS', 'UAH',
- 'UGX', 'USD', 'UYU', 'UZS', 'VES', 'VND', 'VUV', 'WST', 'XAF', 'XCD',
- 'XOF', 'XPF', 'YER', 'ZAR', 'ZMW',
+ 'GMD', 'GNF', 'GTQ', 'GYD', 'HKD', 'HNL', 'HTG', 'HUF', 'IDR', 'ILS',
+ 'INR', 'IQD', 'IRR', 'ISK', 'JMD', 'JOD', 'JPY', 'KES', 'KGS', 'KHR',
+ 'KMF', 'KPW', 'KRW', 'KWD', 'KYD', 'KZT', 'LAK', 'LBP', 'LKR', 'LRD',
+ 'LSL', 'LYD', 'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MNT', 'MOP', 'MRU',
+ 'MUR', 'MVR', 'MWK', 'MXN', 'MYR', 'MZN', 'NAD', 'NGN', 'NIO', 'NOK',
+ 'NPR', 'NZD', 'OMR', 'PAB', 'PEN', 'PGK', 'PHP', 'PKR', 'PLN', 'PYG',
+ 'QAR', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SBD', 'SCR', 'SDG', 'SEK',
+ 'SGD', 'SHP', 'SLL', 'SOS', 'SRD', 'SSP', 'STN', 'SYP', 'SZL', 'THB',
+ 'TJS', 'TMT', 'TND', 'TOP', 'TRY', 'TTD', 'TWD', 'TZS', 'UAH', 'UGX',
+ 'USD', 'UYU', 'UZS', 'VES', 'VND', 'VUV', 'WST', 'XAF', 'XCD', 'XOF',
+ 'XPF', 'YER', 'ZAR', 'ZMW',
];
/**
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/ar_EG/Address.php b/api/vendor/fakerphp/faker/src/Faker/Provider/ar_EG/Address.php
index 8fe73f50c6..87facaaf03 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/ar_EG/Address.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/ar_EG/Address.php
@@ -84,35 +84,35 @@ class Address extends \Faker\Provider\Address
/**
* @see https://ar.wikipedia.org/wiki/%D9%82%D8%A7%D8%A6%D9%85%D8%A9_%D9%85%D8%AD%D8%A7%D9%81%D8%B8%D8%A7%D8%AA_%D9%85%D8%B5%D8%B1
+ * @see https://ar.wikipedia.org/wiki/%D8%A8%D8%B7%D8%A7%D9%82%D8%A9_%D8%A7%D9%84%D8%B1%D9%82%D9%85_%D8%A7%D9%84%D9%82%D9%88%D9%85%D9%8A_%D8%A7%D9%84%D9%85%D8%B5%D8%B1%D9%8A%D8%A9
*/
protected static $governorates = [
- 'الإسكندرية',
- 'الإسماعيلية',
- 'أسوان',
- 'أسيوط',
- 'الأقصر',
- 'البحر الأحمر',
- 'البحيرة',
- 'بني سويف',
- 'بورسعيد',
- 'جنوب سيناء',
- 'الجيزة',
- 'الدقهلية',
- 'دمياط',
- 'سوهاج',
- 'السويس',
- 'الشرقية',
- 'شمال سيناء',
- 'الغربية',
- 'الفيوم',
- 'القاهرة',
- 'القليوبية',
- 'قنا',
- 'كفر الشيخ',
- 'مطروح',
- 'المنوفية',
- 'المنيا',
- 'الوادي الجديد',
+ 'الإسكندرية' => '02',
+ 'الإسماعيلية' => '19',
+ 'أسوان' => '28',
+ 'أسيوط' => '25',
+ 'الأقصر' => '29',
+ 'البحر الأحمر' => '31',
+ 'البحيرة' => '18',
+ 'بني سويف' => '22',
+ 'بورسعيد' => '03',
+ 'جنوب سيناء' => '35',
+ 'القاهرة' => '01',
+ 'الدقهلية' => '12',
+ 'دمياط' => '11',
+ 'سوهاج' => '26',
+ 'السويس' => '04',
+ 'الشرقية' => '13',
+ 'شمال سيناء' => '34',
+ 'الغربية' => '16',
+ 'الفيوم' => '23',
+ 'القليوبية' => '14',
+ 'قنا' => '27',
+ 'كفر الشيخ' => '15',
+ 'مطروح' => '33',
+ 'المنوفية' => '17',
+ 'المنيا' => '24',
+ 'الوادي الجديد' => '32',
];
protected static $buildingNumber = ['%####', '%###', '%#'];
@@ -201,6 +201,16 @@ public static function secondaryAddress()
* @example 'الإسكندرية'
*/
public static function governorate()
+ {
+ return static::randomKey(static::$governorates);
+ }
+
+ /**
+ * @example '01'
+ *
+ * @return string
+ */
+ public static function governorateId()
{
return static::randomElement(static::$governorates);
}
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/ar_EG/Person.php b/api/vendor/fakerphp/faker/src/Faker/Provider/ar_EG/Person.php
index 76f6f79e66..f6e0b15c14 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/ar_EG/Person.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/ar_EG/Person.php
@@ -2,8 +2,6 @@
namespace Faker\Provider\ar_EG;
-use Faker\Calculator\Luhn;
-
class Person extends \Faker\Provider\Person
{
protected static $maleNameFormats = [
@@ -29,7 +27,7 @@ class Person extends \Faker\Provider\Person
'حاتم', 'حازم', 'حافظ', 'حامد', 'حبيب', 'حسام', 'حسان', 'حسن', 'حسني', 'حسين', 'حمدان', 'حمدي', 'حمزة', 'حميد', 'خالد', 'خضر', 'خلف', 'خليفة', 'خليل', 'خميس', 'داوود', 'دياب', 'رأفت', 'رؤوف',
'رائد', 'رائف', 'راجح', 'راجي', 'راشد', 'راضي', 'راغب', 'رافت', 'راكان', 'رامز', 'رامي', 'ربيع', 'رجب', 'رزق', 'رشاد', 'رشيد', 'رضا', 'رضوان', 'رياض', 'ريان', 'زاهر', 'زاهي', 'زايد',
'زكريا', 'زمام', 'زهير', 'زياد', 'زيد', 'زيدان', 'زين', 'سالم', 'سامح', 'سامر', 'سامي', 'سعد', 'سعيد', 'سلام', 'سلطان', 'سلمان', 'سليم', 'سليمان', 'سمعان', 'سميح', 'سنان', 'سند',
- 'سيف', 'شادي', 'شاكر', 'شريف', 'شهاب', 'شهم', 'شوان', 'صادق', 'صافي', 'صالح', 'صفاء', 'صفوان', 'صقر', 'صلاح', 'صلاح الدين', 'صهيب', 'ضرغام', 'ضياء', 'ضياء الدين’, ', 'طارق', 'طالب', 'طاهر', 'طه', 'عادل', 'عاصم', 'عاطف',
+ 'سيف', 'شادي', 'شاكر', 'شريف', 'شهاب', 'شهم', 'شوان', 'صادق', 'صافي', 'صالح', 'صفاء', 'صفوان', 'صقر', 'صلاح', 'صلاح الدين', 'صهيب', 'ضرغام', 'ضياء', 'ضياء الدين', 'طارق', 'طالب', 'طاهر', 'طه', 'عادل', 'عاصم', 'عاطف',
'عبيدة', 'عثمان', 'عدلي', 'عدنان', 'عزت',
'عصام', 'علاء', 'علي', 'عماد', 'عمار', 'عمر', 'عمرو', 'عنان', 'عواد', 'عوض', 'عوف', 'عوني', 'عيد', 'عيسى', 'غازي', 'غسان', 'غيث', 'فؤاد', 'فادي',
'فارس', 'فاروق', 'فاضل', 'فايز', 'فتحي', 'فراس', 'فرح', 'فريد', 'فهد', 'فهمي', 'فوزي', 'فيصل', 'قارس', 'قاسم', 'قيس', 'كامل', 'كرم', 'كريم', 'كمال', 'لؤي', 'لبيب', 'لطفي', 'ليث', 'مأمون',
@@ -80,16 +78,30 @@ public static function prefix()
}
/**
+ * @see https://ar.wikipedia.org/wiki/%D8%A8%D8%B7%D8%A7%D9%82%D8%A9_%D8%A7%D9%84%D8%B1%D9%82%D9%85_%D8%A7%D9%84%D9%82%D9%88%D9%85%D9%8A_%D8%A7%D9%84%D9%85%D8%B5%D8%B1%D9%8A%D8%A9
+ *
* @example 27512310101010
+ *
+ * @return string
*/
- public static function nationalIdNumber()
+ public static function nationalIdNumber($gender = null)
{
- $timestamp = self::numberBetween(1, time());
+ $randomBirthDateTimestamp = mt_rand(strtotime('1950-Jan-10'), strtotime('2005-Dec-25'));
+
+ $centuryId = ((int) date('Y', $randomBirthDateTimestamp)) >= 2000 ? 3 : 2;
+ $fullBirthDate = date('ymd', $randomBirthDateTimestamp);
+ $governorateId = Address::governorateId();
+ $birthRegistrationSequence = mt_rand(1, 500);
- $date = explode(':', date('y:m:d', $timestamp));
+ if ($gender === static::GENDER_MALE) {
+ $birthRegistrationSequence = $birthRegistrationSequence | 1; // Convert to the nearest odd number
+ } elseif ($gender === static::GENDER_FEMALE) {
+ $birthRegistrationSequence = $birthRegistrationSequence & ~1; // Convert to the nearest even number
+ }
- $partialValue = static::numerify(2 . $date[0] . $date[1] . $date[2] . str_repeat('#', 6));
+ $birthRegistrationSequence = str_pad((string) $birthRegistrationSequence, 4, '0', STR_PAD_LEFT);
+ $randomCheckDigit = mt_rand(1, 9);
- return Luhn::generateLuhnNumber($partialValue);
+ return $centuryId . $fullBirthDate . $governorateId . $birthRegistrationSequence . $randomCheckDigit;
}
}
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/ar_SA/Person.php b/api/vendor/fakerphp/faker/src/Faker/Provider/ar_SA/Person.php
index 505c8640c4..91527c39ae 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/ar_SA/Person.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/ar_SA/Person.php
@@ -36,7 +36,7 @@ class Person extends \Faker\Provider\Person
'جواد', 'حابس', 'حاتم', 'حارث', 'حازم', 'حافظ', 'حاكم', 'حامد', 'حبيب', 'حذيفة', 'حسام', 'حسان', 'حسن', 'حسني', 'حسين', 'حكم', 'حمد', 'حمدالله', 'حمدان', 'حمدي', 'حمزة', 'حمود', 'حميد', 'خالد', 'خضر', 'خلدون', 'خلف', 'خليفة', 'خليل', 'خميس', 'داوود', 'ذياب', 'ذيب', 'رأفت', 'رؤوف', 'رئاد',
'رائد', 'رائف', 'راجح', 'راجي', 'راشد', 'راضي', 'راغب', 'رافت', 'رافع', 'رافي', 'راكان', 'رامان', 'رامز', 'رامي', 'رامين', 'ربيع', 'رجا', 'رجائي', 'رجب', 'رداد', 'رزق', 'رسلان', 'رشاد', 'رشيد', 'رضا', 'رضوان', 'رعد', 'رغد', 'رغيد', 'ركان', 'رماح', 'رياض', 'ريان', 'زاهر', 'زاهي', 'زايد',
'زكريا', 'زمام', 'زهير', 'زياد', 'زيد', 'زيدان', 'زيدون', 'زين', 'زين العابدين', 'سائد', 'ساري', 'سالم', 'سامح', 'سامر', 'سامي', 'ساهر', 'سدير', 'سرمد', 'سري', 'سعد', 'سعود', 'سعيد', 'سفيان', 'سكوت', 'سلام', 'سلطان', 'سلمان', 'سليم', 'سليمان', 'سمعان', 'سميح', 'سنان', 'سند', 'سهل', 'سهم',
- 'سيف', 'شادي', 'شافع', 'شاكر', 'شامل', 'شاهر', 'شرحبيل', 'شريف', 'شهاب', 'شهم', 'شوان', 'صادق', 'صافي', 'صالح', 'صخر', 'صدام', 'صفاء', 'صفوان', 'صقر', 'صلاح', 'صلاح الدين', 'صهيب', 'ضرار', 'ضرغام', 'ضياء', 'ضياء الدين’, ', 'طارق', 'طالب', 'طاهر', 'طلال', 'طه', 'عادل', 'عاصم', 'عاطف',
+ 'سيف', 'شادي', 'شافع', 'شاكر', 'شامل', 'شاهر', 'شرحبيل', 'شريف', 'شهاب', 'شهم', 'شوان', 'صادق', 'صافي', 'صالح', 'صخر', 'صدام', 'صفاء', 'صفوان', 'صقر', 'صلاح', 'صلاح الدين', 'صهيب', 'ضرار', 'ضرغام', 'ضياء', 'ضياء الدين', 'طارق', 'طالب', 'طاهر', 'طلال', 'طه', 'عادل', 'عاصم', 'عاطف',
'عامر', 'عايد', 'عبادة', 'عباس', 'عبد الباري', 'عبد الحافظ', 'عبد الحكيم', 'عبد الحليم', 'عبد الحميد', 'عبد الحي', 'عبد الرحمان', 'عبد الرحمن', 'عبد الرحيم', 'عبد الرزاق', 'عبد السلام', 'عبد السميع', 'عبد العزيز', 'عبد العفو', 'عبد الغني', 'عبد الفتاح', 'عبد القادر', 'عبد الكريم',
'عبد اللطيف', 'عبد الله', 'عبد المجيد', 'عبد المولى', 'عبد الناصر', 'عبد الهادي', 'عبد ربه', 'عبداالله', 'عبدالاله', 'عبدالباسط', 'عبدالجليل', 'عبدالجواد', 'عبدالحليم', 'عبدالحميد', 'عبدالرؤوف', 'عبدالرحمن', 'عبدالرحيم', 'عبدالرزاق', 'عبدالسلام', 'عبدالعزيز', 'عبدالفتاح', 'عبدالقادر',
'عبدالكريم', 'عبداللطيف', 'عبدالله', 'عبدالمجيد', 'عبدالمطلب', 'عبدالمعطي', 'عبدالمهيمن', 'عبدالناصر', 'عبدالهادي', 'عبدالوهاب', 'عبيدالله', 'عبيدة', 'عتيبه', 'عثمان', 'عدب', 'عدلي', 'عدنان', 'عدوان', 'عدي', 'عرار', 'عرمان', 'عروة', 'عريق', 'عرين', 'عز الدين', 'عزالدين', 'عزام', 'عزت',
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/cs_CZ/Person.php b/api/vendor/fakerphp/faker/src/Faker/Provider/cs_CZ/Person.php
index 6e2bab1375..f0bca49e0b 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/cs_CZ/Person.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/cs_CZ/Person.php
@@ -28,7 +28,7 @@ class Person extends \Faker\Provider\Person
protected static $firstNameMale = [
'Adam', 'Aleš', 'Alois', 'Antonín', 'Bohumil', 'Bohuslav', 'Dagmar',
'Dalibor', 'Daniel', 'David', 'Dominik', 'Dušan', 'Eduard', 'Emil',
- 'Filip', 'František', 'Ilona', 'Ivan', 'Ivo', 'Jakub', 'Jan', 'Ján',
+ 'Filip', 'František', 'Igor', 'Ivan', 'Ivo', 'Jakub', 'Jan', 'Ján',
'Jaromír', 'Jaroslav', 'Jindřich', 'Jiří', 'Josef', 'Jozef', 'Kamil',
'Karel', 'Kryštof', 'Ladislav', 'Libor', 'Lubomír', 'Luboš', 'Luděk',
'Ludvík', 'Lukáš', 'Marcel', 'Marek', 'Martin', 'Matěj', 'Matyáš',
@@ -438,8 +438,8 @@ public function birthNumber($gender = null, $minAge = 0, $maxAge = 100, $slashPr
$gender = $this->generator->boolean() ? static::GENDER_MALE : static::GENDER_FEMALE;
}
- $startTimestamp = strtotime("-${maxAge} year");
- $endTimestamp = strtotime("-${minAge} year");
+ $startTimestamp = strtotime(sprintf('-%d year', $maxAge));
+ $endTimestamp = strtotime(sprintf('-%d year', $minAge));
$randTimestamp = self::numberBetween($startTimestamp, $endTimestamp);
$year = (int) (date('Y', $randTimestamp));
@@ -451,6 +451,7 @@ public function birthNumber($gender = null, $minAge = 0, $maxAge = 100, $slashPr
if ($gender == static::GENDER_FEMALE) {
$month += 50;
}
+
// from year 2004 everyone has +20 to month when birth numbers in one day are exhausted
if ($year >= 2004 && $this->generator->boolean(10)) {
$month += 20;
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/da_DK/Person.php b/api/vendor/fakerphp/faker/src/Faker/Provider/da_DK/Person.php
index fa1e89c6c9..732afeb218 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/da_DK/Person.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/da_DK/Person.php
@@ -36,7 +36,7 @@ class Person extends \Faker\Provider\Person
* @var array Danish first names.
*/
protected static $firstNameMale = [
- 'Aage', 'Adam', 'Adolf', 'Ahmad', 'Ahmed', 'Aksel', 'Albert', 'Alex', 'Alexander', 'Alf', 'Alfred', 'Ali', 'Allan',
+ 'Aage', 'Adam', 'Ahmad', 'Ahmed', 'Aksel', 'Albert', 'Alex', 'Alexander', 'Alf', 'Alfred', 'Ali', 'Allan',
'Anders', 'Andreas', 'Anker', 'Anton', 'Arne', 'Arnold', 'Arthur', 'Asbjørn', 'Asger', 'August', 'Axel', 'Benjamin',
'Benny', 'Bent', 'Bernhard', 'Birger', 'Bjarne', 'Bjørn', 'Bo', 'Brian', 'Bruno', 'Børge', 'Carl', 'Carlo',
'Carsten', 'Casper', 'Charles', 'Chris', 'Christian', 'Christoffer', 'Christopher', 'Claus', 'Dan', 'Daniel', 'David', 'Dennis',
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/de_AT/Person.php b/api/vendor/fakerphp/faker/src/Faker/Provider/de_AT/Person.php
index 964b8b7d31..248952ff30 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/de_AT/Person.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/de_AT/Person.php
@@ -127,7 +127,7 @@ public static function suffix()
*
* @return string
*/
- public static function ssn(\DateTime $birthdate = null)
+ public static function ssn(?\DateTime $birthdate = null)
{
$birthdate = $birthdate ?? DateTime::dateTimeThisCentury();
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/de_CH/Person.php b/api/vendor/fakerphp/faker/src/Faker/Provider/de_CH/Person.php
index 9910b12726..d3ead307da 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/de_CH/Person.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/de_CH/Person.php
@@ -8,7 +8,7 @@ class Person extends \Faker\Provider\de_DE\Person
* @see http://www.bfs.admin.ch/bfs/portal/de/index/themen/01/02/blank/dos/prenoms/02.html
*/
protected static $firstNameMale = [
- 'Adolf', 'Adrian', 'Alain', 'Albert', 'Alessandro', 'Alex', 'Alexander', 'Alfred', 'Ali', 'Alois', 'Andrea', 'Andreas', 'Andrin', 'André', 'Angelo', 'Anton', 'Antonio', 'Armin', 'Arnold', 'Arthur',
+ 'Adrian', 'Alain', 'Albert', 'Alessandro', 'Alex', 'Alexander', 'Alfred', 'Ali', 'Alois', 'Andrea', 'Andreas', 'Andrin', 'André', 'Angelo', 'Anton', 'Antonio', 'Armin', 'Arnold', 'Arthur',
'Beat', 'Benjamin', 'Bernhard', 'Bruno',
'Carlo', 'Carlos', 'Christian', 'Christoph', 'Claudio', 'Cyrill', 'Cédric',
'Damian', 'Daniel', 'Dario', 'David', 'Denis', 'Diego', 'Dieter', 'Dominic', 'Dominik',
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/de_DE/Person.php b/api/vendor/fakerphp/faker/src/Faker/Provider/de_DE/Person.php
index 45a0c2e6f9..44f205e062 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/de_DE/Person.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/de_DE/Person.php
@@ -31,7 +31,7 @@ class Person extends \Faker\Provider\Person
* {@link} From https://de.wiktionary.org/wiki/Verzeichnis:Deutsch/Namen/die_h%C3%A4ufigsten_m%C3%A4nnlichen_Vornamen_Deutschlands
*/
protected static $firstNameMale = [
- 'Achim', 'Adalbert', 'Adam', 'Adolf', 'Adrian', 'Ahmed', 'Ahmet', 'Albert', 'Albin', 'Albrecht', 'Alex', 'Alexander', 'Alfons', 'Alfred', 'Ali', 'Alois', 'Aloys', 'Alwin', 'Anatoli', 'Andre', 'Andreas', 'Andree', 'Andrej', 'Andrzej', 'André', 'Andy', 'Angelo', 'Ansgar', 'Anton', 'Antonio', 'Antonius', 'Armin', 'Arnd', 'Arndt', 'Arne', 'Arno', 'Arnold', 'Arnulf', 'Arthur', 'Artur', 'August', 'Axel',
+ 'Achim', 'Adalbert', 'Adam', 'Adrian', 'Ahmed', 'Ahmet', 'Albert', 'Albin', 'Albrecht', 'Alex', 'Alexander', 'Alfons', 'Alfred', 'Ali', 'Alois', 'Aloys', 'Alwin', 'Anatoli', 'Andre', 'Andreas', 'Andree', 'Andrej', 'Andrzej', 'André', 'Andy', 'Angelo', 'Ansgar', 'Anton', 'Antonio', 'Antonius', 'Armin', 'Arnd', 'Arndt', 'Arne', 'Arno', 'Arnold', 'Arnulf', 'Arthur', 'Artur', 'August', 'Axel',
'Bastian', 'Benedikt', 'Benjamin', 'Benno', 'Bernard', 'Bernd', 'Berndt', 'Bernhard', 'Bert', 'Berthold', 'Bertram', 'Björn', 'Bodo', 'Bogdan', 'Boris', 'Bruno', 'Burghard', 'Burkhard',
'Carl', 'Carlo', 'Carlos', 'Carsten', 'Christian', 'Christof', 'Christoph', 'Christopher', 'Christos', 'Claudio', 'Claus', 'Claus-Dieter', 'Claus-Peter', 'Clemens', 'Cornelius',
'Daniel', 'Danny', 'Darius', 'David', 'Denis', 'Dennis', 'Detlef', 'Detlev', 'Dierk', 'Dieter', 'Diethard', 'Diethelm', 'Dietmar', 'Dietrich', 'Dimitri', 'Dimitrios', 'Dirk', 'Domenico', 'Dominik',
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/en_AU/Internet.php b/api/vendor/fakerphp/faker/src/Faker/Provider/en_AU/Internet.php
index e1185f18f9..39e650642b 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/en_AU/Internet.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/en_AU/Internet.php
@@ -4,6 +4,6 @@
class Internet extends \Faker\Provider\Internet
{
- protected static $freeEmailDomain = ['gmail.com', 'yahoo.com', 'hotmail.com', 'gmail.com.au', 'yahoo.com.au', 'hotmail.com.au'];
+ protected static $freeEmailDomain = ['gmail.com', 'yahoo.com', 'hotmail.com', 'yahoo.com.au', 'hotmail.com.au'];
protected static $tld = ['com', 'com.au', 'org', 'org.au', 'net', 'net.au', 'biz', 'info', 'edu', 'edu.au'];
}
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/en_GB/Company.php b/api/vendor/fakerphp/faker/src/Faker/Provider/en_GB/Company.php
index 17fe07da0b..b0c3ccc721 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/en_GB/Company.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/en_GB/Company.php
@@ -18,7 +18,7 @@ class Company extends \Faker\Provider\Company
*
* @see https://en.wikipedia.org/wiki/VAT_identification_number#VAT_numbers_by_country
*/
- public static function vat(string $type = null): string
+ public static function vat(?string $type = null): string
{
switch ($type) {
case static::VAT_TYPE_BRANCH:
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/en_US/Company.php b/api/vendor/fakerphp/faker/src/Faker/Provider/en_US/Company.php
index ee72fca993..8cab28a95e 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/en_US/Company.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/en_US/Company.php
@@ -15,7 +15,7 @@ class Company extends \Faker\Provider\Company
'Adaptive', 'Advanced', 'Ameliorated', 'Assimilated', 'Automated', 'Balanced', 'Business-focused', 'Centralized', 'Cloned', 'Compatible', 'Configurable', 'Cross-group', 'Cross-platform', 'Customer-focused', 'Customizable', 'Decentralized', 'De-engineered', 'Devolved', 'Digitized', 'Distributed', 'Diverse', 'Down-sized', 'Enhanced', 'Enterprise-wide', 'Ergonomic', 'Exclusive', 'Expanded', 'Extended', 'Facetoface', 'Focused', 'Front-line', 'Fully-configurable', 'Function-based', 'Fundamental', 'Future-proofed', 'Grass-roots', 'Horizontal', 'Implemented', 'Innovative', 'Integrated', 'Intuitive', 'Inverse', 'Managed', 'Mandatory', 'Monitored', 'Multi-channelled', 'Multi-lateral', 'Multi-layered', 'Multi-tiered', 'Networked', 'Object-based', 'Open-architected', 'Open-source', 'Operative', 'Optimized', 'Optional', 'Organic', 'Organized', 'Persevering', 'Persistent', 'Phased', 'Polarised', 'Pre-emptive', 'Proactive', 'Profit-focused', 'Profound', 'Programmable', 'Progressive', 'Public-key', 'Quality-focused', 'Reactive', 'Realigned', 'Re-contextualized', 'Re-engineered', 'Reduced', 'Reverse-engineered', 'Right-sized', 'Robust', 'Seamless', 'Secured', 'Self-enabling', 'Sharable', 'Stand-alone', 'Streamlined', 'Switchable', 'Synchronised', 'Synergistic', 'Synergized', 'Team-oriented', 'Total', 'Triple-buffered', 'Universal', 'Up-sized', 'Upgradable', 'User-centric', 'User-friendly', 'Versatile', 'Virtual', 'Visionary', 'Vision-oriented',
],
[
- '24hour', '24/7', '3rdgeneration', '4thgeneration', '5thgeneration', '6thgeneration', 'actuating', 'analyzing', 'assymetric', 'asynchronous', 'attitude-oriented', 'background', 'bandwidth-monitored', 'bi-directional', 'bifurcated', 'bottom-line', 'clear-thinking', 'client-driven', 'client-server', 'coherent', 'cohesive', 'composite', 'context-sensitive', 'contextually-based', 'content-based', 'dedicated', 'demand-driven', 'didactic', 'directional', 'discrete', 'disintermediate', 'dynamic', 'eco-centric', 'empowering', 'encompassing', 'even-keeled', 'executive', 'explicit', 'exuding', 'fault-tolerant', 'foreground', 'fresh-thinking', 'full-range', 'global', 'grid-enabled', 'heuristic', 'high-level', 'holistic', 'homogeneous', 'human-resource', 'hybrid', 'impactful', 'incremental', 'intangible', 'interactive', 'intermediate', 'leadingedge', 'local', 'logistical', 'maximized', 'methodical', 'mission-critical', 'mobile', 'modular', 'motivating', 'multimedia', 'multi-state', 'multi-tasking', 'national', 'needs-based', 'neutral', 'nextgeneration', 'non-volatile', 'object-oriented', 'optimal', 'optimizing', 'radical', 'real-time', 'reciprocal', 'regional', 'responsive', 'scalable', 'secondary', 'solution-oriented', 'stable', 'static', 'systematic', 'systemic', 'system-worthy', 'tangible', 'tertiary', 'transitional', 'uniform', 'upward-trending', 'user-facing', 'value-added', 'web-enabled', 'well-modulated', 'zeroadministration', 'zerodefect', 'zerotolerance',
+ '24hour', '24/7', '3rdgeneration', '4thgeneration', '5thgeneration', '6thgeneration', 'actuating', 'analyzing', 'asymmetric', 'asynchronous', 'attitude-oriented', 'background', 'bandwidth-monitored', 'bi-directional', 'bifurcated', 'bottom-line', 'clear-thinking', 'client-driven', 'client-server', 'coherent', 'cohesive', 'composite', 'context-sensitive', 'contextually-based', 'content-based', 'dedicated', 'demand-driven', 'didactic', 'directional', 'discrete', 'disintermediate', 'dynamic', 'eco-centric', 'empowering', 'encompassing', 'even-keeled', 'executive', 'explicit', 'exuding', 'fault-tolerant', 'foreground', 'fresh-thinking', 'full-range', 'global', 'grid-enabled', 'heuristic', 'high-level', 'holistic', 'homogeneous', 'human-resource', 'hybrid', 'impactful', 'incremental', 'intangible', 'interactive', 'intermediate', 'leadingedge', 'local', 'logistical', 'maximized', 'methodical', 'mission-critical', 'mobile', 'modular', 'motivating', 'multimedia', 'multi-state', 'multi-tasking', 'national', 'needs-based', 'neutral', 'nextgeneration', 'non-volatile', 'object-oriented', 'optimal', 'optimizing', 'radical', 'real-time', 'reciprocal', 'regional', 'responsive', 'scalable', 'secondary', 'solution-oriented', 'stable', 'static', 'systematic', 'systemic', 'system-worthy', 'tangible', 'tertiary', 'transitional', 'uniform', 'upward-trending', 'user-facing', 'value-added', 'web-enabled', 'well-modulated', 'zeroadministration', 'zerodefect', 'zerotolerance',
],
[
'ability', 'access', 'adapter', 'algorithm', 'alliance', 'analyzer', 'application', 'approach', 'architecture', 'archive', 'artificialintelligence', 'array', 'attitude', 'benchmark', 'blockchain', 'budgetarymanagement', 'capability', 'capacity', 'challenge', 'circuit', 'collaboration', 'complexity', 'concept', 'conglomeration', 'contingency', 'core', 'customerloyalty', 'database', 'data-warehouse', 'definition', 'emulation', 'encoding', 'encryption', 'extranet', 'firmware', 'flexibility', 'focusgroup', 'forecast', 'frame', 'framework', 'function', 'functionalities', 'GraphicInterface', 'groupware', 'GraphicalUserInterface', 'hardware', 'help-desk', 'hierarchy', 'hub', 'implementation', 'info-mediaries', 'infrastructure', 'initiative', 'installation', 'instructionset', 'interface', 'internetsolution', 'intranet', 'knowledgeuser', 'knowledgebase', 'localareanetwork', 'leverage', 'matrices', 'matrix', 'methodology', 'middleware', 'migration', 'model', 'moderator', 'monitoring', 'moratorium', 'neural-net', 'openarchitecture', 'opensystem', 'orchestration', 'paradigm', 'parallelism', 'policy', 'portal', 'pricingstructure', 'processimprovement', 'product', 'productivity', 'project', 'projection', 'protocol', 'securedline', 'service-desk', 'software', 'solution', 'standardization', 'strategy', 'structure', 'success', 'superstructure', 'support', 'synergy', 'systemengine', 'task-force', 'throughput', 'time-frame', 'toolset', 'utilisation', 'website', 'workforce',
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/en_US/Person.php b/api/vendor/fakerphp/faker/src/Faker/Provider/en_US/Person.php
index 3c6f99a4fe..5cd22d43e2 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/en_US/Person.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/en_US/Person.php
@@ -27,7 +27,7 @@ class Person extends \Faker\Provider\Person
];
protected static $firstNameMale = [
- 'Aaron', 'Abdiel', 'Abdul', 'Abdullah', 'Abe', 'Abel', 'Abelardo', 'Abner', 'Abraham', 'Adalberto', 'Adam', 'Adan', 'Adelbert', 'Adolf', 'Adolfo', 'Adolph', 'Adolphus', 'Adonis', 'Adrain', 'Adrian', 'Adriel', 'Adrien', 'Afton', 'Agustin', 'Ahmad', 'Ahmed', 'Aidan', 'Aiden', 'Akeem', 'Al', 'Alan', 'Albert', 'Alberto', 'Albin', 'Alden', 'Alec', 'Alejandrin', 'Alek', 'Alessandro', 'Alex', 'Alexander', 'Alexandre', 'Alexandro', 'Alexie', 'Alexis', 'Alexys', 'Alexzander', 'Alf', 'Alfonso', 'Alfonzo', 'Alford', 'Alfred', 'Alfredo', 'Ali', 'Allan', 'Allen', 'Alphonso', 'Alvah', 'Alvis', 'Amani', 'Amari', 'Ambrose', 'Americo', 'Amir', 'Amos', 'Amparo', 'Anastacio', 'Anderson', 'Andre', 'Andres', 'Andrew', 'Andy', 'Angel', 'Angelo', 'Angus', 'Anibal', 'Ansel', 'Ansley', 'Anthony', 'Antone', 'Antonio', 'Antwan', 'Antwon', 'Arch', 'Archibald', 'Arden', 'Arely', 'Ari', 'Aric', 'Ariel', 'Arjun', 'Arlo', 'Armand', 'Armando', 'Armani', 'Arnaldo', 'Arne', 'Arno', 'Arnold', 'Arnoldo', 'Arnulfo', 'Aron', 'Art', 'Arthur', 'Arturo', 'Arvel', 'Arvid', 'Ashton', 'August', 'Augustus', 'Aurelio', 'Austen', 'Austin', 'Austyn', 'Avery', 'Axel', 'Ayden',
+ 'Aaron', 'Abdiel', 'Abdul', 'Abdullah', 'Abe', 'Abel', 'Abelardo', 'Abner', 'Abraham', 'Adalberto', 'Adam', 'Adan', 'Adelbert', 'Adolfo', 'Adolphus', 'Adonis', 'Adrain', 'Adrian', 'Adriel', 'Adrien', 'Afton', 'Agustin', 'Ahmad', 'Ahmed', 'Aidan', 'Aiden', 'Akeem', 'Al', 'Alan', 'Albert', 'Alberto', 'Albin', 'Alden', 'Alec', 'Alejandrin', 'Alek', 'Alessandro', 'Alex', 'Alexander', 'Alexandre', 'Alexandro', 'Alexie', 'Alexis', 'Alexys', 'Alexzander', 'Alf', 'Alfonso', 'Alfonzo', 'Alford', 'Alfred', 'Alfredo', 'Ali', 'Allan', 'Allen', 'Alphonso', 'Alvah', 'Alvis', 'Amani', 'Amari', 'Ambrose', 'Americo', 'Amir', 'Amos', 'Amparo', 'Anastacio', 'Anderson', 'Andre', 'Andres', 'Andrew', 'Andy', 'Angel', 'Angelo', 'Angus', 'Anibal', 'Ansel', 'Ansley', 'Anthony', 'Antone', 'Antonio', 'Antwan', 'Antwon', 'Arch', 'Archibald', 'Arden', 'Arely', 'Ari', 'Aric', 'Ariel', 'Arjun', 'Arlo', 'Armand', 'Armando', 'Armani', 'Arnaldo', 'Arne', 'Arno', 'Arnold', 'Arnoldo', 'Arnulfo', 'Aron', 'Art', 'Arthur', 'Arturo', 'Arvel', 'Arvid', 'Ashton', 'August', 'Augustus', 'Aurelio', 'Austen', 'Austin', 'Austyn', 'Avery', 'Axel', 'Ayden',
'Bailey', 'Barney', 'Baron', 'Barrett', 'Barry', 'Bart', 'Bartholome', 'Barton', 'Baylee', 'Beau', 'Bell', 'Ben', 'Benedict', 'Benjamin', 'Bennett', 'Bennie', 'Benny', 'Benton', 'Bernard', 'Bernardo', 'Bernhard', 'Bernie', 'Berry', 'Berta', 'Bertha', 'Bertram', 'Bertrand', 'Bill', 'Billy', 'Blair', 'Blaise', 'Blake', 'Blaze', 'Bo', 'Bobbie', 'Bobby', 'Boris', 'Boyd', 'Brad', 'Braden', 'Bradford', 'Bradley', 'Bradly', 'Brady', 'Braeden', 'Brain', 'Brando', 'Brandon', 'Brandt', 'Brannon', 'Branson', 'Brant', 'Braulio', 'Braxton', 'Brayan', 'Brendan', 'Brenden', 'Brendon', 'Brennan', 'Brennon', 'Brent', 'Bret', 'Brett', 'Brian', 'Brice', 'Brock', 'Broderick', 'Brody', 'Brook', 'Brooks', 'Brown', 'Bruce', 'Bryce', 'Brycen', 'Bryon', 'Buck', 'Bud', 'Buddy', 'Buford', 'Burley', 'Buster',
'Cade', 'Caden', 'Caesar', 'Cale', 'Caleb', 'Camden', 'Cameron', 'Camren', 'Camron', 'Camryn', 'Candelario', 'Candido', 'Carey', 'Carleton', 'Carlo', 'Carlos', 'Carmel', 'Carmelo', 'Carmine', 'Carol', 'Carroll', 'Carson', 'Carter', 'Cary', 'Casey', 'Casimer', 'Casimir', 'Casper', 'Ceasar', 'Cecil', 'Cedrick', 'Celestino', 'Cesar', 'Chad', 'Chadd', 'Chadrick', 'Chaim', 'Chance', 'Chandler', 'Charles', 'Charley', 'Charlie', 'Chase', 'Chauncey', 'Chaz', 'Chelsey', 'Chesley', 'Chester', 'Chet', 'Chris', 'Christ', 'Christian', 'Christop', 'Christophe', 'Christopher', 'Cicero', 'Cielo', 'Clair', 'Clark', 'Claud', 'Claude', 'Clay', 'Clemens', 'Clement', 'Cleo', 'Cletus', 'Cleve', 'Cleveland', 'Clifford', 'Clifton', 'Clint', 'Clinton', 'Clovis', 'Cloyd', 'Clyde', 'Coby', 'Cody', 'Colby', 'Cole', 'Coleman', 'Colin', 'Collin', 'Colt', 'Colten', 'Colton', 'Columbus', 'Conner', 'Connor', 'Conor', 'Conrad', 'Constantin', 'Consuelo', 'Cooper', 'Corbin', 'Cordelia', 'Cordell', 'Cornelius', 'Cornell', 'Cortez', 'Cory', 'Coty', 'Coy', 'Craig', 'Crawford', 'Cristian', 'Cristina', 'Cristobal', 'Cristopher', 'Cruz', 'Cullen', 'Curt', 'Curtis', 'Cyril', 'Cyrus',
'Dagmar', 'Dale', 'Dallas', 'Dallin', 'Dalton', 'Dameon', 'Damian', 'Damien', 'Damion', 'Damon', 'Dan', 'Dane', 'D\'angelo', 'Dangelo', 'Danial', 'Danny', 'Dante', 'Daren', 'Darian', 'Darien', 'Dario', 'Darion', 'Darius', 'Daron', 'Darrel', 'Darrell', 'Darren', 'Darrick', 'Darrin', 'Darrion', 'Darron', 'Darryl', 'Darwin', 'Daryl', 'Dashawn', 'Dave', 'David', 'Davin', 'Davion', 'Davon', 'Davonte', 'Dawson', 'Dax', 'Dayne', 'Dayton', 'Dean', 'Deangelo', 'Declan', 'Dedric', 'Dedrick', 'Dee', 'Deion', 'Dejon', 'Dejuan', 'Delaney', 'Delbert', 'Dell', 'Delmer', 'Demarco', 'Demarcus', 'Demario', 'Demetrius', 'Demond', 'Denis', 'Dennis', 'Deon', 'Deondre', 'Deontae', 'Deonte', 'Dereck', 'Derek', 'Derick', 'Deron', 'Derrick', 'Deshaun', 'Deshawn', 'Desmond', 'Destin', 'Devan', 'Devante', 'Deven', 'Devin', 'Devon', 'Devonte', 'Devyn', 'Dewayne', 'Dewitt', 'Dexter', 'Diamond', 'Diego', 'Dillan', 'Dillon', 'Dimitri', 'Dino', 'Dion', 'Dock', 'Domenic', 'Domenick', 'Domenico', 'Domingo', 'Dominic', 'Don', 'Donald', 'Donato', 'Donavon', 'Donnell', 'Donnie', 'Donny', 'Dorcas', 'Dorian', 'Doris', 'Dorthy', 'Doug', 'Douglas', 'Doyle', 'Drake', 'Dudley', 'Duncan', 'Durward', 'Dustin', 'Dusty', 'Dwight', 'Dylan',
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/en_ZA/Person.php b/api/vendor/fakerphp/faker/src/Faker/Provider/en_ZA/Person.php
index df018d1514..2433ac1785 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/en_ZA/Person.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/en_ZA/Person.php
@@ -135,13 +135,12 @@ class Person extends \Faker\Provider\Person
/**
* @see https://en.wikipedia.org/wiki/National_identification_number#South_Africa
*
- * @param \DateTime $birthdate
- * @param bool $citizen
- * @param string $gender
+ * @param bool $citizen
+ * @param string $gender
*
* @return string
*/
- public function idNumber(\DateTime $birthdate = null, $citizen = true, $gender = null)
+ public function idNumber(?\DateTime $birthdate = null, $citizen = true, $gender = null)
{
if (!$birthdate) {
$birthdate = $this->generator->dateTimeThisCentury();
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/es_AR/Company.php b/api/vendor/fakerphp/faker/src/Faker/Provider/es_AR/Company.php
index f14d446716..bc6211cdfa 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/es_AR/Company.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/es_AR/Company.php
@@ -17,7 +17,7 @@ class Company extends \Faker\Provider\Company
'Adaptive', 'Advanced', 'Ameliorated', 'Assimilated', 'Automated', 'Balanced', 'Business-focused', 'Centralized', 'Cloned', 'Compatible', 'Configurable', 'Cross-group', 'Cross-platform', 'Customer-focused', 'Customizable', 'Decentralized', 'De-engineered', 'Devolved', 'Digitized', 'Distributed', 'Diverse', 'Down-sized', 'Enhanced', 'Enterprise-wide', 'Ergonomic', 'Exclusive', 'Expanded', 'Extended', 'Facetoface', 'Focused', 'Front-line', 'Fully-configurable', 'Function-based', 'Fundamental', 'Future-proofed', 'Grass-roots', 'Horizontal', 'Implemented', 'Innovative', 'Integrated', 'Intuitive', 'Inverse', 'Managed', 'Mandatory', 'Monitored', 'Multi-channelled', 'Multi-lateral', 'Multi-layered', 'Multi-tiered', 'Networked', 'Object-based', 'Open-architected', 'Open-source', 'Operative', 'Optimized', 'Optional', 'Organic', 'Organized', 'Persevering', 'Persistent', 'Phased', 'Polarised', 'Pre-emptive', 'Proactive', 'Profit-focused', 'Profound', 'Programmable', 'Progressive', 'Public-key', 'Quality-focused', 'Reactive', 'Realigned', 'Re-contextualized', 'Re-engineered', 'Reduced', 'Reverse-engineered', 'Right-sized', 'Robust', 'Seamless', 'Secured', 'Self-enabling', 'Sharable', 'Stand-alone', 'Streamlined', 'Switchable', 'Synchronised', 'Synergistic', 'Synergized', 'Team-oriented', 'Total', 'Triple-buffered', 'Universal', 'Up-sized', 'Upgradable', 'User-centric', 'User-friendly', 'Versatile', 'Virtual', 'Visionary', 'Vision-oriented',
],
[
- '24hour', '24/7', '3rdgeneration', '4thgeneration', '5thgeneration', '6thgeneration', 'actuating', 'analyzing', 'assymetric', 'asynchronous', 'attitude-oriented', 'background', 'bandwidth-monitored', 'bi-directional', 'bifurcated', 'bottom-line', 'clear-thinking', 'client-driven', 'client-server', 'coherent', 'cohesive', 'composite', 'context-sensitive', 'contextually-based', 'content-based', 'dedicated', 'demand-driven', 'didactic', 'directional', 'discrete', 'disintermediate', 'dynamic', 'eco-centric', 'empowering', 'encompassing', 'even-keeled', 'executive', 'explicit', 'exuding', 'fault-tolerant', 'foreground', 'fresh-thinking', 'full-range', 'global', 'grid-enabled', 'heuristic', 'high-level', 'holistic', 'homogeneous', 'human-resource', 'hybrid', 'impactful', 'incremental', 'intangible', 'interactive', 'intermediate', 'leadingedge', 'local', 'logistical', 'maximized', 'methodical', 'mission-critical', 'mobile', 'modular', 'motivating', 'multimedia', 'multi-state', 'multi-tasking', 'national', 'needs-based', 'neutral', 'nextgeneration', 'non-volatile', 'object-oriented', 'optimal', 'optimizing', 'radical', 'real-time', 'reciprocal', 'regional', 'responsive', 'scalable', 'secondary', 'solution-oriented', 'stable', 'static', 'systematic', 'systemic', 'system-worthy', 'tangible', 'tertiary', 'transitional', 'uniform', 'upward-trending', 'user-facing', 'value-added', 'web-enabled', 'well-modulated', 'zeroadministration', 'zerodefect', 'zerotolerance',
+ '24hour', '24/7', '3rdgeneration', '4thgeneration', '5thgeneration', '6thgeneration', 'actuating', 'analyzing', 'asymmetric', 'asynchronous', 'attitude-oriented', 'background', 'bandwidth-monitored', 'bi-directional', 'bifurcated', 'bottom-line', 'clear-thinking', 'client-driven', 'client-server', 'coherent', 'cohesive', 'composite', 'context-sensitive', 'contextually-based', 'content-based', 'dedicated', 'demand-driven', 'didactic', 'directional', 'discrete', 'disintermediate', 'dynamic', 'eco-centric', 'empowering', 'encompassing', 'even-keeled', 'executive', 'explicit', 'exuding', 'fault-tolerant', 'foreground', 'fresh-thinking', 'full-range', 'global', 'grid-enabled', 'heuristic', 'high-level', 'holistic', 'homogeneous', 'human-resource', 'hybrid', 'impactful', 'incremental', 'intangible', 'interactive', 'intermediate', 'leadingedge', 'local', 'logistical', 'maximized', 'methodical', 'mission-critical', 'mobile', 'modular', 'motivating', 'multimedia', 'multi-state', 'multi-tasking', 'national', 'needs-based', 'neutral', 'nextgeneration', 'non-volatile', 'object-oriented', 'optimal', 'optimizing', 'radical', 'real-time', 'reciprocal', 'regional', 'responsive', 'scalable', 'secondary', 'solution-oriented', 'stable', 'static', 'systematic', 'systemic', 'system-worthy', 'tangible', 'tertiary', 'transitional', 'uniform', 'upward-trending', 'user-facing', 'value-added', 'web-enabled', 'well-modulated', 'zeroadministration', 'zerodefect', 'zerotolerance',
],
[
'ability', 'access', 'adapter', 'algorithm', 'alliance', 'analyzer', 'application', 'approach', 'architecture', 'archive', 'artificialintelligence', 'array', 'attitude', 'benchmark', 'budgetarymanagement', 'capability', 'capacity', 'challenge', 'circuit', 'collaboration', 'complexity', 'concept', 'conglomeration', 'contingency', 'core', 'customerloyalty', 'database', 'data-warehouse', 'definition', 'emulation', 'encoding', 'encryption', 'extranet', 'firmware', 'flexibility', 'focusgroup', 'forecast', 'frame', 'framework', 'function', 'functionalities', 'GraphicInterface', 'groupware', 'GraphicalUserInterface', 'hardware', 'help-desk', 'hierarchy', 'hub', 'implementation', 'info-mediaries', 'infrastructure', 'initiative', 'installation', 'instructionset', 'interface', 'internetsolution', 'intranet', 'knowledgeuser', 'knowledgebase', 'localareanetwork', 'leverage', 'matrices', 'matrix', 'methodology', 'middleware', 'migration', 'model', 'moderator', 'monitoring', 'moratorium', 'neural-net', 'openarchitecture', 'opensystem', 'orchestration', 'paradigm', 'parallelism', 'policy', 'portal', 'pricingstructure', 'processimprovement', 'product', 'productivity', 'project', 'projection', 'protocol', 'securedline', 'service-desk', 'software', 'solution', 'standardization', 'strategy', 'structure', 'success', 'superstructure', 'support', 'synergy', 'systemengine', 'task-force', 'throughput', 'time-frame', 'toolset', 'utilisation', 'website', 'workforce',
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/es_ES/Company.php b/api/vendor/fakerphp/faker/src/Faker/Provider/es_ES/Company.php
index 73bd3159b2..5d6dafecc2 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/es_ES/Company.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/es_ES/Company.php
@@ -22,7 +22,7 @@ class Company extends \Faker\Provider\Company
'Adaptive', 'Advanced', 'Ameliorated', 'Assimilated', 'Automated', 'Balanced', 'Business-focused', 'Centralized', 'Cloned', 'Compatible', 'Configurable', 'Cross-group', 'Cross-platform', 'Customer-focused', 'Customizable', 'Decentralized', 'De-engineered', 'Devolved', 'Digitized', 'Distributed', 'Diverse', 'Down-sized', 'Enhanced', 'Enterprise-wide', 'Ergonomic', 'Exclusive', 'Expanded', 'Extended', 'Facetoface', 'Focused', 'Front-line', 'Fully-configurable', 'Function-based', 'Fundamental', 'Future-proofed', 'Grass-roots', 'Horizontal', 'Implemented', 'Innovative', 'Integrated', 'Intuitive', 'Inverse', 'Managed', 'Mandatory', 'Monitored', 'Multi-channelled', 'Multi-lateral', 'Multi-layered', 'Multi-tiered', 'Networked', 'Object-based', 'Open-architected', 'Open-source', 'Operative', 'Optimized', 'Optional', 'Organic', 'Organized', 'Persevering', 'Persistent', 'Phased', 'Polarised', 'Pre-emptive', 'Proactive', 'Profit-focused', 'Profound', 'Programmable', 'Progressive', 'Public-key', 'Quality-focused', 'Reactive', 'Realigned', 'Re-contextualized', 'Re-engineered', 'Reduced', 'Reverse-engineered', 'Right-sized', 'Robust', 'Seamless', 'Secured', 'Self-enabling', 'Sharable', 'Stand-alone', 'Streamlined', 'Switchable', 'Synchronised', 'Synergistic', 'Synergized', 'Team-oriented', 'Total', 'Triple-buffered', 'Universal', 'Up-sized', 'Upgradable', 'User-centric', 'User-friendly', 'Versatile', 'Virtual', 'Visionary', 'Vision-oriented',
],
[
- '24hour', '24/7', '3rdgeneration', '4thgeneration', '5thgeneration', '6thgeneration', 'actuating', 'analyzing', 'assymetric', 'asynchronous', 'attitude-oriented', 'background', 'bandwidth-monitored', 'bi-directional', 'bifurcated', 'bottom-line', 'clear-thinking', 'client-driven', 'client-server', 'coherent', 'cohesive', 'composite', 'context-sensitive', 'contextually-based', 'content-based', 'dedicated', 'demand-driven', 'didactic', 'directional', 'discrete', 'disintermediate', 'dynamic', 'eco-centric', 'empowering', 'encompassing', 'even-keeled', 'executive', 'explicit', 'exuding', 'fault-tolerant', 'foreground', 'fresh-thinking', 'full-range', 'global', 'grid-enabled', 'heuristic', 'high-level', 'holistic', 'homogeneous', 'human-resource', 'hybrid', 'impactful', 'incremental', 'intangible', 'interactive', 'intermediate', 'leadingedge', 'local', 'logistical', 'maximized', 'methodical', 'mission-critical', 'mobile', 'modular', 'motivating', 'multimedia', 'multi-state', 'multi-tasking', 'national', 'needs-based', 'neutral', 'nextgeneration', 'non-volatile', 'object-oriented', 'optimal', 'optimizing', 'radical', 'real-time', 'reciprocal', 'regional', 'responsive', 'scalable', 'secondary', 'solution-oriented', 'stable', 'static', 'systematic', 'systemic', 'system-worthy', 'tangible', 'tertiary', 'transitional', 'uniform', 'upward-trending', 'user-facing', 'value-added', 'web-enabled', 'well-modulated', 'zeroadministration', 'zerodefect', 'zerotolerance',
+ '24hour', '24/7', '3rdgeneration', '4thgeneration', '5thgeneration', '6thgeneration', 'actuating', 'analyzing', 'asymmetric', 'asynchronous', 'attitude-oriented', 'background', 'bandwidth-monitored', 'bi-directional', 'bifurcated', 'bottom-line', 'clear-thinking', 'client-driven', 'client-server', 'coherent', 'cohesive', 'composite', 'context-sensitive', 'contextually-based', 'content-based', 'dedicated', 'demand-driven', 'didactic', 'directional', 'discrete', 'disintermediate', 'dynamic', 'eco-centric', 'empowering', 'encompassing', 'even-keeled', 'executive', 'explicit', 'exuding', 'fault-tolerant', 'foreground', 'fresh-thinking', 'full-range', 'global', 'grid-enabled', 'heuristic', 'high-level', 'holistic', 'homogeneous', 'human-resource', 'hybrid', 'impactful', 'incremental', 'intangible', 'interactive', 'intermediate', 'leadingedge', 'local', 'logistical', 'maximized', 'methodical', 'mission-critical', 'mobile', 'modular', 'motivating', 'multimedia', 'multi-state', 'multi-tasking', 'national', 'needs-based', 'neutral', 'nextgeneration', 'non-volatile', 'object-oriented', 'optimal', 'optimizing', 'radical', 'real-time', 'reciprocal', 'regional', 'responsive', 'scalable', 'secondary', 'solution-oriented', 'stable', 'static', 'systematic', 'systemic', 'system-worthy', 'tangible', 'tertiary', 'transitional', 'uniform', 'upward-trending', 'user-facing', 'value-added', 'web-enabled', 'well-modulated', 'zeroadministration', 'zerodefect', 'zerotolerance',
],
[
'ability', 'access', 'adapter', 'algorithm', 'alliance', 'analyzer', 'application', 'approach', 'architecture', 'archive', 'artificialintelligence', 'array', 'attitude', 'benchmark', 'budgetarymanagement', 'capability', 'capacity', 'challenge', 'circuit', 'collaboration', 'complexity', 'concept', 'conglomeration', 'contingency', 'core', 'customerloyalty', 'database', 'data-warehouse', 'definition', 'emulation', 'encoding', 'encryption', 'extranet', 'firmware', 'flexibility', 'focusgroup', 'forecast', 'frame', 'framework', 'function', 'functionalities', 'GraphicInterface', 'groupware', 'GraphicalUserInterface', 'hardware', 'help-desk', 'hierarchy', 'hub', 'implementation', 'info-mediaries', 'infrastructure', 'initiative', 'installation', 'instructionset', 'interface', 'internetsolution', 'intranet', 'knowledgeuser', 'knowledgebase', 'localareanetwork', 'leverage', 'matrices', 'matrix', 'methodology', 'middleware', 'migration', 'model', 'moderator', 'monitoring', 'moratorium', 'neural-net', 'openarchitecture', 'opensystem', 'orchestration', 'paradigm', 'parallelism', 'policy', 'portal', 'pricingstructure', 'processimprovement', 'product', 'productivity', 'project', 'projection', 'protocol', 'securedline', 'service-desk', 'software', 'solution', 'standardization', 'strategy', 'structure', 'success', 'superstructure', 'support', 'synergy', 'systemengine', 'task-force', 'throughput', 'time-frame', 'toolset', 'utilisation', 'website', 'workforce',
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/es_PE/Company.php b/api/vendor/fakerphp/faker/src/Faker/Provider/es_PE/Company.php
index ff9f50dc11..96a1d13ebd 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/es_PE/Company.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/es_PE/Company.php
@@ -17,7 +17,7 @@ class Company extends \Faker\Provider\Company
'Adaptive', 'Advanced', 'Ameliorated', 'Assimilated', 'Automated', 'Balanced', 'Business-focused', 'Centralized', 'Cloned', 'Compatible', 'Configurable', 'Cross-group', 'Cross-platform', 'Customer-focused', 'Customizable', 'Decentralized', 'De-engineered', 'Devolved', 'Digitized', 'Distributed', 'Diverse', 'Down-sized', 'Enhanced', 'Enterprise-wide', 'Ergonomic', 'Exclusive', 'Expanded', 'Extended', 'Facetoface', 'Focused', 'Front-line', 'Fully-configurable', 'Function-based', 'Fundamental', 'Future-proofed', 'Grass-roots', 'Horizontal', 'Implemented', 'Innovative', 'Integrated', 'Intuitive', 'Inverse', 'Managed', 'Mandatory', 'Monitored', 'Multi-channelled', 'Multi-lateral', 'Multi-layered', 'Multi-tiered', 'Networked', 'Object-based', 'Open-architected', 'Open-source', 'Operative', 'Optimized', 'Optional', 'Organic', 'Organized', 'Persevering', 'Persistent', 'Phased', 'Polarised', 'Pre-emptive', 'Proactive', 'Profit-focused', 'Profound', 'Programmable', 'Progressive', 'Public-key', 'Quality-focused', 'Reactive', 'Realigned', 'Re-contextualized', 'Re-engineered', 'Reduced', 'Reverse-engineered', 'Right-sized', 'Robust', 'Seamless', 'Secured', 'Self-enabling', 'Sharable', 'Stand-alone', 'Streamlined', 'Switchable', 'Synchronised', 'Synergistic', 'Synergized', 'Team-oriented', 'Total', 'Triple-buffered', 'Universal', 'Up-sized', 'Upgradable', 'User-centric', 'User-friendly', 'Versatile', 'Virtual', 'Visionary', 'Vision-oriented',
],
[
- '24hour', '24/7', '3rdgeneration', '4thgeneration', '5thgeneration', '6thgeneration', 'actuating', 'analyzing', 'assymetric', 'asynchronous', 'attitude-oriented', 'background', 'bandwidth-monitored', 'bi-directional', 'bifurcated', 'bottom-line', 'clear-thinking', 'client-driven', 'client-server', 'coherent', 'cohesive', 'composite', 'context-sensitive', 'contextually-based', 'content-based', 'dedicated', 'demand-driven', 'didactic', 'directional', 'discrete', 'disintermediate', 'dynamic', 'eco-centric', 'empowering', 'encompassing', 'even-keeled', 'executive', 'explicit', 'exuding', 'fault-tolerant', 'foreground', 'fresh-thinking', 'full-range', 'global', 'grid-enabled', 'heuristic', 'high-level', 'holistic', 'homogeneous', 'human-resource', 'hybrid', 'impactful', 'incremental', 'intangible', 'interactive', 'intermediate', 'leadingedge', 'local', 'logistical', 'maximized', 'methodical', 'mission-critical', 'mobile', 'modular', 'motivating', 'multimedia', 'multi-state', 'multi-tasking', 'national', 'needs-based', 'neutral', 'nextgeneration', 'non-volatile', 'object-oriented', 'optimal', 'optimizing', 'radical', 'real-time', 'reciprocal', 'regional', 'responsive', 'scalable', 'secondary', 'solution-oriented', 'stable', 'static', 'systematic', 'systemic', 'system-worthy', 'tangible', 'tertiary', 'transitional', 'uniform', 'upward-trending', 'user-facing', 'value-added', 'web-enabled', 'well-modulated', 'zeroadministration', 'zerodefect', 'zerotolerance',
+ '24hour', '24/7', '3rdgeneration', '4thgeneration', '5thgeneration', '6thgeneration', 'actuating', 'analyzing', 'asymmetric', 'asynchronous', 'attitude-oriented', 'background', 'bandwidth-monitored', 'bi-directional', 'bifurcated', 'bottom-line', 'clear-thinking', 'client-driven', 'client-server', 'coherent', 'cohesive', 'composite', 'context-sensitive', 'contextually-based', 'content-based', 'dedicated', 'demand-driven', 'didactic', 'directional', 'discrete', 'disintermediate', 'dynamic', 'eco-centric', 'empowering', 'encompassing', 'even-keeled', 'executive', 'explicit', 'exuding', 'fault-tolerant', 'foreground', 'fresh-thinking', 'full-range', 'global', 'grid-enabled', 'heuristic', 'high-level', 'holistic', 'homogeneous', 'human-resource', 'hybrid', 'impactful', 'incremental', 'intangible', 'interactive', 'intermediate', 'leadingedge', 'local', 'logistical', 'maximized', 'methodical', 'mission-critical', 'mobile', 'modular', 'motivating', 'multimedia', 'multi-state', 'multi-tasking', 'national', 'needs-based', 'neutral', 'nextgeneration', 'non-volatile', 'object-oriented', 'optimal', 'optimizing', 'radical', 'real-time', 'reciprocal', 'regional', 'responsive', 'scalable', 'secondary', 'solution-oriented', 'stable', 'static', 'systematic', 'systemic', 'system-worthy', 'tangible', 'tertiary', 'transitional', 'uniform', 'upward-trending', 'user-facing', 'value-added', 'web-enabled', 'well-modulated', 'zeroadministration', 'zerodefect', 'zerotolerance',
],
[
'ability', 'access', 'adapter', 'algorithm', 'alliance', 'analyzer', 'application', 'approach', 'architecture', 'archive', 'artificialintelligence', 'array', 'attitude', 'benchmark', 'budgetarymanagement', 'capability', 'capacity', 'challenge', 'circuit', 'collaboration', 'complexity', 'concept', 'conglomeration', 'contingency', 'core', 'customerloyalty', 'database', 'data-warehouse', 'definition', 'emulation', 'encoding', 'encryption', 'extranet', 'firmware', 'flexibility', 'focusgroup', 'forecast', 'frame', 'framework', 'function', 'functionalities', 'GraphicInterface', 'groupware', 'GraphicalUserInterface', 'hardware', 'help-desk', 'hierarchy', 'hub', 'implementation', 'info-mediaries', 'infrastructure', 'initiative', 'installation', 'instructionset', 'interface', 'internetsolution', 'intranet', 'knowledgeuser', 'knowledgebase', 'localareanetwork', 'leverage', 'matrices', 'matrix', 'methodology', 'middleware', 'migration', 'model', 'moderator', 'monitoring', 'moratorium', 'neural-net', 'openarchitecture', 'opensystem', 'orchestration', 'paradigm', 'parallelism', 'policy', 'portal', 'pricingstructure', 'processimprovement', 'product', 'productivity', 'project', 'projection', 'protocol', 'securedline', 'service-desk', 'software', 'solution', 'standardization', 'strategy', 'structure', 'success', 'superstructure', 'support', 'synergy', 'systemengine', 'task-force', 'throughput', 'time-frame', 'toolset', 'utilisation', 'website', 'workforce',
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/fi_FI/Person.php b/api/vendor/fakerphp/faker/src/Faker/Provider/fi_FI/Person.php
index 328a44b2c8..2dc652090a 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/fi_FI/Person.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/fi_FI/Person.php
@@ -91,12 +91,11 @@ class Person extends \Faker\Provider\Person
*
* @see http://www.finlex.fi/fi/laki/ajantasa/2010/20100128
*
- * @param \DateTime $birthdate
- * @param string $gender Person::GENDER_MALE || Person::GENDER_FEMALE
+ * @param string $gender Person::GENDER_MALE || Person::GENDER_FEMALE
*
* @return string on format DDMMYYCZZZQ, where DDMMYY is the date of birth, C the century sign, ZZZ the individual number and Q the control character (checksum)
*/
- public function personalIdentityNumber(\DateTime $birthdate = null, $gender = null)
+ public function personalIdentityNumber(?\DateTime $birthdate = null, $gender = null)
{
$checksumCharacters = '0123456789ABCDEFHJKLMNPRSTUVWXY';
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/fr_FR/Address.php b/api/vendor/fakerphp/faker/src/Faker/Provider/fr_FR/Address.php
index 106f648cca..d6dbb76cca 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/fr_FR/Address.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/fr_FR/Address.php
@@ -34,7 +34,11 @@ class Address extends \Faker\Provider\Address
];
protected static $buildingNumber = ['%', '%#', '%#', '%#', '%##'];
- protected static $postcode = ['#####', '## ###'];
+
+ /**
+ * @see https://en.wikipedia.org/wiki/Postal_codes_in_France
+ */
+ protected static $postcode = ['#####'];
protected static $country = [
'Afghanistan', 'Afrique du sud', 'Albanie', 'Algérie', 'Allemagne', 'Andorre', 'Angola', 'Anguilla', 'Antarctique', 'Antigua et Barbuda', 'Antilles néerlandaises', 'Arabie saoudite', 'Argentine', 'Arménie', 'Aruba', 'Australie', 'Autriche', 'Azerbaïdjan', 'Bahamas', 'Bahrain', 'Bangladesh', 'Belgique', 'Belize', 'Benin', 'Bermudes (Les)', 'Bhoutan', 'Biélorussie', 'Bolivie', 'Bosnie-Herzégovine', 'Botswana', 'Bouvet (Îles)', 'Brunei', 'Brésil', 'Bulgarie', 'Burkina Faso', 'Burundi', 'Cambodge', 'Cameroun', 'Canada', 'Cap Vert', 'Cayman (Îles)', 'Chili', 'Chine (Rép. pop.)', 'Christmas (Île)', 'Chypre', 'Cocos (Îles)', 'Colombie', 'Comores', 'Cook (Îles)', 'Corée du Nord', 'Corée, Sud', 'Costa Rica', 'Croatie', 'Cuba', 'Côte d\'Ivoire', 'Danemark', 'Djibouti', 'Dominique', 'Égypte', 'El Salvador', 'Émirats arabes unis', 'Équateur', 'Érythrée', 'Espagne', 'Estonie', 'États-Unis', 'Ethiopie', 'Falkland (Île)', 'Fidji (République des)', 'Finlande', 'France', 'Féroé (Îles)', 'Gabon',
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/fr_FR/PhoneNumber.php b/api/vendor/fakerphp/faker/src/Faker/Provider/fr_FR/PhoneNumber.php
index 69c681d915..22f518d67d 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/fr_FR/PhoneNumber.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/fr_FR/PhoneNumber.php
@@ -13,7 +13,7 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber
'+33 (0)3 ## ## ## ##',
'+33 (0)4 ## ## ## ##',
'+33 (0)5 ## ## ## ##',
- '+33 (0)6 ## ## ## ##',
+ '+33 (0)6 {{phoneNumber06WithSeparator}}',
'+33 (0)7 {{phoneNumber07WithSeparator}}',
'+33 (0)8 {{phoneNumber08WithSeparator}}',
'+33 (0)9 ## ## ## ##',
@@ -23,7 +23,7 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber
'+33 3 ## ## ## ##',
'+33 4 ## ## ## ##',
'+33 5 ## ## ## ##',
- '+33 6 ## ## ## ##',
+ '+33 6 {{phoneNumber06WithSeparator}}',
'+33 7 {{phoneNumber07WithSeparator}}',
'+33 8 {{phoneNumber08WithSeparator}}',
'+33 9 ## ## ## ##',
@@ -33,7 +33,7 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber
'03########',
'04########',
'05########',
- '06########',
+ '06{{phoneNumber06}}',
'07{{phoneNumber07}}',
'08{{phoneNumber08}}',
'09########',
@@ -43,7 +43,7 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber
'03 ## ## ## ##',
'04 ## ## ## ##',
'05 ## ## ## ##',
- '06 ## ## ## ##',
+ '06 {{phoneNumber06WithSeparator}}',
'07 {{phoneNumber07WithSeparator}}',
'08 {{phoneNumber08WithSeparator}}',
'09 ## ## ## ##',
@@ -52,13 +52,13 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber
// Mobile phone numbers start by 06 and 07
// 06 is the most common prefix
protected static $mobileFormats = [
- '+33 (0)6 ## ## ## ##',
- '+33 6 ## ## ## ##',
+ '+33 (0)6 {{phoneNumber06WithSeparator}}',
+ '+33 6 {{phoneNumber06WithSeparator}}',
'+33 (0)7 {{phoneNumber07WithSeparator}}',
'+33 7 {{phoneNumber07WithSeparator}}',
- '06########',
+ '06{{phoneNumber06}}',
'07{{phoneNumber07}}',
- '06 ## ## ## ##',
+ '06 {{phoneNumber06WithSeparator}}',
'07 {{phoneNumber07WithSeparator}}',
];
@@ -73,6 +73,26 @@ class PhoneNumber extends \Faker\Provider\PhoneNumber
'+33#########',
];
+ public function phoneNumber06()
+ {
+ $phoneNumber = $this->phoneNumber06WithSeparator();
+
+ return str_replace(' ', '', $phoneNumber);
+ }
+
+ /**
+ * Only 0601 to 0638, 0640 to 0689, 0695 and 0698 to 0699 are acceptable prefixes with 06
+ *
+ * @see https://www.arcep.fr/la-regulation/grands-dossiers-thematiques-transverses/la-numerotation.html#c8961
+ * @see https://www.itu.int/itu-t/nnp/#/numbering-plans?country=France%C2%A0&code=33
+ */
+ public function phoneNumber06WithSeparator()
+ {
+ $regex = '([0-24-8]\d|3[0-8]|9[589])( \d{2}){3}';
+
+ return static::regexify($regex);
+ }
+
public function phoneNumber07()
{
$phoneNumber = $this->phoneNumber07WithSeparator();
@@ -81,16 +101,16 @@ public function phoneNumber07()
}
/**
- * Only 073 to 079 are acceptable prefixes with 07
+ * Only 0730 to 0789 are acceptable prefixes with 07
*
- * @see http://www.arcep.fr/index.php?id=8146
+ * @see https://www.arcep.fr/la-regulation/grands-dossiers-thematiques-transverses/la-numerotation.html#c8961
+ * @see https://www.itu.int/itu-t/nnp/#/numbering-plans?country=France%C2%A0&code=33
*/
public function phoneNumber07WithSeparator()
{
- $phoneNumber = $this->generator->numberBetween(3, 9);
- $phoneNumber .= $this->numerify('# ## ## ##');
+ $regex = '([3-8]\d)( \d{2}){3}';
- return $phoneNumber;
+ return static::regexify($regex);
}
public function phoneNumber08()
@@ -121,9 +141,9 @@ public function phoneNumber08()
*/
public function phoneNumber08WithSeparator()
{
- $regex = '([012]{1}\d{1}|(9[1-357-9])( \d{2}){3}';
+ $regex = '([012]\d|(9[1-357-9])( \d{2}){3}';
- return $this->regexify($regex);
+ return static::regexify($regex);
}
/**
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/it_IT/Address.php b/api/vendor/fakerphp/faker/src/Faker/Provider/it_IT/Address.php
index b9930ff820..efa9dd5e19 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/it_IT/Address.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/it_IT/Address.php
@@ -12,35 +12,35 @@ class Address extends \Faker\Provider\Address
];
protected static $postcode = ['#####'];
protected static $state = [
- 'Agrigento', 'Alessandria', 'Ancona', 'Aosta', 'Arezzo', 'Ascoli Piceno', 'Asti', 'Avellino', 'Bari', 'Barletta-Andria-Trani', 'Belluno', 'Benevento', 'Bergamo', 'Biella', 'Bologna', 'Bolzano', 'Brescia', 'Brindisi', 'Cagliari', 'Caltanissetta', 'Campobasso', 'Carbonia-Iglesias', 'Caserta', 'Catania', 'Catanzaro', 'Chieti', 'Como', 'Cosenza', 'Cremona', 'Crotone', 'Cuneo', 'Enna', 'Fermo', 'Ferrara', 'Firenze', 'Foggia', 'Forlì-Cesena', 'Frosinone', 'Genova', 'Gorizia', 'Grosseto', 'Imperia', 'Isernia', 'La Spezia', 'L\'Aquila', 'Latina', 'Lecce', 'Lecco', 'Livorno', 'Lodi', 'Lucca', 'Macerata', 'Mantova', 'Massa-Carrara', 'Matera', 'Messina', 'Milano', 'Modena', 'Monza e della Brianza', 'Napoli', 'Novara', 'Nuoro', 'Olbia-Tempio', 'Oristano', 'Padova', 'Palermo', 'Parma', 'Pavia', 'Perugia', 'Pesaro e Urbino', 'Pescara', 'Piacenza', 'Pisa', 'Pistoia', 'Pordenone', 'Potenza', 'Prato', 'Ragusa', 'Ravenna', 'Reggio Calabria', 'Reggio Emilia', 'Rieti', 'Rimini', 'Roma', 'Rovigo', 'Salerno', 'Medio Campidano', 'Sassari', 'Savona', 'Siena', 'Siracusa', 'Sondrio', 'Taranto', 'Teramo', 'Terni', 'Torino', 'Ogliastra', 'Trapani', 'Trento', 'Treviso', 'Trieste', 'Udine', 'Varese', 'Venezia', 'Verbano-Cusio-Ossola', 'Vercelli', 'Verona', 'Vibo Valentia', 'Vicenza', 'Viterbo',
+ 'Agrigento', 'Alessandria', 'Ancona', 'Aosta', 'Arezzo', 'Ascoli Piceno', 'Asti', 'Avellino', 'Bari', 'Barletta-Andria-Trani', 'Belluno', 'Benevento', 'Bergamo', 'Biella', 'Bologna', 'Bolzano', 'Brescia', 'Brindisi', 'Cagliari', 'Caltanissetta', 'Campobasso', 'Caserta', 'Catania', 'Catanzaro', 'Chieti', 'Como', 'Cosenza', 'Cremona', 'Crotone', 'Cuneo', 'Enna', 'Fermo', 'Ferrara', 'Firenze', 'Foggia', 'Forlì-Cesena', 'Frosinone', 'Genova', 'Gorizia', 'Grosseto', 'Imperia', 'Isernia', 'La Spezia', 'L\'Aquila', 'Latina', 'Lecce', 'Lecco', 'Livorno', 'Lodi', 'Lucca', 'Macerata', 'Mantova', 'Massa-Carrara', 'Matera', 'Messina', 'Milano', 'Modena', 'Monza e della Brianza', 'Napoli', 'Novara', 'Nuoro', 'Oristano', 'Padova', 'Palermo', 'Parma', 'Pavia', 'Perugia', 'Pesaro e Urbino', 'Pescara', 'Piacenza', 'Pisa', 'Pistoia', 'Pordenone', 'Potenza', 'Prato', 'Ragusa', 'Ravenna', 'Reggio Calabria', 'Reggio Emilia', 'Rieti', 'Rimini', 'Roma', 'Rovigo', 'Salerno', 'Sassari', 'Savona', 'Siena', 'Siracusa', 'Sondrio', 'Sud Sardegna', 'Taranto', 'Teramo', 'Terni', 'Torino', 'Trapani', 'Trento', 'Treviso', 'Trieste', 'Udine', 'Varese', 'Venezia', 'Verbano-Cusio-Ossola', 'Vercelli', 'Verona', 'Vibo Valentia', 'Vicenza', 'Viterbo',
];
protected static $stateAbbr = [
- 'AG', 'AL', 'AN', 'AO', 'AR', 'AP', 'AT', 'AV', 'BA', 'BT', 'BL', 'BN', 'BG', 'BI', 'BO', 'BZ', 'BS', 'BR', 'CA', 'CL', 'CB', 'CI', 'CE', 'CT', 'CZ', 'CH', 'CO', 'CS', 'CR', 'KR', 'CN', 'EN', 'FM', 'FE', 'FI', 'FG', 'FC', 'FR', 'GE', 'GO', 'GR', 'IM', 'IS', 'SP', 'AQ', 'LT', 'LE', 'LC', 'LI', 'LO', 'LU', 'MC', 'MN', 'MS', 'MT', 'ME', 'MI', 'MO', 'MB', 'NA', 'NO', 'NU', 'OT', 'OR', 'PD', 'PA', 'PR', 'PV', 'PG', 'PU', 'PE', 'PC', 'PI', 'PT', 'PN', 'PZ', 'PO', 'RG', 'RA', 'RC', 'RE', 'RI', 'RN', 'RM', 'RO', 'SA', 'VS', 'SS', 'SV', 'SI', 'SR', 'SO', 'TA', 'TE', 'TR', 'TO', 'OG', 'TP', 'TN', 'TV', 'TS', 'UD', 'VA', 'VE', 'VB', 'VC', 'VR', 'VV', 'VI', 'VT',
+ 'AG', 'AL', 'AN', 'AO', 'AR', 'AP', 'AT', 'AV', 'BA', 'BT', 'BL', 'BN', 'BG', 'BI', 'BO', 'BZ', 'BS', 'BR', 'CA', 'CL', 'CB', 'CE', 'CT', 'CZ', 'CH', 'CO', 'CS', 'CR', 'KR', 'CN', 'EN', 'FM', 'FE', 'FI', 'FG', 'FC', 'FR', 'GE', 'GO', 'GR', 'IM', 'IS', 'SP', 'AQ', 'LT', 'LE', 'LC', 'LI', 'LO', 'LU', 'MC', 'MN', 'MS', 'MT', 'ME', 'MI', 'MO', 'MB', 'NA', 'NO', 'NU', 'OR', 'PD', 'PA', 'PR', 'PV', 'PG', 'PU', 'PE', 'PC', 'PI', 'PT', 'PN', 'PZ', 'PO', 'RG', 'RA', 'RC', 'RE', 'RI', 'RN', 'RM', 'RO', 'SA', 'SS', 'SV', 'SI', 'SR', 'SO', 'SU', 'TA', 'TE', 'TR', 'TO', 'TP', 'TN', 'TV', 'TS', 'UD', 'VA', 'VE', 'VB', 'VC', 'VR', 'VV', 'VI', 'VT',
];
protected static $country = [
- 'Afghanistan', 'Albania', 'Algeria', 'American Samoa', 'Andorra', 'Angola', 'Anguilla', 'Antartide (territori a sud del 60° parallelo)', 'Antigua e Barbuda', 'Argentina', 'Armenia', 'Aruba', 'Australia', 'Austria', 'Azerbaijan',
- 'Bahamas', 'Bahrain', 'Bangladesh', 'Barbados', 'Bielorussia', 'Belgio', 'Belize', 'Benin', 'Bermuda', 'Bhutan', 'Bolivia', 'Bosnia e Herzegovina', 'Botswana', 'Bouvet Island (Bouvetoya)', 'Brasile', 'Territorio dell\'arcipelago indiano', 'Isole Vergini Britanniche', 'Brunei Darussalam', 'Bulgaria', 'Burkina Faso', 'Burundi',
- 'Cambogia', 'Cameroon', 'Canada', 'Capo Verde', 'Isole Cayman', 'Repubblica Centrale Africana', 'Chad', 'Cile', 'Cina', 'Isola di Pasqua', 'Isola di Cocos (Keeling)', 'Colombia', 'Comoros', 'Congo', 'Isole Cook', 'Costa Rica', 'Costa d\'Avorio', 'Croazia', 'Cuba', 'Cipro', 'Repubblica Ceca',
- 'Danimarca', 'Gibuti', 'Repubblica Dominicana',
- 'Equador', 'Egitto', 'El Salvador', 'Guinea Equatoriale', 'Eritrea', 'Estonia', 'Etiopia',
- 'Isole Faroe', 'Isole Falkland (Malvinas)', 'Fiji', 'Finlandia', 'Francia', 'Guyana Francese', 'Polinesia Francese', 'Territori Francesi del sud',
- 'Gabon', 'Gambia', 'Georgia', 'Germania', 'Ghana', 'Gibilterra', 'Grecia', 'Groenlandia', 'Grenada', 'Guadalupa', 'Guam', 'Guatemala', 'Guernsey', 'Guinea', 'Guinea-Bissau', 'Guyana',
- 'Haiti', 'Heard Island and McDonald Islands', 'Città del Vaticano', 'Honduras', 'Hong Kong', 'Ungheria',
- 'Islanda', 'India', 'Indonesia', 'Iran', 'Iraq', 'Irlanda', 'Isola di Man', 'Israele', 'Italia',
- 'Giamaica', 'Giappone', 'Jersey', 'Giordania',
- 'Kazakhstan', 'Kenya', 'Kiribati', 'Korea', 'Kuwait', 'Republicca Kirgiza',
- 'Repubblica del Laos', 'Latvia', 'Libano', 'Lesotho', 'Liberia', 'Libyan Arab Jamahiriya', 'Liechtenstein', 'Lituania', 'Lussemburgo',
- 'Macao', 'Macedonia', 'Madagascar', 'Malawi', 'Malesia', 'Maldive', 'Mali', 'Malta', 'Isole Marshall', 'Martinica', 'Mauritania', 'Mauritius', 'Mayotte', 'Messico', 'Micronesia', 'Moldova', 'Principato di Monaco', 'Mongolia', 'Montenegro', 'Montserrat', 'Marocco', 'Mozambico', 'Myanmar',
- 'Namibia', 'Nauru', 'Nepal', 'Antille Olandesi', 'Olanda', 'Nuova Caledonia', 'Nuova Zelanda', 'Nicaragua', 'Niger', 'Nigeria', 'Niue', 'Isole Norfolk', 'Northern Mariana Islands', 'Norvegia',
- 'Oman',
- 'Pakistan', 'Palau', 'Palestina', 'Panama', 'Papua Nuova Guinea', 'Paraguay', 'Peru', 'Filippine', 'Pitcairn Islands', 'Polonia', 'Portogallo', 'Porto Rico',
+ 'Afghanistan', 'Albania', 'Algeria', 'American Samoa', 'Andorra', 'Angola', 'Anguilla', 'Antartide (territori a sud del 60° parallelo)', 'Antigua e Barbuda', 'Antille Olandesi', 'Arabia Saudita', 'Argentina', 'Armenia', 'Aruba', 'Australia', 'Austria', 'Azerbaijan',
+ 'Bahamas', 'Bahrain', 'Bangladesh', 'Barbados', 'Bielorussia', 'Belgio', 'Belize', 'Benin', 'Bermuda', 'Bhutan', 'Bolivia', 'Bosnia e Herzegovina', 'Botswana', 'Isola Bouvet', 'Brasile', 'Territorio dell\'arcipelago indiano', 'Isole Vergini Britanniche', 'Brunei', 'Bulgaria', 'Burkina Faso', 'Burundi',
+ 'Cambogia', 'Cameroon', 'Canada', 'Capo Verde', 'Isole Cayman', 'Repubblica Centrale Africana', 'Chad', 'Cile', 'Cina', 'Isola di Pasqua', 'Isole Cocos', 'Colombia', 'Comore', 'Congo', 'Isole Cook', 'Costa Rica', 'Costa d\'Avorio', 'Croazia', 'Cuba', 'Cipro', 'Repubblica Ceca',
+ 'Danimarca', 'Repubblica Dominicana',
+ 'Equador', 'Egitto', 'El Salvador', 'Emirati Arabi Uniti', 'Eritrea', 'Estonia', 'Eswatini', 'Etiopia',
+ 'Isole Faroe', 'Isole Falkland', 'Fiji', 'Filippine', 'Finlandia', 'Francia', 'Guyana Francese', 'Polinesia Francese', 'Territori Francesi del Sud',
+ 'Gabon', 'Gambia', 'Georgia', 'Georgia del Sud e Isole Sandwich Australi', 'Germania', 'Ghana', 'Giamaica', 'Giappone', 'Gibilterra', 'Gibuti', 'Giordania', 'Grecia', 'Groenlandia', 'Grenada', 'Guadalupa', 'Guam', 'Guatemala', 'Guernsey', 'Guinea', 'Guinea-Bissau', 'Guinea Equatoriale', 'Guyana',
+ 'Haiti', 'Isole Heard e McDonald', 'Honduras', 'Hong Kong',
+ 'Islanda', 'India', 'Indonesia', 'Iran', 'Iraq', 'Irlanda', 'Israele', 'Italia',
+ 'Isola di Jersey',
+ 'Kazakhstan', 'Kenya', 'Kirghizistan', 'Kiribati', 'Korea', 'Kuwait',
+ 'Repubblica del Laos', 'Latvia', 'Lesotho', 'Libano', 'Liberia', 'Libia', 'Liechtenstein', 'Lituania', 'Lussemburgo',
+ 'Macao', 'Macedonia', 'Madagascar', 'Malawi', 'Malesia', 'Maldive', 'Mali', 'Malta', 'Isola di Man', 'Isole Marianne Settentrionali', 'Isole Marshall', 'Martinica', 'Mauritania', 'Mauritius', 'Mayotte', 'Messico', 'Micronesia', 'Isole Minori esterne degli Stati Uniti d\'America', 'Moldova', 'Principato di Monaco', 'Mongolia', 'Montenegro', 'Montserrat', 'Marocco', 'Mozambico', 'Myanmar',
+ 'Namibia', 'Nauru', 'Nepal', 'Nuova Caledonia', 'Nuova Zelanda', 'Nicaragua', 'Niger', 'Nigeria', 'Niue', 'Isole Norfolk', 'Norvegia',
+ 'Olanda', 'Oman',
+ 'Pakistan', 'Palau', 'Palestina', 'Panama', 'Papua Nuova Guinea', 'Paraguay', 'Peru', 'Isole Pitcairn', 'Polonia', 'Portogallo', 'Porto Rico',
'Qatar',
- 'Reunion', 'Romania', 'Russia', 'Rwanda',
- 'San Bartolomeo', 'Sant\'Elena', 'Saint Kitts and Nevis', 'Saint Lucia', 'Saint Martin', 'Saint Pierre and Miquelon', 'Saint Vincent and the Grenadines', 'Samoa', 'San Marino', 'Sao Tome and Principe', 'Arabia Saudita', 'Senegal', 'Serbia', 'Seychelles', 'Sierra Leone', 'Singapore', 'Slovenia', 'Isole Solomon', 'Somalia', 'Sud Africa', 'Georgia del sud e South Sandwich Islands', 'Spagna', 'Sri Lanka', 'Sudan', 'Suriname', 'Svalbard & Jan Mayen Islands', 'Swaziland', 'Svezia', 'Svizzera', 'Siria',
- 'Taiwan', 'Tajikistan', 'Tanzania', 'Tailandia', 'Timor-Leste', 'Togo', 'Tokelau', 'Tonga', 'Trinidad e Tobago', 'Tunisia', 'Turchia', 'Turkmenistan', 'Isole di Turks and Caicos', 'Tuvalu',
- 'Uganda', 'Ucraina', 'Emirati Arabi Uniti', 'Regno Unito', 'Stati Uniti d\'America', 'United States Minor Outlying Islands', 'Isole Vergini Statunitensi', 'Uruguay', 'Uzbekistan',
- 'Vanuatu', 'Venezuela', 'Vietnam',
- 'Wallis and Futuna', 'Western Sahara',
+ 'Regno Unito', 'Isola della Riunione', 'Romania', 'Russia', 'Rwanda',
+ 'Sahara Occidentale', 'San Bartolomeo', 'Sant\'Elena', 'Saint Kitts e Nevis', 'Saint Lucia', 'Saint Martin', 'Saint-Pierre e Miquelon', 'Saint Vincent e Grenadine', 'Samoa', 'San Marino', 'Sao Tome e Principe', 'Senegal', 'Serbia', 'Seychelles', 'Sierra Leone', 'Singapore', 'Slovenia', 'Isole Solomon', 'Somalia', 'Spagna', 'Sri Lanka', 'Stati Uniti d\'America', 'Sud Africa', 'Sudan', 'Suriname', 'Isole Svalbard e Jan Mayen', 'Svezia', 'Svizzera', 'Siria',
+ 'Taiwan', 'Tajikistan', 'Tanzania', 'Tailandia', 'Timor Leste', 'Togo', 'Tokelau', 'Tonga', 'Trinidad e Tobago', 'Tunisia', 'Turchia', 'Turkmenistan', 'Isole di Turks e Caicos', 'Tuvalu',
+ 'Uganda', 'Ucraina', 'Uruguay', 'Uzbekistan', 'Ungheria',
+ 'Vanuatu', 'Vaticano', 'Venezuela', 'Isole Vergini Statunitensi', 'Vietnam',
+ 'Wallis e Futuna',
'Yemen',
'Zambia', 'Zimbabwe',
];
@@ -64,7 +64,7 @@ class Address extends \Faker\Provider\Address
protected static $secondaryAddressFormats = ['Appartamento ##', 'Piano #'];
/**
- * @example 'East'
+ * @example 'Borgo'
*/
public static function cityPrefix()
{
@@ -72,7 +72,7 @@ public static function cityPrefix()
}
/**
- * @example 'Appt. 350'
+ * @example 'Appartamento 350'
*/
public static function secondaryAddress()
{
@@ -80,7 +80,7 @@ public static function secondaryAddress()
}
/**
- * @example 'California'
+ * @example 'Cagliari'
*/
public static function state()
{
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/it_IT/Person.php b/api/vendor/fakerphp/faker/src/Faker/Provider/it_IT/Person.php
index 9922fd024e..c74052eaec 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/it_IT/Person.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/it_IT/Person.php
@@ -23,41 +23,54 @@ class Person extends \Faker\Provider\Person
];
protected static $firstNameMale = [
- 'Aaron', 'Abramo', 'Adriano', 'Akira', 'Alan', 'Alberto', 'Albino', 'Alessandro', 'Alessio', 'Amedeo', 'Amos', 'Anastasio', 'Anselmo',
- 'Antimo', 'Antonino', 'Antonio', 'Ariel', 'Armando', 'Aroldo', 'Arturo', 'Augusto', 'Battista', 'Bernardo', 'Boris', 'Caio',
- 'Carlo', 'Carmelo', 'Ciro', 'Damiano', 'Danny', 'Dante', 'Davide', 'Davis', 'Demis', 'Dimitri', 'Domingo', 'Dylan',
- 'Edilio', 'Egidio', 'Elio', 'Emanuel', 'Emidio', 'Enrico', 'Enzo', 'Ercole', 'Ermes', 'Ethan', 'Ettore', 'Eusebio',
- 'Fabiano', 'Fabio', 'Ferdinando', 'Fernando', 'Fiorenzo', 'Flavio', 'Folco', 'Fulvio', 'Furio', 'Gabriele', 'Gaetano', 'Gastone',
- 'Gavino', 'Gerlando', 'Germano', 'Giacinto', 'Gianantonio', 'Giancarlo', 'Gianmarco', 'Gianmaria', 'Gioacchino', 'Giordano', 'Giorgio', 'Giuliano',
- 'Giulio', 'Graziano', 'Gregorio', 'Guido', 'Harry', 'Hector', 'Iacopo', 'Ian', 'Ilario', 'Italo', 'Ivano', 'Jack',
- 'Jacopo', 'Jari', 'Jarno', 'Joey', 'Joseph', 'Joshua', 'Kai', 'Karim', 'Kris', 'Lamberto', 'Lauro', 'Lazzaro',
- 'Leonardo', 'Liborio', 'Lino', 'Lorenzo', 'Loris', 'Ludovico', 'Luigi', 'Manfredi', 'Manuele', 'Marco', 'Mariano', 'Marino',
- 'Marvin', 'Marzio', 'Matteo', 'Mattia', 'Mauro', 'Max', 'Michael', 'Mirco', 'Mirko', 'Modesto', 'Moreno', 'Nabil',
- 'Nadir', 'Nathan', 'Nazzareno', 'Nick', 'Nico', 'Noah', 'Noel', 'Omar', 'Oreste', 'Osvaldo', 'Pablo', 'Patrizio',
- 'Pietro', 'Priamo', 'Quirino', 'Raoul', 'Renato', 'Renzo', 'Rocco', 'Rodolfo', 'Romeo', 'Romolo', 'Rudy', 'Sabatino',
- 'Sabino', 'Samuel', 'Sandro', 'Santo', 'Sebastian', 'Sesto', 'Silvano', 'Silverio', 'Sirio', 'Siro', 'Timoteo', 'Timothy',
- 'Tommaso', 'Ubaldo', 'Umberto', 'Vinicio', 'Walter', 'Xavier', 'Yago', 'Alighieri', 'Alighiero', 'Amerigo', 'Arcibaldo', 'Arduino',
- 'Artes', 'Audenico', 'Ausonio', 'Bacchisio', 'Baldassarre', 'Bettino', 'Bortolo', 'Caligola', 'Cecco', 'Cirino', 'Cleros',
- 'Costantino', 'Costanzo', 'Danthon', 'Demian', 'Domiziano', 'Edipo', 'Egisto', 'Eliziario', 'Eriberto', 'Erminio',
- 'Eustachio', 'Evangelista', 'Fiorentino', 'Giacobbe', 'Gianleonardo', 'Gianriccardo', 'Giobbe', 'Ippolito',
- 'Isira', 'Joannes', 'Kociss', 'Laerte', 'Maggiore', 'Muzio', 'Nestore', 'Odino', 'Odone', 'Olo', 'Oretta', 'Orfeo',
- 'Osea', 'Pacifico', 'Pericle', 'Piererminio', 'Pierfrancesco', 'Piersilvio', 'Primo', 'Quarto', 'Quasimodo',
- 'Radames', 'Radio', 'Raniero', 'Rosalino', 'Rosolino', 'Rufo', 'Secondo', 'Tancredi', 'Tazio', 'Terzo', 'Teseo',
- 'Tolomeo', 'Trevis', 'Tristano', 'Ulrico', 'Valdo', 'Zaccaria', 'Dindo', 'Serse',
+ 'Aaron', 'Abramo', 'Adriano', 'Agostino', 'Akira', 'Alan', 'Alberto', 'Albino', 'Aldo', 'Alessandro', 'Alessio',
+ 'Alfonso', 'Alfredo', 'Alighieri', 'Alighiero', 'Amedeo', 'Amerigo', 'Amos', 'Anastasio', 'Andrea', 'Angelo',
+ 'Anselmo', 'Antimo', 'Antonino', 'Antonio', 'Arcibaldo', 'Arduino', 'Ariel', 'Armando', 'Aroldo', 'Artes', 'Arturo',
+ 'Audenico', 'Augusto', 'Ausonio', 'Bacchisio', 'Baldassarre', 'Battista', 'Bernardo', 'Bettino', 'Boris', 'Bortolo',
+ 'Bruno', 'Caio', 'Caligola', 'Carlo', 'Carmelo', 'Carmine', 'Cecco', 'Cesare', 'Cirino', 'Ciro', 'Claudio', 'Cleros',
+ 'Corrado', 'Cosimo', 'Costantino', 'Costanzo', 'Damiano', 'Danilo', 'Danny', 'Dante', 'Danthon', 'Dario', 'David',
+ 'Davide', 'Davis', 'Demian', 'Demis', 'Dimitri', 'Dindo', 'Dino', 'Domenico', 'Domingo', 'Domiziano', 'Donato', 'Dylan',
+ 'Edilio', 'Edipo', 'Egidio', 'Egisto', 'Elio', 'Eliziario', 'Emanuel', 'Emanuele', 'Emidio', 'Emilio', 'Enrico', 'Enzo',
+ 'Ercole', 'Eriberto', 'Ermes', 'Erminio', 'Ernesto', 'Ethan', 'Ettore', 'Eugenio', 'Eusebio', 'Eustachio', 'Evangelista',
+ 'Fabiano', 'Fabio', 'Fabrizio', 'Fausto', 'Federico', 'Felice', 'Ferdinando', 'Fernando', 'Filippo', 'Fiorentino',
+ 'Fiorenzo', 'Flavio', 'Folco', 'Francesco', 'Franco', 'Fulvio', 'Furio', 'Gabriele', 'Gaetano', 'Gastone', 'Gavino',
+ 'Gennaro', 'Gerardo', 'Gerlando', 'Germano', 'Giacinto', 'Giacobbe', 'Giacomo', 'Gian', 'Gianantonio', 'Giancarlo',
+ 'Gianfranco', 'Gianleonardo', 'Gianluca', 'Gianmarco', 'Gianmaria', 'Gianni', 'Gianriccardo', 'Gino', 'Gioacchino', 'Giobbe',
+ 'Giordano', 'Giorgio', 'Giovanni', 'Giuliano', 'Giulio', 'Giuseppe', 'Graziano', 'Gregorio', 'Guido', 'Harry', 'Hector',
+ 'Iacopo', 'Ian', 'Ilario', 'Ippolito', 'Isira', 'Italo', 'Ivano', 'Jack', 'Jacopo', 'Jari', 'Jarno', 'Joannes', 'Joey',
+ 'Joseph', 'Joshua', 'Kai', 'Karim', 'Kociss', 'Kris', 'Laerte', 'Lamberto', 'Lauro', 'Lazzaro', 'Leonardo', 'Liborio',
+ 'Lino', 'Lorenzo', 'Loris', 'Luca', 'Luciano', 'Ludovico', 'Luigi', 'Maggiore', 'Manfredi', 'Manuele', 'Marcello',
+ 'Marco', 'Mariano', 'Marino', 'Mario', 'Marvin', 'Marzio', 'Massimiliano', 'Massimo', 'Matteo', 'Mattia', 'Maurizio',
+ 'Mauro', 'Max', 'Michael', 'Mirco', 'Mirko', 'Modesto', 'Moreno', 'Muzio', 'Nabil', 'Nadir', 'Nathan', 'Nazzareno',
+ 'Nestore', 'Nick', 'Nico', 'Nicola', 'Noah', 'Noel', 'Odino', 'Odone', 'Olo', 'Omar', 'Oreste', 'Oretta', 'Orfeo',
+ 'Osea', 'Osvaldo', 'Pablo', 'Pacifico', 'Paolo', 'Pasquale', 'Patrizio', 'Pericle', 'Piererminio', 'Pierfrancesco',
+ 'Piero', 'Piersilvio', 'Pietro', 'Priamo', 'Primo', 'Quarto', 'Quasimodo', 'Quirino', 'Radames', 'Radio', 'Raffaele',
+ 'Raniero', 'Raoul', 'Renato', 'Renzo', 'Riccardo', 'Roberto', 'Rocco', 'Rodolfo', 'Romano', 'Romeo', 'Romolo',
+ 'Rosalino', 'Rosolino', 'Rudy', 'Rufo', 'Sabatino', 'Sabino', 'Salvatore', 'Samuel', 'Sandro', 'Santo', 'Sebastian',
+ 'Sebastiano', 'Secondo', 'Sergio', 'Serse', 'Sesto', 'Silvano', 'Silverio', 'Silvio', 'Sirio', 'Siro', 'Stefano',
+ 'Tancredi', 'Tazio', 'Terzo', 'Teseo', 'Timoteo', 'Timothy', 'Tolomeo', 'Tommaso', 'Trevis', 'Tristano', 'Ubaldo',
+ 'Ugo', 'Ulrico', 'Umberto', 'Valdo', 'Vincenzo', 'Vinicio', 'Vito', 'Vittorio', 'Walter', 'Xavier', 'Yago', 'Zaccaria',
];
protected static $firstNameFemale = [
- 'Assia', 'Benedetta', 'Bibiana', 'Brigitta', 'Carmela', 'Celeste', 'Cira', 'Claudia', 'Concetta', 'Cristyn', 'Deborah', 'Demi', 'Diana',
- 'Donatella', 'Doriana', 'Edvige', 'Elda', 'Elga', 'Elsa', 'Emilia', 'Enrica', 'Erminia', 'Evita', 'Fatima', 'Felicia',
- 'Filomena', 'Fortunata', 'Gilda', 'Giovanna', 'Giulietta', 'Grazia', 'Helga', 'Ileana', 'Ingrid', 'Ione', 'Irene', 'Isabel',
- 'Ivonne', 'Jelena', 'Kayla', 'Kristel', 'Laura', 'Leone', 'Lia', 'Lidia', 'Lisa', 'Loredana', 'Loretta', 'Luce',
- 'Lucia', 'Lucrezia', 'Luna', 'Maika', 'Marcella', 'Maria', 'Marianita', 'Mariapia', 'Marina', 'Maristella', 'Maruska', 'Matilde',
- 'Mercedes', 'Michele', 'Miriam', 'Miriana', 'Monia', 'Morgana', 'Naomi', 'Neri', 'Nicoletta', 'Ninfa', 'Noemi', 'Nunzia',
- 'Olimpia', 'Ortensia', 'Penelope', 'Prisca', 'Rebecca', 'Rita', 'Rosalba', 'Rosaria', 'Rosita', 'Ruth', 'Samira', 'Sarita',
- 'Sasha', 'Shaira', 'Thea', 'Ursula', 'Vania', 'Vera', 'Vienna', 'Artemide', 'Cassiopea', 'Cesidia', 'Clea', 'Cleopatra',
- 'Clodovea', 'Cosetta', 'Damiana', 'Danuta', 'Diamante', 'Eufemia', 'Flaviana', 'Gelsomina', 'Genziana', 'Giacinta', 'Guendalina',
- 'Jole', 'Mariagiulia', 'Marieva', 'Mietta', 'Nayade', 'Piccarda', 'Selvaggia', 'Sibilla', 'Soriana', 'Sue ellen', 'Tosca', 'Violante',
- 'Vitalba', 'Zelida',
+ 'Adriana', 'Alessandra', 'Andrea', 'Angela', 'Angelina', 'Anna', 'Annalisa', 'Annamaria', 'Annunziata', 'Antonella',
+ 'Antonia', 'Antonietta', 'Antonina', 'Artemide', 'Asia', 'Assia', 'Assunta', 'Barbara', 'Benedetta', 'Bibiana', 'Brigitta',
+ 'Bruna', 'Carla', 'Carmela', 'Cassiopea', 'Caterina', 'Celeste', 'Cesidia', 'Chiara', 'Cinzia', 'Cira', 'Clara', 'Claudia',
+ 'Clea', 'Cleopatra', 'Clodovea', 'Concetta', 'Cosetta', 'Cristina', 'Cristyn', 'Damiana', 'Daniela', 'Danuta', 'Deborah',
+ 'Demi', 'Diamante', 'Diana', 'Domenica', 'Donatella', 'Doriana', 'Edvige', 'Elda', 'Elena', 'Eleonora', 'Elga', 'Elisa',
+ 'Elisabetta', 'Elsa', 'Emanuela', 'Emilia', 'Enrica', 'Erminia', 'Eufemia', 'Evita', 'Fatima', 'Federica', 'Felicia',
+ 'Filomena', 'Flaviana', 'Fortunata', 'Franca', 'Francesca', 'Gabriella', 'Gelsomina', 'Genziana', 'Giacinta', 'Gilda',
+ 'Giovanna', 'Giuliana', 'Giulietta', 'Giuseppa', 'Giuseppina', 'Grazia', 'Graziella', 'Guendalina', 'Helga', 'Ida', 'Ileana',
+ 'Ingrid', 'Ione', 'Irene', 'Isabel', 'Isabella', 'Ivana', 'Ivonne', 'Jelena', 'Jole', 'Kayla', 'Kristel', 'Laura', 'Leone',
+ 'Lia', 'Lidia', 'Liliana', 'Lina', 'Lisa', 'Loredana', 'Loretta', 'Luce', 'Lucia', 'Luciana', 'Lucrezia', 'Luisa', 'Luna',
+ 'Maddalena', 'Maika', 'Manuela', 'Marcella', 'Margherita', 'Maria', 'Mariagiulia', 'Marianita', 'Marianna', 'Mariapia',
+ 'Marieva', 'Marina', 'Marisa', 'Maristella', 'Marta', 'Maruska', 'Matilde', 'Mercedes', 'Michela', 'Michele', 'Michelle',
+ 'Mietta', 'Mirella', 'Miriam', 'Miriana', 'Monia', 'Monica', 'Morgana', 'Nadia', 'Naomi', 'Nayade', 'Neri', 'Nicoletta',
+ 'Ninfa', 'Noemi', 'Nunzia', 'Olimpia', 'Ortensia', 'Paola', 'Patrizia', 'Penelope', 'Piccarda', 'Pierina', 'Prisca',
+ 'Raffaella', 'Rebecca', 'Renata', 'Rita', 'Roberta', 'Rosa', 'Rosalba', 'Rosalia', 'Rosanna', 'Rosaria', 'Rosita',
+ 'Ruth', 'Sabrina', 'Samira', 'Sandra', 'Sara', 'Sarah', 'Sarita', 'Sasha', 'Selvaggia', 'Shaira', 'Sibilla', 'Silvana',
+ 'Silvia', 'Simona', 'Sonia', 'Soriana', 'Stefania', 'Stella', 'Sue ellen', 'Teresa', 'Thea', 'Tiziana', 'Tosca',
+ 'Ursula', 'Valentina', 'Vania', 'Vera', 'Veronica', 'Vienna', 'Vincenza', 'Violante', 'Vitalba', 'Vittoria', 'Zelida',
];
protected static $lastName = [
@@ -69,7 +82,7 @@ class Person extends \Faker\Provider\Person
'Rizzi', 'Monti', 'Cattaneo', 'Morelli', 'Amato', 'Silvestri', 'Mazza', 'Testa', 'Grassi', 'Pellegrino', 'Carbone',
'Giuliani', 'Benedetti', 'Barone', 'Rossetti', 'Caputo', 'Montanari', 'Guerra', 'Palmieri', 'Bernardi', 'Martino', 'Fiore',
'De rosa', 'Ferretti', 'Bellini', 'Basile', 'Riva', 'Donati', 'Piras', 'Vitali', 'Battaglia', 'Sartori', 'Neri', 'Costantini',
- 'Milani', 'Pagano', 'Ruggiero', 'Sorrentino', 'D\'amico', 'Orlando', 'Damico', 'Negri',
+ 'Milani', 'Pagano', 'Ruggiero', 'Sorrentino', 'D\'amico', 'Orlando', 'Damico', 'Negri', 'Verdi',
];
protected static $titleMale = ['Sig.', 'Dott.', 'Dr.', 'Ing.'];
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/ja_JP/Text.php b/api/vendor/fakerphp/faker/src/Faker/Provider/ja_JP/Text.php
index 55bcc62972..9cb9a71ba4 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/ja_JP/Text.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/ja_JP/Text.php
@@ -628,10 +628,12 @@ protected static function appendEnd($text)
$chars = static::split($text);
$last = end($chars);
}
+
// if the last char is a not-valid-end punctuation, remove it
if (in_array($last, static::$notEndPunct, false)) {
$text = preg_replace('/.$/u', '', $text);
}
+
// if the last char is not a valid punctuation, append a default one.
return in_array($last, static::$endPunct, false) ? $text : $text . '。';
}
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/kk_KZ/Company.php b/api/vendor/fakerphp/faker/src/Faker/Provider/kk_KZ/Company.php
index 4663a748dd..2ba58b94c8 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/kk_KZ/Company.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/kk_KZ/Company.php
@@ -54,11 +54,9 @@ public static function companyNameSuffix()
*
* @see http://egov.kz/wps/portal/Content?contentPath=%2Fegovcontent%2Fbus_business%2Ffor_businessmen%2Farticle%2Fbusiness_identification_number&lang=en
*
- * @param \DateTime $registrationDate
- *
* @return string 12 digits, like 150140000019
*/
- public static function businessIdentificationNumber(\DateTime $registrationDate = null)
+ public static function businessIdentificationNumber(?\DateTime $registrationDate = null)
{
if (!$registrationDate) {
$registrationDate = \Faker\Provider\DateTime::dateTimeThisYear();
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/kk_KZ/Person.php b/api/vendor/fakerphp/faker/src/Faker/Provider/kk_KZ/Person.php
index 61852a2143..454ca1e5e6 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/kk_KZ/Person.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/kk_KZ/Person.php
@@ -207,12 +207,11 @@ private static function getCenturyByYear($year)
* @see http://egov.kz/wps/portal/Content?contentPath=%2Fegovcontent%2Fcitizen_migration%2Fpassport_id_card%2Farticle%2Fiin_info&lang=en
* @see https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%B4%D0%B8%D0%B2%D0%B8%D0%B4%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80
*
- * @param \DateTime $birthDate
- * @param int $gender
+ * @param int $gender
*
* @return string 12 digits, like 780322300455
*/
- public static function individualIdentificationNumber(\DateTime $birthDate = null, $gender = self::GENDER_MALE)
+ public static function individualIdentificationNumber(?\DateTime $birthDate = null, $gender = self::GENDER_MALE)
{
if (!$birthDate) {
$birthDate = DateTime::dateTimeBetween();
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/lt_LT/Person.php b/api/vendor/fakerphp/faker/src/Faker/Provider/lt_LT/Person.php
index c448ab814f..0908f8089c 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/lt_LT/Person.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/lt_LT/Person.php
@@ -325,13 +325,12 @@ public function passportNumber()
* @see https://en.wikipedia.org/wiki/National_identification_number#Lithuania
* @see https://lt.wikipedia.org/wiki/Asmens_kodas
*
- * @param string $gender [male|female]
- * @param \DateTime $birthdate
- * @param string $randomNumber three integers
+ * @param string $gender [male|female]
+ * @param string $randomNumber three integers
*
* @return string on format XXXXXXXXXXX
*/
- public function personalIdentityNumber($gender = 'male', \DateTime $birthdate = null, $randomNumber = '')
+ public function personalIdentityNumber($gender = 'male', ?\DateTime $birthdate = null, $randomNumber = '')
{
if (!$birthdate) {
$birthdate = \Faker\Provider\DateTime::dateTimeThisCentury();
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/lv_LV/Address.php b/api/vendor/fakerphp/faker/src/Faker/Provider/lv_LV/Address.php
index fc8db5c196..0bddcc53b9 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/lv_LV/Address.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/lv_LV/Address.php
@@ -12,7 +12,7 @@ class Address extends \Faker\Provider\Address
];
protected static $buildingNumber = ['%#'];
- protected static $postcode = ['LV ####'];
+ protected static $postcode = ['LV-####'];
/**
* @see https://lv.wikipedia.org/wiki/Suver%C4%93no_valstu_uzskait%C4%ABjums
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/lv_LV/Person.php b/api/vendor/fakerphp/faker/src/Faker/Provider/lv_LV/Person.php
index d251f891a6..f05b450710 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/lv_LV/Person.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/lv_LV/Person.php
@@ -2,7 +2,6 @@
namespace Faker\Provider\lv_LV;
-use Faker\Calculator\Luhn;
use Faker\Provider\DateTime;
class Person extends \Faker\Provider\Person
@@ -135,21 +134,40 @@ public function passportNumber()
*
* @see https://en.wikipedia.org/wiki/National_identification_number#Latvia
*
- * @param \DateTime $birthdate
- *
* @return string on format XXXXXX-XXXXX
*/
- public function personalIdentityNumber(\DateTime $birthdate = null)
+ public function personalIdentityNumber(?\DateTime $birthdate = null)
{
if (!$birthdate) {
$birthdate = DateTime::dateTimeThisCentury();
}
+ $year = $birthdate->format('Y');
+
+ if ($year >= 2000 && $year <= 2099) {
+ $century = 2;
+ } elseif ($year >= 1900 && $year <= 1999) {
+ $century = 1;
+ } else {
+ $century = 0;
+ }
+
$datePart = $birthdate->format('dmy');
- $randomDigits = (string) static::numerify('####');
+ $serialNumber = static::numerify('###');
+
+ $partialNumberSplit = str_split($datePart . $century . $serialNumber);
+
+ $idDigitValidator = [1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
+ $total = 0;
+
+ foreach ($partialNumberSplit as $key => $digit) {
+ if (isset($idDigitValidator[$key])) {
+ $total += $idDigitValidator[$key] * (int) $digit;
+ }
+ }
- $checksum = Luhn::computeCheckDigit($datePart . $randomDigits);
+ $checksumDigit = (1101 - $total) % 11 % 10;
- return $datePart . '-' . $randomDigits . $checksum;
+ return $datePart . '-' . $century . $serialNumber . $checksumDigit;
}
}
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/ms_MY/Person.php b/api/vendor/fakerphp/faker/src/Faker/Provider/ms_MY/Person.php
index 1cd011bf9f..d685715d8f 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/ms_MY/Person.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/ms_MY/Person.php
@@ -792,6 +792,7 @@ public static function myKadNumber($gender = null, $hyphen = false)
// gender digit. Odd = MALE, Even = FEMALE
$g = self::numberBetween(0, 9);
+
//Credit: https://gist.github.com/mauris/3629548
if ($gender === static::GENDER_MALE) {
$g = $g | 1;
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/nb_NO/Person.php b/api/vendor/fakerphp/faker/src/Faker/Provider/nb_NO/Person.php
index dff5d2dd45..e337841753 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/nb_NO/Person.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/nb_NO/Person.php
@@ -134,7 +134,7 @@ class Person extends \Faker\Provider\Person
'Abdirahim', 'Abdirahman', 'Abdirashid', 'Abdirizak', 'Abdul', 'Abdulahi', 'Abdulkadir', 'Abdullah',
'Abdullahi', 'Abdulqadir', 'Abdurahman', 'Abed', 'Abel', 'Abid', 'Abraham', 'Absalon', 'Abu', 'Abubakar',
'Adam', 'Adan', 'Adeel', 'Adelheid', 'Adelsten', 'Adem', 'Aden', 'Adham', 'Adi', 'Adil', 'Adis', 'Adler',
- 'Admir', 'Adnan', 'Adolf', 'Adrian', 'Afanasi', 'Afrim', 'Afshin', 'Agim', 'Agmund', 'Agnar', 'Agvald', 'Ahmad',
+ 'Admir', 'Adnan', 'Adrian', 'Afanasi', 'Afrim', 'Afshin', 'Agim', 'Agmund', 'Agnar', 'Agvald', 'Ahmad',
'Ahmed', 'Aiden', 'Ailo', 'Aimar', 'Aime', 'Ajdin', 'Ajmal', 'Akam', 'Akbar', 'Akram', 'Aksel', 'Alain', 'Alan',
'Alban', 'Albert', 'Alberto', 'Albin', 'Albrecht', 'Alejandro', 'Aleksander', 'Alen', 'Alessandro', 'Alex',
'Alexander', 'Alexsander', 'Alf', 'Alfred', 'Algirdas', 'Algot', 'Ali', 'Allan', 'Almar', 'Almas', 'Almaz',
@@ -288,12 +288,11 @@ class Person extends \Faker\Provider\Person
*
* @see https://no.wikipedia.org/wiki/Personnummer
*
- * @param \DateTime $birthdate
- * @param string $gender Person::GENDER_MALE || Person::GENDER_FEMALE
+ * @param string $gender Person::GENDER_MALE || Person::GENDER_FEMALE
*
* @return string on format DDMMYY#####
*/
- public function personalIdentityNumber(\DateTime $birthdate = null, $gender = null)
+ public function personalIdentityNumber(?\DateTime $birthdate = null, $gender = null)
{
if (!$birthdate) {
$birthdate = \Faker\Provider\DateTime::dateTimeThisCentury();
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/nl_BE/Person.php b/api/vendor/fakerphp/faker/src/Faker/Provider/nl_BE/Person.php
index f4a60f96b4..55d6f18eaa 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/nl_BE/Person.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/nl_BE/Person.php
@@ -73,17 +73,17 @@ class Person extends \Faker\Provider\Person
];
/**
- * Belgian Rijksregister numbers are used to identify each citizen,
- * it consists of three parts, the person's day of birth, in the
- * format 'ymd', followed by a number between 1 and 997, odd for
- * males, even for females. The last part is used to check if it's
- * a valid number.
+ * Belgian Rijksregister numbers are used to identify each citizen,
+ * it consists of three parts, the person's day of birth, in the
+ * format 'ymd', followed by a number between 1 and 997, odd for
+ * males, even for females. The last part is used to check if it's
+ * a valid number.
*
* @see https://nl.wikipedia.org/wiki/Rijksregisternummer
*
- * @param string|null $gender 'male', 'female' or null for any
+ * @param string|null $gender 'male', 'female' or null for any
*
- * @return string
+ * @return string
*/
public static function rrn($gender = null)
{
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/pl_PL/Address.php b/api/vendor/fakerphp/faker/src/Faker/Provider/pl_PL/Address.php
index ca42cb8c31..a7b01bbb1b 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/pl_PL/Address.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/pl_PL/Address.php
@@ -99,101 +99,97 @@ class Address extends \Faker\Provider\Address
* @see http://www.poczta-polska.pl/
*/
protected static $street = [
- '1 Maja', '3 Maja', '11 Listopada', 'Agrestowa', 'Akacjowa', 'Andersa Władysława', 'Armii Krajowej',
- 'Asnyka Adama', 'Astrów', 'Azaliowa', 'Baczyńskiego Krzysztofa Kamila', 'Bałtycka',
- 'Barlickiego Norberta', 'Batalionów Chłopskich', 'Batorego Stefana', 'Bema Józefa',
- 'Bema Józefa', 'Beskidzka', 'Białostocka', 'Bielska', 'Bieszczadzka', 'Błękitna',
- 'Boczna', 'Bogusławskiego Wojciecha', 'Bohaterów Westerplatte', 'Bolesława Chrobrego',
- 'Bolesława Krzywoustego', 'Borowa', 'Botaniczna', 'Bracka', 'Bratków', 'Broniewskiego Władysława',
- 'Brzechwy Jana', 'Brzoskwiniowa', 'Brzozowa', 'Budowlanych', 'Bukowa', 'Bursztynowa',
- 'Bydgoska', 'Bytomska', 'Cedrowa', 'Cegielniana', 'Ceglana', 'Chabrowa', 'Chełmońskiego Józefa',
- 'Chłodna', 'Chłopska', 'Chmielna', 'Chopina Fryderyka', 'Chorzowska', 'Chrobrego Bolesława',
- 'Ciasna', 'Cicha', 'Cieszyńska', 'Cisowa', 'Cmentarna', 'Curie-Skłodowskiej Marii',
- 'Czarnieckiego Stefana', 'Czereśniowa', 'Częstochowska', 'Czwartaków', 'Daleka', 'Daszyńskiego Ignacego',
- 'Dąbrowskiego Jana Henryka', 'Dąbrowskiego Jarosława', 'Dąbrowskiego Jarosława',
- 'Dąbrowskiej Marii', 'Dąbrowszczaków', 'Dąbrówki', 'Dębowa', 'Diamentowa', 'Długa',
- 'Długosza Jana', 'Dmowskiego Romana', 'Dobra', 'Dolna', 'Dożynkowa', 'Drzymały Michała',
- 'Dubois Stanisława', 'Dworcowa', 'Dworska', 'Działkowa', 'Energetyków', 'Fabryczna',
- 'Fałata Juliana', 'Fiołkowa', 'Folwarczna', 'Franciszkańska', 'Francuska', 'Fredry Aleksandra',
- 'Gagarina Jurija', 'Gajowa', 'Gałczyńskiego Konstantego Ildefonsa', 'Gdańska', 'Gdyńska',
- 'Gliwicka', 'Głogowa', 'Głogowska', 'Głowackiego Bartosza', 'Główna', 'Gminna', 'Gnieźnieńska',
- 'Gojawiczyńskiej Poli', 'Gołębia', 'Gościnna', 'Górna', 'Górnicza', 'Górnośląska',
- 'Grabowa', 'Graniczna', 'Granitowa', 'Grochowska', 'Grodzka', 'Grota-Roweckiego Stefana',
- 'Grottgera Artura', 'Grójecka', 'Grunwaldzka', 'Grzybowa', 'Hallera Józefa', 'Handlowa',
- 'Harcerska', 'Hetmańska', 'Hoża', 'Husarska', 'Hutnicza', 'Inżynierska', 'Iwaszkiewicza Jarosława',
- 'Jagiellońska', 'Jagiellońskie Os.', 'Jagiełły Władysława', 'Jagodowa', 'Jałowcowa',
- 'Jana Pawła II', 'Jana Pawła II Al.', 'Jaracza Stefana', 'Jarzębinowa', 'Jaskółcza',
- 'Jasna', 'Jastrzębia', 'Jaśminowa', 'Jaworowa', 'Jerozolimskie Al.', 'Jesienna', 'Jesionowa',
- 'Jeżynowa', 'Jodłowa', 'Kalinowa', 'Kaliska', 'Kamienna', 'Karłowicza Mieczysława',
- 'Karpacka', 'Kartuska', 'Kasprowicza Jana', 'Kasprzaka Marcina', 'Kasztanowa', 'Kaszubska',
- 'Katowicka', 'Kazimierza Wielkiego', 'Kielecka', 'Kilińskiego Jana', 'Kleeberga Franciszka',
- 'Klonowa', 'Kłosowa', 'Kochanowskiego Jana', 'Kolberga Oskara', 'Kolejowa', 'Kolorowa',
- 'Kołłątaja Hugo', 'Kołłątaja Hugona', 'Kołobrzeska', 'Konarskiego Stanisława',
- 'Konopnickiej Marii', 'Konstytucji 3 Maja', 'Konwaliowa', 'Kopalniana', 'Kopernika Mikołaja',
- 'Koralowa', 'Korczaka Janusza', 'Korfantego Wojciecha', 'Kosmonautów', 'Kossaka Juliusza',
- 'Kosynierów', 'Koszalińska', 'Koszykowa', 'Kościelna', 'Kościuszki Tadeusza', 'Kościuszki Tadeusza Pl.',
- 'Kowalska', 'Krakowska', 'Krańcowa', 'Krasickiego Ignacego', 'Krasińskiego Zygmunta',
- 'Kraszewskiego Józefa Ignacego', 'Kresowa', 'Kręta', 'Królewska', 'Królowej Jadwigi',
- 'Krótka', 'Krucza', 'Kruczkowskiego Leona', 'Krzywa', 'Księżycowa', 'Kujawska', 'Kusocińskiego Janusza',
- 'Kwiatkowskiego Eugeniusza', 'Kwiatowa', 'Lawendowa', 'Lazurowa', 'Lechicka', 'Legionów',
- 'Legnicka', 'Lelewela Joachima', 'Leszczynowa', 'Leśmiana Bolesława', 'Leśna', 'Letnia',
- 'Ligonia Juliusza', 'Liliowa', 'Limanowskiego Bolesława', 'Lipowa', 'Lisia', 'Litewska',
- 'Lompy Józefa', 'Lotnicza', 'Lotników', 'Lubelska', 'Ludowa', 'Lwowska', 'Łabędzia',
- 'Łagiewnicka', 'Łanowa', 'Łączna', 'Łąkowa', 'Łokietka Władysława', 'Łomżyńska',
- 'Łowicka', 'Łódzka', 'Łukasiewicza Ignacego', 'Łużycka', 'Maczka Stanisława',
- 'Magazynowa', 'Majowa', 'Makowa', 'Makuszyńskiego Kornela', 'Malczewskiego Jacka', 'Malinowa',
- 'Mała', 'Małachowskiego Stanisława', 'Małopolska', 'Marszałkowska', 'Matejki Jana',
- 'Mazowiecka', 'Mazurska', 'Miarki Karola', 'Mickiewicza Adama', 'Miedziana', 'Mieszka I',
- 'Miła', 'Miodowa', 'Młynarska', 'Młyńska', 'Modlińska', 'Modra', 'Modrzejewskiej Heleny',
- 'Modrzewiowa', 'Mokra', 'Moniuszki Stanisława', 'Morcinka Gustawa', 'Morelowa', 'Morska',
- 'Mostowa', 'Myśliwska', 'Nadbrzeżna', 'Nadrzeczna', 'Nałkowskiej Zofii', 'Narutowicza Gabriela',
- 'Niecała', 'Niedziałkowskiego Mieczysława', 'Niemcewicza Juliana Ursyna', 'Niepodległości',
- 'Niepodległości Al.', 'Niska', 'Norwida Cypriana Kamila', 'Nowa', 'Nowowiejska', 'Nowowiejskiego Feliksa',
+ '1 Maja', '3 Maja', '11 Listopada', 'Agrestowa', 'Akacjowa', 'Andersa', 'Armii Krajowej',
+ 'Asnyka', 'Astrów', 'Azaliowa', 'Baczyńskiego', 'Bałtycka', 'Barlickiego', 'Batalionów Chłopskich',
+ 'Batorego', 'Bema', 'Beskidzka', 'Białostocka', 'Bielska', 'Bieszczadzka', 'Błękitna',
+ 'Boczna', 'Bogusławskiego', 'Bohaterów Westerplatte', 'Bolesława Chrobrego',
+ 'Bolesława Krzywoustego', 'Borowa', 'Botaniczna', 'Bracka', 'Bratków', 'Broniewskiego',
+ 'Brzechwy', 'Brzoskwiniowa', 'Brzozowa', 'Budowlanych', 'Bukowa', 'Bursztynowa',
+ 'Bydgoska', 'Bytomska', 'Cedrowa', 'Cegielniana', 'Ceglana', 'Chabrowa', 'Chełmońskiego',
+ 'Chłodna', 'Chłopska', 'Chmielna', 'Chopina Fryderyka', 'Chorzowska',
+ 'Ciasna', 'Cicha', 'Cieszyńska', 'Cisowa', 'Cmentarna', 'Curie-Skłodowskiej',
+ 'Czarnieckiego', 'Czereśniowa', 'Częstochowska', 'Czwartaków', 'Daleka', 'Daszyńskiego',
+ 'Dąbrowskiego', 'Dąbrowskiej', 'Dąbrowszczaków', 'Dąbrówki', 'Dębowa', 'Diamentowa', 'Długa',
+ 'Długosza', 'Dmowskiego', 'Dobra', 'Dolna', 'Dożynkowa', 'Drzymały',
+ 'Dworcowa', 'Dworska', 'Działkowa', 'Energetyków', 'Fabryczna',
+ 'Fałata', 'Fiołkowa', 'Folwarczna', 'Franciszkańska', 'Francuska', 'Fredry',
+ 'Gagarina', 'Gajowa', 'Gałczyńskiego', 'Gdańska', 'Gdyńska',
+ 'Gliwicka', 'Głogowa', 'Głogowska', 'Głowackiego', 'Główna', 'Gminna', 'Gnieźnieńska',
+ 'Gojawiczyńskiej', 'Gołębia', 'Gościnna', 'Górna', 'Górnicza', 'Górnośląska',
+ 'Grabowa', 'Graniczna', 'Granitowa', 'Grochowska', 'Grodzka', 'Grota-Roweckiego',
+ 'Grottgera', 'Grójecka', 'Grunwaldzka', 'Grzybowa', 'Hallera', 'Handlowa',
+ 'Harcerska', 'Hetmańska', 'Hoża', 'Husarska', 'Hutnicza', 'Inżynierska', 'Iwaszkiewicza',
+ 'Jagiellońska', 'Os. Jagiellońskie', 'Jagiełły', 'Jagodowa', 'Jałowcowa',
+ 'Jana Pawła II', 'Al. Jana Pawła II', 'Jaracza', 'Jarzębinowa', 'Jaskółcza',
+ 'Jasna', 'Jastrzębia', 'Jaśminowa', 'Jaworowa', 'Al. Jerozolimskie', 'Jesienna', 'Jesionowa',
+ 'Jeżynowa', 'Jodłowa', 'Kalinowa', 'Kaliska', 'Kamienna', 'Karłowicza',
+ 'Karpacka', 'Kartuska', 'Kasprowicza', 'Kasprzaka Marcina', 'Kasztanowa', 'Kaszubska',
+ 'Katowicka', 'Kazimierza Wielkiego', 'Kielecka', 'Kilińskiego', 'Kleeberga',
+ 'Klonowa', 'Kłosowa', 'Kochanowskiego', 'Kolberga', 'Kolejowa', 'Kolorowa',
+ 'Kołłątaja', 'Kołobrzeska', 'Konarskiego',
+ 'Konopnickiej', 'Konstytucji 3 Maja', 'Konwaliowa', 'Kopalniana', 'Kopernika',
+ 'Koralowa', 'Korczaka', 'Korfantego', 'Kosmonautów', 'Kossaka',
+ 'Kosynierów', 'Koszalińska', 'Koszykowa', 'Kościelna', 'Kościuszki', 'Pl. Kościuszki',
+ 'Kowalska', 'Krakowska', 'Krańcowa', 'Krasickiego', 'Krasińskiego',
+ 'Kraszewskiego', 'Kresowa', 'Kręta', 'Królewska', 'Królowej Jadwigi',
+ 'Krótka', 'Krucza', 'Kruczkowskiego', 'Krzywa', 'Księżycowa', 'Kujawska', 'Kusocińskiego',
+ 'Kwiatkowskiego', 'Kwiatowa', 'Lawendowa', 'Lazurowa', 'Lechicka', 'Legionów',
+ 'Legnicka', 'Lelewela', 'Leszczynowa', 'Leśmiana', 'Leśna', 'Letnia',
+ 'Ligonia', 'Liliowa', 'Limanowskiego', 'Lipowa', 'Lisia', 'Litewska',
+ 'Lompy', 'Lotnicza', 'Lotników', 'Lubelska', 'Ludowa', 'Lwowska', 'Łabędzia',
+ 'Łagiewnicka', 'Łanowa', 'Łączna', 'Łąkowa', 'Łokietka', 'Łomżyńska',
+ 'Łowicka', 'Łódzka', 'Łukasiewicza', 'Łużycka', 'Maczka',
+ 'Magazynowa', 'Majowa', 'Makowa', 'Makuszyńskiego', 'Malczewskiego', 'Malinowa',
+ 'Mała', 'Małachowskiego', 'Małopolska', 'Marszałkowska', 'Matejki',
+ 'Mazowiecka', 'Mazurska', 'Miarki', 'Mickiewicza', 'Miedziana', 'Mieszka I',
+ 'Miła', 'Miodowa', 'Młynarska', 'Młyńska', 'Modlińska', 'Modra', 'Modrzejewskiej',
+ 'Modrzewiowa', 'Mokra', 'Moniuszki', 'Morcinka', 'Morelowa', 'Morska',
+ 'Mostowa', 'Myśliwska', 'Nadbrzeżna', 'Nadrzeczna', 'Nałkowskiej', 'Narutowicza',
+ 'Niecała', 'Niedziałkowskiego', 'Niemcewicza', 'Niepodległości',
+ 'Al. Niepodległości', 'Niska', 'Norwida', 'Nowa', 'Nowowiejska', 'Nowowiejskiego',
'Nowy Świat', 'Obrońców Westerplatte', 'Odrodzenia', 'Odrzańska', 'Ogrodowa', 'Okopowa',
- 'Okólna', 'Okrężna', 'Okrzei Stefana', 'Okulickiego Leopolda', 'Olchowa', 'Olimpijska',
- 'Olsztyńska', 'Opolska', 'Orkana Władysława', 'Orla', 'Orzechowa', 'Orzeszkowej Elizy',
- 'Osiedlowa', 'Oświęcimska', 'Owocowa', 'Paderewskiego Ignacego', 'Parkowa', 'Partyzantów',
- 'Patriotów', 'Pawia', 'Perłowa', 'Piaskowa', 'Piastowska', 'Piastowskie Os.', 'Piekarska',
- 'Piękna', 'Piłsudskiego Józefa', 'Piłsudskiego Józefa', 'Piłsudskiego Józefa Al.',
- 'Piotrkowska', 'Piwna', 'Plater Emilii', 'Plebiscytowa', 'Płocka', 'Pocztowa', 'Podchorążych',
+ 'Okólna', 'Okrężna', 'Okrzei', 'Okulickiego', 'Olchowa', 'Olimpijska',
+ 'Olsztyńska', 'Opolska', 'Orkana', 'Orla', 'Orzechowa', 'Orzeszkowej',
+ 'Osiedlowa', 'Oświęcimska', 'Owocowa', 'Paderewskiego', 'Parkowa', 'Partyzantów',
+ 'Patriotów', 'Pawia', 'Perłowa', 'Piaskowa', 'Piastowska', 'Os. Piastowskie', 'Piekarska',
+ 'Piękna', 'Piłsudskiego', 'Al. Piłsudskiego',
+ 'Piotrkowska', 'Piwna', 'Emilii Plater', 'Plebiscytowa', 'Płocka', 'Pocztowa', 'Podchorążych',
'Podgórna', 'Podhalańska', 'Podleśna', 'Podmiejska', 'Podwale', 'Pogodna', 'Pokoju',
- 'Pola Wincentego', 'Polna', 'Południowa', 'Pomorska', 'Poniatowskiego Józefa', 'Poniatowskiego Józefa',
- 'Popiełuszki Jerzego', 'Poprzeczna', 'Portowa', 'Porzeczkowa', 'Powstańców', 'Powstańców Śląskich',
+ 'Wincentego Pola', 'Polna', 'Południowa', 'Pomorska', 'Poniatowskiego',
+ 'Popiełuszki', 'Poprzeczna', 'Portowa', 'Porzeczkowa', 'Powstańców', 'Powstańców Śląskich',
'Powstańców Wielkopolskich', 'Poziomkowa', 'Poznańska', 'Północna', 'Promienna',
- 'Prosta', 'Prusa Bolesława', 'Przechodnia', 'Przemysłowa', 'Przybyszewskiego Stanisława',
- 'Przyjaźni', 'Pszenna', 'Ptasia', 'Pułaskiego Kazimierza', 'Pułaskiego Kazimierza',
- 'Puławska', 'Puszkina Aleksandra', 'Racławicka', 'Radomska', 'Radosna', 'Rataja Macieja',
- 'Reja Mikołaja', 'Rejtana Tadeusza', 'Reymonta Władysława', 'Reymonta Władysława Stanisława',
+ 'Prosta', 'Bolesława Prusa', 'Przechodnia', 'Przemysłowa', 'Przybyszewskiego',
+ 'Przyjaźni', 'Pszenna', 'Ptasia', 'Pułaskiego', 'Puławska', 'Puszkina', 'Racławicka',
+ 'Radomska', 'Radosna', 'Rataja', 'Reja', 'Rejtana', 'Reymonta',
'Robotnicza', 'Rodzinna', 'Rolna', 'Rolnicza', 'Równa', 'Różana', 'Rubinowa', 'Rumiankowa',
- 'Rybacka', 'Rybna', 'Rybnicka', 'Rycerska', 'Rynek', 'Rynek Rynek', 'Rzeczna', 'Rzemieślnicza',
- 'Sadowa', 'Sandomierska', 'Saperów', 'Sawickiej Hanki', 'Sądowa', 'Sąsiedzka', 'Senatorska',
- 'Siemiradzkiego Henryka', 'Sienkiewicza Henryka', 'Sienna', 'Siewna', 'Sikorskiego Władysława',
- 'Sikorskiego Władysława', 'Skargi Piotra', 'Skargi Piotra', 'Składowa', 'Skłodowskiej-Curie Marii',
- 'Skośna', 'Skrajna', 'Słoneczna', 'Słonecznikowa', 'Słowackiego Juliusza', 'Słowiańska',
- 'Słowicza', 'Sobieskiego Jana', 'Sobieskiego Jana III', 'Sokola', 'Solidarności Al.',
- 'Solna', 'Solskiego Ludwika', 'Sosnowa', 'Sowia', 'Sowińskiego Józefa', 'Spacerowa',
- 'Spokojna', 'Sportowa', 'Spółdzielcza', 'Srebrna', 'Staffa Leopolda', 'Stalowa', 'Staromiejska',
- 'Starowiejska', 'Staszica Stanisława', 'Stawowa', 'Stolarska', 'Strażacka', 'Stroma',
- 'Struga Andrzeja', 'Strumykowa', 'Strzelecka', 'Studzienna', 'Stwosza Wita', 'Sucha',
- 'Sucharskiego Henryka', 'Szafirowa', 'Szarych Szeregów', 'Szczecińska', 'Szczęśliwa',
- 'Szeroka', 'Szewska', 'Szkolna', 'Szmaragdowa', 'Szpitalna', 'Szymanowskiego Karola',
- 'Ściegiennego Piotra', 'Śląska', 'Średnia', 'Środkowa', 'Świdnicka', 'Świerkowa',
+ 'Rybacka', 'Rybna', 'Rybnicka', 'Rycerska', 'Rynek', 'Rzeczna', 'Rzemieślnicza',
+ 'Sadowa', 'Sandomierska', 'Saperów', 'Sawickiej', 'Sądowa', 'Sąsiedzka', 'Senatorska',
+ 'Siemiradzkiego', 'Sienkiewicza', 'Sienna', 'Siewna',
+ 'Sikorskiego', 'Piotra Skargi', 'Składowa', 'Skłodowskiej-Curie',
+ 'Skośna', 'Skrajna', 'Słoneczna', 'Słonecznikowa', 'Słowackiego', 'Słowiańska',
+ 'Słowicza', 'Sobieskiego', 'Jana III Sobieskiego', 'Sokola', 'Al. Solidarności',
+ 'Solna', 'Solskiego', 'Sosnowa', 'Sowia', 'Sowińskiego', 'Spacerowa',
+ 'Spokojna', 'Sportowa', 'Spółdzielcza', 'Srebrna', 'Staffa ', 'Stalowa', 'Staromiejska',
+ 'Starowiejska', 'Staszica', 'Stawowa', 'Stolarska', 'Strażacka', 'Stroma',
+ 'Struga', 'Strumykowa', 'Strzelecka', 'Studzienna', 'Wita Stwosza', 'Sucha',
+ 'Sucharskiego', 'Szafirowa', 'Szarych Szeregów', 'Szczecińska', 'Szczęśliwa',
+ 'Szeroka', 'Szewska', 'Szkolna', 'Szmaragdowa', 'Szpitalna', 'Szymanowskiego',
+ 'Ściegiennego', 'Śląska', 'Średnia', 'Środkowa', 'Świdnicka', 'Świerkowa',
'Świętojańska', 'Świętokrzyska', 'Targowa', 'Tatrzańska', 'Tęczowa', 'Topolowa',
- 'Torowa', 'Toruńska', 'Towarowa', 'Traugutta Romualda', 'Truskawkowa', 'Tulipanowa',
- 'Tulipanów', 'Turkusowa', 'Turystyczna', 'Tuwima Juliana', 'Tylna', 'Tysiąclecia', 'Ułańska',
- 'Urocza', 'Wałowa', 'Wandy', 'Wańkowicza Melchiora', 'Wapienna', 'Warmińska', 'Warszawska',
- 'Waryńskiego Ludwika', 'Wąska', 'Wczasowa', 'Wesoła', 'Węglowa', 'Widok', 'Wiejska',
- 'Wielkopolska', 'Wieniawskiego Henryka', 'Wierzbowa', 'Wilcza', 'Wileńska', 'Willowa',
- 'Wiosenna', 'Wiśniowa', 'Witosa Wincentego', 'Władysława IV', 'Wodna', 'Wojska Polskiego',
- 'Wojska Polskiego Al.', 'Wolności', 'Wolności Pl.', 'Wolska', 'Wołodyjowskiego Michała',
- 'Wrocławska', 'Wronia', 'Wróblewskiego Walerego', 'Wrzosowa', 'Wschodnia', 'Wspólna',
- 'Wybickiego Józefa', 'Wysoka', 'Wyspiańskiego Stanisława', 'Wyszyńskiego Stefana',
- 'Wyzwolenia', 'Wyzwolenia Al.', 'Zachodnia', 'Zacisze', 'Zajęcza', 'Zakątek', 'Zakopiańska',
- 'Zamenhofa Ludwika', 'Zamkowa', 'Zapolskiej Gabrieli', 'Zbożowa', 'Zdrojowa', 'Zgierska',
+ 'Torowa', 'Toruńska', 'Towarowa', 'Traugutta', 'Truskawkowa', 'Tulipanowa',
+ 'Tulipanów', 'Turkusowa', 'Turystyczna', 'Tuwima', 'Tylna', 'Tysiąclecia', 'Ułańska',
+ 'Urocza', 'Wałowa', 'Wandy', 'Wańkowicza', 'Wapienna', 'Warmińska', 'Warszawska',
+ 'Waryńskiego', 'Wąska', 'Wczasowa', 'Wesoła', 'Węglowa', 'Widok', 'Wiejska',
+ 'Wielkopolska', 'Wieniawskiego', 'Wierzbowa', 'Wilcza', 'Wileńska', 'Willowa',
+ 'Wiosenna', 'Wiśniowa', 'Witosa', 'Władysława IV', 'Wodna', 'Wojska Polskiego',
+ 'Al. Wojska Polskiego', 'Wolności', 'Pl. Wolności', 'Wolska', 'Wołodyjowskiego',
+ 'Wrocławska', 'Wronia', 'Wróblewskiego', 'Wrzosowa', 'Wschodnia', 'Wspólna',
+ 'Wybickiego', 'Wysoka', 'Wyspiańskiego', 'Wyszyńskiego',
+ 'Wyzwolenia', 'Al. Wyzwolenia', 'Zachodnia', 'Zacisze', 'Zajęcza', 'Zakątek', 'Zakopiańska',
+ 'Zamenhofa', 'Zamkowa', 'Zapolskiej', 'Zbożowa', 'Zdrojowa', 'Zgierska',
'Zielna', 'Zielona', 'Złota', 'Zwierzyniecka', 'Zwycięstwa', 'Źródlana', 'Żabia',
- 'Żeglarska', 'Żelazna', 'Żeromskiego Stefana', 'Żniwna', 'Żołnierska', 'Żółkiewskiego Stanisława',
- 'Żurawia', 'Żwirki Franciszka i Wigury Stanisława', 'Żwirki i Wigury', 'Żwirowa',
- 'Żytnia',
+ 'Żeglarska', 'Żelazna', 'Żeromskiego', 'Żniwna', 'Żołnierska', 'Żółkiewskiego',
+ 'Żurawia', 'Żwirki i Wigury', 'Żwirowa', 'Żytnia',
];
public function city()
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/pl_PL/Color.php b/api/vendor/fakerphp/faker/src/Faker/Provider/pl_PL/Color.php
new file mode 100644
index 0000000000..afc161a887
--- /dev/null
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/pl_PL/Color.php
@@ -0,0 +1,40 @@
+ 'D',
- 'kujawsko-pomorskie' => 'C',
- 'lubelskie' => 'L',
- 'lubuskie' => 'F',
- 'łódzkie' => 'E',
- 'małopolskie' => 'K',
- 'mazowieckie' => 'W',
- 'opolskie' => 'O',
- 'podkarpackie' => 'R',
- 'podlaskie' => 'B',
- 'pomorskie' => 'G',
- 'śląskie' => 'S',
- 'świętokrzyskie' => 'T',
- 'warmińsko-mazurskie' => 'N',
- 'wielkopolskie' => 'P',
- 'zachodniopomorskie' => 'Z',
+ 'dolnośląskie' => ['D', 'V'],
+ 'kujawsko-pomorskie' => ['C'],
+ 'lubelskie' => ['L'],
+ 'lubuskie' => ['F'],
+ 'łódzkie' => ['E'],
+ 'małopolskie' => ['K', 'J'],
+ 'mazowieckie' => ['W', 'A'],
+ 'opolskie' => ['O'],
+ 'podkarpackie' => ['R', 'Y'],
+ 'podlaskie' => ['B'],
+ 'pomorskie' => ['G', 'X'],
+ 'śląskie' => ['S', 'I'],
+ 'świętokrzyskie' => ['T'],
+ 'warmińsko-mazurskie' => ['N'],
+ 'wielkopolskie' => ['P', 'M'],
+ 'zachodniopomorskie' => ['Z'],
];
/**
* @var array list of special vehicle registration number prefixes.
*/
protected static $specials = [
- 'army' => 'U',
- 'services' => 'H',
+ 'army' => ['U'],
+ 'services' => ['H'],
];
/**
* @var array list of Polish counties and respective vehicle registration number prefixes.
*/
protected static $counties = [
- 'D' => [
+ 'dolnośląskie' => [
'Jelenia Góra' => ['J'],
'Legnica' => ['L'],
'Wałbrzych' => ['B'],
@@ -77,7 +77,7 @@ class LicensePlate extends Base
'zgorzelecki' => ['ZG'],
'złotoryjski' => ['ZL'],
],
- 'C' => [
+ 'kujawsko-pomorskie' => [
'Bydgoszcz' => ['B'],
'Grudziądz' => ['G'],
'Toruń' => ['T'],
@@ -102,7 +102,7 @@ class LicensePlate extends Base
'włocławski' => ['WL'],
'żniński' => ['ZN'],
],
- 'L' => [
+ 'lubelskie' => [
'Biała Podlaska' => ['B'],
'Chełm' => ['C'],
'Lublin' => ['U'],
@@ -128,7 +128,7 @@ class LicensePlate extends Base
'włodawski' => ['WL'],
'zamojski' => ['ZA'],
],
- 'F' => [
+ 'lubuskie' => [
'Gorzów Wielkopolski' => ['G'],
'Zielona Góra' => ['Z'],
'gorzowski' => ['GW'],
@@ -144,8 +144,8 @@ class LicensePlate extends Base
'żagański' => ['ZG'],
'żarski' => ['ZA'],
],
- 'E' => [
- 'Łódź' => ['L'],
+ 'łódzkie' => [
+ 'Łódź' => ['L', 'D'],
'Piotrków Trybunalski' => ['P'],
'Skierniewice' => ['S'],
'brzeziński' => ['BR'],
@@ -170,8 +170,8 @@ class LicensePlate extends Base
'zduńskowolski' => ['ZD'],
'zgierski' => ['ZG'],
],
- 'K' => [
- 'Kraków' => ['R'],
+ 'małopolskie' => [
+ 'Kraków' => ['R', 'K'],
'Nowy Sącz' => ['N'],
'Tarnów' => ['T'],
'bocheński' => ['BA', 'BC'],
@@ -179,7 +179,7 @@ class LicensePlate extends Base
'chrzanowski' => ['CH'],
'dąbrowski' => ['DA'],
'gorlicki' => ['GR'],
- 'krakowski' => ['RA'],
+ 'krakowski' => ['RA', 'RK'],
'limanowski' => ['LI'],
'miechowski' => ['MI'],
'myślenicki' => ['MY'],
@@ -194,7 +194,7 @@ class LicensePlate extends Base
'wadowicki' => ['WA'],
'wielicki' => ['WI'],
],
- 'W' => [
+ 'mazowieckie' => [
'Ostrołęka' => ['O'],
'Płock' => ['P'],
'Radom' => ['R'],
@@ -216,7 +216,7 @@ class LicensePlate extends Base
'ostrołęcki' => ['OS'],
'ostrowski' => ['OR'],
'otwocki' => ['OT'],
- 'piaseczyński' => ['PA', 'PI'],
+ 'piaseczyński' => ['PA', 'PI', 'PW', 'PX'],
'płocki' => ['PL'],
'płoński' => ['PN'],
'pruszkowski' => ['PP', 'PR', 'PS'],
@@ -238,7 +238,7 @@ class LicensePlate extends Base
'żuromiński' => ['ZU'],
'żyrardowski' => ['ZY'],
],
- 'O' => [
+ 'opolskie' => [
'Opole' => ['P'],
'brzeski' => ['B'],
'głubczycki' => ['GL'],
@@ -252,7 +252,7 @@ class LicensePlate extends Base
'prudnicki' => ['PR'],
'strzelecki' => ['ST'],
],
- 'R' => [
+ 'podkarpackie' => [
'Krosno' => ['K'],
'Przemyśl' => ['P'],
'Rzeszów' => ['Z'],
@@ -273,18 +273,18 @@ class LicensePlate extends Base
'przemyski' => ['PR'],
'przeworski' => ['PZ'],
'ropczycko-sędziszowski' => ['RS'],
- 'rzeszowski' => ['ZE'],
+ 'rzeszowski' => ['ZE', 'ZR', 'ZZ'],
'sanocki' => ['SA'],
'stalowowolski' => ['ST'],
'strzyżowski' => ['SR'],
'tarnobrzeski' => ['TA'],
],
- 'B' => [
+ 'podlaskie' => [
'Białystok' => ['I'],
'Łomża' => ['L'],
'Suwałki' => ['S'],
'augustowski' => ['AU'],
- 'białostocki' => ['IA'],
+ 'białostocki' => ['IA', 'IB'],
'bielski' => ['BI'],
'grajewski' => ['GR'],
'hajnowski' => ['HA'],
@@ -298,7 +298,7 @@ class LicensePlate extends Base
'wysokomazowiecki' => ['WM'],
'zambrowski' => ['ZA'],
],
- 'G' => [
+ 'pomorskie' => [
'Gdańsk' => ['D'],
'Gdynia' => ['A'],
'Słupsk' => ['S'],
@@ -307,7 +307,7 @@ class LicensePlate extends Base
'chojnicki' => ['CH'],
'człuchowski' => ['CZ'],
'gdański' => ['DA'],
- 'kartuski' => ['KY', 'KA'],
+ 'kartuski' => ['KA', 'KY', 'KZ'],
'kościerski' => ['KS'],
'kwidzyński' => ['KW'],
'lęborski' => ['LE'],
@@ -320,7 +320,7 @@ class LicensePlate extends Base
'tczewski' => ['TC'],
'wejherowski' => ['WE', 'WO'],
],
- 'S' => [
+ 'śląskie' => [
'Bielsko-Biała' => ['B'],
'Bytom' => ['Y'],
'Chorzów' => ['H'],
@@ -340,9 +340,9 @@ class LicensePlate extends Base
'Tychy' => ['T'],
'Zabrze' => ['Z'],
'Żory' => ['ZO'],
- 'będziński' => ['BE'],
+ 'będziński' => ['BE', 'BN', 'E'],
'bielski' => ['BI'],
- 'cieszyński' => ['CN', 'CI'],
+ 'cieszyński' => ['CI', 'CN'],
'częstochowski' => ['CZ'],
'gliwicki' => ['GL'],
'kłobucki' => ['KL'],
@@ -358,7 +358,7 @@ class LicensePlate extends Base
'zawierciański' => ['ZA'],
'żywiecki' => ['ZY'],
],
- 'T' => [
+ 'świętokrzyskie' => [
'Kielce' => ['K'],
'buski' => ['BU'],
'jędrzejowski' => ['JE'],
@@ -374,7 +374,7 @@ class LicensePlate extends Base
'staszowski' => ['SZ'],
'włoszczowski' => ['LW'],
],
- 'N' => [
+ 'warmińsko-mazurskie' => [
'Elbląg' => ['E'],
'Olsztyn' => ['O'],
'bartoszycki' => ['BA'],
@@ -397,7 +397,7 @@ class LicensePlate extends Base
'szczycieński' => ['SZ'],
'węgorzewski' => ['WE'],
],
- 'P' => [
+ 'wielkopolskie' => [
'Kalisz' => ['A', 'K'],
'Konin' => ['KO', 'N'],
'Leszno' => ['L'],
@@ -434,7 +434,7 @@ class LicensePlate extends Base
'wrzesiński' => ['WR'],
'złotowski' => ['ZL'],
],
- 'Z' => [
+ 'zachodniopomorskie' => [
'Koszalin' => ['K'],
'Szczecin' => ['S', 'Z'],
'Świnoujście' => ['SW'],
@@ -457,10 +457,10 @@ class LicensePlate extends Base
'świdwiński' => ['SD'],
'wałecki' => ['WA'],
],
- 'U' => [
+ 'army' => [
'Siły Zbrojne Rzeczypospolitej Polskiej' => ['A', 'B', 'C', 'D', 'E', 'G', 'I', 'J', 'K', 'L'],
],
- 'H' => [
+ 'services' => [
'Centralne Biuro Antykorupcyjne' => ['A'],
'Służba Ochrony Państwa' => ['BA', 'BB', 'BE', 'BF', 'BG'],
'Służba Celno-Skarbowa' => ['CA', 'CB', 'CC', 'CD', 'CE', 'CF', 'CG', 'CH', 'CJ', 'CK', 'CL', 'CM', 'CN', 'CO', 'CP', 'CR'],
@@ -514,12 +514,13 @@ public static function licensePlate(
?array $counties = null
): string {
$voivodeshipsAvailable = static::$voivodeships + ($special ? static::$specials : []);
- $voivodeshipCode = static::selectRandomArea($voivodeshipsAvailable, $voivodeships);
+ $voivodeshipSelected = static::selectRandomArea($voivodeshipsAvailable, $voivodeships);
+ $voivodeshipCode = static::randomElement($voivodeshipsAvailable[$voivodeshipSelected]);
- $countiesAvailable = static::$counties[$voivodeshipCode];
+ $countiesAvailable = static::$counties[$voivodeshipSelected];
$countySelected = self::selectRandomArea($countiesAvailable, $counties);
- $countyCode = static::randomElement($countySelected);
+ $countyCode = static::randomElement(static::$counties[$voivodeshipSelected][$countySelected]);
$suffix = static::regexify(static::randomElement(strlen($countyCode) === 1 ? static::$plateSuffixesGroup1 : static::$plateSuffixesGroup2));
@@ -528,6 +529,8 @@ public static function licensePlate(
/**
* Selects random area from the list of available and requested.
+ *
+ * @return string
*/
protected static function selectRandomArea(array $available, ?array $requested)
{
@@ -537,6 +540,6 @@ protected static function selectRandomArea(array $available, ?array $requested)
$requested = array_keys($available);
}
- return $available[static::randomElement($requested)];
+ return static::randomElement($requested);
}
}
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/pt_BR/PhoneNumber.php b/api/vendor/fakerphp/faker/src/Faker/Provider/pt_BR/PhoneNumber.php
index 6717def5a5..6601658306 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/pt_BR/PhoneNumber.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/pt_BR/PhoneNumber.php
@@ -83,7 +83,7 @@ public static function phone($formatted = true)
['landline', null],
]);
- return call_user_func("static::{$options[0]}", $formatted, $options[1]);
+ return call_user_func([static::class, $options[0]], $formatted, $options[1]);
}
/**
@@ -135,7 +135,7 @@ public function phoneNumber()
{
$method = static::randomElement(['cellphoneNumber', 'landlineNumber']);
- return call_user_func("static::$method", true);
+ return call_user_func([static::class, $method], true);
}
/**
@@ -145,6 +145,6 @@ public static function phoneNumberCleared()
{
$method = static::randomElement(['cellphoneNumber', 'landlineNumber']);
- return call_user_func("static::$method", false);
+ return call_user_func([static::class, $method], false);
}
}
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/pt_BR/Text.php b/api/vendor/fakerphp/faker/src/Faker/Provider/pt_BR/Text.php
index d177c8725c..ce60728557 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/pt_BR/Text.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/pt_BR/Text.php
@@ -5,52 +5,52 @@
class Text extends \Faker\Provider\Text
{
/**
- * The Project Gutenberg EBook of Dom Casmurro, by Machado de Assis
+ * The Project Gutenberg EBook of Dom Casmurro, by Machado de Assis
*
- * This eBook is for the use of anyone anywhere in the United States and most
- * other parts of the world at no cost and with almost no restrictions
- * whatsoever. You may copy it, give it away or re-use it under the terms of
- * the Project Gutenberg License included with this eBook or online at
- * www.gutenberg.org. If you are not located in the United States, you'll have
- * to check the laws of the country where you are located before using this ebook.
+ * This eBook is for the use of anyone anywhere in the United States and most
+ * other parts of the world at no cost and with almost no restrictions
+ * whatsoever. You may copy it, give it away or re-use it under the terms of
+ * the Project Gutenberg License included with this eBook or online at
+ * www.gutenberg.org. If you are not located in the United States, you'll have
+ * to check the laws of the country where you are located before using this ebook.
*
- * Title: Dom Casmurro
+ * Title: Dom Casmurro
*
- * Author: Machado de Assis
+ * Author: Machado de Assis
*
- * Release Date: October 15, 2017 [EBook #55752]
+ * Release Date: October 15, 2017 [EBook #55752]
*
- * Language: Portuguese
+ * Language: Portuguese
*
- * *** START OF THIS PROJECT GUTENBERG EBOOK DOM CASMURRO ***
+ * *** START OF THIS PROJECT GUTENBERG EBOOK DOM CASMURRO ***
*
- * Produced by Laura Natal Rodriguez & Marc D'Hooghe at Free
- * Literature (online soon in an extended version,also linking
- * to free sources for education worldwide ... MOOC's,
- * educational materials,...) (Images generously made available
- * by the Bibliotheca Nacional Digital Brasil.)
+ * Produced by Laura Natal Rodriguez & Marc D'Hooghe at Free
+ * Literature (online soon in an extended version,also linking
+ * to free sources for education worldwide ... MOOC's,
+ * educational materials,...) (Images generously made available
+ * by the Bibliotheca Nacional Digital Brasil.)
*
- * DOM CASMURRO
+ * DOM CASMURRO
*
- * POR
+ * POR
*
- * MACHADO DE ASSIS
+ * MACHADO DE ASSIS
*
- * DA ACADEMIA BRAZILEIRA
+ * DA ACADEMIA BRAZILEIRA
*
- * H. GARNIER, LIVREIRO-EDITOR
+ * H. GARNIER, LIVREIRO-EDITOR
*
- * RUA MOREIRA CEZAR, 71
+ * RUA MOREIRA CEZAR, 71
*
- * RIO DE JANEIRO
+ * RIO DE JANEIRO
*
- * 6, RUE DES SAINTS-PÈRES, 6
+ * 6, RUE DES SAINTS-PÈRES, 6
*
- * PARIZ
+ * PARIZ
*
- * @see https://www.gutenberg.org/cache/epub/55752/pg55752.txt
+ * @see https://www.gutenberg.org/cache/epub/55752/pg55752.txt
*
- * @var string
+ * @var string
*/
protected static $baseText = <<<'EOT'
I
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/ro_RO/Person.php b/api/vendor/fakerphp/faker/src/Faker/Provider/ro_RO/Person.php
index d8ef51d005..9077004135 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/ro_RO/Person.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/ro_RO/Person.php
@@ -182,6 +182,7 @@ protected function getDateOfBirth($dateOfBirth)
$dateOfBirthFinal = implode('-', $dateOfBirthParts);
$date = \DateTime::createFromFormat('Y-m-d', $dateOfBirthFinal);
+
//a full (invalid) date might have been supplied, check if it converts
if ($date->format('Y-m-d') !== $dateOfBirthFinal) {
throw new \InvalidArgumentException("Invalid date of birth - '{$date->format('Y-m-d')}' generated based on '{$dateOfBirth}' received");
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/ru_RU/Person.php b/api/vendor/fakerphp/faker/src/Faker/Provider/ru_RU/Person.php
index 95ec8069a8..b0e17d4e19 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/ru_RU/Person.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/ru_RU/Person.php
@@ -5,8 +5,8 @@
class Person extends \Faker\Provider\Person
{
protected static $maleNameFormats = [
- '{{firstNameMale}} {{middleNameMale}} {{lastName}}',
- '{{lastName}} {{firstNameMale}} {{middleNameMale}}',
+ '{{firstNameMale}} {{middleNameMale}} {{lastNameMale}}',
+ '{{lastNameMale}} {{firstNameMale}} {{middleNameMale}}',
];
/**
@@ -14,8 +14,8 @@ class Person extends \Faker\Provider\Person
* That list of MALE last names could be safely extended to FEMALE list just by adding 'a' letter at the end
*/
protected static $femaleNameFormats = [
- '{{firstNameFemale}} {{middleNameFemale}} {{lastName}}а',
- '{{lastName}}а {{firstNameFemale}} {{middleNameFemale}}',
+ '{{firstNameFemale}} {{middleNameFemale}} {{lastNameFemale}}',
+ '{{lastNameFemale}} {{firstNameFemale}} {{middleNameFemale}}',
];
/**
@@ -165,16 +165,24 @@ public function middleName($gender = null)
*/
public function lastName($gender = null)
{
- $lastName = static::randomElement(static::$lastName);
-
if (static::GENDER_FEMALE === $gender) {
- return $lastName . 'а';
+ return $this->lastNameFemale();
}
if (static::GENDER_MALE === $gender) {
- return $lastName;
+ return $this->lastNameMale();
}
- return $lastName . static::randomElement(static::$lastNameSuffix);
+ return static::randomElement(static::$lastName) . static::randomElement(static::$lastNameSuffix);
+ }
+
+ public function lastNameMale(): string
+ {
+ return static::randomElement(static::$lastName);
+ }
+
+ public function lastNameFemale(): string
+ {
+ return static::randomElement(static::$lastName) . 'а';
}
}
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/sk_SK/Person.php b/api/vendor/fakerphp/faker/src/Faker/Provider/sk_SK/Person.php
index 5f8fe70adf..583759ba4d 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/sk_SK/Person.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/sk_SK/Person.php
@@ -34,7 +34,7 @@ class Person extends \Faker\Provider\Person
'Vlastimil', 'Boleslav', 'Eduard', 'Jozef', 'Víťazoslav', 'Blahoslav', 'Beňadik', 'Adrián', 'Gabriel', 'Marián', 'Emanuel', 'Miroslav',
'Benjamín', 'Hugo', 'Richard', 'Izidor', 'Zoltán', 'Albert', 'Igor', 'Július', 'Aleš', 'Fedor', 'Rudolf', 'Valér', 'Marcel', 'Ervín',
'Slavomír', 'Vojtech', 'Juraj', 'Marek', 'Jaroslav', 'Žigmund', 'Florián', 'Roland', 'Pankrác', 'Servác', 'Bonifác', 'Svetozár', 'Bernard',
- 'Júlia', 'Urban', 'Dušan', 'Viliam', 'Ferdinand', 'Norbert', 'Róbert', 'Medard', 'Zlatko', 'Anton', 'Vasil', 'Vít', 'Adolf', 'Vratislav',
+ 'Júlia', 'Urban', 'Dušan', 'Viliam', 'Ferdinand', 'Norbert', 'Róbert', 'Medard', 'Zlatko', 'Anton', 'Vasil', 'Vít', 'Vratislav',
'Alfréd', 'Alojz', 'Ján', 'Tadeáš', 'Ladislav', 'Peter', 'Pavol', 'Miloslav', 'Prokop', 'Cyril', 'Metod', 'Patrik', 'Oliver', 'Ivan',
'Kamil', 'Henrich', 'Drahomír', 'Bohuslav', 'Iľja', 'Daniel', 'Vladimír', 'Jakub', 'Krištof', 'Ignác', 'Gustáv', 'Jerguš', 'Dominik',
'Oskar', 'Vavrinec', 'Ľubomír', 'Mojmír', 'Leonard', 'Tichomír', 'Filip', 'Bartolomej', 'Ľudovít', 'Samuel', 'Augustín', 'Belo', 'Oleg',
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/sl_SI/Person.php b/api/vendor/fakerphp/faker/src/Faker/Provider/sl_SI/Person.php
index 08463950a6..20a2946949 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/sl_SI/Person.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/sl_SI/Person.php
@@ -25,7 +25,7 @@ class Person extends \Faker\Provider\Person
* @see http://www.stat.si/doc/vsebina/05/imena/TOPIMENA_SI.xlsx
*/
protected static $firstNameMale = [
- 'Adam', 'Adolf', 'Albert', 'Albin', 'Aleks', 'Aleksandar', 'Aleksander', 'Aleksej', 'Alen',
+ 'Adam', 'Albert', 'Albin', 'Aleks', 'Aleksandar', 'Aleksander', 'Aleksej', 'Alen',
'Alex', 'Aleš', 'Aljaž', 'Aljoša', 'Alojz', 'Alojzij', 'Andraž', 'Andrej', 'Anej', 'Anton',
'Anže', 'Avgust', 'Ažbe', 'Benjamin', 'Bernard', 'Bine', 'Blaž', 'Bogdan', 'Bogomir',
'Bojan', 'Bor', 'Boris', 'Borut', 'Boštjan', 'Božidar', 'Branko', 'Brin', 'Bruno', 'Ciril',
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/sv_SE/Person.php b/api/vendor/fakerphp/faker/src/Faker/Provider/sv_SE/Person.php
index c078f6bf8e..7c42f6bd9e 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/sv_SE/Person.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/sv_SE/Person.php
@@ -59,7 +59,7 @@ class Person extends \Faker\Provider\Person
* @see http://spraakbanken.gu.se/statistik/lbfnamnalf.phtml
*/
protected static $firstNameMale = [
- 'Abraham', 'Adam', 'Adolf', 'Adrian', 'Agaton', 'Agne', 'Albert', 'Albin', 'Aldor', 'Alex', 'Alexander', 'Alexis', 'Alexius', 'Alf', 'Alfons', 'Alfred', 'Algot', 'Allan', 'Alrik', 'Alvar', 'Alve', 'Amandus', 'Anders', 'André', 'Andreas', 'Anselm', 'Anshelm', 'Antero', 'Anton', 'Antonius', 'Arne', 'Arnold', 'Aron', 'Arthur', 'Artur', 'Arvid', 'Assar', 'Astor', 'August', 'Augustin', 'Axel',
+ 'Abraham', 'Adam', 'Adrian', 'Agaton', 'Agne', 'Albert', 'Albin', 'Aldor', 'Alex', 'Alexander', 'Alexis', 'Alexius', 'Alf', 'Alfons', 'Alfred', 'Algot', 'Allan', 'Alrik', 'Alvar', 'Alve', 'Amandus', 'Anders', 'André', 'Andreas', 'Anselm', 'Anshelm', 'Antero', 'Anton', 'Antonius', 'Arne', 'Arnold', 'Aron', 'Arthur', 'Artur', 'Arvid', 'Assar', 'Astor', 'August', 'Augustin', 'Axel',
'Bengt', 'Bengt-Göran', 'Bengt-Olof', 'Bengt-Åke', 'Benny', 'Berndt', 'Berne', 'Bernhard', 'Bernt', 'Bert', 'Berth', 'Berthold', 'Bertil', 'Bill', 'Billy', 'Birger', 'Bjarne', 'Björn', 'Bo', 'Boris', 'Bror', 'Bruno', 'Brynolf', 'Börje',
'Carl', 'Carl-Axel', 'Carl-Erik', 'Carl-Gustaf', 'Carl-Gustav', 'Carl-Johan', 'Charles', 'Christer', 'Christian', 'Claes', 'Claes-Göran', 'Clarence', 'Clas', 'Conny', 'Crister', 'Curt',
'Dag', 'Dan', 'Daniel', 'David', 'Dennis', 'Dick', 'Donald', 'Douglas',
@@ -121,12 +121,11 @@ class Person extends \Faker\Provider\Person
*
* @see http://en.wikipedia.org/wiki/Personal_identity_number_(Sweden)
*
- * @param \DateTime $birthdate
- * @param string $gender Person::GENDER_MALE || Person::GENDER_FEMALE
+ * @param string $gender Person::GENDER_MALE || Person::GENDER_FEMALE
*
* @return string on format XXXXXX-XXXX
*/
- public function personalIdentityNumber(\DateTime $birthdate = null, $gender = null)
+ public function personalIdentityNumber(?\DateTime $birthdate = null, $gender = null)
{
if (!$birthdate) {
$birthdate = \Faker\Provider\DateTime::dateTimeThisCentury();
diff --git a/api/vendor/fakerphp/faker/src/Faker/Provider/zh_CN/Address.php b/api/vendor/fakerphp/faker/src/Faker/Provider/zh_CN/Address.php
index d67e14977e..00b9eb771e 100644
--- a/api/vendor/fakerphp/faker/src/Faker/Provider/zh_CN/Address.php
+++ b/api/vendor/fakerphp/faker/src/Faker/Provider/zh_CN/Address.php
@@ -101,7 +101,7 @@ class Address extends \Faker\Provider\Address
'斯威士兰', '瑞典', '瑞士', '叙利亚', '塔吉克斯坦', '坦桑尼亚',
'泰国', '阿拉伯联合酋长国', '多哥', '托克劳群岛', '汤加',
'特立尼达和多巴哥', '突尼斯', '土耳其', '土库曼斯坦',
- '特克斯和凯科斯群岛(', '图瓦卢', '美国', '乌干达', '乌克兰',
+ '特克斯和凯科斯群岛', '图瓦卢', '美国', '乌干达', '乌克兰',
'英国', '乌拉圭', '乌兹别克斯坦', '瓦努阿图', '梵蒂冈',
'委内瑞拉', '越南', '维尔京群岛', '维尔京群岛和圣罗克伊',
'威克岛', '瓦里斯和富士那群岛', '西撒哈拉', '也门', '南斯拉夫',
diff --git a/api/vendor/graham-campbell/result-type/LICENSE b/api/vendor/graham-campbell/result-type/LICENSE
index 9a8accb986..8e7c898886 100644
--- a/api/vendor/graham-campbell/result-type/LICENSE
+++ b/api/vendor/graham-campbell/result-type/LICENSE
@@ -1,6 +1,6 @@
The MIT License (MIT)
-Copyright (c) 2020-2022 Graham Campbell
+Copyright (c) 2020-2024 Graham Campbell
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/api/vendor/graham-campbell/result-type/composer.json b/api/vendor/graham-campbell/result-type/composer.json
index f85e1d1322..32bfc81ed8 100644
--- a/api/vendor/graham-campbell/result-type/composer.json
+++ b/api/vendor/graham-campbell/result-type/composer.json
@@ -12,10 +12,10 @@
],
"require": {
"php": "^7.2.5 || ^8.0",
- "phpoption/phpoption": "^1.9"
+ "phpoption/phpoption": "^1.9.3"
},
"require-dev": {
- "phpunit/phpunit": "^8.5.28 || ^9.5.21"
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28"
},
"autoload": {
"psr-4": {
diff --git a/api/vendor/graham-campbell/result-type/src/Error.php b/api/vendor/graham-campbell/result-type/src/Error.php
index add9b2d714..2c37c3e2b7 100644
--- a/api/vendor/graham-campbell/result-type/src/Error.php
+++ b/api/vendor/graham-campbell/result-type/src/Error.php
@@ -19,6 +19,7 @@
/**
* @template T
* @template E
+ *
* @extends \GrahamCampbell\ResultType\Result
*/
final class Error extends Result
diff --git a/api/vendor/graham-campbell/result-type/src/Success.php b/api/vendor/graham-campbell/result-type/src/Success.php
index b68ad57e7a..27cd85eecb 100644
--- a/api/vendor/graham-campbell/result-type/src/Success.php
+++ b/api/vendor/graham-campbell/result-type/src/Success.php
@@ -19,6 +19,7 @@
/**
* @template T
* @template E
+ *
* @extends \GrahamCampbell\ResultType\Result
*/
final class Success extends Result
diff --git a/api/vendor/laravel/serializable-closure/README.md b/api/vendor/laravel/serializable-closure/README.md
index b1efef38f5..ee0d01a15c 100644
--- a/api/vendor/laravel/serializable-closure/README.md
+++ b/api/vendor/laravel/serializable-closure/README.md
@@ -51,9 +51,10 @@ echo $closure(); // james;
### Caveats
-1. Creating **anonymous classes** within closures is not supported.
-2. Using attributes within closures is not supported.
-3. Serializing closures on REPL environments such as Laravel Tinker is not supported.
+* Anonymous classes cannot be created within closures.
+* Attributes cannot be used within closures.
+* Serializing closures on REPL environments like Laravel Tinker is not supported.
+* Serializing closures that reference objects with readonly properties is not supported.
## Contributing
diff --git a/api/vendor/laravel/serializable-closure/composer.json b/api/vendor/laravel/serializable-closure/composer.json
index 7142366b1e..d2d94f6248 100644
--- a/api/vendor/laravel/serializable-closure/composer.json
+++ b/api/vendor/laravel/serializable-closure/composer.json
@@ -21,10 +21,11 @@
"php": "^7.3|^8.0"
},
"require-dev": {
- "nesbot/carbon": "^2.61",
+ "illuminate/support": "^8.0|^9.0|^10.0|^11.0",
+ "nesbot/carbon": "^2.61|^3.0",
"pestphp/pest": "^1.21.3",
"phpstan/phpstan": "^1.8.2",
- "symfony/var-dumper": "^5.4.11"
+ "symfony/var-dumper": "^5.4.11|^6.2.0|^7.0.0"
},
"autoload": {
"psr-4": {
diff --git a/api/vendor/laravel/serializable-closure/src/Serializers/Native.php b/api/vendor/laravel/serializable-closure/src/Serializers/Native.php
index 4a04b981e2..7325490260 100644
--- a/api/vendor/laravel/serializable-closure/src/Serializers/Native.php
+++ b/api/vendor/laravel/serializable-closure/src/Serializers/Native.php
@@ -378,6 +378,10 @@ protected function mapPointers(&$data)
continue;
}
+ if (PHP_VERSION >= 8.1 && $property->isReadOnly()) {
+ continue;
+ }
+
$item = $property->getValue($data);
if ($item instanceof SerializableClosure || $item instanceof UnsignedSerializableClosure || ($item instanceof SelfReference && $item->hash === $this->code['self'])) {
@@ -500,6 +504,10 @@ protected function mapByReference(&$data)
continue;
}
+ if (PHP_VERSION >= 8.1 && $property->isReadOnly() && $property->class !== $reflection->name) {
+ continue;
+ }
+
$value = $property->getValue($instance);
if (is_array($value) || is_object($value)) {
diff --git a/api/vendor/laravel/serializable-closure/src/Support/ReflectionClosure.php b/api/vendor/laravel/serializable-closure/src/Support/ReflectionClosure.php
index a0d3707527..e92960023b 100644
--- a/api/vendor/laravel/serializable-closure/src/Support/ReflectionClosure.php
+++ b/api/vendor/laravel/serializable-closure/src/Support/ReflectionClosure.php
@@ -508,11 +508,9 @@ public function getCode()
break;
case 'id_name':
switch ($token[0]) {
- // named arguments...
- case ':':
+ case $token[0] === ':' && $context !== 'instanceof':
if ($lastState === 'closure' && $context === 'root') {
- $state = 'ignore_next';
- $lastState = 'closure';
+ $state = 'closure';
$code .= $id_start.$token;
}
@@ -643,6 +641,11 @@ public function getCode()
break;
case 'anonymous':
switch ($token[0]) {
+ case T_NAME_QUALIFIED:
+ [$id_start, $id_start_ci, $id_name] = $this->parseNameQualified($token[1]);
+ $state = 'id_name';
+ $lastState = 'anonymous';
+ break 2;
case T_NS_SEPARATOR:
case T_STRING:
$id_start = $token[1];
@@ -651,7 +654,7 @@ public function getCode()
$state = 'id_name';
$context = 'extends';
$lastState = 'anonymous';
- break;
+ break;
case '{':
$state = 'closure';
if (! $inside_structure) {
@@ -803,7 +806,7 @@ public function isScopeRequired()
}
/**
- * The the hash of the current file name.
+ * The hash of the current file name.
*
* @return string
*/
@@ -1132,10 +1135,10 @@ protected function fetchItems()
if (--$open == 0) {
if (! $structIgnore) {
$structures[] = [
- 'type' => $structType,
- 'name' => $structName,
+ 'type' => $structType,
+ 'name' => $structName,
'start' => $startLine,
- 'end' => $endLine,
+ 'end' => $endLine,
];
}
$structIgnore = false;
diff --git a/api/vendor/mockery/mockery/.readthedocs.yml b/api/vendor/mockery/mockery/.readthedocs.yml
new file mode 100644
index 0000000000..7150d7b424
--- /dev/null
+++ b/api/vendor/mockery/mockery/.readthedocs.yml
@@ -0,0 +1,24 @@
+# Read the Docs configuration file for Sphinx projects
+# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
+
+# Required
+version: 2
+
+# Set the OS, Python version and other tools we might need
+build:
+ os: ubuntu-22.04
+ tools:
+ python: "3.12"
+
+# Build documentation in the "docs/" directory with Sphinx
+sphinx:
+ configuration: docs/conf.py
+
+# Build documentation in additional formats such as PDF and ePub
+formats: all
+
+# Build requirements for our documentation
+# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
+python:
+ install:
+ - requirements: docs/requirements.txt
diff --git a/api/vendor/mockery/mockery/CHANGELOG.md b/api/vendor/mockery/mockery/CHANGELOG.md
index 937460e9b4..2180be21e2 100644
--- a/api/vendor/mockery/mockery/CHANGELOG.md
+++ b/api/vendor/mockery/mockery/CHANGELOG.md
@@ -1,217 +1,419 @@
-# Change Log
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [Unreleased]
+
+## [1.6.12] - 2024-05-15
+
+### Changed
+
+- [1420: Update `psalm-baseline.xml` ](https://github.com/mockery/mockery/pull/1420)
+- [1419: Update e2e-test.sh](https://github.com/mockery/mockery/pull/1419)
+- [1413: Upgrade `phar` tools and `phive.xml` configuration](https://github.com/mockery/mockery/pull/1413)
+
+### Fixed
+
+- [1415: Fix mocking anonymous classes](https://github.com/mockery/mockery/pull/1415)
+- [1411: Mocking final classes reports unresolvable type by PHPStan](https://github.com/mockery/mockery/issues/1411)
+- [1410: Fix PHP Doc Comments](https://github.com/mockery/mockery/pull/1410)
+
+### Security
+
+- [1417: Bump `Jinja2` from `3.1.3` to `3.1.4` fix CVE-2024-34064](https://github.com/mockery/mockery/pull/1417)
+- [1412: Bump `idna` from `3.6` to `3.7` fix CVE-2024-3651](https://github.com/mockery/mockery/pull/1412)
+
+## [1.6.11] - 2024-03-21
+
+### Fixed
+
+- [1407: Fix constants map generics doc comments](https://github.com/mockery/mockery/pull/1407)
+- [1406: Fix reserved words used to name a class, interface or trait](https://github.com/mockery/mockery/pull/1406)
+- [1403: Fix regression - partial construction with trait methods](https://github.com/mockery/mockery/pull/1403)
+- [1401: Improve `Mockery::mock()` parameter type compatibility with array typehints](https://github.com/mockery/mockery/pull/1401)
+
+## [1.6.10] - 2024-03-19
+
+### Added
+
+- [1398: [PHP 8.4] Fixes for implicit nullability deprecation](https://github.com/mockery/mockery/pull/1398)
+
+### Fixed
+
+- [1397: Fix mock method $args parameter type](https://github.com/mockery/mockery/pull/1397)
+- [1396: Fix `1.6.8` release](https://github.com/mockery/mockery/pull/1396)
+
+## [1.6.9] - 2024-03-12
+
+- [1394: Revert v1.6.8 release](https://github.com/mockery/mockery/pull/1394)
+
+## [1.6.8] - 2024-03-12
+
+- [1393: Changelog v1.6.8](https://github.com/mockery/mockery/pull/1393)
+- [1392: Refactor remaining codebase](https://github.com/mockery/mockery/pull/1392)
+- [1391: Update actions to use Node 20](https://github.com/mockery/mockery/pull/1391)
+- [1390: Update `ReadTheDocs` dependencies](https://github.com/mockery/mockery/pull/1390)
+- [1389: Refactor `library/Mockery/Matcher/*`](https://github.com/mockery/mockery/pull/1389)
+- [1388: Refactor `library/Mockery/Loader/*`](https://github.com/mockery/mockery/pull/1388)
+- [1387: Refactor `library/Mockery/CountValidator/*`](https://github.com/mockery/mockery/pull/1387)
+- [1386: Add PHPUnit 10+ attributes](https://github.com/mockery/mockery/pull/1386)
+- [1385: Update composer dependencies and clean up](https://github.com/mockery/mockery/pull/1385)
+- [1384: Update `psalm-baseline.xml`](https://github.com/mockery/mockery/pull/1384)
+- [1383: Refactor `library/helpers.php`](https://github.com/mockery/mockery/pull/1383)
+- [1382: Refactor `library/Mockery/VerificationExpectation.php`](https://github.com/mockery/mockery/pull/1382)
+- [1381: Refactor `library/Mockery/VerificationDirector.php`](https://github.com/mockery/mockery/pull/1381)
+- [1380: Refactor `library/Mockery/QuickDefinitionsConfiguration.php`](https://github.com/mockery/mockery/pull/1380)
+- [1379: Refactor `library/Mockery/Undefined.php`](https://github.com/mockery/mockery/pull/1379)
+- [1378: Refactor `library/Mockery/Reflector.php`](https://github.com/mockery/mockery/pull/1378)
+- [1377: Refactor `library/Mockery/ReceivedMethodCalls.php`](https://github.com/mockery/mockery/pull/1377)
+- [1376: Refactor `library/Mockery.php`](https://github.com/mockery/mockery/pull/1376)
+- [1375: Refactor `library/Mockery/MockInterface.php`](https://github.com/mockery/mockery/pull/1375)
+- [1374: Refactor `library/Mockery/MethodCall.php`](https://github.com/mockery/mockery/pull/1374)
+- [1373: Refactor `library/Mockery/LegacyMockInterface.php`](https://github.com/mockery/mockery/pull/1373)
+- [1372: Refactor `library/Mockery/Instantiator.php`](https://github.com/mockery/mockery/pull/1372)
+- [1371: Refactor `library/Mockery/HigherOrderMessage.php`](https://github.com/mockery/mockery/pull/1371)
+- [1370: Refactor `library/Mockery/ExpectsHigherOrderMessage.php`](https://github.com/mockery/mockery/pull/1370)
+- [1369: Refactor `library/Mockery/ExpectationInterface.php`](https://github.com/mockery/mockery/pull/1369)
+- [1368: Refactor `library/Mockery/ExpectationDirector.php`](https://github.com/mockery/mockery/pull/1368)
+- [1367: Refactor `library/Mockery/Expectation.php`](https://github.com/mockery/mockery/pull/1367)
+- [1366: Refactor `library/Mockery/Exception.php`](https://github.com/mockery/mockery/pull/1366)
+- [1365: Refactor `library/Mockery/Container.php`](https://github.com/mockery/mockery/pull/1365)
+- [1364: Refactor `library/Mockery/Configuration.php`](https://github.com/mockery/mockery/pull/1364)
+- [1363: Refactor `library/Mockery/CompositeExpectation.php`](https://github.com/mockery/mockery/pull/1363)
+- [1362: Refactor `library/Mockery/ClosureWrapper.php`](https://github.com/mockery/mockery/pull/1362)
+- [1361: Refactor `library/Mockery.php`](https://github.com/mockery/mockery/pull/1361)
+- [1360: Refactor Container](https://github.com/mockery/mockery/pull/1360)
+- [1355: Fix the namespace in the SubsetTest class](https://github.com/mockery/mockery/pull/1355)
+- [1354: Add array-like objects support to hasKey/hasValue matchers](https://github.com/mockery/mockery/pull/1354)
+
+## [1.6.7] - 2023-12-09
+
+### Added
+
+- [#1338: Support PHPUnit constraints as matchers](https://github.com/mockery/mockery/pull/1338)
+- [#1336: Add factory methods for `IsEqual` and `IsSame` matchers](https://github.com/mockery/mockery/pull/1336)
+
+### Fixed
+
+- [#1346: Fix test namespaces](https://github.com/mockery/mockery/pull/1346)
+- [#1343: Update documentation default theme and build version](https://github.com/mockery/mockery/pull/1343)
+- [#1329: Prevent `shouldNotReceive` from getting overridden by invocation count methods](https://github.com/mockery/mockery/pull/1329)
+
+### Changed
+
+- [#1351: Update psalm-baseline.xml](https://github.com/mockery/mockery/pull/1351)
+- [#1350: Changelog v1.6.7](https://github.com/mockery/mockery/pull/1350)
+- [#1349: Cleanup](https://github.com/mockery/mockery/pull/1349)
+- [#1348: Update makefile](https://github.com/mockery/mockery/pull/1348)
+- [#1347: Bump phars dependencies](https://github.com/mockery/mockery/pull/1347)
+- [#1344: Disabled travis-ci and sensiolabs webhooks](https://github.com/mockery/mockery/issues/1344)
+- [#1342: Add `.readthedocs.yml` configuration](https://github.com/mockery/mockery/pull/1342)
+- [#1340: docs: Remove misplaced semicolumn from code snippet](https://github.com/mockery/mockery/pull/1340)
+
+## 1.6.6 (2023-08-08)
+
+- [#1327: Changelog v1.6.6](https://github.com/mockery/mockery/pull/1327)
+- [#1325: Keep the file that caused an error for inspection](https://github.com/mockery/mockery/pull/1325)
+- [#1324: Fix Regression - Replace `+` Array Union Operator with `array_merge`](https://github.com/mockery/mockery/pull/1324)
+
+## 1.6.5 (2023-08-05)
+
+- [#1322: Changelog v1.6.5](https://github.com/mockery/mockery/pull/1322)
+- [#1321: Autoload Test Fixtures Based on PHP Runtime Version](https://github.com/mockery/mockery/pull/1321)
+- [#1320: Clean up mocks on destruct](https://github.com/mockery/mockery/pull/1320)
+- [#1318: Fix misspelling in docs](https://github.com/mockery/mockery/pull/1318)
+- [#1316: Fix compatibility issues with PHP 7.3](https://github.com/mockery/mockery/pull/1316)
+- [#1315: Fix PHP 7.3 issues](https://github.com/mockery/mockery/issues/1315)
+- [#1314: Add Security Policy](https://github.com/mockery/mockery/pull/1314)
+- [#1313: Type declaration for `iterable|object`.](https://github.com/mockery/mockery/pull/1313)
+- [#1312: Mock disjunctive normal form types](https://github.com/mockery/mockery/pull/1312)
+- [#1299: Test PHP `8.3` language features](https://github.com/mockery/mockery/pull/1299)
+
+## 1.6.4 (2023-07-19)
+
+- [#1308: Changelog v1.6.4](https://github.com/mockery/mockery/pull/1308)
+- [#1307: Revert `src` to `library` for `1.6.x`](https://github.com/mockery/mockery/pull/1307)
+
+## 1.6.3 (2023-07-18)
+
+- [#1304: Remove `extra.branch-alias` and update composer information](https://github.com/mockery/mockery/pull/1304)
+- [#1303: Update `.gitattributes`](https://github.com/mockery/mockery/pull/1303)
+- [#1302: Changelog v1.6.3](https://github.com/mockery/mockery/pull/1302)
+- [#1301: Fix mocking classes with `new` initializers in method and attribute params on PHP 8.1](https://github.com/mockery/mockery/pull/1301)
+- [#1298: Update default repository branch to latest release branch](https://github.com/mockery/mockery/issues/1298)
+- [#1297: Update `Makefile` for contributors](https://github.com/mockery/mockery/pull/1297)
+- [#1294: Correct return types of Mock for phpstan](https://github.com/mockery/mockery/pull/1294)
+- [#1290: Rename directory `library` to `src`](https://github.com/mockery/mockery/pull/1290)
+- [#1288: Update codecov workflow](https://github.com/mockery/mockery/pull/1288)
+- [#1287: Update psalm configuration and workflow](https://github.com/mockery/mockery/pull/1287)
+- [#1286: Update phpunit workflow](https://github.com/mockery/mockery/pull/1286)
+- [#1285: Enforce the minimum required PHP version](https://github.com/mockery/mockery/pull/1285)
+- [#1283: Update license and copyright information](https://github.com/mockery/mockery/pull/1283)
+- [#1282: Create `COPYRIGHT.md` file](https://github.com/mockery/mockery/pull/1282)
+- [#1279: Bump `vimeo/psalm` from `5.9.0` to `5.12.0`](https://github.com/mockery/mockery/pull/1279)
+
+## 1.6.2 (2023-06-07)
+
+- [#1276: Add `IsEqual` Argument Matcher](https://github.com/mockery/mockery/pull/1276)
+- [#1275: Add `IsSame` Argument Matcher](https://github.com/mockery/mockery/pull/1275)
+- [#1274: Update composer branch alias](https://github.com/mockery/mockery/pull/1274)
+- [#1271: Support PHP 8.2 `true` Literal Type](https://github.com/mockery/mockery/pull/1271)
+- [#1270: Support PHP 8.0 `false` Literal Type](https://github.com/mockery/mockery/pull/1270)
+
+## 1.6.1 (2023-06-05)
+
+- [#1267 Drops support for PHP <7.4](https://github.com/mockery/mockery/pull/1267)
+- [#1192 Updated changelog for version 1.5.1 to include changes from #1180](https://github.com/mockery/mockery/pull/1192)
+- [#1196 Update example in README.md](https://github.com/mockery/mockery/pull/1196)
+- [#1199 Fix function parameter default enum value](https://github.com/mockery/mockery/pull/1199)
+- [#1205 Deal with null type in PHP8.2](https://github.com/mockery/mockery/pull/1205)
+- [#1208 Import MockeryTestCase fully qualified class name](https://github.com/mockery/mockery/pull/1208)
+- [#1210 Add support for target class attributes](https://github.com/mockery/mockery/pull/1210)
+- [#1212 docs: Add missing comma](https://github.com/mockery/mockery/pull/1212)
+- [#1216 Fixes code generation for intersection types](https://github.com/mockery/mockery/pull/1216)
+- [#1217 Add MockeryExceptionInterface](https://github.com/mockery/mockery/pull/1217)
+- [#1218 tidy: avoids require](https://github.com/mockery/mockery/pull/1218)
+- [#1222 Add .editorconfig](https://github.com/mockery/mockery/pull/1222)
+- [#1225 Switch to PSR-4 autoload](https://github.com/mockery/mockery/pull/1225)
+- [#1226 Refactoring risky tests](https://github.com/mockery/mockery/pull/1226)
+- [#1230 Add vimeo/psalm and psalm/plugin-phpunit](https://github.com/mockery/mockery/pull/1230)
+- [#1232 Split PHPUnit TestSuites for PHP 8.2](https://github.com/mockery/mockery/pull/1232)
+- [#1233 Bump actions/checkout to v3](https://github.com/mockery/mockery/pull/1233)
+- [#1234 Bump nick-invision/retry to v2](https://github.com/mockery/mockery/pull/1234)
+- [#1235 Setup Codecov for code coverage](https://github.com/mockery/mockery/pull/1235)
+- [#1236 Add Psalm CI Check](https://github.com/mockery/mockery/pull/1236)
+- [#1237 Unignore composer.lock file](https://github.com/mockery/mockery/pull/1237)
+- [#1239 Prevent CI run duplication](https://github.com/mockery/mockery/pull/1239)
+- [#1241 Add PHPUnit workflow for PHP 8.3](https://github.com/mockery/mockery/pull/1241)
+- [#1244 Improve ClassAttributesPass for Dynamic Properties](https://github.com/mockery/mockery/pull/1244)
+- [#1245 Deprecate hamcrest/hamcrest-php package](https://github.com/mockery/mockery/pull/1245)
+- [#1246 Add BUG_REPORT.yml Issue template](https://github.com/mockery/mockery/pull/1246)
+- [#1250 Deprecate PHP <=8.0](https://github.com/mockery/mockery/issues/1250)
+- [#1253 Prevent array to string conversion when serialising a Subset matcher](https://github.com/mockery/mockery/issues/1253)
+
+## 1.6.0 (2023-06-05) [DELETED]
+
+This tag was deleted due to a mistake with the composer.json PHP version
+constraint, see [#1266](https://github.com/mockery/mockery/issues/1266)
## 1.3.6 (2022-09-07)
-* PHP 8.2 | Fix "Use of "parent" in callables is deprecated" notice #1169
+
+- PHP 8.2 | Fix "Use of "parent" in callables is deprecated" notice #1169
## 1.5.1 (2022-09-07)
-* [PHP 8.2] Various tests: explicitly declare properties #1170
-* [PHP 8.2] Fix "Use of "parent" in callables is deprecated" notice #1169
-* [PHP 8.1] Support intersection types #1164
-* Handle final `__toString` methods #1162
+- [PHP 8.2] Various tests: explicitly declare properties #1170
+- [PHP 8.2] Fix "Use of "parent" in callables is deprecated" notice #1169
+- [PHP 8.1] Support intersection types #1164
+- Handle final `__toString` methods #1162
+- Only count assertions on expectations which can fail a test #1180
## 1.5.0 (2022-01-20)
-* Override default call count expectations via expects() #1146
-* Mock methods with static return types #1157
-* Mock methods with mixed return type #1156
-* Mock classes with new in initializers on PHP 8.1 #1160
-* Removes redundant PHPUnitConstraint #1158
+- Override default call count expectations via expects() #1146
+- Mock methods with static return types #1157
+- Mock methods with mixed return type #1156
+- Mock classes with new in initializers on PHP 8.1 #1160
+- Removes redundant PHPUnitConstraint #1158
## 1.4.4 (2021-09-13)
-* Fixes auto-generated return values #1144
-* Adds support for tentative types #1130
-* Fixes for PHP 8.1 Support (#1130 and #1140)
-* Add method that allows defining a set of arguments the mock should yield #1133
-* Added option to configure default matchers for objects `\Mockery::getConfiguration()->setDefaultMatcher($class, $matcherClass)` #1120
+- Fixes auto-generated return values #1144
+- Adds support for tentative types #1130
+- Fixes for PHP 8.1 Support (#1130 and #1140)
+- Add method that allows defining a set of arguments the mock should yield #1133
+- Added option to configure default matchers for objects `\Mockery::getConfiguration()->setDefaultMatcher($class, $matcherClass)` #1120
## 1.3.5 (2021-09-13)
-* Fix auto-generated return values with union types #1143
-* Adds support for tentative types #1130
-* Fixes for PHP 8.1 Support (#1130 and #1140)
-* Add method that allows defining a set of arguments the mock should yield #1133
-* Added option to configure default matchers for objects `\Mockery::getConfiguration()->setDefaultMatcher($class, $matcherClass)` #1120
+
+- Fix auto-generated return values with union types #1143
+- Adds support for tentative types #1130
+- Fixes for PHP 8.1 Support (#1130 and #1140)
+- Add method that allows defining a set of arguments the mock should yield #1133
+- Added option to configure default matchers for objects `\Mockery::getConfiguration()->setDefaultMatcher($class, $matcherClass)` #1120
## 1.4.3 (2021-02-24)
-* Fixes calls to fetchMock before initialisation #1113
-* Allow shouldIgnoreMissing() to behave in a recursive fashion #1097
-* Custom object formatters #766 (Needs Docs)
-* Fix crash on a union type including null #1106
+- Fixes calls to fetchMock before initialisation #1113
+- Allow shouldIgnoreMissing() to behave in a recursive fashion #1097
+- Custom object formatters #766 (Needs Docs)
+- Fix crash on a union type including null #1106
## 1.3.4 (2021-02-24)
-* Fixes calls to fetchMock before initialisation #1113
-* Fix crash on a union type including null #1106
+- Fixes calls to fetchMock before initialisation #1113
+- Fix crash on a union type including null #1106
## 1.4.2 (2020-08-11)
-* Fix array to string conversion in ConstantsPass (#1086)
-* Fixed nullable PHP 8.0 union types (#1088, #1089)
-* Fixed support for PHP 8.0 parent type (#1088, #1089)
-* Fixed PHP 8.0 mixed type support (#1088, #1089)
-* Fixed PHP 8.0 union return types (#1088, #1089)
+- Fix array to string conversion in ConstantsPass (#1086)
+- Fixed nullable PHP 8.0 union types (#1088, #1089)
+- Fixed support for PHP 8.0 parent type (#1088, #1089)
+- Fixed PHP 8.0 mixed type support (#1088, #1089)
+- Fixed PHP 8.0 union return types (#1088, #1089)
## 1.4.1 (2020-07-09)
-* Allow quick definitions to use 'at least once' expectation
+- Allow quick definitions to use 'at least once' expectation
`\Mockery::getConfiguration()->getQuickDefinitions()->shouldBeCalledAtLeastOnce(true)` (#1056)
-* Added provisional support for PHP 8.0 (#1068, #1072,#1079)
-* Fix mocking methods with iterable return type without specifying a return value (#1075)
+- Added provisional support for PHP 8.0 (#1068, #1072,#1079)
+- Fix mocking methods with iterable return type without specifying a return value (#1075)
## 1.3.3 (2020-08-11)
-* Fix array to string conversion in ConstantsPass (#1086)
-* Fixed nullable PHP 8.0 union types (#1088)
-* Fixed support for PHP 8.0 parent type (#1088)
-* Fixed PHP 8.0 mixed type support (#1088)
-* Fixed PHP 8.0 union return types (#1088)
+- Fix array to string conversion in ConstantsPass (#1086)
+- Fixed nullable PHP 8.0 union types (#1088)
+- Fixed support for PHP 8.0 parent type (#1088)
+- Fixed PHP 8.0 mixed type support (#1088)
+- Fixed PHP 8.0 union return types (#1088)
## 1.3.2 (2020-07-09)
-* Fix mocking with anonymous classes (#1039)
-* Fix andAnyOthers() to properly match earlier expectations (#1051)
-* Added provisional support for PHP 8.0 (#1068, #1072,#1079)
-* Fix mocking methods with iterable return type without specifying a return value (#1075)
+- Fix mocking with anonymous classes (#1039)
+- Fix andAnyOthers() to properly match earlier expectations (#1051)
+- Added provisional support for PHP 8.0 (#1068, #1072,#1079)
+- Fix mocking methods with iterable return type without specifying a return value (#1075)
## 1.4.0 (2020-05-19)
-* Fix mocking with anonymous classes (#1039)
-* Fix andAnyOthers() to properly match earlier expectations (#1051)
-* Drops support for PHP < 7.3 and PHPUnit < 8 (#1059)
+- Fix mocking with anonymous classes (#1039)
+- Fix andAnyOthers() to properly match earlier expectations (#1051)
+- Drops support for PHP < 7.3 and PHPUnit < 8 (#1059)
## 1.3.1 (2019-12-26)
-* Revert improved exception debugging due to BC breaks (#1032)
+- Revert improved exception debugging due to BC breaks (#1032)
## 1.3.0 (2019-11-24)
-* Added capture `Mockery::capture` convenience matcher (#1020)
-* Added `andReturnArg` to echo back an argument passed to a an expectation (#992)
-* Improved exception debugging (#1000)
-* Fixed `andSet` to not reuse properties between mock objects (#1012)
+- Added capture `Mockery::capture` convenience matcher (#1020)
+- Added `andReturnArg` to echo back an argument passed to a an expectation (#992)
+- Improved exception debugging (#1000)
+- Fixed `andSet` to not reuse properties between mock objects (#1012)
## 1.2.4 (2019-09-30)
-* Fix a bug introduced with previous release, for empty method definition lists (#1009)
+- Fix a bug introduced with previous release, for empty method definition lists (#1009)
## 1.2.3 (2019-08-07)
-* Allow mocking classes that have allows and expects methods (#868)
-* Allow passing thru __call method in all mock types (experimental) (#969)
-* Add support for `!` to blacklist methods (#959)
-* Added `withSomeOfArgs` to partial match a list of args (#967)
-* Fix chained demeter calls with type hint (#956)
+- Allow mocking classes that have allows and expects methods (#868)
+- Allow passing thru __call method in all mock types (experimental) (#969)
+- Add support for `!` to blacklist methods (#959)
+- Added `withSomeOfArgs` to partial match a list of args (#967)
+- Fix chained demeter calls with type hint (#956)
## 1.2.2 (2019-02-13)
-* Fix a BC breaking change for PHP 5.6/PHPUnit 5.7.27 (#947)
+- Fix a BC breaking change for PHP 5.6/PHPUnit 5.7.27 (#947)
## 1.2.1 (2019-02-07)
-* Support for PHPUnit 8 (#942)
-* Allow mocking static methods called on instance (#938)
+- Support for PHPUnit 8 (#942)
+- Allow mocking static methods called on instance (#938)
## 1.2.0 (2018-10-02)
-* Starts counting default expectations towards count (#910)
-* Adds workaround for some HHVM return types (#909)
-* Adds PhpStorm metadata support for autocomplete etc (#904)
-* Further attempts to support multiple PHPUnit versions (#903)
-* Allows setting constructor expectations on instance mocks (#900)
-* Adds workaround for HHVM memoization decorator (#893)
-* Adds experimental support for callable spys (#712)
+- Starts counting default expectations towards count (#910)
+- Adds workaround for some HHVM return types (#909)
+- Adds PhpStorm metadata support for autocomplete etc (#904)
+- Further attempts to support multiple PHPUnit versions (#903)
+- Allows setting constructor expectations on instance mocks (#900)
+- Adds workaround for HHVM memoization decorator (#893)
+- Adds experimental support for callable spys (#712)
## 1.1.0 (2018-05-08)
-* Allows use of string method names in allows and expects (#794)
-* Finalises allows and expects syntax in API (#799)
-* Search for handlers in a case instensitive way (#801)
-* Deprecate allowMockingMethodsUnnecessarily (#808)
-* Fix risky tests (#769)
-* Fix namespace in TestListener (#812)
-* Fixed conflicting mock names (#813)
-* Clean elses (#819)
-* Updated protected method mocking exception message (#826)
-* Map of constants to mock (#829)
-* Simplify foreach with `in_array` function (#830)
-* Typehinted return value on Expectation#verify. (#832)
-* Fix shouldNotHaveReceived with HigherOrderMessage (#842)
-* Deprecates shouldDeferMissing (#839)
-* Adds support for return type hints in Demeter chains (#848)
-* Adds shouldNotReceive to composite expectation (#847)
-* Fix internal error when using --static-backup (#845)
-* Adds `andAnyOtherArgs` as an optional argument matcher (#860)
-* Fixes namespace qualifying with namespaced named mocks (#872)
-* Added possibility to add Constructor-Expections on hard dependencies, read: Mockery::mock('overload:...') (#781)
+- Allows use of string method names in allows and expects (#794)
+- Finalises allows and expects syntax in API (#799)
+- Search for handlers in a case instensitive way (#801)
+- Deprecate allowMockingMethodsUnnecessarily (#808)
+- Fix risky tests (#769)
+- Fix namespace in TestListener (#812)
+- Fixed conflicting mock names (#813)
+- Clean elses (#819)
+- Updated protected method mocking exception message (#826)
+- Map of constants to mock (#829)
+- Simplify foreach with `in_array` function (#830)
+- Typehinted return value on Expectation#verify. (#832)
+- Fix shouldNotHaveReceived with HigherOrderMessage (#842)
+- Deprecates shouldDeferMissing (#839)
+- Adds support for return type hints in Demeter chains (#848)
+- Adds shouldNotReceive to composite expectation (#847)
+- Fix internal error when using --static-backup (#845)
+- Adds `andAnyOtherArgs` as an optional argument matcher (#860)
+- Fixes namespace qualifying with namespaced named mocks (#872)
+- Added possibility to add Constructor-Expections on hard dependencies, read: Mockery::mock('overload:...') (#781)
## 1.0.0 (2017-09-06)
-* Destructors (`__destruct`) are stubbed out where it makes sense
-* Allow passing a closure argument to `withArgs()` to validate multiple arguments at once.
-* `Mockery\Adapter\Phpunit\TestListener` has been rewritten because it
+- Destructors (`__destruct`) are stubbed out where it makes sense
+- Allow passing a closure argument to `withArgs()` to validate multiple arguments at once.
+- `Mockery\Adapter\Phpunit\TestListener` has been rewritten because it
incorrectly marked some tests as risky. It will no longer verify mock
expectations but instead check that tests do that themselves. PHPUnit 6 is
required if you want to use this fail safe.
-* Removes SPL Class Loader
-* Removed object recorder feature
-* Bumped minimum PHP version to 5.6
-* `andThrow` will now throw anything `\Throwable`
-* Adds `allows` and `expects` syntax
-* Adds optional global helpers for `mock`, `namedMock` and `spy`
-* Adds ability to create objects using traits
-* `Mockery\Matcher\MustBe` was deprecated
-* Marked `Mockery\MockInterface` as internal
-* Subset matcher matches recursively
-* BC BREAK - Spies return `null` by default from ignored (non-mocked) methods with nullable return type
-* Removed extracting getter methods of object instances
-* BC BREAK - Remove implicit regex matching when trying to match string arguments, introduce `\Mockery::pattern()` when regex matching is needed
-* Fix Mockery not getting closed in cases of failing test cases
-* Fix Mockery not setting properties on overloaded instance mocks
-* BC BREAK - Fix Mockery not trying default expectations if there is any concrete expectation
-* BC BREAK - Mockery's PHPUnit integration will mark a test as risky if it
+- Removes SPL Class Loader
+- Removed object recorder feature
+- Bumped minimum PHP version to 5.6
+- `andThrow` will now throw anything `\Throwable`
+- Adds `allows` and `expects` syntax
+- Adds optional global helpers for `mock`, `namedMock` and `spy`
+- Adds ability to create objects using traits
+- `Mockery\Matcher\MustBe` was deprecated
+- Marked `Mockery\MockInterface` as internal
+- Subset matcher matches recursively
+- BC BREAK - Spies return `null` by default from ignored (non-mocked) methods with nullable return type
+- Removed extracting getter methods of object instances
+- BC BREAK - Remove implicit regex matching when trying to match string arguments, introduce `\Mockery::pattern()` when regex matching is needed
+- Fix Mockery not getting closed in cases of failing test cases
+- Fix Mockery not setting properties on overloaded instance mocks
+- BC BREAK - Fix Mockery not trying default expectations if there is any concrete expectation
+- BC BREAK - Mockery's PHPUnit integration will mark a test as risky if it
thinks one it's exceptions has been swallowed in PHPUnit > 5.7.6. Use `$e->dismiss()` to dismiss.
## 0.9.4 (XXXX-XX-XX)
-* `shouldIgnoreMissing` will respect global `allowMockingNonExistentMethods`
+- `shouldIgnoreMissing` will respect global `allowMockingNonExistentMethods`
config
-* Some support for variadic parameters
-* Hamcrest is now a required dependency
-* Instance mocks now respect `shouldIgnoreMissing` call on control instance
-* This will be the *last version to support PHP 5.3*
-* Added `Mockery\Adapter\Phpunit\MockeryPHPUnitIntegration` trait
-* Added `makePartial` to `Mockery\MockInterface` as it was missing
+- Some support for variadic parameters
+- Hamcrest is now a required dependency
+- Instance mocks now respect `shouldIgnoreMissing` call on control instance
+- This will be the *last version to support PHP 5.3*
+- Added `Mockery\Adapter\Phpunit\MockeryPHPUnitIntegration` trait
+- Added `makePartial` to `Mockery\MockInterface` as it was missing
## 0.9.3 (2014-12-22)
-* Added a basic spy implementation
-* Added `Mockery\Adapter\Phpunit\MockeryTestCase` for more reliable PHPUnit
+- Added a basic spy implementation
+- Added `Mockery\Adapter\Phpunit\MockeryTestCase` for more reliable PHPUnit
integration
## 0.9.2 (2014-09-03)
-* Some workarounds for the serialisation problems created by changes to PHP in 5.5.13, 5.4.29,
+- Some workarounds for the serialisation problems created by changes to PHP in 5.5.13, 5.4.29,
5.6.
-* Demeter chains attempt to reuse doubles as they see fit, so for foo->bar and
+- Demeter chains attempt to reuse doubles as they see fit, so for foo->bar and
foo->baz, we'll attempt to use the same foo
## 0.9.1 (2014-05-02)
-* Allow specifying consecutive exceptions to be thrown with `andThrowExceptions`
-* Allow specifying methods which can be mocked when using
+- Allow specifying consecutive exceptions to be thrown with `andThrowExceptions`
+- Allow specifying methods which can be mocked when using
`Mockery\Configuration::allowMockingNonExistentMethods(false)` with
`Mockery\MockInterface::shouldAllowMockingMethod($methodName)`
-* Added andReturnSelf method: `$mock->shouldReceive("foo")->andReturnSelf()`
-* `shouldIgnoreMissing` now takes an optional value that will be return instead
+- Added andReturnSelf method: `$mock->shouldReceive("foo")->andReturnSelf()`
+- `shouldIgnoreMissing` now takes an optional value that will be return instead
of null, e.g. `$mock->shouldIgnoreMissing($mock)`
## 0.9.0 (2014-02-05)
-* Allow mocking classes with final __wakeup() method
-* Quick definitions are now always `byDefault`
-* Allow mocking of protected methods with `shouldAllowMockingProtectedMethods`
-* Support official Hamcrest package
-* Generator completely rewritten
-* Easily create named mocks with namedMock
+- Allow mocking classes with final __wakeup() method
+- Quick definitions are now always `byDefault`
+- Allow mocking of protected methods with `shouldAllowMockingProtectedMethods`
+- Support official Hamcrest package
+- Generator completely rewritten
+- Easily create named mocks with namedMock
diff --git a/api/vendor/mockery/mockery/CONTRIBUTING.md b/api/vendor/mockery/mockery/CONTRIBUTING.md
index b714f3f44e..d828fb3023 100644
--- a/api/vendor/mockery/mockery/CONTRIBUTING.md
+++ b/api/vendor/mockery/mockery/CONTRIBUTING.md
@@ -6,17 +6,15 @@ We'd love you to help out with mockery and no contribution is too small.
## Reporting Bugs
-Issues can be reported on the [issue
-tracker](https://github.com/padraic/mockery/issues). Please try and report any
-bugs with a minimal reproducible example, it will make things easier for other
+Issues can be reported on the [issue tracker](https://github.com/mockery/mockery/issues).
+Please try and report any bugs with a minimal reproducible example, it will make things easier for other
contributors and your problems will hopefully be resolved quickly.
## Requesting Features
We're always interested to hear about your ideas and you can request features by
-creating a ticket in the [issue
-tracker](https://github.com/padraic/mockery/issues). We can't always guarantee
+creating a ticket in the [issue tracker](https://github.com/mockery/mockery/issues). We can't always guarantee
someone will jump on it straight away, but putting it out there to see if anyone
else is interested is a good idea.
@@ -33,24 +31,20 @@ and
[PSR-2](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md) coding standards,
but we'll probably merge any code that looks close enough.
-* Fork the [repository](https://github.com/padraic/mockery) on GitHub
+* Fork the [repository](https://github.com/mockery/mockery) on GitHub
* Add the code for your feature or bug
* Add some tests for your feature or bug
* Optionally, but preferably, write some documentation
* Optionally, update the CHANGELOG.md file with your feature or
[BC](http://en.wikipedia.org/wiki/Backward_compatibility) break
-* Send a [Pull
- Request](https://help.github.com/articles/creating-a-pull-request) to the
+* Send a [Pull Request](https://help.github.com/articles/creating-a-pull-request) to the
correct target branch (see below)
If you have a big change or would like to discuss something, create an issue in
-the [issue tracker](https://github.com/padraic/mockery/issues) or jump in to
-\#mockery on freenode
+the [issue tracker](https://github.com/mockery/mockery/issues) or jump in to \#mockery on freenode
-Any code you contribute must be licensed under the [BSD 3-Clause
-License](http://opensource.org/licenses/BSD-3-Clause).
-
+Any code you contribute must be licensed under the [BSD 3-Clause License](http://opensource.org/licenses/BSD-3-Clause).
## Target Branch
@@ -67,7 +61,7 @@ To run the unit tests for Mockery, clone the git repository, download Composer u
the instructions at [http://getcomposer.org/download/](http://getcomposer.org/download/),
then install the dependencies with `php /path/to/composer.phar install`.
-This will install the required PHPUnit and Hamcrest dev dependencies and create the
+This will install the required dev dependencies and create the
autoload files required by the unit tests. You may run the `vendor/bin/phpunit` command
to run the unit tests. If everything goes to plan, there will be no failed tests!
diff --git a/api/vendor/mockery/mockery/COPYRIGHT.md b/api/vendor/mockery/mockery/COPYRIGHT.md
new file mode 100644
index 0000000000..b3b19bc418
--- /dev/null
+++ b/api/vendor/mockery/mockery/COPYRIGHT.md
@@ -0,0 +1,7 @@
+# Copyright
+
+- Copyright (c) [2009](https://github.com/mockery/mockery/commit/1d96f88142abe804ab9e893a5f07933f63e9bff9), [Pádraic Brady](https://github.com/padraic)
+- Copyright (c) [2011](https://github.com/mockery/mockery/commit/94dbb63aab37c659f63ea6e34acc6958928b0f59), [Robert Basic](https://github.com/robertbasic)
+- Copyright (c) [2012](https://github.com/mockery/mockery/commit/64e3ad6960eb3202b5b91b91a4ef1cf6252f0fef), [Dave Marshall](https://github.com/davedevelopment)
+- Copyright (c) [2013](https://github.com/mockery/mockery/commit/270ddd0bd051251e36a5688c52fc2638a097b110), [Graham Campbell](https://github.com/GrahamCampbell)
+- Copyright (c) [2017](https://github.com/mockery/mockery/commit/ba28b84c416b95924886bbd64a6a2f68e863536a), [Nathanael Esayeas](https://github.com/ghostwriter)
diff --git a/api/vendor/mockery/mockery/LICENSE b/api/vendor/mockery/mockery/LICENSE
index 2e127a651b..1a9030ce20 100644
--- a/api/vendor/mockery/mockery/LICENSE
+++ b/api/vendor/mockery/mockery/LICENSE
@@ -1,27 +1,29 @@
-Copyright (c) 2010, Pádraic Brady
+BSD 3-Clause License
+
+Copyright (c) 2009-2023, Pádraic Brady
All rights reserved.
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
+1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
+2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
- * The name of Pádraic Brady may not be used to endorse or promote
- products derived from this software without specific prior written
- permission.
+3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/api/vendor/mockery/mockery/README.md b/api/vendor/mockery/mockery/README.md
index 55771dfbb5..269773420f 100644
--- a/api/vendor/mockery/mockery/README.md
+++ b/api/vendor/mockery/mockery/README.md
@@ -2,6 +2,9 @@ Mockery
=======
[![Build Status](https://github.com/mockery/mockery/actions/workflows/tests.yml/badge.svg)](https://github.com/mockery/mockery/actions)
+[![Supported PHP Version](https://badgen.net/packagist/php/mockery/mockery?color=8892bf)](https://www.php.net/supported-versions)
+[![Code Coverage](https://codecov.io/gh/mockery/mockery/branch/1.6.x/graph/badge.svg?token=oxHwVM56bT)](https://codecov.io/gh/mockery/mockery)
+[![Type Coverage](https://shepherd.dev/github/mockery/mockery/coverage.svg)](https://shepherd.dev/github/mockery/mockery)
[![Latest Stable Version](https://poser.pugx.org/mockery/mockery/v/stable.svg)](https://packagist.org/packages/mockery/mockery)
[![Total Downloads](https://poser.pugx.org/mockery/mockery/downloads.svg)](https://packagist.org/packages/mockery/mockery)
@@ -167,7 +170,7 @@ $double->expects()->add($book)->twice();
If you have used Mockery before, you might see something new in the example
above — we created a method expectation using `expects`, instead of the "old"
`shouldReceive` syntax. This is a new feature of Mockery v1, but same as with
-`accepts` in the previous section, it can be written in the "old" style.
+`allows` in the previous section, it can be written in the "old" style.
For new users of Mockery, the above example can also be written as:
diff --git a/api/vendor/mockery/mockery/SECURITY.md b/api/vendor/mockery/mockery/SECURITY.md
new file mode 100644
index 0000000000..cc8790e0f9
--- /dev/null
+++ b/api/vendor/mockery/mockery/SECURITY.md
@@ -0,0 +1,14 @@
+# Security Policy
+
+## Supported Versions
+
+| Version | Supported |
+| ------- | ------------------ |
+| `2.0.x` | `yes` |
+| `1.6.x` | `yes` |
+| `1.5.x` | `yes` |
+| `<1.5.x` | `no` |
+
+## Reporting a Vulnerability
+
+To report a security vulnerability, please [`Open a draft security advisory`](https://github.com/mockery/mockery/security/advisories/new) so we can coordinate the fix and disclosure.
diff --git a/api/vendor/mockery/mockery/composer.json b/api/vendor/mockery/mockery/composer.json
index 43caba8c6c..6f03cf2d43 100644
--- a/api/vendor/mockery/mockery/composer.json
+++ b/api/vendor/mockery/mockery/composer.json
@@ -1,9 +1,8 @@
{
"name": "mockery/mockery",
"description": "Mockery is a simple yet flexible PHP mock object framework",
- "scripts": {
- "docs": "phpdoc -d library -t docs/api"
- },
+ "license": "BSD-3-Clause",
+ "type": "library",
"keywords": [
"bdd",
"library",
@@ -16,47 +15,105 @@
"test double",
"testing"
],
- "homepage": "https://github.com/mockery/mockery",
- "license": "BSD-3-Clause",
"authors": [
{
"name": "Pádraic Brady",
"email": "padraic.brady@gmail.com",
- "homepage": "http://blog.astrumfutura.com"
+ "homepage": "https://github.com/padraic",
+ "role": "Author"
},
{
"name": "Dave Marshall",
"email": "dave.marshall@atstsolutions.co.uk",
- "homepage": "http://davedevelopment.co.uk"
+ "homepage": "https://davedevelopment.co.uk",
+ "role": "Developer"
+ },
+ {
+ "name": "Nathanael Esayeas",
+ "email": "nathanael.esayeas@protonmail.com",
+ "homepage": "https://github.com/ghostwriter",
+ "role": "Lead Developer"
}
],
+ "homepage": "https://github.com/mockery/mockery",
+ "support": {
+ "issues": "https://github.com/mockery/mockery/issues",
+ "source": "https://github.com/mockery/mockery",
+ "docs": "https://docs.mockery.io/",
+ "rss": "https://github.com/mockery/mockery/releases.atom",
+ "security": "https://github.com/mockery/mockery/security/advisories"
+ },
"require": {
- "php": "^7.3 || ^8.0",
+ "php": ">=7.3",
"lib-pcre": ">=7.0",
"hamcrest/hamcrest-php": "^2.0.1"
},
"require-dev": {
- "phpunit/phpunit": "^8.5 || ^9.3"
+ "phpunit/phpunit": "^8.5 || ^9.6.17",
+ "symplify/easy-coding-standard": "^12.1.14"
},
"conflict": {
"phpunit/phpunit": "<8.0"
},
"autoload": {
- "psr-0": {
- "Mockery": "library/"
- }
+ "psr-4": {
+ "Mockery\\": "library/Mockery"
+ },
+ "files": [
+ "library/helpers.php",
+ "library/Mockery.php"
+ ]
},
"autoload-dev": {
"psr-4": {
+ "Fixture\\": "tests/Fixture/",
+ "Mockery\\Tests\\Unit\\": "tests/Unit",
"test\\": "tests/"
- }
+ },
+ "files": [
+ "fixtures/autoload.php",
+ "vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest.php"
+ ]
},
"config": {
- "preferred-install": "dist"
+ "optimize-autoloader": true,
+ "platform": {
+ "php": "7.3.999"
+ },
+ "preferred-install": "dist",
+ "sort-packages": true
},
- "extra": {
- "branch-alias": {
- "dev-master": "1.4.x-dev"
- }
+ "scripts": {
+ "check": [
+ "@composer validate",
+ "@ecs",
+ "@test"
+ ],
+ "docs": "vendor/bin/phpdoc -d library -t docs/api",
+ "ecs": [
+ "@ecs:fix",
+ "@ecs:check"
+ ],
+ "ecs:check": "ecs check --clear-cache || true",
+ "ecs:fix": "ecs check --clear-cache --fix",
+ "phive": [
+ "tools/phive update --force-accept-unsigned",
+ "tools/phive purge"
+ ],
+ "phpunit": "vendor/bin/phpunit --do-not-cache-result --colors=always",
+ "phpunit:coverage": "@phpunit --coverage-clover=coverage.xml",
+ "psalm": "tools/psalm --no-cache --show-info=true",
+ "psalm:alter": "tools/psalm --no-cache --alter --allow-backwards-incompatible-changes=false --safe-types",
+ "psalm:baseline": "@psalm --no-diff --set-baseline=psalm-baseline.xml",
+ "psalm:dry-run": "@psalm:alter --issues=all --dry-run",
+ "psalm:fix": "@psalm:alter --issues=UnnecessaryVarAnnotation,MissingPureAnnotation,MissingImmutableAnnotation",
+ "psalm:security": "@psalm --no-diff --taint-analysis",
+ "psalm:shepherd": "@psalm --no-diff --shepherd --stats --output-format=github",
+ "test": [
+ "@phpunit --stop-on-defect",
+ "@psalm",
+ "@psalm:security",
+ "@psalm:dry-run"
+ ]
}
}
diff --git a/api/vendor/mockery/mockery/composer.lock b/api/vendor/mockery/mockery/composer.lock
new file mode 100644
index 0000000000..603f969765
--- /dev/null
+++ b/api/vendor/mockery/mockery/composer.lock
@@ -0,0 +1,1867 @@
+{
+ "_readme": [
+ "This file locks the dependencies of your project to a known state",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+ "This file is @generated automatically"
+ ],
+ "content-hash": "e70f68192a56a148f93ad7a1c0779be3",
+ "packages": [
+ {
+ "name": "hamcrest/hamcrest-php",
+ "version": "v2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hamcrest/hamcrest-php.git",
+ "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
+ "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3|^7.0|^8.0"
+ },
+ "replace": {
+ "cordoval/hamcrest-php": "*",
+ "davedevelopment/hamcrest-php": "*",
+ "kodova/hamcrest-php": "*"
+ },
+ "require-dev": {
+ "phpunit/php-file-iterator": "^1.4 || ^2.0",
+ "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "hamcrest"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "This is the PHP port of Hamcrest Matchers",
+ "keywords": [
+ "test"
+ ],
+ "support": {
+ "issues": "https://github.com/hamcrest/hamcrest-php/issues",
+ "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1"
+ },
+ "time": "2020-07-09T08:09:16+00:00"
+ }
+ ],
+ "packages-dev": [
+ {
+ "name": "doctrine/instantiator",
+ "version": "1.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/instantiator.git",
+ "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b",
+ "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^9 || ^11",
+ "ext-pdo": "*",
+ "ext-phar": "*",
+ "phpbench/phpbench": "^0.16 || ^1",
+ "phpstan/phpstan": "^1.4",
+ "phpstan/phpstan-phpunit": "^1",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "vimeo/psalm": "^4.30 || ^5.4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com",
+ "homepage": "https://ocramius.github.io/"
+ }
+ ],
+ "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
+ "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
+ "keywords": [
+ "constructor",
+ "instantiate"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/instantiator/issues",
+ "source": "https://github.com/doctrine/instantiator/tree/1.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-12-30T00:15:36+00:00"
+ },
+ {
+ "name": "myclabs/deep-copy",
+ "version": "1.11.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/myclabs/DeepCopy.git",
+ "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
+ "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "conflict": {
+ "doctrine/collections": "<1.6.8",
+ "doctrine/common": "<2.13.3 || >=3,<3.2.2"
+ },
+ "require-dev": {
+ "doctrine/collections": "^1.6.8",
+ "doctrine/common": "^2.13.3 || ^3.2.2",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/DeepCopy/deep_copy.php"
+ ],
+ "psr-4": {
+ "DeepCopy\\": "src/DeepCopy/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Create deep copies (clones) of your objects",
+ "keywords": [
+ "clone",
+ "copy",
+ "duplicate",
+ "object",
+ "object graph"
+ ],
+ "support": {
+ "issues": "https://github.com/myclabs/DeepCopy/issues",
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1"
+ },
+ "funding": [
+ {
+ "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-03-08T13:26:56+00:00"
+ },
+ {
+ "name": "nikic/php-parser",
+ "version": "v4.18.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nikic/PHP-Parser.git",
+ "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bcbb2179f97633e98bbbc87044ee2611c7d7999",
+ "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": ">=7.0"
+ },
+ "require-dev": {
+ "ircmaxell/php-yacc": "^0.0.7",
+ "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
+ },
+ "bin": [
+ "bin/php-parse"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.9-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PhpParser\\": "lib/PhpParser"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Nikita Popov"
+ }
+ ],
+ "description": "A PHP parser written in PHP",
+ "keywords": [
+ "parser",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/nikic/PHP-Parser/issues",
+ "source": "https://github.com/nikic/PHP-Parser/tree/v4.18.0"
+ },
+ "time": "2023-12-10T21:03:43+00:00"
+ },
+ {
+ "name": "phar-io/manifest",
+ "version": "2.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/manifest.git",
+ "reference": "97803eca37d319dfa7826cc2437fc020857acb53"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53",
+ "reference": "97803eca37d319dfa7826cc2437fc020857acb53",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-phar": "*",
+ "ext-xmlwriter": "*",
+ "phar-io/version": "^3.0.1",
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "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/2.0.3"
+ },
+ "time": "2021-07-20T11:28:43+00:00"
+ },
+ {
+ "name": "phar-io/version",
+ "version": "3.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/version.git",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Library for handling version information and constraints",
+ "support": {
+ "issues": "https://github.com/phar-io/version/issues",
+ "source": "https://github.com/phar-io/version/tree/3.2.1"
+ },
+ "time": "2022-02-21T01:04:05+00:00"
+ },
+ {
+ "name": "phpunit/php-code-coverage",
+ "version": "9.2.30",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+ "reference": "ca2bd87d2f9215904682a9cb9bb37dda98e76089"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ca2bd87d2f9215904682a9cb9bb37dda98e76089",
+ "reference": "ca2bd87d2f9215904682a9cb9bb37dda98e76089",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "ext-xmlwriter": "*",
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "php": ">=7.3",
+ "phpunit/php-file-iterator": "^3.0.3",
+ "phpunit/php-text-template": "^2.0.2",
+ "sebastian/code-unit-reverse-lookup": "^2.0.2",
+ "sebastian/complexity": "^2.0",
+ "sebastian/environment": "^5.1.2",
+ "sebastian/lines-of-code": "^1.0.3",
+ "sebastian/version": "^3.0.1",
+ "theseer/tokenizer": "^1.2.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-pcov": "PHP extension that provides line coverage",
+ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "9.2-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
+ "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
+ "keywords": [
+ "coverage",
+ "testing",
+ "xunit"
+ ],
+ "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/9.2.30"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-22T06:47:57+00:00"
+ },
+ {
+ "name": "phpunit/php-file-iterator",
+ "version": "3.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+ "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
+ "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "FilterIterator implementation that filters files based on a list of suffixes.",
+ "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+ "keywords": [
+ "filesystem",
+ "iterator"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2021-12-02T12:48:52+00:00"
+ },
+ {
+ "name": "phpunit/php-invoker",
+ "version": "3.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-invoker.git",
+ "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
+ "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "ext-pcntl": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-pcntl": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Invoke callables with a timeout",
+ "homepage": "https://github.com/sebastianbergmann/php-invoker/",
+ "keywords": [
+ "process"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
+ "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T05:58:55+00:00"
+ },
+ {
+ "name": "phpunit/php-text-template",
+ "version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
+ "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
+ "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Simple template engine.",
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+ "keywords": [
+ "template"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T05:33:50+00:00"
+ },
+ {
+ "name": "phpunit/php-timer",
+ "version": "5.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
+ "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
+ "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Utility class for timing",
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
+ "keywords": [
+ "timer"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-timer/issues",
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:16:10+00:00"
+ },
+ {
+ "name": "phpunit/phpunit",
+ "version": "9.6.17",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
+ "reference": "1a156980d78a6666721b7e8e8502fe210b587fcd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/1a156980d78a6666721b7e8e8502fe210b587fcd",
+ "reference": "1a156980d78a6666721b7e8e8502fe210b587fcd",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/instantiator": "^1.3.1 || ^2",
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-libxml": "*",
+ "ext-mbstring": "*",
+ "ext-xml": "*",
+ "ext-xmlwriter": "*",
+ "myclabs/deep-copy": "^1.10.1",
+ "phar-io/manifest": "^2.0.3",
+ "phar-io/version": "^3.0.2",
+ "php": ">=7.3",
+ "phpunit/php-code-coverage": "^9.2.28",
+ "phpunit/php-file-iterator": "^3.0.5",
+ "phpunit/php-invoker": "^3.1.1",
+ "phpunit/php-text-template": "^2.0.3",
+ "phpunit/php-timer": "^5.0.2",
+ "sebastian/cli-parser": "^1.0.1",
+ "sebastian/code-unit": "^1.0.6",
+ "sebastian/comparator": "^4.0.8",
+ "sebastian/diff": "^4.0.3",
+ "sebastian/environment": "^5.1.3",
+ "sebastian/exporter": "^4.0.5",
+ "sebastian/global-state": "^5.0.1",
+ "sebastian/object-enumerator": "^4.0.3",
+ "sebastian/resource-operations": "^3.0.3",
+ "sebastian/type": "^3.2",
+ "sebastian/version": "^3.0.2"
+ },
+ "suggest": {
+ "ext-soap": "To be able to generate mocks based on WSDL files",
+ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
+ },
+ "bin": [
+ "phpunit"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "9.6-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/Framework/Assert/Functions.php"
+ ],
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "The PHP Unit Testing framework.",
+ "homepage": "https://phpunit.de/",
+ "keywords": [
+ "phpunit",
+ "testing",
+ "xunit"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/phpunit/issues",
+ "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.17"
+ },
+ "funding": [
+ {
+ "url": "https://phpunit.de/sponsors.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-02-23T13:14:51+00:00"
+ },
+ {
+ "name": "sebastian/cli-parser",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/cli-parser.git",
+ "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2",
+ "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for parsing CLI options",
+ "homepage": "https://github.com/sebastianbergmann/cli-parser",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T06:08:49+00:00"
+ },
+ {
+ "name": "sebastian/code-unit",
+ "version": "1.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit.git",
+ "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120",
+ "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Collection of value objects that represent the PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/code-unit",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/code-unit/issues",
+ "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:08:54+00:00"
+ },
+ {
+ "name": "sebastian/code-unit-reverse-lookup",
+ "version": "2.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
+ "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
+ "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Looks up which function or method a line of code belongs to",
+ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
+ "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T05:30:19+00:00"
+ },
+ {
+ "name": "sebastian/comparator",
+ "version": "4.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/comparator.git",
+ "reference": "fa0f136dd2334583309d32b62544682ee972b51a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a",
+ "reference": "fa0f136dd2334583309d32b62544682ee972b51a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/diff": "^4.0",
+ "sebastian/exporter": "^4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@2bepublished.at"
+ }
+ ],
+ "description": "Provides the functionality to compare PHP values for equality",
+ "homepage": "https://github.com/sebastianbergmann/comparator",
+ "keywords": [
+ "comparator",
+ "compare",
+ "equality"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/comparator/issues",
+ "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2022-09-14T12:41:17+00:00"
+ },
+ {
+ "name": "sebastian/complexity",
+ "version": "2.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/complexity.git",
+ "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a",
+ "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for calculating the complexity of PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/complexity",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/complexity/issues",
+ "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-22T06:19:30+00:00"
+ },
+ {
+ "name": "sebastian/diff",
+ "version": "4.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/diff.git",
+ "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131",
+ "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3",
+ "symfony/process": "^4.2 || ^5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Kore Nordmann",
+ "email": "mail@kore-nordmann.de"
+ }
+ ],
+ "description": "Diff implementation",
+ "homepage": "https://github.com/sebastianbergmann/diff",
+ "keywords": [
+ "diff",
+ "udiff",
+ "unidiff",
+ "unified diff"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/diff/issues",
+ "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-05-07T05:35:17+00:00"
+ },
+ {
+ "name": "sebastian/environment",
+ "version": "5.1.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/environment.git",
+ "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
+ "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-posix": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides functionality to handle HHVM/PHP environments",
+ "homepage": "http://www.github.com/sebastianbergmann/environment",
+ "keywords": [
+ "Xdebug",
+ "environment",
+ "hhvm"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/environment/issues",
+ "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:03:51+00:00"
+ },
+ {
+ "name": "sebastian/exporter",
+ "version": "4.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/exporter.git",
+ "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
+ "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/recursion-context": "^4.0"
+ },
+ "require-dev": {
+ "ext-mbstring": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Provides the functionality to export PHP variables for visualization",
+ "homepage": "https://www.github.com/sebastianbergmann/exporter",
+ "keywords": [
+ "export",
+ "exporter"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/exporter/issues",
+ "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2022-09-14T06:03:37+00:00"
+ },
+ {
+ "name": "sebastian/global-state",
+ "version": "5.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/global-state.git",
+ "reference": "bde739e7565280bda77be70044ac1047bc007e34"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34",
+ "reference": "bde739e7565280bda77be70044ac1047bc007e34",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/object-reflector": "^2.0",
+ "sebastian/recursion-context": "^4.0"
+ },
+ "require-dev": {
+ "ext-dom": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-uopz": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Snapshotting of global state",
+ "homepage": "http://www.github.com/sebastianbergmann/global-state",
+ "keywords": [
+ "global state"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/global-state/issues",
+ "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-08-02T09:26:13+00:00"
+ },
+ {
+ "name": "sebastian/lines-of-code",
+ "version": "1.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/lines-of-code.git",
+ "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5",
+ "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for counting the lines of code in PHP source code",
+ "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/1.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-22T06:20:34+00:00"
+ },
+ {
+ "name": "sebastian/object-enumerator",
+ "version": "4.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-enumerator.git",
+ "reference": "5c9eeac41b290a3712d88851518825ad78f45c71"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71",
+ "reference": "5c9eeac41b290a3712d88851518825ad78f45c71",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/object-reflector": "^2.0",
+ "sebastian/recursion-context": "^4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Traverses array structures and object graphs to enumerate all referenced objects",
+ "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:12:34+00:00"
+ },
+ {
+ "name": "sebastian/object-reflector",
+ "version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-reflector.git",
+ "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
+ "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Allows reflection of object attributes, including inherited and non-public ones",
+ "homepage": "https://github.com/sebastianbergmann/object-reflector/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
+ "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:14:26+00:00"
+ },
+ {
+ "name": "sebastian/recursion-context",
+ "version": "4.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
+ "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
+ "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ }
+ ],
+ "description": "Provides functionality to recursively process PHP variables",
+ "homepage": "https://github.com/sebastianbergmann/recursion-context",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:07:39+00:00"
+ },
+ {
+ "name": "sebastian/resource-operations",
+ "version": "3.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/resource-operations.git",
+ "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
+ "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides a list of PHP built-in functions that operate on resources",
+ "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/resource-operations/issues",
+ "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T06:45:17+00:00"
+ },
+ {
+ "name": "sebastian/type",
+ "version": "3.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/type.git",
+ "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
+ "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.2-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Collection of value objects that represent the types of the PHP type system",
+ "homepage": "https://github.com/sebastianbergmann/type",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/type/issues",
+ "source": "https://github.com/sebastianbergmann/type/tree/3.2.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:13:03+00:00"
+ },
+ {
+ "name": "sebastian/version",
+ "version": "3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/version.git",
+ "reference": "c6c1022351a901512170118436c764e473f6de8c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c",
+ "reference": "c6c1022351a901512170118436c764e473f6de8c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that helps with managing the version number of Git-hosted PHP projects",
+ "homepage": "https://github.com/sebastianbergmann/version",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/version/issues",
+ "source": "https://github.com/sebastianbergmann/version/tree/3.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T06:39:44+00:00"
+ },
+ {
+ "name": "symplify/easy-coding-standard",
+ "version": "12.1.14",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/easy-coding-standard/easy-coding-standard.git",
+ "reference": "e3c4a241ee36704f7cf920d5931f39693e64afd5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/easy-coding-standard/easy-coding-standard/zipball/e3c4a241ee36704f7cf920d5931f39693e64afd5",
+ "reference": "e3c4a241ee36704f7cf920d5931f39693e64afd5",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "conflict": {
+ "friendsofphp/php-cs-fixer": "<3.46",
+ "phpcsstandards/php_codesniffer": "<3.8",
+ "symplify/coding-standard": "<12.1"
+ },
+ "bin": [
+ "bin/ecs"
+ ],
+ "type": "library",
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Use Coding Standard with 0-knowledge of PHP-CS-Fixer and PHP_CodeSniffer",
+ "keywords": [
+ "Code style",
+ "automation",
+ "fixer",
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/easy-coding-standard/easy-coding-standard/issues",
+ "source": "https://github.com/easy-coding-standard/easy-coding-standard/tree/12.1.14"
+ },
+ "funding": [
+ {
+ "url": "https://www.paypal.me/rectorphp",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/tomasvotruba",
+ "type": "github"
+ }
+ ],
+ "time": "2024-02-23T13:10:40+00:00"
+ },
+ {
+ "name": "theseer/tokenizer",
+ "version": "1.2.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/theseer/tokenizer.git",
+ "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
+ "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-tokenizer": "*",
+ "ext-xmlwriter": "*",
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ }
+ ],
+ "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.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/theseer",
+ "type": "github"
+ }
+ ],
+ "time": "2023-11-20T00:12:19+00:00"
+ }
+ ],
+ "aliases": [],
+ "minimum-stability": "stable",
+ "stability-flags": [],
+ "prefer-stable": false,
+ "prefer-lowest": false,
+ "platform": {
+ "php": ">=7.3",
+ "lib-pcre": ">=7.0"
+ },
+ "platform-dev": [],
+ "platform-overrides": {
+ "php": "7.3.999"
+ },
+ "plugin-api-version": "2.6.0"
+}
diff --git a/api/vendor/mockery/mockery/docs/.gitignore b/api/vendor/mockery/mockery/docs/.gitignore
new file mode 100644
index 0000000000..e35d8850c9
--- /dev/null
+++ b/api/vendor/mockery/mockery/docs/.gitignore
@@ -0,0 +1 @@
+_build
diff --git a/api/vendor/mockery/mockery/docs/Makefile b/api/vendor/mockery/mockery/docs/Makefile
new file mode 100644
index 0000000000..9a8c94087c
--- /dev/null
+++ b/api/vendor/mockery/mockery/docs/Makefile
@@ -0,0 +1,177 @@
+# Makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS =
+SPHINXBUILD = sphinx-build
+PAPER =
+BUILDDIR = _build
+
+# User-friendly check for sphinx-build
+ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
+$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
+endif
+
+# Internal variables.
+PAPEROPT_a4 = -D latex_paper_size=a4
+PAPEROPT_letter = -D latex_paper_size=letter
+ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+# the i18n builder cannot share the environment and doctrees with the others
+I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+
+.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
+
+help:
+ @echo "Please use \`make ' where is one of"
+ @echo " html to make standalone HTML files"
+ @echo " dirhtml to make HTML files named index.html in directories"
+ @echo " singlehtml to make a single large HTML file"
+ @echo " pickle to make pickle files"
+ @echo " json to make JSON files"
+ @echo " htmlhelp to make HTML files and a HTML help project"
+ @echo " qthelp to make HTML files and a qthelp project"
+ @echo " devhelp to make HTML files and a Devhelp project"
+ @echo " epub to make an epub"
+ @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
+ @echo " latexpdf to make LaTeX files and run them through pdflatex"
+ @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
+ @echo " text to make text files"
+ @echo " man to make manual pages"
+ @echo " texinfo to make Texinfo files"
+ @echo " info to make Texinfo files and run them through makeinfo"
+ @echo " gettext to make PO message catalogs"
+ @echo " changes to make an overview of all changed/added/deprecated items"
+ @echo " xml to make Docutils-native XML files"
+ @echo " pseudoxml to make pseudoxml-XML files for display purposes"
+ @echo " linkcheck to check all external links for integrity"
+ @echo " doctest to run all doctests embedded in the documentation (if enabled)"
+
+clean:
+ rm -rf $(BUILDDIR)/*
+
+html:
+ $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
+ @echo
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
+
+dirhtml:
+ $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
+ @echo
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
+
+singlehtml:
+ $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
+ @echo
+ @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
+
+pickle:
+ $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
+ @echo
+ @echo "Build finished; now you can process the pickle files."
+
+json:
+ $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
+ @echo
+ @echo "Build finished; now you can process the JSON files."
+
+htmlhelp:
+ $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
+ @echo
+ @echo "Build finished; now you can run HTML Help Workshop with the" \
+ ".hhp project file in $(BUILDDIR)/htmlhelp."
+
+qthelp:
+ $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
+ @echo
+ @echo "Build finished; now you can run "qcollectiongenerator" with the" \
+ ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
+ @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/MockeryDocs.qhcp"
+ @echo "To view the help file:"
+ @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/MockeryDocs.qhc"
+
+devhelp:
+ $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
+ @echo
+ @echo "Build finished."
+ @echo "To view the help file:"
+ @echo "# mkdir -p $$HOME/.local/share/devhelp/MockeryDocs"
+ @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/MockeryDocs"
+ @echo "# devhelp"
+
+epub:
+ $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
+ @echo
+ @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
+
+latex:
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+ @echo
+ @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
+ @echo "Run \`make' in that directory to run these through (pdf)latex" \
+ "(use \`make latexpdf' here to do that automatically)."
+
+latexpdf:
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+ @echo "Running LaTeX files through pdflatex..."
+ $(MAKE) -C $(BUILDDIR)/latex all-pdf
+ @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
+latexpdfja:
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+ @echo "Running LaTeX files through platex and dvipdfmx..."
+ $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
+ @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
+text:
+ $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
+ @echo
+ @echo "Build finished. The text files are in $(BUILDDIR)/text."
+
+man:
+ $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
+ @echo
+ @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
+
+texinfo:
+ $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
+ @echo
+ @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
+ @echo "Run \`make' in that directory to run these through makeinfo" \
+ "(use \`make info' here to do that automatically)."
+
+info:
+ $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
+ @echo "Running Texinfo files through makeinfo..."
+ make -C $(BUILDDIR)/texinfo info
+ @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
+
+gettext:
+ $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
+ @echo
+ @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
+
+changes:
+ $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
+ @echo
+ @echo "The overview file is in $(BUILDDIR)/changes."
+
+linkcheck:
+ $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
+ @echo
+ @echo "Link check complete; look for any errors in the above output " \
+ "or in $(BUILDDIR)/linkcheck/output.txt."
+
+doctest:
+ $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
+ @echo "Testing of doctests in the sources finished, look at the " \
+ "results in $(BUILDDIR)/doctest/output.txt."
+
+xml:
+ $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
+ @echo
+ @echo "Build finished. The XML files are in $(BUILDDIR)/xml."
+
+pseudoxml:
+ $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
+ @echo
+ @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
diff --git a/api/vendor/mockery/mockery/docs/_static/.gitkeep b/api/vendor/mockery/mockery/docs/_static/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/api/vendor/mockery/mockery/docs/conf.py b/api/vendor/mockery/mockery/docs/conf.py
index 901f040560..d0f6960008 100644
--- a/api/vendor/mockery/mockery/docs/conf.py
+++ b/api/vendor/mockery/mockery/docs/conf.py
@@ -30,6 +30,7 @@
# ones.
extensions = [
'sphinx.ext.todo',
+ 'sphinx_rtd_theme',
]
# Add any paths that contain templates here, relative to this directory.
@@ -53,9 +54,9 @@
# built documents.
#
# The short X.Y version.
-version = '1.0'
+version = '1.6'
# The full version, including alpha/beta/rc tags.
-release = '1.0-alpha'
+release = '1.6.x'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
@@ -100,7 +101,7 @@
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
-html_theme = 'default'
+html_theme = 'sphinx_rtd_theme'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
@@ -256,7 +257,7 @@
import sphinx_rtd_theme
html_theme = 'sphinx_rtd_theme'
html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
- print sphinx_rtd_theme.get_html_theme_path()
+ print(sphinx_rtd_theme.get_html_theme_path())
# load PhpLexer
from sphinx.highlighting import lexers
diff --git a/api/vendor/mockery/mockery/docs/getting_started/upgrading.rst b/api/vendor/mockery/mockery/docs/getting_started/upgrading.rst
index 7201e59732..8a17dfdad5 100644
--- a/api/vendor/mockery/mockery/docs/getting_started/upgrading.rst
+++ b/api/vendor/mockery/mockery/docs/getting_started/upgrading.rst
@@ -30,7 +30,7 @@ Read the documentation for a detailed overview of ":doc:`/reference/phpunit_inte
+++++++++++++++++++++++++++++++++++++++++
As of 1.0.0 the ``\Mockery\Matcher\MustBe`` matcher is deprecated and will be removed in
-Mockery 2.0.0. We recommend instead to use the PHPUnit or Hamcrest equivalents of the
+Mockery 2.0.0. We recommend instead to use the PHPUnit equivalents of the
MustBe matcher.
``allows`` and ``expects``
diff --git a/api/vendor/mockery/mockery/docs/reference/creating_test_doubles.rst b/api/vendor/mockery/mockery/docs/reference/creating_test_doubles.rst
index 6f8f8c3f1c..b675514b11 100644
--- a/api/vendor/mockery/mockery/docs/reference/creating_test_doubles.rst
+++ b/api/vendor/mockery/mockery/docs/reference/creating_test_doubles.rst
@@ -419,7 +419,7 @@ additional modifier:
\Mockery::mock('MyClass')->shouldIgnoreMissing()->asUndefined();
The returned object is nothing more than a placeholder so if, by some act of
-fate, it's erroneously used somewhere it shouldn't it will likely not pass a
+fate, it's erroneously used somewhere it shouldn't, it will likely not pass a
logic check.
We have encountered the ``makePartial()`` method before, as it is the method we
diff --git a/api/vendor/mockery/mockery/docs/reference/expectations.rst b/api/vendor/mockery/mockery/docs/reference/expectations.rst
index 608aaef1ae..4430e97836 100644
--- a/api/vendor/mockery/mockery/docs/reference/expectations.rst
+++ b/api/vendor/mockery/mockery/docs/reference/expectations.rst
@@ -459,7 +459,7 @@ also works if we expect multiple calls to different methods.
$mock = \Mockery::mock('MyClass');
// Expectations for the 1st call
- $mock->shouldReceive('name_of_method');
+ $mock->shouldReceive('name_of_method')
->once()
->with('arg1')
->andReturn($value1)
diff --git a/api/vendor/mockery/mockery/docs/reference/index.rst b/api/vendor/mockery/mockery/docs/reference/index.rst
index 1e5bf04814..7d6a0389b8 100644
--- a/api/vendor/mockery/mockery/docs/reference/index.rst
+++ b/api/vendor/mockery/mockery/docs/reference/index.rst
@@ -9,6 +9,7 @@ Reference
argument_validation
alternative_should_receive_syntax
spies
+ instance_mocking
partial_mocks
protected_methods
public_properties
diff --git a/api/vendor/mockery/mockery/docs/reference/spies.rst b/api/vendor/mockery/mockery/docs/reference/spies.rst
index 9a699cbf9e..1663918691 100644
--- a/api/vendor/mockery/mockery/docs/reference/spies.rst
+++ b/api/vendor/mockery/mockery/docs/reference/spies.rst
@@ -18,7 +18,7 @@ Spies also allow us to follow the more familiar Arrange-Act-Assert or
Given-When-Then style within our tests. With mocks, we have to follow a less
familiar style, something along the lines of Arrange-Expect-Act-Assert, where
we have to tell our mocks what to expect before we act on the SUT, then assert
-that those expectations where met:
+that those expectations were met:
.. code-block:: php
diff --git a/api/vendor/mockery/mockery/docs/requirements.txt b/api/vendor/mockery/mockery/docs/requirements.txt
new file mode 100644
index 0000000000..2f74b4c0e5
--- /dev/null
+++ b/api/vendor/mockery/mockery/docs/requirements.txt
@@ -0,0 +1,25 @@
+alabaster==0.7.16
+Babel==2.14.0
+certifi==2024.2.2
+charset-normalizer==3.3.2
+docutils==0.20.1
+idna==3.7
+imagesize==1.4.1
+Jinja2==3.1.4
+MarkupSafe==2.1.5
+packaging==24.0
+Pygments==2.17.2
+requests==2.31.0
+setuptools==69.2.0
+snowballstemmer==2.2.0
+Sphinx==7.3.7
+sphinx-rtd-theme==2.0.0
+sphinxcontrib-applehelp==1.0.8
+sphinxcontrib-devhelp==1.0.6
+sphinxcontrib-htmlhelp==2.0.5
+sphinxcontrib-jquery==4.1
+sphinxcontrib-jsmath==1.0.1
+sphinxcontrib-qthelp==1.0.7
+sphinxcontrib-serializinghtml==1.1.10
+urllib3==2.2.1
+wheel==0.43.0
diff --git a/api/vendor/mockery/mockery/library/Mockery.php b/api/vendor/mockery/mockery/library/Mockery.php
index 95abd1b9dd..1370cea07d 100644
--- a/api/vendor/mockery/mockery/library/Mockery.php
+++ b/api/vendor/mockery/mockery/library/Mockery.php
@@ -1,184 +1,154 @@
*/
private static $_filesToCleanUp = [];
/**
- * Defines the global helper functions
+ * Return instance of AndAnyOtherArgs matcher.
*
- * @return void
+ * @return AndAnyOtherArgs
*/
- public static function globalHelpers()
+ public static function andAnyOtherArgs()
{
- require_once __DIR__ . '/helpers.php';
+ return new AndAnyOtherArgs();
}
/**
- * @return array
+ * Return instance of AndAnyOtherArgs matcher.
*
- * @deprecated since 1.3.2 and will be removed in 2.0.
- */
- public static function builtInTypes()
- {
- return array(
- 'array',
- 'bool',
- 'callable',
- 'float',
- 'int',
- 'iterable',
- 'object',
- 'self',
- 'string',
- 'void',
- );
- }
-
- /**
- * @param string $type
- * @return bool
+ * An alternative name to `andAnyOtherArgs` so
+ * the API stays closer to `any` as well.
*
- * @deprecated since 1.3.2 and will be removed in 2.0.
+ * @return AndAnyOtherArgs
*/
- public static function isBuiltInType($type)
+ public static function andAnyOthers()
{
- return in_array($type, \Mockery::builtInTypes());
+ return new AndAnyOtherArgs();
}
/**
- * Static shortcut to \Mockery\Container::mock().
- *
- * @param mixed ...$args
+ * Return instance of ANY matcher.
*
- * @return \Mockery\MockInterface|\Mockery\LegacyMockInterface
+ * @return Any
*/
- public static function mock(...$args)
+ public static function any()
{
- return call_user_func_array(array(self::getContainer(), 'mock'), $args);
+ return new Any();
}
/**
- * Static and semantic shortcut for getting a mock from the container
- * and applying the spy's expected behavior into it.
- *
- * @param mixed ...$args
+ * Return instance of ANYOF matcher.
*
- * @return \Mockery\MockInterface|\Mockery\LegacyMockInterface
- */
- public static function spy(...$args)
- {
- if (count($args) && $args[0] instanceof \Closure) {
- $args[0] = new ClosureWrapper($args[0]);
- }
-
- return call_user_func_array(array(self::getContainer(), 'mock'), $args)->shouldIgnoreMissing();
- }
-
- /**
- * Static and Semantic shortcut to \Mockery\Container::mock().
+ * @template TAnyOf
*
- * @param mixed ...$args
+ * @param TAnyOf ...$args
*
- * @return \Mockery\MockInterface|\Mockery\LegacyMockInterface
+ * @return AnyOf
*/
- public static function instanceMock(...$args)
+ public static function anyOf(...$args)
{
- return call_user_func_array(array(self::getContainer(), 'mock'), $args);
+ return new AnyOf($args);
}
/**
- * Static shortcut to \Mockery\Container::mock(), first argument names the mock.
- *
- * @param mixed ...$args
+ * @return array
*
- * @return \Mockery\MockInterface|\Mockery\LegacyMockInterface
+ * @deprecated since 1.3.2 and will be removed in 2.0.
*/
- public static function namedMock(...$args)
+ public static function builtInTypes()
{
- $name = array_shift($args);
-
- $builder = new MockConfigurationBuilder();
- $builder->setName($name);
-
- array_unshift($args, $builder);
-
- return call_user_func_array(array(self::getContainer(), 'mock'), $args);
+ return ['array', 'bool', 'callable', 'float', 'int', 'iterable', 'object', 'self', 'string', 'void'];
}
/**
- * Static shortcut to \Mockery\Container::self().
+ * Return instance of CLOSURE matcher.
*
- * @throws LogicException
+ * @template TReference
*
- * @return \Mockery\MockInterface|\Mockery\LegacyMockInterface
+ * @param TReference $reference
+ *
+ * @return ClosureMatcher
*/
- public static function self()
+ public static function capture(&$reference)
{
- if (is_null(self::$_container)) {
- throw new \LogicException('You have not declared any mocks yet');
- }
+ $closure = static function ($argument) use (&$reference) {
+ $reference = $argument;
+ return true;
+ };
- return self::$_container->self();
+ return new ClosureMatcher($closure);
}
/**
@@ -190,543 +160,672 @@ public static function self()
public static function close()
{
foreach (self::$_filesToCleanUp as $fileName) {
- @unlink($fileName);
+ @\unlink($fileName);
}
+
self::$_filesToCleanUp = [];
- if (is_null(self::$_container)) {
+ if (self::$_container === null) {
return;
}
$container = self::$_container;
+
self::$_container = null;
$container->mockery_teardown();
+
$container->mockery_close();
}
/**
- * Static fetching of a mock associated with a name or explicit class poser.
+ * Return instance of CONTAINS matcher.
+ *
+ * @template TContains
*
- * @param string $name
+ * @param TContains $args
*
- * @return \Mockery\Mock
+ * @return Contains
*/
- public static function fetchMock($name)
+ public static function contains(...$args)
{
- return self::getContainer()->fetchMock($name);
+ return new Contains($args);
}
/**
- * Lazy loader and getter for
- * the container property.
+ * @param class-string $fqn
*
- * @return Mockery\Container
+ * @return void
*/
- public static function getContainer()
+ public static function declareClass($fqn)
{
- if (is_null(self::$_container)) {
- self::$_container = new Mockery\Container(self::getGenerator(), self::getLoader());
- }
-
- return self::$_container;
+ static::declareType($fqn, 'class');
}
/**
- * Setter for the $_generator static property.
+ * @param class-string $fqn
*
- * @param \Mockery\Generator\Generator $generator
+ * @return void
*/
- public static function setGenerator(Generator $generator)
+ public static function declareInterface($fqn)
{
- self::$_generator = $generator;
+ static::declareType($fqn, 'interface');
}
/**
- * Lazy loader method and getter for
- * the generator property.
+ * Return instance of DUCKTYPE matcher.
*
- * @return Generator
+ * @template TDucktype
+ *
+ * @param TDucktype ...$args
+ *
+ * @return Ducktype
*/
- public static function getGenerator()
+ public static function ducktype(...$args)
{
- if (is_null(self::$_generator)) {
- self::$_generator = self::getDefaultGenerator();
- }
-
- return self::$_generator;
+ return new Ducktype($args);
}
/**
- * Creates and returns a default generator
- * used inside this class.
+ * Static fetching of a mock associated with a name or explicit class poser.
*
- * @return CachingGenerator
+ * @template TFetchMock of object
+ *
+ * @param class-string $name
+ *
+ * @return null|(LegacyMockInterface&MockInterface&TFetchMock)
*/
- public static function getDefaultGenerator()
+ public static function fetchMock($name)
{
- return new CachingGenerator(StringManipulationGenerator::withDefaultPasses());
+ return self::getContainer()->fetchMock($name);
}
/**
- * Setter for the $_loader static property.
+ * Utility method to format method name and arguments into a string.
*
- * @param Loader $loader
+ * @param string $method
+ *
+ * @return string
*/
- public static function setLoader(Loader $loader)
+ public static function formatArgs($method, ?array $arguments = null)
{
- self::$_loader = $loader;
+ if ($arguments === null) {
+ return $method . '()';
+ }
+
+ $formattedArguments = [];
+ foreach ($arguments as $argument) {
+ $formattedArguments[] = self::formatArgument($argument);
+ }
+
+ return $method . '(' . \implode(', ', $formattedArguments) . ')';
}
/**
- * Lazy loader method and getter for
- * the $_loader property.
+ * Utility function to format objects to printable arrays.
*
- * @return Loader
+ * @return string
*/
- public static function getLoader()
+ public static function formatObjects(?array $objects = null)
{
- if (is_null(self::$_loader)) {
- self::$_loader = self::getDefaultLoader();
+ static $formatting;
+
+ if ($formatting) {
+ return '[Recursion]';
}
- return self::$_loader;
+ if ($objects === null) {
+ return '';
+ }
+
+ $objects = \array_filter($objects, 'is_object');
+ if ($objects === []) {
+ return '';
+ }
+
+ $formatting = true;
+ $parts = [];
+
+ foreach ($objects as $object) {
+ $parts[\get_class($object)] = self::objectToArray($object);
+ }
+
+ $formatting = false;
+
+ return 'Objects: ( ' . \var_export($parts, true) . ')';
}
/**
- * Gets an EvalLoader to be used as default.
+ * Lazy loader and Getter for the global
+ * configuration container.
*
- * @return EvalLoader
+ * @return Configuration
*/
- public static function getDefaultLoader()
+ public static function getConfiguration()
{
- return new EvalLoader();
+ if (self::$_config === null) {
+ self::$_config = new Configuration();
+ }
+
+ return self::$_config;
}
/**
- * Set the container.
+ * Lazy loader and getter for the container property.
*
- * @param \Mockery\Container $container
- *
- * @return \Mockery\Container
+ * @return Container
*/
- public static function setContainer(Mockery\Container $container)
+ public static function getContainer()
{
- return self::$_container = $container;
+ if (self::$_container === null) {
+ self::$_container = new Container(self::getGenerator(), self::getLoader());
+ }
+
+ return self::$_container;
}
/**
- * Reset the container to null.
+ * Creates and returns a default generator
+ * used inside this class.
*
- * @return void
+ * @return CachingGenerator
*/
- public static function resetContainer()
+ public static function getDefaultGenerator()
{
- self::$_container = null;
+ return new CachingGenerator(StringManipulationGenerator::withDefaultPasses());
}
/**
- * Return instance of ANY matcher.
+ * Gets an EvalLoader to be used as default.
*
- * @return \Mockery\Matcher\Any
+ * @return EvalLoader
*/
- public static function any()
+ public static function getDefaultLoader()
{
- return new \Mockery\Matcher\Any();
+ return new EvalLoader();
}
/**
- * Return instance of AndAnyOtherArgs matcher.
- *
- * An alternative name to `andAnyOtherArgs` so
- * the API stays closer to `any` as well.
+ * Lazy loader method and getter for
+ * the generator property.
*
- * @return \Mockery\Matcher\AndAnyOtherArgs
+ * @return Generator
*/
- public static function andAnyOthers()
+ public static function getGenerator()
{
- return new \Mockery\Matcher\AndAnyOtherArgs();
+ if (self::$_generator === null) {
+ self::$_generator = self::getDefaultGenerator();
+ }
+
+ return self::$_generator;
}
/**
- * Return instance of AndAnyOtherArgs matcher.
+ * Lazy loader method and getter for
+ * the $_loader property.
*
- * @return \Mockery\Matcher\AndAnyOtherArgs
+ * @return Loader
*/
- public static function andAnyOtherArgs()
+ public static function getLoader()
{
- return new \Mockery\Matcher\AndAnyOtherArgs();
+ if (self::$_loader === null) {
+ self::$_loader = self::getDefaultLoader();
+ }
+
+ return self::$_loader;
}
/**
- * Return instance of TYPE matcher.
- *
- * @param mixed $expected
+ * Defines the global helper functions
*
- * @return \Mockery\Matcher\Type
+ * @return void
*/
- public static function type($expected)
+ public static function globalHelpers()
{
- return new \Mockery\Matcher\Type($expected);
+ require_once __DIR__ . '/helpers.php';
}
/**
- * Return instance of DUCKTYPE matcher.
+ * Return instance of HASKEY matcher.
+ *
+ * @template THasKey
*
- * @param array ...$args
+ * @param THasKey $key
*
- * @return \Mockery\Matcher\Ducktype
+ * @return HasKey
*/
- public static function ducktype(...$args)
+ public static function hasKey($key)
{
- return new \Mockery\Matcher\Ducktype($args);
+ return new HasKey($key);
}
/**
- * Return instance of SUBSET matcher.
+ * Return instance of HASVALUE matcher.
*
- * @param array $part
- * @param bool $strict - (Optional) True for strict comparison, false for loose
+ * @template THasValue
+ *
+ * @param THasValue $val
*
- * @return \Mockery\Matcher\Subset
+ * @return HasValue
*/
- public static function subset(array $part, $strict = true)
+ public static function hasValue($val)
{
- return new \Mockery\Matcher\Subset($part, $strict);
+ return new HasValue($val);
}
/**
- * Return instance of CONTAINS matcher.
+ * Static and Semantic shortcut to Container::mock().
+ *
+ * @template TInstanceMock
*
- * @param mixed $args
+ * @param array|TInstanceMock|array> $args
*
- * @return \Mockery\Matcher\Contains
+ * @return LegacyMockInterface&MockInterface&TInstanceMock
*/
- public static function contains(...$args)
+ public static function instanceMock(...$args)
{
- return new \Mockery\Matcher\Contains($args);
+ return self::getContainer()->mock(...$args);
}
/**
- * Return instance of HASKEY matcher.
+ * @param string $type
*
- * @param mixed $key
+ * @return bool
*
- * @return \Mockery\Matcher\HasKey
+ * @deprecated since 1.3.2 and will be removed in 2.0.
*/
- public static function hasKey($key)
+ public static function isBuiltInType($type)
{
- return new \Mockery\Matcher\HasKey($key);
+ return \in_array($type, self::builtInTypes(), true);
}
/**
- * Return instance of HASVALUE matcher.
+ * Return instance of IsEqual matcher.
*
- * @param mixed $val
+ * @template TExpected
*
- * @return \Mockery\Matcher\HasValue
+ * @param TExpected $expected
*/
- public static function hasValue($val)
+ public static function isEqual($expected): IsEqual
{
- return new \Mockery\Matcher\HasValue($val);
+ return new IsEqual($expected);
}
/**
- * Return instance of CLOSURE matcher.
+ * Return instance of IsSame matcher.
*
- * @param $reference
+ * @template TExpected
*
- * @return \Mockery\Matcher\Closure
+ * @param TExpected $expected
*/
- public static function capture(&$reference)
+ public static function isSame($expected): IsSame
{
- $closure = function ($argument) use (&$reference) {
- $reference = $argument;
- return true;
- };
-
- return new \Mockery\Matcher\Closure($closure);
+ return new IsSame($expected);
}
/**
- * Return instance of CLOSURE matcher.
+ * Static shortcut to Container::mock().
+ *
+ * @template TMock of object
*
- * @param mixed $closure
+ * @param array|TMock|Closure(LegacyMockInterface&MockInterface&TMock):LegacyMockInterface&MockInterface&TMock|array> $args
*
- * @return \Mockery\Matcher\Closure
+ * @return LegacyMockInterface&MockInterface&TMock
*/
- public static function on($closure)
+ public static function mock(...$args)
{
- return new \Mockery\Matcher\Closure($closure);
+ return self::getContainer()->mock(...$args);
}
/**
* Return instance of MUSTBE matcher.
*
- * @param mixed $expected
+ * @template TExpected
*
- * @return \Mockery\Matcher\MustBe
+ * @param TExpected $expected
+ *
+ * @return MustBe
*/
public static function mustBe($expected)
{
- return new \Mockery\Matcher\MustBe($expected);
+ return new MustBe($expected);
}
/**
- * Return instance of NOT matcher.
+ * Static shortcut to Container::mock(), first argument names the mock.
*
- * @param mixed $expected
+ * @template TNamedMock
*
- * @return \Mockery\Matcher\Not
+ * @param array|TNamedMock|array> $args
+ *
+ * @return LegacyMockInterface&MockInterface&TNamedMock
*/
- public static function not($expected)
+ public static function namedMock(...$args)
{
- return new \Mockery\Matcher\Not($expected);
- }
+ $name = \array_shift($args);
- /**
- * Return instance of ANYOF matcher.
+ $builder = new MockConfigurationBuilder();
+ $builder->setName($name);
+
+ \array_unshift($args, $builder);
+
+ return self::getContainer()->mock(...$args);
+ }
+
+ /**
+ * Return instance of NOT matcher.
+ *
+ * @template TNotExpected
*
- * @param array ...$args
+ * @param TNotExpected $expected
*
- * @return \Mockery\Matcher\AnyOf
+ * @return Not
*/
- public static function anyOf(...$args)
+ public static function not($expected)
{
- return new \Mockery\Matcher\AnyOf($args);
+ return new Not($expected);
}
/**
* Return instance of NOTANYOF matcher.
*
- * @param array ...$args
+ * @template TNotAnyOf
+ *
+ * @param TNotAnyOf ...$args
*
- * @return \Mockery\Matcher\NotAnyOf
+ * @return NotAnyOf
*/
public static function notAnyOf(...$args)
{
- return new \Mockery\Matcher\NotAnyOf($args);
+ return new NotAnyOf($args);
}
/**
- * Return instance of PATTERN matcher.
+ * Return instance of CLOSURE matcher.
+ *
+ * @template TClosure of Closure
*
- * @param mixed $expected
+ * @param TClosure $closure
*
- * @return \Mockery\Matcher\Pattern
+ * @return ClosureMatcher
*/
- public static function pattern($expected)
+ public static function on($closure)
{
- return new \Mockery\Matcher\Pattern($expected);
+ return new ClosureMatcher($closure);
}
/**
- * Lazy loader and Getter for the global
- * configuration container.
+ * Utility function to parse shouldReceive() arguments and generate
+ * expectations from such as needed.
+ *
+ * @template TReturnArgs
+ *
+ * @param TReturnArgs ...$args
+ * @param Closure $add
*
- * @return \Mockery\Configuration
+ * @return CompositeExpectation
*/
- public static function getConfiguration()
+ public static function parseShouldReturnArgs(LegacyMockInterface $mock, $args, $add)
{
- if (is_null(self::$_config)) {
- self::$_config = new \Mockery\Configuration();
+ $composite = new CompositeExpectation();
+
+ foreach ($args as $arg) {
+ if (\is_string($arg)) {
+ $composite->add(self::buildDemeterChain($mock, $arg, $add));
+
+ continue;
+ }
+
+ if (\is_array($arg)) {
+ foreach ($arg as $k => $v) {
+ $composite->add(self::buildDemeterChain($mock, $k, $add)->andReturn($v));
+ }
+ }
}
- return self::$_config;
+ return $composite;
}
/**
- * Utility method to format method name and arguments into a string.
+ * Return instance of PATTERN matcher.
*
- * @param string $method
- * @param array $arguments
+ * @template TPatter
*
- * @return string
+ * @param TPatter $expected
+ *
+ * @return Pattern
*/
- public static function formatArgs($method, array $arguments = null)
+ public static function pattern($expected)
{
- if (is_null($arguments)) {
- return $method . '()';
- }
+ return new Pattern($expected);
+ }
- $formattedArguments = array();
- foreach ($arguments as $argument) {
- $formattedArguments[] = self::formatArgument($argument);
- }
+ /**
+ * Register a file to be deleted on tearDown.
+ *
+ * @param string $fileName
+ */
+ public static function registerFileForCleanUp($fileName)
+ {
+ self::$_filesToCleanUp[] = $fileName;
+ }
- return $method . '(' . implode(', ', $formattedArguments) . ')';
+ /**
+ * Reset the container to null.
+ *
+ * @return void
+ */
+ public static function resetContainer()
+ {
+ self::$_container = null;
}
/**
- * Gets the string representation
- * of any passed argument.
+ * Static shortcut to Container::self().
*
- * @param mixed $argument
- * @param int $depth
+ * @throws LogicException
*
- * @return mixed
+ * @return LegacyMockInterface|MockInterface
*/
- private static function formatArgument($argument, $depth = 0)
+ public static function self()
{
- if ($argument instanceof MatcherAbstract) {
- return (string) $argument;
- }
-
- if (is_object($argument)) {
- return 'object(' . get_class($argument) . ')';
- }
-
- if (is_int($argument) || is_float($argument)) {
- return $argument;
- }
-
- if (is_array($argument)) {
- if ($depth === 1) {
- $argument = '[...]';
- } else {
- $sample = array();
- foreach ($argument as $key => $value) {
- $key = is_int($key) ? $key : "'$key'";
- $value = self::formatArgument($value, $depth + 1);
- $sample[] = "$key => $value";
- }
-
- $argument = "[" . implode(", ", $sample) . "]";
- }
-
- return ((strlen($argument) > 1000) ? substr($argument, 0, 1000) . '...]' : $argument);
+ if (self::$_container === null) {
+ throw new LogicException('You have not declared any mocks yet');
}
- if (is_bool($argument)) {
- return $argument ? 'true' : 'false';
- }
+ return self::$_container->self();
+ }
- if (is_resource($argument)) {
- return 'resource(...)';
- }
+ /**
+ * Set the container.
+ *
+ * @return Container
+ */
+ public static function setContainer(Container $container)
+ {
+ return self::$_container = $container;
+ }
- if (is_null($argument)) {
- return 'NULL';
- }
+ /**
+ * Setter for the $_generator static property.
+ */
+ public static function setGenerator(Generator $generator)
+ {
+ self::$_generator = $generator;
+ }
- return "'" . (string) $argument . "'";
+ /**
+ * Setter for the $_loader static property.
+ */
+ public static function setLoader(Loader $loader)
+ {
+ self::$_loader = $loader;
}
/**
- * Utility function to format objects to printable arrays.
+ * Static and semantic shortcut for getting a mock from the container
+ * and applying the spy's expected behavior into it.
*
- * @param array $objects
+ * @template TSpy
*
- * @return string
+ * @param array|TSpy|Closure(LegacyMockInterface&MockInterface&TSpy):LegacyMockInterface&MockInterface&TSpy|array> $args
+ *
+ * @return LegacyMockInterface&MockInterface&TSpy
*/
- public static function formatObjects(array $objects = null)
+ public static function spy(...$args)
{
- static $formatting;
-
- if ($formatting) {
- return '[Recursion]';
- }
-
- if (is_null($objects)) {
- return '';
- }
-
- $objects = array_filter($objects, 'is_object');
- if (empty($objects)) {
- return '';
+ if ($args !== [] && $args[0] instanceof Closure) {
+ $args[0] = new ClosureWrapper($args[0]);
}
- $formatting = true;
- $parts = array();
-
- foreach ($objects as $object) {
- $parts[get_class($object)] = self::objectToArray($object);
- }
+ return self::getContainer()->mock(...$args)->shouldIgnoreMissing();
+ }
- $formatting = false;
+ /**
+ * Return instance of SUBSET matcher.
+ *
+ * @param bool $strict - (Optional) True for strict comparison, false for loose
+ *
+ * @return Subset
+ */
+ public static function subset(array $part, $strict = true)
+ {
+ return new Subset($part, $strict);
+ }
- return 'Objects: ( ' . var_export($parts, true) . ')';
+ /**
+ * Return instance of TYPE matcher.
+ *
+ * @template TExpectedType
+ *
+ * @param TExpectedType $expected
+ *
+ * @return Type
+ */
+ public static function type($expected)
+ {
+ return new Type($expected);
}
/**
- * Utility function to turn public properties and public get* and is* method values into an array.
+ * Sets up expectations on the members of the CompositeExpectation and
+ * builds up any demeter chain that was passed to shouldReceive.
*
- * @param object $object
- * @param int $nesting
+ * @param string $arg
+ * @param Closure $add
*
- * @return array
+ * @throws MockeryException
+ *
+ * @return ExpectationInterface
*/
- private static function objectToArray($object, $nesting = 3)
+ protected static function buildDemeterChain(LegacyMockInterface $mock, $arg, $add)
{
- if ($nesting == 0) {
- return array('...');
+ $container = $mock->mockery_getContainer();
+ $methodNames = \explode('->', $arg);
+
+ \reset($methodNames);
+
+ if (
+ ! $mock->mockery_isAnonymous()
+ && ! self::getConfiguration()->mockingNonExistentMethodsAllowed()
+ && ! \in_array(\current($methodNames), $mock->mockery_getMockableMethods(), true)
+ ) {
+ throw new MockeryException(
+ "Mockery's configuration currently forbids mocking the method "
+ . \current($methodNames) . ' as it does not exist on the class or object '
+ . 'being mocked'
+ );
}
- $defaultFormatter = function ($object, $nesting) {
- return array('properties' => self::extractInstancePublicProperties($object, $nesting));
+ /** @var Closure $nextExp */
+ $nextExp = static function ($method) use ($add) {
+ return $add($method);
};
- $class = get_class($object);
+ $parent = \get_class($mock);
- $formatter = self::getConfiguration()->getObjectFormatter($class, $defaultFormatter);
+ /** @var null|ExpectationInterface $expectations */
+ $expectations = null;
+ while (true) {
+ $method = \array_shift($methodNames);
+ $expectations = $mock->mockery_getExpectationsFor($method);
+
+ if ($expectations === null || self::noMoreElementsInChain($methodNames)) {
+ $expectations = $nextExp($method);
+ if (self::noMoreElementsInChain($methodNames)) {
+ break;
+ }
+
+ $mock = self::getNewDemeterMock($container, $parent, $method, $expectations);
+ } else {
+ $demeterMockKey = $container->getKeyOfDemeterMockFor($method, $parent);
+ if ($demeterMockKey !== null) {
+ $mock = self::getExistingDemeterMock($container, $demeterMockKey);
+ }
+ }
- $array = array(
- 'class' => $class,
- 'identity' => '#' . md5(spl_object_hash($object))
- );
+ $parent .= '->' . $method;
- $array = array_merge($array, $formatter($object, $nesting));
+ $nextExp = static function ($n) use ($mock) {
+ return $mock->allows($n);
+ };
+ }
- return $array;
+ return $expectations;
}
/**
- * Returns all public instance properties.
+ * Utility method for recursively generating a representation of the given array.
*
- * @param mixed $object
- * @param int $nesting
+ * @template TArray or array
*
- * @return array
+ * @param TArray $argument
+ * @param int $nesting
+ *
+ * @return TArray
*/
- private static function extractInstancePublicProperties($object, $nesting)
+ private static function cleanupArray($argument, $nesting = 3)
{
- $reflection = new \ReflectionClass(get_class($object));
- $properties = $reflection->getProperties(\ReflectionProperty::IS_PUBLIC);
- $cleanedProperties = array();
+ if ($nesting === 0) {
+ return '...';
+ }
- foreach ($properties as $publicProperty) {
- if (!$publicProperty->isStatic()) {
- $name = $publicProperty->getName();
- try {
- $cleanedProperties[$name] = self::cleanupNesting($object->$name, $nesting);
- } catch (\Exception $exception) {
- $cleanedProperties[$name] = $exception->getMessage();
- }
+ foreach ($argument as $key => $value) {
+ if (\is_array($value)) {
+ $argument[$key] = self::cleanupArray($value, $nesting - 1);
+
+ continue;
+ }
+
+ if (\is_object($value)) {
+ $argument[$key] = self::objectToArray($value, $nesting - 1);
}
}
- return $cleanedProperties;
+ return $argument;
}
/**
* Utility method used for recursively generating
* an object or array representation.
*
- * @param mixed $argument
- * @param int $nesting
+ * @template TArgument
+ *
+ * @param TArgument $argument
+ * @param int $nesting
*
* @return mixed
*/
private static function cleanupNesting($argument, $nesting)
{
- if (is_object($argument)) {
+ if (\is_object($argument)) {
$object = self::objectToArray($argument, $nesting - 1);
- $object['class'] = get_class($argument);
+ $object['class'] = \get_class($argument);
return $object;
}
- if (is_array($argument)) {
+ if (\is_array($argument)) {
return self::cleanupArray($argument, $nesting - 1);
}
@@ -734,165 +833,181 @@ private static function cleanupNesting($argument, $nesting)
}
/**
- * Utility method for recursively
- * gerating a representation
- * of the given array.
- *
- * @param array $argument
- * @param int $nesting
- *
- * @return mixed
+ * @param string $fqn
+ * @param string $type
*/
- private static function cleanupArray($argument, $nesting = 3)
+ private static function declareType($fqn, $type): void
{
- if ($nesting == 0) {
- return '...';
- }
+ $targetCode = ' $value) {
- if (is_array($value)) {
- $argument[$key] = self::cleanupArray($value, $nesting - 1);
- } elseif (is_object($value)) {
- $argument[$key] = self::objectToArray($value, $nesting - 1);
- }
+ if (\strpos($fqn, '\\')) {
+ $parts = \explode('\\', $fqn);
+
+ $shortName = \trim(\array_pop($parts));
+ $namespace = \implode('\\', $parts);
+
+ $targetCode .= "namespace {$namespace};\n";
}
- return $argument;
+ $targetCode .= \sprintf('%s %s {} ', $type, $shortName);
+
+ /*
+ * We could eval here, but it doesn't play well with the way
+ * PHPUnit tries to backup global state and the require definition
+ * loader
+ */
+ $fileName = \tempnam(\sys_get_temp_dir(), 'Mockery');
+
+ \file_put_contents($fileName, $targetCode);
+
+ require $fileName;
+
+ self::registerFileForCleanUp($fileName);
}
/**
- * Utility function to parse shouldReceive() arguments and generate
- * expectations from such as needed.
+ * Returns all public instance properties.
+ *
+ * @param object $object
+ * @param int $nesting
*
- * @param Mockery\LegacyMockInterface $mock
- * @param array ...$args
- * @param callable $add
- * @return \Mockery\CompositeExpectation
+ * @return array
*/
- public static function parseShouldReturnArgs(\Mockery\LegacyMockInterface $mock, $args, $add)
+ private static function extractInstancePublicProperties($object, $nesting)
{
- $composite = new \Mockery\CompositeExpectation();
+ $reflection = new ReflectionClass($object);
+ $properties = $reflection->getProperties(ReflectionProperty::IS_PUBLIC);
+ $cleanedProperties = [];
- foreach ($args as $arg) {
- if (is_array($arg)) {
- foreach ($arg as $k => $v) {
- $expectation = self::buildDemeterChain($mock, $k, $add)->andReturn($v);
- $composite->add($expectation);
+ foreach ($properties as $publicProperty) {
+ if (! $publicProperty->isStatic()) {
+ $name = $publicProperty->getName();
+ try {
+ $cleanedProperties[$name] = self::cleanupNesting($object->{$name}, $nesting);
+ } catch (Exception $exception) {
+ $cleanedProperties[$name] = $exception->getMessage();
}
- } elseif (is_string($arg)) {
- $expectation = self::buildDemeterChain($mock, $arg, $add);
- $composite->add($expectation);
}
}
- return $composite;
+ return $cleanedProperties;
}
/**
- * Sets up expectations on the members of the CompositeExpectation and
- * builds up any demeter chain that was passed to shouldReceive.
+ * Gets the string representation
+ * of any passed argument.
*
- * @param \Mockery\LegacyMockInterface $mock
- * @param string $arg
- * @param callable $add
- * @throws Mockery\Exception
- * @return \Mockery\ExpectationInterface
+ * @param mixed $argument
+ * @param int $depth
+ *
+ * @return mixed
*/
- protected static function buildDemeterChain(\Mockery\LegacyMockInterface $mock, $arg, $add)
+ private static function formatArgument($argument, $depth = 0)
{
- /** @var Mockery\Container $container */
- $container = $mock->mockery_getContainer();
- $methodNames = explode('->', $arg);
- reset($methodNames);
-
- if (!\Mockery::getConfiguration()->mockingNonExistentMethodsAllowed()
- && !$mock->mockery_isAnonymous()
- && !in_array(current($methodNames), $mock->mockery_getMockableMethods())
- ) {
- throw new \Mockery\Exception(
- 'Mockery\'s configuration currently forbids mocking the method '
- . current($methodNames) . ' as it does not exist on the class or object '
- . 'being mocked'
- );
+ if ($argument instanceof MatcherInterface) {
+ return (string) $argument;
}
- /** @var ExpectationInterface|null $expectations */
- $expectations = null;
-
- /** @var Callable $nextExp */
- $nextExp = function ($method) use ($add) {
- return $add($method);
- };
-
- $parent = get_class($mock);
-
- while (true) {
- $method = array_shift($methodNames);
- $expectations = $mock->mockery_getExpectationsFor($method);
+ if (\is_object($argument)) {
+ return 'object(' . \get_class($argument) . ')';
+ }
- if (is_null($expectations) || self::noMoreElementsInChain($methodNames)) {
- $expectations = $nextExp($method);
- if (self::noMoreElementsInChain($methodNames)) {
- break;
- }
+ if (\is_int($argument) || \is_float($argument)) {
+ return $argument;
+ }
- $mock = self::getNewDemeterMock($container, $parent, $method, $expectations);
+ if (\is_array($argument)) {
+ if ($depth === 1) {
+ $argument = '[...]';
} else {
- $demeterMockKey = $container->getKeyOfDemeterMockFor($method, $parent);
- if ($demeterMockKey) {
- $mock = self::getExistingDemeterMock($container, $demeterMockKey);
+ $sample = [];
+ foreach ($argument as $key => $value) {
+ $key = \is_int($key) ? $key : \sprintf("'%s'", $key);
+ $value = self::formatArgument($value, $depth + 1);
+ $sample[] = \sprintf('%s => %s', $key, $value);
}
+
+ $argument = '[' . \implode(', ', $sample) . ']';
}
- $parent .= '->' . $method;
+ return (\strlen($argument) > 1000) ? \substr($argument, 0, 1000) . '...]' : $argument;
+ }
- $nextExp = function ($n) use ($mock) {
- return $mock->shouldReceive($n);
- };
+ if (\is_bool($argument)) {
+ return $argument ? 'true' : 'false';
}
- return $expectations;
+ if (\is_resource($argument)) {
+ return 'resource(...)';
+ }
+
+ if ($argument === null) {
+ return 'NULL';
+ }
+
+ return "'" . $argument . "'";
+ }
+
+ /**
+ * Gets a specific demeter mock from the ones kept by the container.
+ *
+ * @template TMock of object
+ *
+ * @param class-string $demeterMockKey
+ *
+ * @return null|(LegacyMockInterface&MockInterface&TMock)
+ */
+ private static function getExistingDemeterMock(Container $container, $demeterMockKey)
+ {
+ return $container->getMocks()[$demeterMockKey] ?? null;
}
/**
* Gets a new demeter configured
* mock from the container.
*
- * @param \Mockery\Container $container
* @param string $parent
* @param string $method
- * @param Mockery\ExpectationInterface $exp
*
- * @return \Mockery\Mock
+ * @return LegacyMockInterface&MockInterface
*/
- private static function getNewDemeterMock(
- Mockery\Container $container,
- $parent,
- $method,
- Mockery\ExpectationInterface $exp
- ) {
- $newMockName = 'demeter_' . md5($parent) . '_' . $method;
+ private static function getNewDemeterMock(Container $container, $parent, $method, ExpectationInterface $exp)
+ {
+ $newMockName = 'demeter_' . \md5($parent) . '_' . $method;
$parRef = null;
- $parRefMethod = null;
- $parRefMethodRetType = null;
$parentMock = $exp->getMock();
if ($parentMock !== null) {
$parRef = new ReflectionObject($parentMock);
}
- if ($parRef !== null && $parRef->hasMethod($method)) {
+ if ($parRef instanceof ReflectionObject && $parRef->hasMethod($method)) {
$parRefMethod = $parRef->getMethod($method);
$parRefMethodRetType = Reflector::getReturnType($parRefMethod, true);
- if ($parRefMethodRetType !== null && $parRefMethodRetType !== 'mixed') {
- $nameBuilder = new MockNameBuilder();
- $nameBuilder->addPart('\\' . $newMockName);
- $mock = self::namedMock($nameBuilder->build(), $parRefMethodRetType);
- $exp->andReturn($mock);
+ if ($parRefMethodRetType !== null) {
+ $returnTypes = \explode('|', $parRefMethodRetType);
+
+ $filteredReturnTypes = array_filter($returnTypes, static function (string $type): bool {
+ return ! Reflector::isReservedWord($type);
+ });
+
+ if ($filteredReturnTypes !== []) {
+ $nameBuilder = new MockNameBuilder();
+
+ $nameBuilder->addPart('\\' . $newMockName);
- return $mock;
+ $mock = self::namedMock(
+ $nameBuilder->build(),
+ ...$filteredReturnTypes
+ );
+
+ $exp->andReturn($mock);
+
+ return $mock;
+ }
}
}
@@ -902,82 +1017,46 @@ private static function getNewDemeterMock(
return $mock;
}
- /**
- * Gets an specific demeter mock from
- * the ones kept by the container.
- *
- * @param \Mockery\Container $container
- * @param string $demeterMockKey
- *
- * @return mixed
- */
- private static function getExistingDemeterMock(
- Mockery\Container $container,
- $demeterMockKey
- ) {
- $mocks = $container->getMocks();
- $mock = $mocks[$demeterMockKey];
-
- return $mock;
- }
-
/**
* Checks if the passed array representing a demeter
* chain with the method names is empty.
*
- * @param array $methodNames
- *
* @return bool
*/
private static function noMoreElementsInChain(array $methodNames)
{
- return empty($methodNames);
- }
-
- public static function declareClass($fqn)
- {
- return static::declareType($fqn, "class");
- }
-
- public static function declareInterface($fqn)
- {
- return static::declareType($fqn, "interface");
+ return $methodNames === [];
}
- private static function declareType($fqn, $type)
+ /**
+ * Utility function to turn public properties and public get* and is* method values into an array.
+ *
+ * @param object $object
+ * @param int $nesting
+ *
+ * @return array
+ */
+ private static function objectToArray($object, $nesting = 3)
{
- $targetCode = " self::extractInstancePublicProperties($object, $nesting),
+ ];
+ };
- $shortName = trim(array_pop($parts));
- $namespace = implode("\\", $parts);
+ $class = \get_class($object);
- $targetCode.= "namespace $namespace;\n";
- }
-
- $targetCode.= "$type $shortName {} ";
+ $formatter = self::getConfiguration()->getObjectFormatter($class, $defaultFormatter);
- /*
- * We could eval here, but it doesn't play well with the way
- * PHPUnit tries to backup global state and the require definition
- * loader
- */
- $tmpfname = tempnam(sys_get_temp_dir(), "Mockery");
- file_put_contents($tmpfname, $targetCode);
- require $tmpfname;
- \Mockery::registerFileForCleanUp($tmpfname);
- }
+ $array = [
+ 'class' => $class,
+ 'identity' => '#' . \md5(\spl_object_hash($object)),
+ ];
- /**
- * Register a file to be deleted on tearDown.
- *
- * @param string $fileName
- */
- public static function registerFileForCleanUp($fileName)
- {
- self::$_filesToCleanUp[] = $fileName;
+ return \array_merge($array, $formatter($object, $nesting));
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryPHPUnitIntegration.php b/api/vendor/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryPHPUnitIntegration.php
index 472f6fbccf..a6d5b8fed3 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryPHPUnitIntegration.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryPHPUnitIntegration.php
@@ -1,26 +1,20 @@
addMockeryExpectationsToAssertionCount();
- $this->checkMockeryExceptions();
- $this->closeMockery();
-
- parent::assertPostConditions();
- }
-
protected function addMockeryExpectationsToAssertionCount()
{
$this->addToAssertionCount(Mockery::getContainer()->mockery_getExpectationCount());
@@ -52,12 +33,12 @@ protected function addMockeryExpectationsToAssertionCount()
protected function checkMockeryExceptions()
{
- if (!method_exists($this, "markAsRisky")) {
+ if (! method_exists($this, 'markAsRisky')) {
return;
}
foreach (Mockery::getContainer()->mockery_thrownExceptions() as $e) {
- if (!$e->dismissed()) {
+ if (! $e->dismissed()) {
$this->markAsRisky();
}
}
@@ -70,16 +51,22 @@ protected function closeMockery()
}
/**
- * @before
+ * Performs assertions shared by all tests of a test case. This method is
+ * called before execution of a test ends and before the tearDown method.
*/
- protected function startMockery()
+ protected function mockeryAssertPostConditions()
{
- $this->mockeryOpen = true;
+ $this->addMockeryExpectationsToAssertionCount();
+ $this->checkMockeryExceptions();
+ $this->closeMockery();
+
+ parent::assertPostConditions();
}
/**
* @after
*/
+ #[After]
protected function purgeMockeryContainer()
{
if ($this->mockeryOpen) {
@@ -87,4 +74,13 @@ protected function purgeMockeryContainer()
Mockery::close();
}
}
+
+ /**
+ * @before
+ */
+ #[Before]
+ protected function startMockery()
+ {
+ $this->mockeryOpen = true;
+ }
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryPHPUnitIntegrationAssertPostConditions.php b/api/vendor/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryPHPUnitIntegrationAssertPostConditions.php
index 68fc89ef5d..e4a80b5f72 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryPHPUnitIntegrationAssertPostConditions.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryPHPUnitIntegrationAssertPostConditions.php
@@ -1,21 +1,11 @@
getBlacklistedDirectories();
- Blacklist::addDirectory(\dirname((new \ReflectionClass(\Mockery::class))->getFileName()));
+ (new Blacklist())->getBlacklistedDirectories();
+ Blacklist::addDirectory(dirname((new ReflectionClass(Mockery::class))->getFileName()));
} else {
- Blacklist::$blacklistedClassNames[\Mockery::class] = 1;
+ Blacklist::$blacklistedClassNames[Mockery::class] = 1;
}
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/ClosureWrapper.php b/api/vendor/mockery/mockery/library/Mockery/ClosureWrapper.php
index 35ca16dbe7..fae88712b0 100644
--- a/api/vendor/mockery/mockery/library/Mockery/ClosureWrapper.php
+++ b/api/vendor/mockery/mockery/library/Mockery/ClosureWrapper.php
@@ -1,27 +1,18 @@
closure = $closure;
}
+ /**
+ * @return mixed
+ */
public function __invoke()
{
- return call_user_func_array($this->closure, func_get_args());
+ return ($this->closure)(...func_get_args());
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/CompositeExpectation.php b/api/vendor/mockery/mockery/library/Mockery/CompositeExpectation.php
index 52314322c5..fa03c39962 100644
--- a/api/vendor/mockery/mockery/library/Mockery/CompositeExpectation.php
+++ b/api/vendor/mockery/mockery/library/Mockery/CompositeExpectation.php
@@ -1,38 +1,64 @@
*/
- protected $_expectations = array();
+ protected $_expectations = [];
+
+ /**
+ * Intercept any expectation calls and direct against all expectations
+ *
+ * @param string $method
+ *
+ * @return self
+ */
+ public function __call($method, array $args)
+ {
+ foreach ($this->_expectations as $expectation) {
+ $expectation->{$method}(...$args);
+ }
+
+ return $this;
+ }
+
+ /**
+ * Return the string summary of this composite expectation
+ *
+ * @return string
+ */
+ public function __toString()
+ {
+ $parts = array_map(static function (ExpectationInterface $expectation): string {
+ return (string) $expectation;
+ }, $this->_expectations);
+
+ return '[' . implode(', ', $parts) . ']';
+ }
/**
* Add an expectation to the composite
*
- * @param \Mockery\Expectation|\Mockery\CompositeExpectation $expectation
+ * @param ExpectationInterface|HigherOrderMessage $expectation
+ *
* @return void
*/
public function add($expectation)
@@ -52,26 +78,24 @@ public function andReturn(...$args)
* Set a return value, or sequential queue of return values
*
* @param mixed ...$args
+ *
* @return self
*/
public function andReturns(...$args)
{
- return call_user_func_array([$this, 'andReturn'], $args);
+ return $this->andReturn(...$args);
}
/**
- * Intercept any expectation calls and direct against all expectations
+ * Return the parent mock of the first expectation
*
- * @param string $method
- * @param array $args
- * @return self
+ * @return LegacyMockInterface&MockInterface
*/
- public function __call($method, array $args)
+ public function getMock()
{
- foreach ($this->_expectations as $expectation) {
- call_user_func_array(array($expectation, $method), $args);
- }
- return $this;
+ reset($this->_expectations);
+ $first = current($this->_expectations);
+ return $first->getMock();
}
/**
@@ -86,22 +110,10 @@ public function getOrderNumber()
return $first->getOrderNumber();
}
- /**
- * Return the parent mock of the first expectation
- *
- * @return \Mockery\MockInterface|\Mockery\LegacyMockInterface
- */
- public function getMock()
- {
- reset($this->_expectations);
- $first = current($this->_expectations);
- return $first->getMock();
- }
-
/**
* Mockery API alias to getMock
*
- * @return \Mockery\LegacyMockInterface|\Mockery\MockInterface
+ * @return LegacyMockInterface&MockInterface
*/
public function mock()
{
@@ -109,46 +121,30 @@ public function mock()
}
/**
- * Starts a new expectation addition on the first mock which is the primary
- * target outside of a demeter chain
+ * Starts a new expectation addition on the first mock which is the primary target outside of a demeter chain
*
* @param mixed ...$args
- * @return \Mockery\Expectation
+ *
+ * @return Expectation
*/
- public function shouldReceive(...$args)
+ public function shouldNotReceive(...$args)
{
reset($this->_expectations);
$first = current($this->_expectations);
- return call_user_func_array(array($first->getMock(), 'shouldReceive'), $args);
+ return $first->getMock()->shouldNotReceive(...$args);
}
/**
- * Starts a new expectation addition on the first mock which is the primary
- * target outside of a demeter chain
+ * Starts a new expectation addition on the first mock which is the primary target, outside of a demeter chain
*
* @param mixed ...$args
- * @return \Mockery\Expectation
+ *
+ * @return Expectation
*/
- public function shouldNotReceive(...$args)
+ public function shouldReceive(...$args)
{
reset($this->_expectations);
$first = current($this->_expectations);
- return call_user_func_array(array($first->getMock(), 'shouldNotReceive'), $args);
- }
-
- /**
- * Return the string summary of this composite expectation
- *
- * @return string
- */
- public function __toString()
- {
- $return = '[';
- $parts = array();
- foreach ($this->_expectations as $exp) {
- $parts[] = (string) $exp;
- }
- $return .= implode(', ', $parts) . ']';
- return $return;
+ return $first->getMock()->shouldReceive(...$args);
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Configuration.php b/api/vendor/mockery/mockery/library/Mockery/Configuration.php
index bce05f3c5c..d415d9e0c7 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Configuration.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Configuration.php
@@ -1,27 +1,46 @@
['MY_CONST' => 123, 'OTHER_CONST' => 'foo']]
+ *
+ * @var array|scalar>>
*/
- protected $_allowMockingMethodsUnnecessarily = true;
+ protected $_constantsMap = [];
/**
- * @var QuickDefinitionsConfiguration
+ * Default argument matchers
+ *
+ * e.g. ['class' => 'matcher']
+ *
+ * @var array
*/
- protected $_quickDefinitionsConfiguration;
+ protected $_defaultMatchers = [];
/**
* Parameter map for use with PHP internal classes.
*
- * @var array
+ * e.g. ['class' => ['method' => ['param1', 'param2']]]
+ *
+ * @var array>>
*/
- protected $_internalClassParamMap = array();
+ protected $_internalClassParamMap = [];
- protected $_constantsMap = array();
+ /**
+ * Custom object formatters
+ *
+ * e.g. ['class' => static fn($object) => 'formatted']
+ *
+ * @var array
+ */
+ protected $_objectFormatters = [];
+
+ /**
+ * @var QuickDefinitionsConfiguration
+ */
+ protected $_quickDefinitionsConfiguration;
/**
* Boolean assertion is reflection caching enabled or not. It should be
@@ -68,23 +104,30 @@ public function __construct()
}
/**
- * Custom object formatters
+ * Set boolean to allow/prevent unnecessary mocking of methods
*
- * @var array
- */
- protected $_objectFormatters = array();
-
- /**
- * Default argument matchers
+ * @param bool $flag
*
- * @var array
+ * @return void
+ *
+ * @deprecated since 1.4.0
*/
- protected $_defaultMatchers = array();
+ public function allowMockingMethodsUnnecessarily($flag = true)
+ {
+ @trigger_error(
+ sprintf('The %s method is deprecated and will be removed in a future version of Mockery', __METHOD__),
+ E_USER_DEPRECATED
+ );
+
+ $this->_allowMockingMethodsUnnecessarily = (bool) $flag;
+ }
/**
* Set boolean to allow/prevent mocking of non-existent methods
*
* @param bool $flag
+ *
+ * @return void
*/
public function allowMockingNonExistentMethods($flag = true)
{
@@ -92,96 +135,135 @@ public function allowMockingNonExistentMethods($flag = true)
}
/**
- * Return flag indicating whether mocking non-existent methods allowed
+ * Disable reflection caching
*
- * @return bool
+ * It should be always enabled, except when using
+ * PHPUnit's --static-backup option.
+ *
+ * @see https://github.com/mockery/mockery/issues/268
+ *
+ * @return void
*/
- public function mockingNonExistentMethodsAllowed()
+ public function disableReflectionCache()
{
- return $this->_allowMockingNonExistentMethod;
+ $this->_reflectionCacheEnabled = false;
}
/**
- * Set boolean to allow/prevent unnecessary mocking of methods
+ * Enable reflection caching
*
- * @param bool $flag
+ * It should be always enabled, except when using
+ * PHPUnit's --static-backup option.
*
- * @deprecated since 1.4.0
+ * @see https://github.com/mockery/mockery/issues/268
+ *
+ * @return void
*/
- public function allowMockingMethodsUnnecessarily($flag = true)
+ public function enableReflectionCache()
{
- @trigger_error(sprintf("The %s method is deprecated and will be removed in a future version of Mockery", __METHOD__), E_USER_DEPRECATED);
-
- $this->_allowMockingMethodsUnnecessarily = (bool) $flag;
+ $this->_reflectionCacheEnabled = true;
}
/**
- * Return flag indicating whether mocking non-existent methods allowed
+ * Get the map of constants to be used in the mock generator
*
- * @return bool
- *
- * @deprecated since 1.4.0
+ * @return array|scalar>>
*/
- public function mockingMethodsUnnecessarilyAllowed()
+ public function getConstantsMap()
{
- @trigger_error(sprintf("The %s method is deprecated and will be removed in a future version of Mockery", __METHOD__), E_USER_DEPRECATED);
-
- return $this->_allowMockingMethodsUnnecessarily;
+ return $this->_constantsMap;
}
/**
- * Set a parameter map (array of param signature strings) for the method
- * of an internal PHP class.
+ * Get the default matcher for a given class
+ *
+ * @param class-string $class
*
- * @param string $class
- * @param string $method
- * @param array $map
+ * @return null|class-string
*/
- public function setInternalClassMethodParamMap($class, $method, array $map)
+ public function getDefaultMatcher($class)
{
- if (\PHP_MAJOR_VERSION > 7) {
- throw new \LogicException('Internal class parameter overriding is not available in PHP 8. Incompatible signatures have been reclassified as fatal errors.');
- }
+ $classes = [];
+
+ $parentClass = $class;
+
+ do {
+ $classes[] = $parentClass;
+
+ $parentClass = get_parent_class($parentClass);
+ } while ($parentClass !== false);
+
+ $classesAndInterfaces = array_merge($classes, class_implements($class));
- if (!isset($this->_internalClassParamMap[strtolower($class)])) {
- $this->_internalClassParamMap[strtolower($class)] = array();
+ foreach ($classesAndInterfaces as $type) {
+ if (array_key_exists($type, $this->_defaultMatchers)) {
+ return $this->_defaultMatchers[$type];
+ }
}
- $this->_internalClassParamMap[strtolower($class)][strtolower($method)] = $map;
- }
- /**
- * Remove all overridden parameter maps from internal PHP classes.
- */
- public function resetInternalClassMethodParamMaps()
- {
- $this->_internalClassParamMap = array();
+ return null;
}
/**
* Get the parameter map of an internal PHP class method
*
- * @return array|null
+ * @param class-string $class
+ * @param string $method
+ *
+ * @return null|array
*/
public function getInternalClassMethodParamMap($class, $method)
{
- if (isset($this->_internalClassParamMap[strtolower($class)][strtolower($method)])) {
- return $this->_internalClassParamMap[strtolower($class)][strtolower($method)];
+ $class = strtolower($class);
+ $method = strtolower($method);
+ if (! array_key_exists($class, $this->_internalClassParamMap)) {
+ return null;
}
+
+ if (! array_key_exists($method, $this->_internalClassParamMap[$class])) {
+ return null;
+ }
+
+ return $this->_internalClassParamMap[$class][$method];
}
+ /**
+ * Get the parameter maps of internal PHP classes
+ *
+ * @return array>>
+ */
public function getInternalClassMethodParamMaps()
{
return $this->_internalClassParamMap;
}
- public function setConstantsMap(array $map)
+ /**
+ * Get the object formatter for a class
+ *
+ * @param class-string $class
+ * @param Closure $defaultFormatter
+ *
+ * @return Closure
+ */
+ public function getObjectFormatter($class, $defaultFormatter)
{
- $this->_constantsMap = $map;
- }
+ $parentClass = $class;
- public function getConstantsMap()
- {
- return $this->_constantsMap;
+ do {
+ $classes[] = $parentClass;
+
+ $parentClass = get_parent_class($parentClass);
+ } while ($parentClass !== false);
+
+ $classesAndInterfaces = array_merge($classes, class_implements($class));
+
+ foreach ($classesAndInterfaces as $type) {
+ if (array_key_exists($type, $this->_objectFormatters)) {
+ return $this->_objectFormatters[$type];
+ }
+ }
+
+ return $defaultFormatter;
}
/**
@@ -193,91 +275,132 @@ public function getQuickDefinitions(): QuickDefinitionsConfiguration
}
/**
- * Disable reflection caching
+ * Return flag indicating whether mocking non-existent methods allowed
*
- * It should be always enabled, except when using
- * PHPUnit's --static-backup option.
+ * @return bool
*
- * @see https://github.com/mockery/mockery/issues/268
+ * @deprecated since 1.4.0
*/
- public function disableReflectionCache()
+ public function mockingMethodsUnnecessarilyAllowed()
{
- $this->_reflectionCacheEnabled = false;
+ @trigger_error(
+ sprintf('The %s method is deprecated and will be removed in a future version of Mockery', __METHOD__),
+ E_USER_DEPRECATED
+ );
+
+ return $this->_allowMockingMethodsUnnecessarily;
}
/**
- * Enable reflection caching
- *
- * It should be always enabled, except when using
- * PHPUnit's --static-backup option.
+ * Return flag indicating whether mocking non-existent methods allowed
*
- * @see https://github.com/mockery/mockery/issues/268
+ * @return bool
*/
- public function enableReflectionCache()
+ public function mockingNonExistentMethodsAllowed()
{
- $this->_reflectionCacheEnabled = true;
+ return $this->_allowMockingNonExistentMethod;
}
/**
* Is reflection cache enabled?
+ *
+ * @return bool
*/
public function reflectionCacheEnabled()
{
return $this->_reflectionCacheEnabled;
}
- public function setObjectFormatter($class, $formatterCallback)
+ /**
+ * Remove all overridden parameter maps from internal PHP classes.
+ *
+ * @return void
+ */
+ public function resetInternalClassMethodParamMaps()
{
- $this->_objectFormatters[$class] = $formatterCallback;
+ $this->_internalClassParamMap = [];
}
- public function getObjectFormatter($class, $defaultFormatter)
+ /**
+ * Set a map of constants to be used in the mock generator
+ *
+ * e.g. ['MyClass' => ['MY_CONST' => 123, 'ARRAY_CONST' => ['foo', 'bar']]]
+ *
+ * @param array|scalar>> $map
+ *
+ * @return void
+ */
+ public function setConstantsMap(array $map)
{
- $parentClass = $class;
- do {
- $classes[] = $parentClass;
- $parentClass = get_parent_class($parentClass);
- } while ($parentClass);
- $classesAndInterfaces = array_merge($classes, class_implements($class));
- foreach ($classesAndInterfaces as $type) {
- if (isset($this->_objectFormatters[$type])) {
- return $this->_objectFormatters[$type];
- }
- }
- return $defaultFormatter;
+ $this->_constantsMap = $map;
}
/**
- * @param string $class
- * @param string $matcherClass
+ * @param class-string $class
+ * @param class-string $matcherClass
+ *
+ * @throws InvalidArgumentException
+ *
+ * @return void
*/
public function setDefaultMatcher($class, $matcherClass)
{
- if (!is_a($matcherClass, \Mockery\Matcher\MatcherAbstract::class, true) &&
- !is_a($matcherClass, \Hamcrest\Matcher::class, true) &&
- !is_a($matcherClass, \Hamcrest_Matcher::class, true)
- ) {
- throw new \InvalidArgumentException(
- "Matcher class must be either Hamcrest matcher or extend \Mockery\Matcher\MatcherAbstract, " .
- "'$matcherClass' given."
- );
+ $isHamcrest = is_a($matcherClass, Matcher::class, true)
+ || is_a($matcherClass, Hamcrest_Matcher::class, true);
+
+ if ($isHamcrest) {
+ @trigger_error('Hamcrest package has been deprecated and will be removed in 2.0', E_USER_DEPRECATED);
+ }
+
+ if (! $isHamcrest && ! is_a($matcherClass, MatcherInterface::class, true)) {
+ throw new InvalidArgumentException(sprintf(
+ "Matcher class must implement %s, '%s' given.",
+ MatcherInterface::class,
+ $matcherClass
+ ));
}
+
$this->_defaultMatchers[$class] = $matcherClass;
}
- public function getDefaultMatcher($class)
+ /**
+ * Set a parameter map (array of param signature strings) for the method of an internal PHP class.
+ *
+ * @param class-string $class
+ * @param string $method
+ * @param list $map
+ *
+ * @throws LogicException
+ *
+ * @return void
+ */
+ public function setInternalClassMethodParamMap($class, $method, array $map)
{
- $parentClass = $class;
- do {
- $classes[] = $parentClass;
- $parentClass = get_parent_class($parentClass);
- } while ($parentClass);
- $classesAndInterfaces = array_merge($classes, class_implements($class));
- foreach ($classesAndInterfaces as $type) {
- if (isset($this->_defaultMatchers[$type])) {
- return $this->_defaultMatchers[$type];
- }
+ if (PHP_MAJOR_VERSION > 7) {
+ throw new LogicException(
+ 'Internal class parameter overriding is not available in PHP 8. Incompatible signatures have been reclassified as fatal errors.'
+ );
}
- return null;
+
+ $class = strtolower($class);
+
+ if (! array_key_exists($class, $this->_internalClassParamMap)) {
+ $this->_internalClassParamMap[$class] = [];
+ }
+
+ $this->_internalClassParamMap[$class][strtolower($method)] = $map;
+ }
+
+ /**
+ * Set a custom object formatter for a class
+ *
+ * @param class-string $class
+ * @param Closure $formatterCallback
+ *
+ * @return void
+ */
+ public function setObjectFormatter($class, $formatterCallback)
+ {
+ $this->_objectFormatters[$class] = $formatterCallback;
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Container.php b/api/vendor/mockery/mockery/library/Mockery/Container.php
index 196dc996ec..ddba888479 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Container.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Container.php
@@ -1,39 +1,63 @@
*/
- protected $_generator;
+ protected $_groups = [];
/**
* @var LoaderInterface
@@ -67,14 +91,118 @@ class Container
protected $_loader;
/**
- * @var array
+ * Store of mock objects
+ *
+ * @var array|array-key,LegacyMockInterface&MockInterface&TMockObject>
+ */
+ protected $_mocks = [];
+
+ /**
+ * @var array
+ */
+ protected $_namedMocks = [];
+
+ /**
+ * @var Instantiator
*/
- protected $_namedMocks = array();
+ protected $instantiator;
- public function __construct(Generator $generator = null, LoaderInterface $loader = null)
+ public function __construct(?Generator $generator = null, ?LoaderInterface $loader = null, ?Instantiator $instantiator = null)
{
- $this->_generator = $generator ?: \Mockery::getDefaultGenerator();
- $this->_loader = $loader ?: \Mockery::getDefaultLoader();
+ $this->_generator = $generator instanceof Generator ? $generator : Mockery::getDefaultGenerator();
+ $this->_loader = $loader instanceof LoaderInterface ? $loader : Mockery::getDefaultLoader();
+ $this->instantiator = $instantiator instanceof Instantiator ? $instantiator : new Instantiator();
+ }
+
+ /**
+ * Return a specific remembered mock according to the array index it
+ * was stored to in this container instance
+ *
+ * @template TMock of object
+ *
+ * @param class-string $reference
+ *
+ * @return null|(LegacyMockInterface&MockInterface&TMock)
+ */
+ public function fetchMock($reference)
+ {
+ return $this->_mocks[$reference] ?? null;
+ }
+
+ /**
+ * @return Generator
+ */
+ public function getGenerator()
+ {
+ return $this->_generator;
+ }
+
+ /**
+ * @param string $method
+ * @param string $parent
+ *
+ * @return null|string
+ */
+ public function getKeyOfDemeterMockFor($method, $parent)
+ {
+ $keys = array_keys($this->_mocks);
+
+ $match = preg_grep('/__demeter_' . md5($parent) . sprintf('_%s$/', $method), $keys);
+ if ($match === false) {
+ return null;
+ }
+
+ if ($match === []) {
+ return null;
+ }
+
+ return array_values($match)[0];
+ }
+
+ /**
+ * @return LoaderInterface
+ */
+ public function getLoader()
+ {
+ return $this->_loader;
+ }
+
+ /**
+ * @template TMock of object
+ * @return array|array-key,LegacyMockInterface&MockInterface&TMockObject>
+ */
+ public function getMocks()
+ {
+ return $this->_mocks;
+ }
+
+ /**
+ * @return void
+ */
+ public function instanceMock()
+ {
+ }
+
+ /**
+ * see http://php.net/manual/en/language.oop5.basic.php
+ *
+ * @param string $className
+ *
+ * @return bool
+ */
+ public function isValidClassName($className)
+ {
+ if ($className[0] === '\\') {
+ $className = substr($className, 1); // remove the first backslash
+ }
+
+ // all the namespaces and class name should match the regex
+ return array_filter(
+ explode('\\', $className),
+ static function ($name): bool {
+ return ! preg_match('/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/', $name);
+ }
+ ) === [];
}
/**
@@ -85,119 +213,179 @@ public function __construct(Generator $generator = null, LoaderInterface $loader
* names or partials - just so long as it's something that can be mocked.
* I'll refactor it one day so it's easier to follow.
*
- * @param array ...$args
+ * @template TMock of object
+ *
+ * @param array|TMock|Closure(LegacyMockInterface&MockInterface&TMock):LegacyMockInterface&MockInterface&TMock|array> $args
+ *
+ * @throws ReflectionException|RuntimeException
*
- * @return Mock
- * @throws Exception\RuntimeException
+ * @return LegacyMockInterface&MockInterface&TMock
*/
public function mock(...$args)
{
+ /** @var null|MockConfigurationBuilder $builder */
+ $builder = null;
+ /** @var null|callable $expectationClosure */
$expectationClosure = null;
- $quickdefs = array();
+ $partialMethods = null;
+ $quickDefinitions = [];
$constructorArgs = null;
- $blocks = array();
- $class = null;
+ $blocks = [];
if (count($args) > 1) {
- $finalArg = end($args);
- reset($args);
+ $finalArg = array_pop($args);
+
if (is_callable($finalArg) && is_object($finalArg)) {
- $expectationClosure = array_pop($args);
+ $expectationClosure = $finalArg;
+ } else {
+ $args[] = $finalArg;
}
}
- $builder = new MockConfigurationBuilder();
-
foreach ($args as $k => $arg) {
if ($arg instanceof MockConfigurationBuilder) {
$builder = $arg;
+
unset($args[$k]);
}
}
+
reset($args);
- $builder->setParameterOverrides(\Mockery::getConfiguration()->getInternalClassMethodParamMaps());
- $builder->setConstantsMap(\Mockery::getConfiguration()->getConstantsMap());
+ $builder = $builder ?? new MockConfigurationBuilder();
+ $mockeryConfiguration = Mockery::getConfiguration();
+ $builder->setParameterOverrides($mockeryConfiguration->getInternalClassMethodParamMaps());
+ $builder->setConstantsMap($mockeryConfiguration->getConstantsMap());
- while (count($args) > 0) {
+ while ($args !== []) {
$arg = array_shift($args);
+
// check for multiple interfaces
if (is_string($arg)) {
foreach (explode('|', $arg) as $type) {
if ($arg === 'null') {
// skip PHP 8 'null's
- } elseif (strpos($type, ',') && !strpos($type, ']')) {
+ continue;
+ }
+
+ if (strpos($type, ',') && !strpos($type, ']')) {
$interfaces = explode(',', str_replace(' ', '', $type));
+
$builder->addTargets($interfaces);
- } elseif (substr($type, 0, 6) == 'alias:') {
+
+ continue;
+ }
+
+ if (strpos($type, 'alias:') === 0) {
$type = str_replace('alias:', '', $type);
+
$builder->addTarget('stdClass');
$builder->setName($type);
- } elseif (substr($type, 0, 9) == 'overload:') {
+
+ continue;
+ }
+
+ if (strpos($type, 'overload:') === 0) {
$type = str_replace('overload:', '', $type);
+
$builder->setInstanceMock(true);
$builder->addTarget('stdClass');
$builder->setName($type);
- } elseif (substr($type, strlen($type)-1, 1) == ']') {
+
+ continue;
+ }
+
+ if ($type[strlen($type) - 1] === ']') {
$parts = explode('[', $type);
- if (!class_exists($parts[0], true) && !interface_exists($parts[0], true)) {
- throw new \Mockery\Exception('Can only create a partial mock from'
- . ' an existing class or interface');
- }
+
$class = $parts[0];
- $parts[1] = str_replace(' ', '', $parts[1]);
- $partialMethods = array_filter(explode(',', strtolower(rtrim($parts[1], ']'))));
+
+ if (! class_exists($class, true) && ! interface_exists($class, true)) {
+ throw new Exception('Can only create a partial mock from an existing class or interface');
+ }
+
$builder->addTarget($class);
+
+ $partialMethods = array_filter(
+ explode(',', strtolower(rtrim(str_replace(' ', '', $parts[1]), ']')))
+ );
+
foreach ($partialMethods as $partialMethod) {
if ($partialMethod[0] === '!') {
$builder->addBlackListedMethod(substr($partialMethod, 1));
+
continue;
}
+
$builder->addWhiteListedMethod($partialMethod);
}
- } elseif (class_exists($type, true) || interface_exists($type, true) || trait_exists($type, true)) {
- $builder->addTarget($type);
- } elseif (!\Mockery::getConfiguration()->mockingNonExistentMethodsAllowed() && (!class_exists($type, true) && !interface_exists($type, true))) {
- throw new \Mockery\Exception("Mockery can't find '$type' so can't mock it");
- } else {
- if (!$this->isValidClassName($type)) {
- throw new \Mockery\Exception('Class name contains invalid characters');
- }
+
+ continue;
+ }
+
+ if (class_exists($type, true) || interface_exists($type, true) || trait_exists($type, true)) {
$builder->addTarget($type);
+
+ continue;
}
- break; // unions are "sum" types and not "intersections", and so we must only process the first part
+
+ if (! $mockeryConfiguration->mockingNonExistentMethodsAllowed()) {
+ throw new Exception(sprintf("Mockery can't find '%s' so can't mock it", $type));
+ }
+
+ if (! $this->isValidClassName($type)) {
+ throw new Exception('Class name contains invalid characters');
+ }
+
+ $builder->addTarget($type);
+
+ // unions are "sum" types and not "intersections", and so we must only process the first part
+ break;
}
- } elseif (is_object($arg)) {
+
+ continue;
+ }
+
+ if (is_object($arg)) {
$builder->addTarget($arg);
- } elseif (is_array($arg)) {
- if (!empty($arg) && array_keys($arg) !== range(0, count($arg) - 1)) {
+
+ continue;
+ }
+
+ if (is_array($arg)) {
+ if ([] !== $arg && array_keys($arg) !== range(0, count($arg) - 1)) {
// if associative array
if (array_key_exists(self::BLOCKS, $arg)) {
$blocks = $arg[self::BLOCKS];
}
+
unset($arg[self::BLOCKS]);
- $quickdefs = $arg;
- } else {
- $constructorArgs = $arg;
+
+ $quickDefinitions = $arg;
+
+ continue;
}
- } else {
- throw new \Mockery\Exception(
- 'Unable to parse arguments sent to '
- . get_class($this) . '::mock()'
- );
+
+ $constructorArgs = $arg;
+
+ continue;
}
+
+ throw new Exception(sprintf(
+ 'Unable to parse arguments sent to %s::mock()', get_class($this)
+ ));
}
$builder->addBlackListedMethods($blocks);
- if (!is_null($constructorArgs)) {
- $builder->addBlackListedMethod("__construct"); // we need to pass through
+ if ($constructorArgs !== null) {
+ $builder->addBlackListedMethod('__construct'); // we need to pass through
} else {
$builder->setMockOriginalDestructor(true);
}
- if (!empty($partialMethods) && $constructorArgs === null) {
- $constructorArgs = array();
+ if ($partialMethods !== null && $constructorArgs === null) {
+ $constructorArgs = [];
}
$config = $builder->getMockConfiguration();
@@ -206,145 +394,114 @@ public function mock(...$args)
$def = $this->getGenerator()->generate($config);
- if (class_exists($def->getClassName(), $attemptAutoload = false)) {
- $rfc = new \ReflectionClass($def->getClassName());
- if (!$rfc->implementsInterface("Mockery\LegacyMockInterface")) {
- throw new \Mockery\Exception\RuntimeException("Could not load mock {$def->getClassName()}, class already exists");
+ $className = $def->getClassName();
+ if (class_exists($className, $attemptAutoload = false)) {
+ $rfc = new ReflectionClass($className);
+ if (! $rfc->implementsInterface(LegacyMockInterface::class)) {
+ throw new RuntimeException(sprintf('Could not load mock %s, class already exists', $className));
}
}
$this->getLoader()->load($def);
- $mock = $this->_getInstance($def->getClassName(), $constructorArgs);
+ $mock = $this->_getInstance($className, $constructorArgs);
$mock->mockery_init($this, $config->getTargetObject(), $config->isInstanceMock());
- if (!empty($quickdefs)) {
- if (\Mockery::getConfiguration()->getQuickDefinitions()->shouldBeCalledAtLeastOnce()) {
- $mock->shouldReceive($quickdefs)->atLeast()->once();
+ if ($quickDefinitions !== []) {
+ if ($mockeryConfiguration->getQuickDefinitions()->shouldBeCalledAtLeastOnce()) {
+ $mock->shouldReceive($quickDefinitions)->atLeast()->once();
} else {
- $mock->shouldReceive($quickdefs)->byDefault();
+ $mock->shouldReceive($quickDefinitions)->byDefault();
}
}
- if (!empty($expectationClosure)) {
+
+ // if the last parameter passed to mock() is a closure,
+ if ($expectationClosure instanceof Closure) {
+ // call the closure with the mock object
$expectationClosure($mock);
}
- $this->rememberMock($mock);
- return $mock;
- }
-
- public function instanceMock()
- {
- }
- public function getLoader()
- {
- return $this->_loader;
- }
-
- public function getGenerator()
- {
- return $this->_generator;
- }
-
- /**
- * @param string $method
- * @param string $parent
- * @return string|null
- */
- public function getKeyOfDemeterMockFor($method, $parent)
- {
- $keys = array_keys($this->_mocks);
- $match = preg_grep("/__demeter_" . md5($parent) . "_{$method}$/", $keys);
- if (count($match) == 1) {
- $res = array_values($match);
- if (count($res) > 0) {
- return $res[0];
- }
- }
- return null;
+ return $this->rememberMock($mock);
}
/**
- * @return array
+ * Fetch the next available allocation order number
+ *
+ * @return int
*/
- public function getMocks()
+ public function mockery_allocateOrder()
{
- return $this->_mocks;
+ return ++$this->_allocatedOrder;
}
/**
- * Tear down tasks for this container
+ * Reset the container to its original state
*
- * @throws \Exception
* @return void
*/
- public function mockery_teardown()
+ public function mockery_close()
{
- try {
- $this->mockery_verify();
- } catch (\Exception $e) {
- $this->mockery_close();
- throw $e;
+ foreach ($this->_mocks as $mock) {
+ $mock->mockery_teardown();
}
+
+ $this->_mocks = [];
}
/**
- * Verify the container mocks
+ * Get current ordered number
*
- * @return void
+ * @return int
*/
- public function mockery_verify()
+ public function mockery_getCurrentOrder()
{
- foreach ($this->_mocks as $mock) {
- $mock->mockery_verify();
- }
+ return $this->_currentOrder;
}
/**
- * Retrieves all exceptions thrown by mocks
+ * Gets the count of expectations on the mocks
*
- * @return array
+ * @return int
*/
- public function mockery_thrownExceptions()
+ public function mockery_getExpectationCount()
{
- $e = [];
-
+ $count = 0;
foreach ($this->_mocks as $mock) {
- $e = array_merge($e, $mock->mockery_thrownExceptions());
+ $count += $mock->mockery_getExpectationCount();
}
- return $e;
+ return $count;
}
/**
- * Reset the container to its original state
+ * Fetch array of ordered groups
*
- * @return void
+ * @return array
*/
- public function mockery_close()
+ public function mockery_getGroups()
{
- foreach ($this->_mocks as $mock) {
- $mock->mockery_teardown();
- }
- $this->_mocks = array();
+ return $this->_groups;
}
/**
- * Fetch the next available allocation order number
+ * Set current ordered number
*
- * @return int
+ * @param int $order
+ *
+ * @return int The current order number that was set
*/
- public function mockery_allocateOrder()
+ public function mockery_setCurrentOrder($order)
{
- $this->_allocatedOrder += 1;
- return $this->_allocatedOrder;
+ return $this->_currentOrder = $order;
}
/**
* Set ordering for a group
*
- * @param mixed $group
- * @param int $order
+ * @param string $group
+ * @param int $order
+ *
+ * @return void
*/
public function mockery_setGroup($group, $order)
{
@@ -352,102 +509,111 @@ public function mockery_setGroup($group, $order)
}
/**
- * Fetch array of ordered groups
+ * Tear down tasks for this container
*
- * @return array
+ * @throws PHPException
*/
- public function mockery_getGroups()
+ public function mockery_teardown()
{
- return $this->_groups;
- }
+ try {
+ $this->mockery_verify();
+ } catch (PHPException $phpException) {
+ $this->mockery_close();
- /**
- * Set current ordered number
- *
- * @param int $order
- * @return int The current order number that was set
- */
- public function mockery_setCurrentOrder($order)
- {
- $this->_currentOrder = $order;
- return $this->_currentOrder;
+ throw $phpException;
+ }
}
/**
- * Get current ordered number
+ * Retrieves all exceptions thrown by mocks
*
- * @return int
+ * @return array
*/
- public function mockery_getCurrentOrder()
+ public function mockery_thrownExceptions()
{
- return $this->_currentOrder;
+ /** @var array $exceptions */
+ $exceptions = [];
+
+ foreach ($this->_mocks as $mock) {
+ foreach ($mock->mockery_thrownExceptions() as $exception) {
+ $exceptions[] = $exception;
+ }
+ }
+
+ return $exceptions;
}
/**
* Validate the current mock's ordering
*
* @param string $method
- * @param int $order
- * @throws \Mockery\Exception
- * @return void
+ * @param int $order
+ *
+ * @throws Exception
*/
- public function mockery_validateOrder($method, $order, \Mockery\LegacyMockInterface $mock)
+ public function mockery_validateOrder($method, $order, LegacyMockInterface $mock)
{
if ($order < $this->_currentOrder) {
- $exception = new \Mockery\Exception\InvalidOrderException(
- 'Method ' . $method . ' called out of order: expected order '
- . $order . ', was ' . $this->_currentOrder
+ $exception = new InvalidOrderException(
+ sprintf(
+ 'Method %s called out of order: expected order %d, was %d',
+ $method,
+ $order,
+ $this->_currentOrder
+ )
);
+
$exception->setMock($mock)
->setMethodName($method)
->setExpectedOrder($order)
->setActualOrder($this->_currentOrder);
+
throw $exception;
}
+
$this->mockery_setCurrentOrder($order);
}
/**
- * Gets the count of expectations on the mocks
- *
- * @return int
+ * Verify the container mocks
*/
- public function mockery_getExpectationCount()
+ public function mockery_verify()
{
- $count = 0;
foreach ($this->_mocks as $mock) {
- $count += $mock->mockery_getExpectationCount();
+ $mock->mockery_verify();
}
- return $count;
}
/**
* Store a mock and set its container reference
*
- * @param \Mockery\Mock $mock
- * @return \Mockery\LegacyMockInterface|\Mockery\MockInterface
+ * @template TRememberMock of object
+ *
+ * @param LegacyMockInterface&MockInterface&TRememberMock $mock
+ *
+ * @return LegacyMockInterface&MockInterface&TRememberMock
*/
- public function rememberMock(\Mockery\LegacyMockInterface $mock)
+ public function rememberMock(LegacyMockInterface $mock)
{
- if (!isset($this->_mocks[get_class($mock)])) {
- $this->_mocks[get_class($mock)] = $mock;
- } else {
- /**
- * This condition triggers for an instance mock where origin mock
- * is already remembered
- */
- $this->_mocks[] = $mock;
+ $class = get_class($mock);
+
+ if (! array_key_exists($class, $this->_mocks)) {
+ return $this->_mocks[$class] = $mock;
}
- return $mock;
+
+ /**
+ * This condition triggers for an instance mock where origin mock
+ * is already remembered
+ */
+ return $this->_mocks[] = $mock;
}
/**
- * Retrieve the last remembered mock object, which is the same as saying
- * retrieve the current mock being programmed where you have yet to call
- * mock() to change it - thus why the method name is "self" since it will be
- * be used during the programming of the same mock.
+ * Retrieve the last remembered mock object,
+ * which is the same as saying retrieve the current mock being programmed where you have yet to call mock()
+ * to change it thus why the method name is "self" since it will be used during the programming of the same mock.
*
- * @return \Mockery\Mock
+ * @return LegacyMockInterface|MockInterface
*/
public function self()
{
@@ -457,35 +623,32 @@ public function self()
}
/**
- * Return a specific remembered mock according to the array index it
- * was stored to in this container instance
+ * @template TMock of object
+ * @template TMixed
+ *
+ * @param class-string $mockName
+ * @param null|array $constructorArgs
*
- * @return \Mockery\Mock
+ * @return TMock
*/
- public function fetchMock($reference)
- {
- if (isset($this->_mocks[$reference])) {
- return $this->_mocks[$reference];
- }
- }
-
protected function _getInstance($mockName, $constructorArgs = null)
{
if ($constructorArgs !== null) {
- $r = new \ReflectionClass($mockName);
- return $r->newInstanceArgs($constructorArgs);
+ return (new ReflectionClass($mockName))->newInstanceArgs($constructorArgs);
}
try {
- $instantiator = new Instantiator();
- $instance = $instantiator->instantiate($mockName);
- } catch (\Exception $ex) {
+ $instance = $this->instantiator->instantiate($mockName);
+ } catch (PHPException $phpException) {
+ /** @var class-string $internalMockName */
$internalMockName = $mockName . '_Internal';
- if (!class_exists($internalMockName)) {
- eval("class $internalMockName extends $mockName {" .
- 'public function __construct() {}' .
- '}');
+ if (! class_exists($internalMockName)) {
+ eval(sprintf(
+ 'class %s extends %s { public function __construct() {} }',
+ $internalMockName,
+ $mockName
+ ));
}
$instance = new $internalMockName();
@@ -498,38 +661,18 @@ protected function checkForNamedMockClashes($config)
{
$name = $config->getName();
- if (!$name) {
+ if ($name === null) {
return;
}
$hash = $config->getHash();
- if (isset($this->_namedMocks[$name])) {
- if ($hash !== $this->_namedMocks[$name]) {
- throw new \Mockery\Exception(
- "The mock named '$name' has been already defined with a different mock configuration"
- );
- }
+ if (array_key_exists($name, $this->_namedMocks) && $hash !== $this->_namedMocks[$name]) {
+ throw new Exception(
+ sprintf("The mock named '%s' has been already defined with a different mock configuration", $name)
+ );
}
$this->_namedMocks[$name] = $hash;
}
-
- /**
- * see http://php.net/manual/en/language.oop5.basic.php
- * @param string $className
- * @return bool
- */
- public function isValidClassName($className)
- {
- $pos = strpos($className, '\\');
- if ($pos === 0) {
- $className = substr($className, 1); // remove the first backslash
- }
- // all the namespaces and class name should match the regex
- $invalidNames = array_filter(explode('\\', $className), function ($name) {
- return !preg_match('/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/', $name);
- });
- return empty($invalidNames);
- }
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/CountValidator/AtLeast.php b/api/vendor/mockery/mockery/library/Mockery/CountValidator/AtLeast.php
index f6ac130e6d..f250d755aa 100644
--- a/api/vendor/mockery/mockery/library/Mockery/CountValidator/AtLeast.php
+++ b/api/vendor/mockery/mockery/library/Mockery/CountValidator/AtLeast.php
@@ -1,26 +1,18 @@
_limit > $n) {
- $exception = new Mockery\Exception\InvalidCountException(
+ $exception = new InvalidCountException(
'Method ' . (string) $this->_expectation
. ' from ' . $this->_expectation->getMock()->mockery_getName()
. ' should be called' . PHP_EOL
. ' at least ' . $this->_limit . ' times but called ' . $n
. ' times.'
);
+
$exception->setMock($this->_expectation->getMock())
->setMethodName((string) $this->_expectation)
->setExpectedCountComparative('>=')
diff --git a/api/vendor/mockery/mockery/library/Mockery/CountValidator/AtMost.php b/api/vendor/mockery/mockery/library/Mockery/CountValidator/AtMost.php
index 4d23e28d20..11bbe37cf2 100644
--- a/api/vendor/mockery/mockery/library/Mockery/CountValidator/AtMost.php
+++ b/api/vendor/mockery/mockery/library/Mockery/CountValidator/AtMost.php
@@ -1,26 +1,18 @@
_limit < $n) {
- $exception = new Mockery\Exception\InvalidCountException(
+ $exception = new InvalidCountException(
'Method ' . (string) $this->_expectation
. ' from ' . $this->_expectation->getMock()->mockery_getName()
. ' should be called' . PHP_EOL
diff --git a/api/vendor/mockery/mockery/library/Mockery/CountValidator/CountValidatorAbstract.php b/api/vendor/mockery/mockery/library/Mockery/CountValidator/CountValidatorAbstract.php
index ae3b0bfefe..3ecfde3a5d 100644
--- a/api/vendor/mockery/mockery/library/Mockery/CountValidator/CountValidatorAbstract.php
+++ b/api/vendor/mockery/mockery/library/Mockery/CountValidator/CountValidatorAbstract.php
@@ -1,31 +1,23 @@
_expectation = $expectation;
$this->_limit = $limit;
@@ -52,17 +43,19 @@ public function __construct(\Mockery\Expectation $expectation, $limit)
* Checks if the validator can accept an additional nth call
*
* @param int $n
+ *
* @return bool
*/
public function isEligible($n)
{
- return ($n < $this->_limit);
+ return $n < $this->_limit;
}
/**
* Validate the call count against this validator
*
* @param int $n
+ *
* @return bool
*/
abstract public function validate($n);
diff --git a/api/vendor/mockery/mockery/library/Mockery/CountValidator/CountValidatorInterface.php b/api/vendor/mockery/mockery/library/Mockery/CountValidator/CountValidatorInterface.php
new file mode 100644
index 0000000000..1cbf4cc314
--- /dev/null
+++ b/api/vendor/mockery/mockery/library/Mockery/CountValidator/CountValidatorInterface.php
@@ -0,0 +1,24 @@
+_limit !== $n) {
$because = $this->_expectation->getExceptionMessage();
- $exception = new Mockery\Exception\InvalidCountException(
+ $exception = new InvalidCountException(
'Method ' . (string) $this->_expectation
. ' from ' . $this->_expectation->getMock()->mockery_getName()
. ' should be called' . PHP_EOL
diff --git a/api/vendor/mockery/mockery/library/Mockery/CountValidator/Exception.php b/api/vendor/mockery/mockery/library/Mockery/CountValidator/Exception.php
index b43aad3ec4..b1c20cd4b6 100644
--- a/api/vendor/mockery/mockery/library/Mockery/CountValidator/Exception.php
+++ b/api/vendor/mockery/mockery/library/Mockery/CountValidator/Exception.php
@@ -1,25 +1,18 @@
dismissed = true;
-
// we sometimes stack them
- if ($this->getPrevious() && $this->getPrevious() instanceof BadMethodCallException) {
- $this->getPrevious()->dismiss();
+ $previous = $this->getPrevious();
+ if (! $previous instanceof self) {
+ return;
}
+
+ $previous->dismiss();
}
+ /**
+ * @return bool
+ */
public function dismissed()
{
return $this->dismissed;
diff --git a/api/vendor/mockery/mockery/library/Mockery/Exception/InvalidArgumentException.php b/api/vendor/mockery/mockery/library/Mockery/Exception/InvalidArgumentException.php
index ccf5c76f9d..d76e275e26 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Exception/InvalidArgumentException.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Exception/InvalidArgumentException.php
@@ -1,25 +1,15 @@
mockObject = $mock;
- return $this;
+ return $this->actual;
}
- public function setMethodName($name)
+ /**
+ * @return int
+ */
+ public function getExpectedCount()
{
- $this->method = $name;
- return $this;
+ return $this->expected;
}
- public function setActualCount($count)
+ /**
+ * @return string
+ */
+ public function getExpectedCountComparative()
{
- $this->actual = $count;
- return $this;
+ return $this->expectedComparative;
}
- public function setExpectedCount($count)
+ /**
+ * @return string|null
+ */
+ public function getMethodName()
{
- $this->expected = $count;
- return $this;
+ return $this->method;
}
- public function setExpectedCountComparative($comp)
+ /**
+ * @return LegacyMockInterface|null
+ */
+ public function getMock()
{
- if (!in_array($comp, array('=', '>', '<', '>=', '<='))) {
- throw new RuntimeException(
- 'Illegal comparative for expected call counts set: ' . $comp
- );
- }
- $this->expectedComparative = $comp;
- return $this;
+ return $this->mockObject;
}
- public function getMock()
+ /**
+ * @throws RuntimeException
+ * @return string|null
+ */
+ public function getMockName()
{
- return $this->mockObject;
+ $mock = $this->getMock();
+
+ if ($mock === null) {
+ return '';
+ }
+
+ return $mock->mockery_getName();
}
- public function getMethodName()
+ /**
+ * @param int $count
+ * @return self
+ */
+ public function setActualCount($count)
{
- return $this->method;
+ $this->actual = $count;
+ return $this;
}
- public function getActualCount()
+ /**
+ * @param int $count
+ * @return self
+ */
+ public function setExpectedCount($count)
{
- return $this->actual;
+ $this->expected = $count;
+ return $this;
}
- public function getExpectedCount()
+ /**
+ * @param string $comp
+ * @return self
+ */
+ public function setExpectedCountComparative($comp)
{
- return $this->expected;
+ if (! in_array($comp, ['=', '>', '<', '>=', '<='], true)) {
+ throw new RuntimeException('Illegal comparative for expected call counts set: ' . $comp);
+ }
+
+ $this->expectedComparative = $comp;
+ return $this;
}
- public function getMockName()
+ /**
+ * @param string $name
+ * @return self
+ */
+ public function setMethodName($name)
{
- return $this->getMock()->mockery_getName();
+ $this->method = $name;
+ return $this;
}
- public function getExpectedCountComparative()
+ /**
+ * @return self
+ */
+ public function setMock(LegacyMockInterface $mock)
{
- return $this->expectedComparative;
+ $this->mockObject = $mock;
+ return $this;
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Exception/InvalidOrderException.php b/api/vendor/mockery/mockery/library/Mockery/Exception/InvalidOrderException.php
index 50b8049e2d..cf5bb70d2b 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Exception/InvalidOrderException.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Exception/InvalidOrderException.php
@@ -1,83 +1,125 @@
mockObject = $mock;
- return $this;
+ return $this->actual;
}
- public function setMethodName($name)
+ /**
+ * @return int
+ */
+ public function getExpectedOrder()
{
- $this->method = $name;
- return $this;
+ return $this->expected;
}
- public function setActualOrder($count)
+ /**
+ * @return string|null
+ */
+ public function getMethodName()
{
- $this->actual = $count;
- return $this;
+ return $this->method;
}
- public function setExpectedOrder($count)
+ /**
+ * @return LegacyMockInterface|null
+ */
+ public function getMock()
{
- $this->expected = $count;
- return $this;
+ return $this->mockObject;
}
- public function getMock()
+ /**
+ * @return string|null
+ */
+ public function getMockName()
{
- return $this->mockObject;
+ $mock = $this->getMock();
+
+ if ($mock === null) {
+ return $mock;
+ }
+
+ return $mock->mockery_getName();
}
- public function getMethodName()
+ /**
+ * @param int $count
+ *
+ * @return self
+ */
+ public function setActualOrder($count)
{
- return $this->method;
+ $this->actual = $count;
+ return $this;
}
- public function getActualOrder()
+ /**
+ * @param int $count
+ *
+ * @return self
+ */
+ public function setExpectedOrder($count)
{
- return $this->actual;
+ $this->expected = $count;
+ return $this;
}
- public function getExpectedOrder()
+ /**
+ * @param string $name
+ *
+ * @return self
+ */
+ public function setMethodName($name)
{
- return $this->expected;
+ $this->method = $name;
+ return $this;
}
- public function getMockName()
+ /**
+ * @return self
+ */
+ public function setMock(LegacyMockInterface $mock)
{
- return $this->getMock()->mockery_getName();
+ $this->mockObject = $mock;
+ return $this;
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Exception/MockeryExceptionInterface.php b/api/vendor/mockery/mockery/library/Mockery/Exception/MockeryExceptionInterface.php
new file mode 100644
index 0000000000..5ce07eee0d
--- /dev/null
+++ b/api/vendor/mockery/mockery/library/Mockery/Exception/MockeryExceptionInterface.php
@@ -0,0 +1,19 @@
+
+ */
+ protected $actual = [];
- protected $actual = array();
+ /**
+ * @var string|null
+ */
+ protected $method = null;
+ /**
+ * @var LegacyMockInterface|null
+ */
protected $mockObject = null;
- public function setMock(Mockery\LegacyMockInterface $mock)
+ /**
+ * @return array
+ */
+ public function getActualArguments()
{
- $this->mockObject = $mock;
- return $this;
+ return $this->actual;
}
- public function setMethodName($name)
+ /**
+ * @return string|null
+ */
+ public function getMethodName()
{
- $this->method = $name;
- return $this;
+ return $this->method;
}
- public function setActualArguments($count)
+ /**
+ * @return LegacyMockInterface|null
+ */
+ public function getMock()
{
- $this->actual = $count;
- return $this;
+ return $this->mockObject;
}
- public function getMock()
+ /**
+ * @return string|null
+ */
+ public function getMockName()
{
- return $this->mockObject;
+ $mock = $this->getMock();
+
+ if ($mock === null) {
+ return $mock;
+ }
+
+ return $mock->mockery_getName();
}
- public function getMethodName()
+ /**
+ * @todo Rename param `count` to `args`
+ * @template TMixed
+ *
+ * @param array $count
+ * @return self
+ */
+ public function setActualArguments($count)
{
- return $this->method;
+ $this->actual = $count;
+ return $this;
}
- public function getActualArguments()
+ /**
+ * @param string $name
+ * @return self
+ */
+ public function setMethodName($name)
{
- return $this->actual;
+ $this->method = $name;
+ return $this;
}
- public function getMockName()
+ /**
+ * @return self
+ */
+ public function setMock(LegacyMockInterface $mock)
{
- return $this->getMock()->mockery_getName();
+ $this->mockObject = $mock;
+ return $this;
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Exception/RuntimeException.php b/api/vendor/mockery/mockery/library/Mockery/Exception/RuntimeException.php
index 4b2f53c220..5d4f643d7e 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Exception/RuntimeException.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Exception/RuntimeException.php
@@ -1,25 +1,17 @@
_mock = $mock;
$this->_name = $name;
$this->withAnyArgs();
}
+ /**
+ * Cloning logic
+ */
+ public function __clone()
+ {
+ $newValidators = [];
+
+ $countValidators = $this->_countValidators;
+
+ foreach ($countValidators as $validator) {
+ $newValidators[] = clone $validator;
+ }
+
+ $this->_countValidators = $newValidators;
+ }
+
/**
* Return a string with the method name and arguments formatted
*
- * @param string $name Name of the expected method
- * @param array $args List of arguments to the method
* @return string
*/
public function __toString()
{
- return \Mockery::formatArgs($this->_name, $this->_expectedArgs);
+ return Mockery::formatArgs($this->_name, $this->_expectedArgs);
}
/**
- * Verify the current call, i.e. that the given arguments match those
- * of this expectation
+ * Set a return value, or sequential queue of return values
*
- * @param array $args
- * @return mixed
+ * @param mixed ...$args
+ *
+ * @return self
*/
- public function verifyCall(array $args)
+ public function andReturn(...$args)
{
- $this->validateOrder();
- $this->_actualCount++;
- if (true === $this->_passthru) {
- return $this->_mock->mockery_callSubjectMethod($this->_name, $args);
- }
-
- $return = $this->_getReturnValue($args);
- $this->throwAsNecessary($return);
- $this->_setValues();
+ $this->_returnQueue = $args;
- return $return;
+ return $this;
}
/**
- * Throws an exception if the expectation has been configured to do so
+ * Sets up a closure to return the nth argument from the expected method call
*
- * @throws \Throwable
- * @return void
+ * @param int $index
+ *
+ * @return self
*/
- private function throwAsNecessary($return)
+ public function andReturnArg($index)
{
- if (!$this->_throw) {
- return;
+ if (! is_int($index) || $index < 0) {
+ throw new InvalidArgumentException(
+ 'Invalid argument index supplied. Index must be a non-negative integer.'
+ );
}
- if ($return instanceof \Throwable) {
- throw $return;
- }
+ $closure = static function (...$args) use ($index) {
+ if (array_key_exists($index, $args)) {
+ return $args[$index];
+ }
+
+ throw new OutOfBoundsException(
+ 'Cannot return an argument value. No argument exists for the index ' . $index
+ );
+ };
+
+ $this->_closureQueue = [$closure];
- return;
+ return $this;
}
/**
- * Sets public properties with queued values to the mock object
- *
- * @param array $args
- * @return mixed
+ * @return self
*/
- protected function _setValues()
+ public function andReturnFalse()
{
- $mockClass = get_class($this->_mock);
- $container = $this->_mock->mockery_getContainer();
- /** @var Mock[] $mocks */
- $mocks = $container->getMocks();
- foreach ($this->_setQueue as $name => &$values) {
- if (count($values) > 0) {
- $value = array_shift($values);
- $this->_mock->{$name} = $value;
- foreach ($mocks as $mock) {
- if (is_a($mock, $mockClass) && $mock->mockery_isInstance()) {
- $mock->{$name} = $value;
- }
- }
- }
- }
+ return $this->andReturn(false);
}
/**
- * Fetch the return value for the matching args
+ * Return null. This is merely a language construct for Mock describing.
*
- * @param array $args
- * @return mixed
+ * @return self
*/
- protected function _getReturnValue(array $args)
+ public function andReturnNull()
{
- if (count($this->_closureQueue) > 1) {
- return call_user_func_array(array_shift($this->_closureQueue), $args);
- } elseif (count($this->_closureQueue) > 0) {
- return call_user_func_array(current($this->_closureQueue), $args);
- } elseif (count($this->_returnQueue) > 1) {
- return array_shift($this->_returnQueue);
- } elseif (count($this->_returnQueue) > 0) {
- return current($this->_returnQueue);
- }
-
- return $this->_mock->mockery_returnValueForMethod($this->_name);
+ return $this->andReturn(null);
}
/**
- * Checks if this expectation is eligible for additional calls
+ * Set a return value, or sequential queue of return values
*
- * @return bool
+ * @param mixed ...$args
+ *
+ * @return self
*/
- public function isEligible()
+ public function andReturns(...$args)
{
- foreach ($this->_countValidators as $validator) {
- if (!$validator->isEligible($this->_actualCount)) {
- return false;
- }
- }
- return true;
+ return $this->andReturn(...$args);
}
/**
- * Check if there is a constraint on call count
+ * Return this mock, like a fluent interface
*
- * @return bool
+ * @return self
*/
- public function isCallCountConstrained()
+ public function andReturnSelf()
{
- return (count($this->_countValidators) > 0);
+ return $this->andReturn($this->_mock);
}
/**
- * Verify call order
- *
- * @return void
+ * @return self
*/
- public function validateOrder()
+ public function andReturnTrue()
{
- if ($this->_orderNumber) {
- $this->_mock->mockery_validateOrder((string) $this, $this->_orderNumber, $this->_mock);
- }
- if ($this->_globalOrderNumber) {
- $this->_mock->mockery_getContainer()
- ->mockery_validateOrder((string) $this, $this->_globalOrderNumber, $this->_mock);
- }
+ return $this->andReturn(true);
}
/**
- * Verify this expectation
+ * Return a self-returning black hole object.
*
- * @return void
+ * @return self
*/
- public function verify()
+ public function andReturnUndefined()
{
- foreach ($this->_countValidators as $validator) {
- $validator->validate($this->_actualCount);
- }
+ return $this->andReturn(new Undefined());
}
/**
- * Check if the registered expectation is an ArgumentListMatcher
- * @return bool
+ * Set a closure or sequence of closures with which to generate return
+ * values. The arguments passed to the expected method are passed to the
+ * closures as parameters.
+ *
+ * @param callable ...$args
+ *
+ * @return self
*/
- private function isArgumentListMatcher()
+ public function andReturnUsing(...$args)
{
- return (count($this->_expectedArgs) === 1 && ($this->_expectedArgs[0] instanceof ArgumentListMatcher));
+ $this->_closureQueue = $args;
+
+ return $this;
}
- private function isAndAnyOtherArgumentsMatcher($expectedArg)
+ /**
+ * Set a sequential queue of return values with an array
+ *
+ * @return self
+ */
+ public function andReturnValues(array $values)
{
- return $expectedArg instanceof AndAnyOtherArgs;
+ return $this->andReturn(...$values);
}
/**
- * Check if passed arguments match an argument expectation
+ * Register values to be set to a public property each time this expectation occurs
*
- * @param array $args
- * @return bool
+ * @param string $name
+ * @param array ...$values
+ *
+ * @return self
*/
- public function matchArgs(array $args)
+ public function andSet($name, ...$values)
{
- if ($this->isArgumentListMatcher()) {
- return $this->_matchArg($this->_expectedArgs[0], $args);
- }
- $argCount = count($args);
- if ($argCount !== count((array) $this->_expectedArgs)) {
- $lastExpectedArgument = end($this->_expectedArgs);
- reset($this->_expectedArgs);
-
- if ($this->isAndAnyOtherArgumentsMatcher($lastExpectedArgument)) {
- $args = array_slice($args, 0, array_search($lastExpectedArgument, $this->_expectedArgs, true));
- return $this->_matchArgs($args);
- }
-
- return false;
- }
+ $this->_setQueue[$name] = $values;
- return $this->_matchArgs($args);
+ return $this;
}
/**
- * Check if the passed arguments match the expectations, one by one.
+ * Set Exception class and arguments to that class to be thrown
*
- * @param array $args
- * @return bool
+ * @param string|Throwable $exception
+ * @param string $message
+ * @param int $code
+ *
+ * @return self
*/
- protected function _matchArgs($args)
+ public function andThrow($exception, $message = '', $code = 0, ?\Exception $previous = null)
{
- $argCount = count($args);
- for ($i=0; $i<$argCount; $i++) {
- $param =& $args[$i];
- if (!$this->_matchArg($this->_expectedArgs[$i], $param)) {
- return false;
- }
+ $this->_throw = true;
+
+ if (is_object($exception)) {
+ return $this->andReturn($exception);
}
- return true;
+
+ return $this->andReturn(new $exception($message, $code, $previous));
}
/**
- * Check if passed argument matches an argument expectation
+ * Set Exception classes to be thrown
*
- * @param mixed $expected
- * @param mixed $actual
- * @return bool
+ * @return self
*/
- protected function _matchArg($expected, &$actual)
+ public function andThrowExceptions(array $exceptions)
{
- if ($expected === $actual) {
- return true;
- }
- if (!is_object($expected) && !is_object($actual) && $expected == $actual) {
- return true;
- }
- if (is_string($expected) && is_object($actual)) {
- $result = $actual instanceof $expected;
- if ($result) {
- return true;
- }
- }
- if (is_object($expected)) {
- $matcher = \Mockery::getConfiguration()->getDefaultMatcher(get_class($expected));
- if ($matcher !== null) {
- $expected = new $matcher($expected);
+ $this->_throw = true;
+
+ foreach ($exceptions as $exception) {
+ if (! is_object($exception)) {
+ throw new Exception('You must pass an array of exception objects to andThrowExceptions');
}
}
- if ($expected instanceof \Mockery\Matcher\MatcherAbstract) {
- return $expected->match($actual);
- }
- if ($expected instanceof \Hamcrest\Matcher || $expected instanceof \Hamcrest_Matcher) {
- return $expected->matches($actual);
- }
- return false;
+
+ return $this->andReturnValues($exceptions);
+ }
+
+ public function andThrows($exception, $message = '', $code = 0, ?\Exception $previous = null)
+ {
+ return $this->andThrow($exception, $message, $code, $previous);
}
/**
- * Expected argument setter for the expectation
+ * Sets up a closure that will yield each of the provided args
*
* @param mixed ...$args
*
* @return self
*/
- public function with(...$args)
+ public function andYield(...$args)
{
- return $this->withArgs($args);
+ $closure = static function () use ($args) {
+ foreach ($args as $arg) {
+ yield $arg;
+ }
+ };
+
+ $this->_closureQueue = [$closure];
+
+ return $this;
}
/**
- * Expected arguments for the expectation passed as an array
+ * Sets next count validator to the AtLeast instance
*
- * @param array $arguments
* @return self
*/
- private function withArgsInArray(array $arguments)
+ public function atLeast()
{
- if (empty($arguments)) {
- return $this->withNoArgs();
- }
- $this->_expectedArgs = $arguments;
+ $this->_countValidatorClass = AtLeast::class;
+
return $this;
}
/**
- * Expected arguments have to be matched by the given closure.
+ * Sets next count validator to the AtMost instance
*
- * @param Closure $closure
* @return self
*/
- private function withArgsMatchedByClosure(Closure $closure)
+ public function atMost()
{
- $this->_expectedArgs = [new MultiArgumentClosure($closure)];
+ $this->_countValidatorClass = AtMost::class;
+
return $this;
}
/**
- * Expected arguments for the expectation passed as an array or a closure that matches each passed argument on
- * each function call.
+ * Set the exception message
*
- * @param array|Closure $argsOrClosure
- * @return self
+ * @param string $message
+ *
+ * @return $this
*/
- public function withArgs($argsOrClosure)
+ public function because($message)
{
- if (is_array($argsOrClosure)) {
- $this->withArgsInArray($argsOrClosure);
- } elseif ($argsOrClosure instanceof Closure) {
- $this->withArgsMatchedByClosure($argsOrClosure);
- } else {
- throw new \InvalidArgumentException(sprintf('Call to %s with an invalid argument (%s), only array and ' .
- 'closure are allowed', __METHOD__, $argsOrClosure));
- }
+ $this->_because = $message;
+
return $this;
}
/**
- * Set with() as no arguments expected
+ * Shorthand for setting minimum and maximum constraints on call counts
*
- * @return self
+ * @param int $minimum
+ * @param int $maximum
*/
- public function withNoArgs()
+ public function between($minimum, $maximum)
{
- $this->_expectedArgs = [new NoArgs()];
- return $this;
+ return $this->atLeast()->times($minimum)->atMost()->times($maximum);
}
/**
- * Set expectation that any arguments are acceptable
+ * Mark this expectation as being a default
*
* @return self
*/
- public function withAnyArgs()
+ public function byDefault()
{
- $this->_expectedArgs = [new AnyArgs()];
+ $director = $this->_mock->mockery_getExpectationsFor($this->_name);
+
+ if ($director instanceof ExpectationDirector) {
+ $director->makeExpectationDefault($this);
+ }
+
return $this;
}
/**
- * Expected arguments should partially match the real arguments
- *
- * @param mixed ...$expectedArgs
- * @return self
+ * @return null|string
*/
- public function withSomeOfArgs(...$expectedArgs)
+ public function getExceptionMessage()
{
- return $this->withArgs(function (...$args) use ($expectedArgs) {
- foreach ($expectedArgs as $expectedArg) {
- if (!in_array($expectedArg, $args, true)) {
- return false;
- }
- }
- return true;
- });
+ return $this->_because;
}
/**
- * Set a return value, or sequential queue of return values
+ * Return the parent mock of the expectation
*
- * @param mixed ...$args
- * @return self
+ * @return LegacyMockInterface|MockInterface
*/
- public function andReturn(...$args)
+ public function getMock()
{
- $this->_returnQueue = $args;
- return $this;
+ return $this->_mock;
}
- /**
- * Set a return value, or sequential queue of return values
- *
- * @param mixed ...$args
- * @return self
- */
- public function andReturns(...$args)
+ public function getName()
{
- return call_user_func_array([$this, 'andReturn'], $args);
+ return $this->_name;
}
/**
- * Return this mock, like a fluent interface
+ * Return order number
*
- * @return self
+ * @return int
*/
- public function andReturnSelf()
+ public function getOrderNumber()
{
- return $this->andReturn($this->_mock);
+ return $this->_orderNumber;
}
/**
- * Set a sequential queue of return values with an array
+ * Indicates call order should apply globally
*
- * @param array $values
* @return self
*/
- public function andReturnValues(array $values)
+ public function globally()
{
- call_user_func_array(array($this, 'andReturn'), $values);
+ $this->_globally = true;
+
return $this;
}
/**
- * Set a closure or sequence of closures with which to generate return
- * values. The arguments passed to the expected method are passed to the
- * closures as parameters.
+ * Check if there is a constraint on call count
*
- * @param callable ...$args
- * @return self
+ * @return bool
*/
- public function andReturnUsing(...$args)
+ public function isCallCountConstrained()
{
- $this->_closureQueue = $args;
- return $this;
+ return $this->_countValidators !== [];
}
/**
- * Sets up a closure to return the nth argument from the expected method call
+ * Checks if this expectation is eligible for additional calls
*
- * @param int $index
- * @return self
+ * @return bool
*/
- public function andReturnArg($index)
+ public function isEligible()
{
- if (!is_int($index) || $index < 0) {
- throw new \InvalidArgumentException("Invalid argument index supplied. Index must be a non-negative integer.");
- }
- $closure = function (...$args) use ($index) {
- if (array_key_exists($index, $args)) {
- return $args[$index];
+ foreach ($this->_countValidators as $validator) {
+ if (! $validator->isEligible($this->_actualCount)) {
+ return false;
}
- throw new \OutOfBoundsException("Cannot return an argument value. No argument exists for the index $index");
- };
+ }
- $this->_closureQueue = [$closure];
- return $this;
+ return true;
}
/**
- * Return a self-returning black hole object.
+ * Check if passed arguments match an argument expectation
*
- * @return self
+ * @return bool
*/
- public function andReturnUndefined()
+ public function matchArgs(array $args)
{
- $this->andReturn(new \Mockery\Undefined());
- return $this;
+ if ($this->isArgumentListMatcher()) {
+ return $this->_matchArg($this->_expectedArgs[0], $args);
+ }
+
+ $argCount = count($args);
+
+ $expectedArgsCount = count($this->_expectedArgs);
+
+ if ($argCount === $expectedArgsCount) {
+ return $this->_matchArgs($args);
+ }
+
+ $lastExpectedArgument = $this->_expectedArgs[$expectedArgsCount - 1];
+
+ if ($lastExpectedArgument instanceof AndAnyOtherArgs) {
+ $firstCorrespondingKey = array_search($lastExpectedArgument, $this->_expectedArgs, true);
+
+ $args = array_slice($args, 0, $firstCorrespondingKey);
+
+ return $this->_matchArgs($args);
+ }
+
+ return false;
}
/**
- * Return null. This is merely a language construct for Mock describing.
+ * Indicates that this expectation is never expected to be called
*
* @return self
*/
- public function andReturnNull()
- {
- return $this->andReturn(null);
- }
-
- public function andReturnFalse()
+ public function never()
{
- return $this->andReturn(false);
+ return $this->times(0);
}
- public function andReturnTrue()
+ /**
+ * Indicates that this expectation is expected exactly once
+ *
+ * @return self
+ */
+ public function once()
{
- return $this->andReturn(true);
+ return $this->times(1);
}
/**
- * Set Exception class and arguments to that class to be thrown
+ * Indicates that this expectation must be called in a specific given order
+ *
+ * @param string $group Name of the ordered group
*
- * @param string|\Exception $exception
- * @param string $message
- * @param int $code
- * @param \Exception $previous
* @return self
*/
- public function andThrow($exception, $message = '', $code = 0, \Exception $previous = null)
+ public function ordered($group = null)
{
- $this->_throw = true;
- if (is_object($exception)) {
- $this->andReturn($exception);
+ if ($this->_globally) {
+ $this->_globalOrderNumber = $this->_defineOrdered($group, $this->_mock->mockery_getContainer());
} else {
- $this->andReturn(new $exception($message, $code, $previous));
+ $this->_orderNumber = $this->_defineOrdered($group, $this->_mock);
}
- return $this;
- }
- public function andThrows($exception, $message = '', $code = 0, \Exception $previous = null)
- {
- return $this->andThrow($exception, $message, $code, $previous);
+ $this->_globally = false;
+
+ return $this;
}
/**
- * Set Exception classes to be thrown
+ * Flag this expectation as calling the original class method with
+ * the provided arguments instead of using a return value queue.
*
- * @param array $exceptions
* @return self
*/
- public function andThrowExceptions(array $exceptions)
+ public function passthru()
{
- $this->_throw = true;
- foreach ($exceptions as $exception) {
- if (!is_object($exception)) {
- throw new Exception('You must pass an array of exception objects to andThrowExceptions');
- }
+ if ($this->_mock instanceof Mock) {
+ throw new Exception(
+ 'Mock Objects not created from a loaded/existing class are incapable of passing method calls through to a parent class'
+ );
}
- return $this->andReturnValues($exceptions);
+
+ $this->_passthru = true;
+
+ return $this;
}
/**
- * Register values to be set to a public property each time this expectation occurs
+ * Alias to andSet(). Allows the natural English construct
+ * - set('foo', 'bar')->andReturn('bar')
*
* @param string $name
- * @param array ...$values
+ * @param mixed $value
+ *
* @return self
*/
- public function andSet($name, ...$values)
+ public function set($name, $value)
{
- $this->_setQueue[$name] = $values;
- return $this;
+ return $this->andSet(...func_get_args());
}
/**
- * Sets up a closure that will yield each of the provided args
+ * Indicates the number of times this expectation should occur
+ *
+ * @param int $limit
+ *
+ * @throws InvalidArgumentException
*
- * @param mixed ...$args
* @return self
*/
- public function andYield(...$args)
+ public function times($limit = null)
{
- $this->_closureQueue = [
- static function () use ($args) {
- foreach ($args as $arg) {
- yield $arg;
- }
- },
- ];
+ if ($limit === null) {
+ return $this;
+ }
+
+ if (! is_int($limit)) {
+ throw new InvalidArgumentException('The passed Times limit should be an integer value');
+ }
+
+ if ($this->_expectedCount === 0) {
+ @trigger_error(self::ERROR_ZERO_INVOCATION, E_USER_DEPRECATED);
+ // throw new \InvalidArgumentException(self::ERROR_ZERO_INVOCATION);
+ }
+
+ if ($limit === 0) {
+ $this->_countValidators = [];
+ }
+
+ $this->_expectedCount = $limit;
+
+ $this->_countValidators[$this->_countValidatorClass] = new $this->_countValidatorClass($this, $limit);
+
+ if ($this->_countValidatorClass !== Exact::class) {
+ $this->_countValidatorClass = Exact::class;
+
+ unset($this->_countValidators[$this->_countValidatorClass]);
+ }
return $this;
}
/**
- * Alias to andSet(). Allows the natural English construct
- * - set('foo', 'bar')->andReturn('bar')
+ * Indicates that this expectation is expected exactly twice
*
- * @param string $name
- * @param mixed $value
* @return self
*/
- public function set($name, $value)
+ public function twice()
{
- return call_user_func_array(array($this, 'andSet'), func_get_args());
+ return $this->times(2);
}
/**
- * Indicates this expectation should occur zero or more times
+ * Verify call order
*
- * @return self
+ * @return void
*/
- public function zeroOrMoreTimes()
+ public function validateOrder()
{
- $this->atLeast()->never();
+ if ($this->_orderNumber) {
+ $this->_mock->mockery_validateOrder((string) $this, $this->_orderNumber, $this->_mock);
+ }
+
+ if ($this->_globalOrderNumber) {
+ $this->_mock->mockery_getContainer()->mockery_validateOrder(
+ (string) $this,
+ $this->_globalOrderNumber,
+ $this->_mock
+ );
+ }
}
/**
- * Indicates the number of times this expectation should occur
+ * Verify this expectation
*
- * @param int $limit
- * @throws \InvalidArgumentException
- * @return self
+ * @return void
*/
- public function times($limit = null)
+ public function verify()
{
- if (is_null($limit)) {
- return $this;
- }
- if (!is_int($limit)) {
- throw new \InvalidArgumentException('The passed Times limit should be an integer value');
+ foreach ($this->_countValidators as $validator) {
+ $validator->validate($this->_actualCount);
}
- $this->_countValidators[$this->_countValidatorClass] = new $this->_countValidatorClass($this, $limit);
+ }
- if ('Mockery\CountValidator\Exact' !== $this->_countValidatorClass) {
- $this->_countValidatorClass = 'Mockery\CountValidator\Exact';
- unset($this->_countValidators[$this->_countValidatorClass]);
+ /**
+ * Verify the current call, i.e. that the given arguments match those
+ * of this expectation
+ *
+ * @throws Throwable
+ *
+ * @return mixed
+ */
+ public function verifyCall(array $args)
+ {
+ $this->validateOrder();
+
+ ++$this->_actualCount;
+
+ if ($this->_passthru === true) {
+ return $this->_mock->mockery_callSubjectMethod($this->_name, $args);
}
- return $this;
+ $return = $this->_getReturnValue($args);
+
+ $this->throwAsNecessary($return);
+
+ $this->_setValues();
+
+ return $return;
}
/**
- * Indicates that this expectation is never expected to be called
+ * Expected argument setter for the expectation
+ *
+ * @param mixed ...$args
*
* @return self
*/
- public function never()
+ public function with(...$args)
{
- return $this->times(0);
+ return $this->withArgs($args);
}
/**
- * Indicates that this expectation is expected exactly once
+ * Set expectation that any arguments are acceptable
*
* @return self
*/
- public function once()
+ public function withAnyArgs()
{
- return $this->times(1);
+ $this->_expectedArgs = [new AnyArgs()];
+
+ return $this;
}
/**
- * Indicates that this expectation is expected exactly twice
+ * Expected arguments for the expectation passed as an array or a closure that matches each passed argument on
+ * each function call.
+ *
+ * @param array|Closure $argsOrClosure
*
* @return self
*/
- public function twice()
+ public function withArgs($argsOrClosure)
{
- return $this->times(2);
+ if (is_array($argsOrClosure)) {
+ return $this->withArgsInArray($argsOrClosure);
+ }
+
+ if ($argsOrClosure instanceof Closure) {
+ return $this->withArgsMatchedByClosure($argsOrClosure);
+ }
+
+ throw new InvalidArgumentException(sprintf(
+ 'Call to %s with an invalid argument (%s), only array and closure are allowed',
+ __METHOD__,
+ $argsOrClosure
+ ));
}
/**
- * Sets next count validator to the AtLeast instance
+ * Set with() as no arguments expected
*
* @return self
*/
- public function atLeast()
+ public function withNoArgs()
{
- $this->_countValidatorClass = 'Mockery\CountValidator\AtLeast';
+ $this->_expectedArgs = [new NoArgs()];
+
return $this;
}
/**
- * Sets next count validator to the AtMost instance
+ * Expected arguments should partially match the real arguments
+ *
+ * @param mixed ...$expectedArgs
*
* @return self
*/
- public function atMost()
+ public function withSomeOfArgs(...$expectedArgs)
{
- $this->_countValidatorClass = 'Mockery\CountValidator\AtMost';
- return $this;
+ return $this->withArgs(static function (...$args) use ($expectedArgs): bool {
+ foreach ($expectedArgs as $expectedArg) {
+ if (! in_array($expectedArg, $args, true)) {
+ return false;
+ }
+ }
+
+ return true;
+ });
}
/**
- * Shorthand for setting minimum and maximum constraints on call counts
+ * Indicates this expectation should occur zero or more times
*
- * @param int $minimum
- * @param int $maximum
+ * @return self
*/
- public function between($minimum, $maximum)
+ public function zeroOrMoreTimes()
{
- return $this->atLeast()->times($minimum)->atMost()->times($maximum);
+ return $this->atLeast()->never();
}
-
/**
- * Set the exception message
+ * Setup the ordering tracking on the mock or mock container
*
- * @param string $message
- * @return $this
+ * @param string $group
+ * @param object $ordering
+ *
+ * @return int
*/
- public function because($message)
+ protected function _defineOrdered($group, $ordering)
{
- $this->_because = $message;
- return $this;
+ $groups = $ordering->mockery_getGroups();
+ if ($group === null) {
+ return $ordering->mockery_allocateOrder();
+ }
+
+ if (array_key_exists($group, $groups)) {
+ return $groups[$group];
+ }
+
+ $result = $ordering->mockery_allocateOrder();
+
+ $ordering->mockery_setGroup($group, $result);
+
+ return $result;
}
/**
- * Indicates that this expectation must be called in a specific given order
+ * Fetch the return value for the matching args
*
- * @param string $group Name of the ordered group
- * @return self
+ * @return mixed
*/
- public function ordered($group = null)
+ protected function _getReturnValue(array $args)
{
- if ($this->_globally) {
- $this->_globalOrderNumber = $this->_defineOrdered($group, $this->_mock->mockery_getContainer());
- } else {
- $this->_orderNumber = $this->_defineOrdered($group, $this->_mock);
+ $closureQueueCount = count($this->_closureQueue);
+
+ if ($closureQueueCount > 1) {
+ return array_shift($this->_closureQueue)(...$args);
}
- $this->_globally = false;
- return $this;
+
+ if ($closureQueueCount > 0) {
+ return current($this->_closureQueue)(...$args);
+ }
+
+ $returnQueueCount = count($this->_returnQueue);
+
+ if ($returnQueueCount > 1) {
+ return array_shift($this->_returnQueue);
+ }
+
+ if ($returnQueueCount > 0) {
+ return current($this->_returnQueue);
+ }
+
+ return $this->_mock->mockery_returnValueForMethod($this->_name);
}
/**
- * Indicates call order should apply globally
+ * Check if passed argument matches an argument expectation
*
- * @return self
+ * @param mixed $expected
+ * @param mixed $actual
+ *
+ * @return bool
*/
- public function globally()
+ protected function _matchArg($expected, &$actual)
{
- $this->_globally = true;
- return $this;
+ if ($expected === $actual) {
+ return true;
+ }
+
+ if ($expected instanceof MatcherInterface) {
+ return $expected->match($actual);
+ }
+
+ if ($expected instanceof Constraint) {
+ return (bool) $expected->evaluate($actual, '', true);
+ }
+
+ if ($expected instanceof Matcher || $expected instanceof Hamcrest_Matcher) {
+ @trigger_error('Hamcrest package has been deprecated and will be removed in 2.0', E_USER_DEPRECATED);
+
+ return $expected->matches($actual);
+ }
+
+ if (is_object($expected)) {
+ $matcher = Mockery::getConfiguration()->getDefaultMatcher(get_class($expected));
+
+ return $matcher === null ? false : $this->_matchArg(new $matcher($expected), $actual);
+ }
+
+ if (is_object($actual) && is_string($expected) && $actual instanceof $expected) {
+ return true;
+ }
+
+ return $expected == $actual;
}
/**
- * Setup the ordering tracking on the mock or mock container
+ * Check if the passed arguments match the expectations, one by one.
*
- * @param string $group
- * @param object $ordering
- * @return int
+ * @param array $args
+ *
+ * @return bool
*/
- protected function _defineOrdered($group, $ordering)
+ protected function _matchArgs($args)
{
- $groups = $ordering->mockery_getGroups();
- if (is_null($group)) {
- $result = $ordering->mockery_allocateOrder();
- } elseif (isset($groups[$group])) {
- $result = $groups[$group];
- } else {
- $result = $ordering->mockery_allocateOrder();
- $ordering->mockery_setGroup($group, $result);
+ for ($index = 0, $argCount = count($args); $index < $argCount; ++$index) {
+ $param = &$args[$index];
+
+ if (! $this->_matchArg($this->_expectedArgs[$index], $param)) {
+ return false;
+ }
}
- return $result;
+
+ return true;
}
/**
- * Return order number
+ * Sets public properties with queued values to the mock object
*
- * @return int
+ * @return void
*/
- public function getOrderNumber()
+ protected function _setValues()
{
- return $this->_orderNumber;
+ $mockClass = get_class($this->_mock);
+
+ $container = $this->_mock->mockery_getContainer();
+
+ $mocks = $container->getMocks();
+
+ foreach ($this->_setQueue as $name => &$values) {
+ if ($values === []) {
+ continue;
+ }
+
+ $value = array_shift($values);
+
+ $this->_mock->{$name} = $value;
+
+ foreach ($mocks as $mock) {
+ if (! $mock instanceof $mockClass) {
+ continue;
+ }
+
+ if (! $mock->mockery_isInstance()) {
+ continue;
+ }
+
+ $mock->{$name} = $value;
+ }
+ }
}
/**
- * Mark this expectation as being a default
+ * @template TExpectedArg
*
- * @return self
+ * @param TExpectedArg $expectedArg
+ *
+ * @return bool
*/
- public function byDefault()
+ private function isAndAnyOtherArgumentsMatcher($expectedArg)
{
- $director = $this->_mock->mockery_getExpectationsFor($this->_name);
- if (!empty($director)) {
- $director->makeExpectationDefault($this);
- }
- return $this;
+ return $expectedArg instanceof AndAnyOtherArgs;
}
/**
- * Return the parent mock of the expectation
+ * Check if the registered expectation is an ArgumentListMatcher
*
- * @return \Mockery\LegacyMockInterface|\Mockery\MockInterface
+ * @return bool
*/
- public function getMock()
+ private function isArgumentListMatcher()
{
- return $this->_mock;
+ return $this->_expectedArgs !== [] && $this->_expectedArgs[0] instanceof ArgumentListMatcher;
}
/**
- * Flag this expectation as calling the original class method with the
- * any provided arguments instead of using a return value queue.
+ * Throws an exception if the expectation has been configured to do so
*
- * @return self
+ * @param Throwable $return
+ *
+ * @throws Throwable
+ *
+ * @return void
*/
- public function passthru()
+ private function throwAsNecessary($return)
{
- if ($this->_mock instanceof Mock) {
- throw new Exception(
- 'Mock Objects not created from a loaded/existing class are '
- . 'incapable of passing method calls through to a parent class'
- );
+ if (! $this->_throw) {
+ return;
}
- $this->_passthru = true;
- return $this;
+
+ if (! $return instanceof Throwable) {
+ return;
+ }
+
+ throw $return;
}
/**
- * Cloning logic
+ * Expected arguments for the expectation passed as an array
*
+ * @return self
*/
- public function __clone()
+ private function withArgsInArray(array $arguments)
{
- $newValidators = array();
- $countValidators = $this->_countValidators;
- foreach ($countValidators as $validator) {
- $newValidators[] = clone $validator;
+ if ($arguments === []) {
+ return $this->withNoArgs();
}
- $this->_countValidators = $newValidators;
- }
- public function getName()
- {
- return $this->_name;
+ $this->_expectedArgs = $arguments;
+
+ return $this;
}
- public function getExceptionMessage()
+ /**
+ * Expected arguments have to be matched by the given closure.
+ *
+ * @return self
+ */
+ private function withArgsMatchedByClosure(Closure $closure)
{
- return $this->_because;
+ $this->_expectedArgs = [new MultiArgumentClosure($closure)];
+
+ return $this;
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/ExpectationDirector.php b/api/vendor/mockery/mockery/library/Mockery/ExpectationDirector.php
index efb0b70ba9..286268b811 100644
--- a/api/vendor/mockery/mockery/library/Mockery/ExpectationDirector.php
+++ b/api/vendor/mockery/mockery/library/Mockery/ExpectationDirector.php
@@ -1,47 +1,39 @@
*/
- protected $_mock = null;
+ protected $_defaults = [];
/**
* Stores an array of all expectations for this mock
*
- * @var array
+ * @var list
*/
- protected $_expectations = array();
+ protected $_expectations = [];
/**
* The expected order of next call
@@ -51,19 +43,25 @@ class ExpectationDirector
protected $_expectedOrder = null;
/**
- * Stores an array of all default expectations for this mock
+ * Mock object the director is attached to
*
- * @var array
+ * @var LegacyMockInterface|MockInterface
*/
- protected $_defaults = array();
+ protected $_mock = null;
+
+ /**
+ * Method name the director is directing
+ *
+ * @var string
+ */
+ protected $_name = null;
/**
* Constructor
*
* @param string $name
- * @param \Mockery\LegacyMockInterface $mock
*/
- public function __construct($name, \Mockery\LegacyMockInterface $mock)
+ public function __construct($name, LegacyMockInterface $mock)
{
$this->_name = $name;
$this->_mock = $mock;
@@ -71,10 +69,8 @@ public function __construct($name, \Mockery\LegacyMockInterface $mock)
/**
* Add a new expectation to the director
- *
- * @param \Mockery\Expectation $expectation
*/
- public function addExpectation(\Mockery\Expectation $expectation)
+ public function addExpectation(Expectation $expectation)
{
$this->_expectations[] = $expectation;
}
@@ -82,114 +78,90 @@ public function addExpectation(\Mockery\Expectation $expectation)
/**
* Handle a method call being directed by this instance
*
- * @param array $args
* @return mixed
*/
public function call(array $args)
{
$expectation = $this->findExpectation($args);
- if (is_null($expectation)) {
- $exception = new \Mockery\Exception\NoMatchingExpectationException(
- 'No matching handler found for '
- . $this->_mock->mockery_getName() . '::'
- . \Mockery::formatArgs($this->_name, $args)
- . '. Either the method was unexpected or its arguments matched'
- . ' no expected argument list for this method'
- . PHP_EOL . PHP_EOL
- . \Mockery::formatObjects($args)
- );
- $exception->setMock($this->_mock)
- ->setMethodName($this->_name)
- ->setActualArguments($args);
- throw $exception;
+ if ($expectation !== null) {
+ return $expectation->verifyCall($args);
}
- return $expectation->verifyCall($args);
- }
- /**
- * Verify all expectations of the director
- *
- * @throws \Mockery\CountValidator\Exception
- * @return void
- */
- public function verify()
- {
- if (!empty($this->_expectations)) {
- foreach ($this->_expectations as $exp) {
- $exp->verify();
- }
- } else {
- foreach ($this->_defaults as $exp) {
- $exp->verify();
- }
- }
+ $exception = new NoMatchingExpectationException(
+ 'No matching handler found for '
+ . $this->_mock->mockery_getName() . '::'
+ . Mockery::formatArgs($this->_name, $args)
+ . '. Either the method was unexpected or its arguments matched'
+ . ' no expected argument list for this method'
+ . PHP_EOL . PHP_EOL
+ . Mockery::formatObjects($args)
+ );
+
+ $exception->setMock($this->_mock)
+ ->setMethodName($this->_name)
+ ->setActualArguments($args);
+
+ throw $exception;
}
/**
* Attempt to locate an expectation matching the provided args
*
- * @param array $args
* @return mixed
*/
public function findExpectation(array $args)
{
$expectation = null;
- if (!empty($this->_expectations)) {
+ if ($this->_expectations !== []) {
$expectation = $this->_findExpectationIn($this->_expectations, $args);
}
- if ($expectation === null && !empty($this->_defaults)) {
- $expectation = $this->_findExpectationIn($this->_defaults, $args);
+ if ($expectation === null && $this->_defaults !== []) {
+ return $this->_findExpectationIn($this->_defaults, $args);
}
return $expectation;
}
/**
- * Make the given expectation a default for all others assuming it was
- * correctly created last
+ * Return all expectations assigned to this director
*
- * @param \Mockery\Expectation $expectation
+ * @return array
*/
- public function makeExpectationDefault(\Mockery\Expectation $expectation)
+ public function getDefaultExpectations()
{
- $last = end($this->_expectations);
- if ($last === $expectation) {
- array_pop($this->_expectations);
- array_unshift($this->_defaults, $expectation);
- } else {
- throw new \Mockery\Exception(
- 'Cannot turn a previously defined expectation into a default'
- );
- }
+ return $this->_defaults;
}
/**
- * Search current array of expectations for a match
+ * Return the number of expectations assigned to this director.
*
- * @param array $expectations
- * @param array $args
- * @return mixed
+ * @return int
*/
- protected function _findExpectationIn(array $expectations, array $args)
+ public function getExpectationCount()
{
- foreach ($expectations as $exp) {
- if ($exp->isEligible() && $exp->matchArgs($args)) {
- return $exp;
- }
+ $count = 0;
+
+ $expectations = $this->getExpectations();
+
+ if ($expectations === []) {
+ $expectations = $this->getDefaultExpectations();
}
- foreach ($expectations as $exp) {
- if ($exp->matchArgs($args)) {
- return $exp;
+
+ foreach ($expectations as $expectation) {
+ if ($expectation->isCallCountConstrained()) {
+ ++$count;
}
}
+
+ return $count;
}
/**
* Return all expectations assigned to this director
*
- * @return array
+ * @return array
*/
public function getExpectations()
{
@@ -197,30 +169,74 @@ public function getExpectations()
}
/**
- * Return all expectations assigned to this director
+ * Make the given expectation a default for all others assuming it was correctly created last
+ *
+ * @throws Exception
*
- * @return array
+ * @return void
*/
- public function getDefaultExpectations()
+ public function makeExpectationDefault(Expectation $expectation)
{
- return $this->_defaults;
+ if (end($this->_expectations) === $expectation) {
+ array_pop($this->_expectations);
+
+ array_unshift($this->_defaults, $expectation);
+
+ return;
+ }
+
+ throw new Exception('Cannot turn a previously defined expectation into a default');
}
/**
- * Return the number of expectations assigned to this director.
+ * Verify all expectations of the director
*
- * @return int
+ * @throws Exception
+ *
+ * @return void
*/
- public function getExpectationCount()
+ public function verify()
+ {
+ if ($this->_expectations !== []) {
+ foreach ($this->_expectations as $expectation) {
+ $expectation->verify();
+ }
+
+ return;
+ }
+
+ foreach ($this->_defaults as $expectation) {
+ $expectation->verify();
+ }
+ }
+
+ /**
+ * Search current array of expectations for a match
+ *
+ * @param array $expectations
+ *
+ * @return null|ExpectationInterface
+ */
+ protected function _findExpectationIn(array $expectations, array $args)
{
- $count = 0;
- /** @var Expectation $expectations */
- $expectations = $this->getExpectations() ?: $this->getDefaultExpectations();
foreach ($expectations as $expectation) {
- if ($expectation->isCallCountConstrained()) {
- $count++;
+ if (! $expectation->isEligible()) {
+ continue;
+ }
+
+ if (! $expectation->matchArgs($args)) {
+ continue;
+ }
+
+ return $expectation;
+ }
+
+ foreach ($expectations as $expectation) {
+ if ($expectation->matchArgs($args)) {
+ return $expectation;
}
}
- return $count;
+
+ return null;
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/ExpectationInterface.php b/api/vendor/mockery/mockery/library/Mockery/ExpectationInterface.php
index f1295ad355..29c27d3a28 100644
--- a/api/vendor/mockery/mockery/library/Mockery/ExpectationInterface.php
+++ b/api/vendor/mockery/mockery/library/Mockery/ExpectationInterface.php
@@ -1,22 +1,11 @@
+ */
+ protected $cache = [];
+
+ /**
+ * @var Generator
+ */
protected $generator;
- protected $cache = array();
public function __construct(Generator $generator)
{
$this->generator = $generator;
}
+ /**
+ * @return string
+ */
public function generate(MockConfiguration $config)
{
$hash = $config->getHash();
- if (isset($this->cache[$hash])) {
+
+ if (array_key_exists($hash, $this->cache)) {
return $this->cache[$hash];
}
- $definition = $this->generator->generate($config);
- $this->cache[$hash] = $definition;
-
- return $definition;
+ return $this->cache[$hash] = $this->generator->generate($config);
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Generator/DefinedTargetClass.php b/api/vendor/mockery/mockery/library/Mockery/Generator/DefinedTargetClass.php
index 7463f1d1d7..f2a3f32711 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Generator/DefinedTargetClass.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Generator/DefinedTargetClass.php
@@ -1,96 +1,140 @@
rfc = $rfc;
- $this->name = $alias === null ? $rfc->getName() : $alias;
- }
+ /**
+ * @var ReflectionClass
+ */
+ private $rfc;
- public static function factory($name, $alias = null)
+ /**
+ * @param ReflectionClass $rfc
+ * @param class-string|null $alias
+ */
+ public function __construct(ReflectionClass $rfc, $alias = null)
{
- return new self(new \ReflectionClass($name), $alias);
+ $this->rfc = $rfc;
+ $this->name = $alias ?? $rfc->getName();
}
- public function getName()
+ /**
+ * @return class-string
+ */
+ public function __toString()
{
return $this->name;
}
- public function isAbstract()
+ /**
+ * @param class-string $name
+ * @param class-string|null $alias
+ * @return self
+ */
+ public static function factory($name, $alias = null)
{
- return $this->rfc->isAbstract();
+ return new self(new ReflectionClass($name), $alias);
}
- public function isFinal()
+ /**
+ * @return list
+ */
+ public function getAttributes()
{
- return $this->rfc->isFinal();
- }
+ if (PHP_VERSION_ID < 80000) {
+ return [];
+ }
- public function getMethods()
- {
- return array_map(function ($method) {
- return new Method($method);
- }, $this->rfc->getMethods());
+ return array_unique(
+ array_merge(
+ ['\AllowDynamicProperties'],
+ array_map(
+ static function (ReflectionAttribute $attribute): string {
+ return '\\' . $attribute->getName();
+ },
+ $this->rfc->getAttributes()
+ )
+ )
+ );
}
+ /**
+ * @return array
+ */
public function getInterfaces()
{
- $class = __CLASS__;
- return array_map(function ($interface) use ($class) {
- return new $class($interface);
- }, $this->rfc->getInterfaces());
+ return array_map(
+ static function (ReflectionClass $interface): self {
+ return new self($interface);
+ },
+ $this->rfc->getInterfaces()
+ );
}
- public function __toString()
+ /**
+ * @return list
+ */
+ public function getMethods()
{
- return $this->getName();
+ return array_map(
+ static function (ReflectionMethod $method): Method {
+ return new Method($method);
+ },
+ $this->rfc->getMethods()
+ );
}
- public function getNamespaceName()
+ /**
+ * @return class-string
+ */
+ public function getName()
{
- return $this->rfc->getNamespaceName();
+ return $this->name;
}
- public function inNamespace()
+ /**
+ * @return string
+ */
+ public function getNamespaceName()
{
- return $this->rfc->inNamespace();
+ return $this->rfc->getNamespaceName();
}
+ /**
+ * @return string
+ */
public function getShortName()
{
return $this->rfc->getShortName();
}
- public function implementsInterface($interface)
- {
- return $this->rfc->implementsInterface($interface);
- }
-
+ /**
+ * @return bool
+ */
public function hasInternalAncestor()
{
if ($this->rfc->isInternal()) {
@@ -102,9 +146,43 @@ public function hasInternalAncestor()
if ($parent->isInternal()) {
return true;
}
+
$child = $parent;
}
return false;
}
+
+ /**
+ * @param class-string $interface
+ * @return bool
+ */
+ public function implementsInterface($interface)
+ {
+ return $this->rfc->implementsInterface($interface);
+ }
+
+ /**
+ * @return bool
+ */
+ public function inNamespace()
+ {
+ return $this->rfc->inNamespace();
+ }
+
+ /**
+ * @return bool
+ */
+ public function isAbstract()
+ {
+ return $this->rfc->isAbstract();
+ }
+
+ /**
+ * @return bool
+ */
+ public function isFinal()
+ {
+ return $this->rfc->isFinal();
+ }
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Generator/Generator.php b/api/vendor/mockery/mockery/library/Mockery/Generator/Generator.php
index 459a93cccc..9dc59c83b2 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Generator/Generator.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Generator/Generator.php
@@ -1,27 +1,19 @@
method = $method;
}
+ /**
+ * @template TArgs
+ * @template TMixed
+ *
+ * @param string $method
+ * @param array $args
+ *
+ * @return TMixed
+ */
public function __call($method, $args)
{
- return call_user_func_array(array($this->method, $method), $args);
+ /** @var TMixed */
+ return $this->method->{$method}(...$args);
}
/**
- * @return Parameter[]
+ * @return list
*/
public function getParameters()
{
- return array_map(function (\ReflectionParameter $parameter) {
+ return array_map(static function (ReflectionParameter $parameter) {
return new Parameter($parameter);
}, $this->method->getParameters());
}
/**
- * @return string|null
+ * @return null|string
*/
public function getReturnType()
{
diff --git a/api/vendor/mockery/mockery/library/Mockery/Generator/MockConfiguration.php b/api/vendor/mockery/mockery/library/Mockery/Generator/MockConfiguration.php
index 05903e5bbd..1849c3e2fe 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Generator/MockConfiguration.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Generator/MockConfiguration.php
@@ -1,25 +1,39 @@
*/
- protected $targetClass;
- protected $targetClassName;
+ protected $allMethods = [];
/**
- * A number of interfaces we'd like to mock, keyed by name to attempt to
- * keep unique
+ * Methods that should specifically not be mocked
+ *
+ * This is currently populated with stuff we don't know how to deal with, should really be somewhere else
*/
- protected $targetInterfaces = array();
- protected $targetInterfaceNames = array();
+ protected $blackListedMethods = [];
+
+ protected $constantsMap = [];
/**
- * A number of traits we'd like to mock, keyed by name to attempt to
- * keep unique
+ * An instance mock is where we override the original class before it's autoloaded
+ *
+ * @var bool
*/
- protected $targetTraits = array();
- protected $targetTraitNames = array();
+ protected $instanceMock = false;
/**
- * An object we'd like our mock to proxy to
+ * If true, overrides original class destructor
+ *
+ * @var bool
*/
- protected $targetObject;
+ protected $mockOriginalDestructor = false;
/**
* The class name we'd like to use for a generated mock
+ *
+ * @var string|null
*/
protected $name;
/**
- * Methods that should specifically not be mocked
+ * Param overrides
*
- * This is currently populated with stuff we don't know how to deal with,
- * should really be somewhere else
+ * @var array
*/
- protected $blackListedMethods = array();
+ protected $parameterOverrides = [];
/**
- * If not empty, only these methods will be mocked
+ * A class that we'd like to mock
+ * @var TargetClassInterface|null
+ */
+ protected $targetClass;
+
+ /**
+ * @var class-string|null
*/
- protected $whiteListedMethods = array();
+ protected $targetClassName;
/**
- * An instance mock is where we override the original class before it's
- * autoloaded
+ * @var array
*/
- protected $instanceMock = false;
+ protected $targetInterfaceNames = [];
/**
- * Param overrides
+ * A number of interfaces we'd like to mock, keyed by name to attempt to keep unique
+ *
+ * @var array
*/
- protected $parameterOverrides = array();
+ protected $targetInterfaces = [];
/**
- * Instance cache of all methods
+ * An object we'd like our mock to proxy to
+ *
+ * @var object|null
*/
- protected $allMethods;
+ protected $targetObject;
/**
- * If true, overrides original class destructor
+ * @var array
*/
- protected $mockOriginalDestructor = false;
+ protected $targetTraitNames = [];
- protected $constantsMap = array();
+ /**
+ * A number of traits we'd like to mock, keyed by name to attempt to keep unique
+ *
+ * @var array
+ */
+ protected $targetTraits = [];
+
+ /**
+ * If not empty, only these methods will be mocked
+ *
+ * @var array
+ */
+ protected $whiteListedMethods = [];
+ /**
+ * @param array $targets
+ * @param array $blackListedMethods
+ * @param array $whiteListedMethods
+ * @param string|null $name
+ * @param bool $instanceMock
+ * @param array $parameterOverrides
+ * @param bool $mockOriginalDestructor
+ * @param array|scalar> $constantsMap
+ */
public function __construct(
- array $targets = array(),
- array $blackListedMethods = array(),
- array $whiteListedMethods = array(),
+ array $targets = [],
+ array $blackListedMethods = [],
+ array $whiteListedMethods = [],
$name = null,
$instanceMock = false,
- array $parameterOverrides = array(),
+ array $parameterOverrides = [],
$mockOriginalDestructor = false,
- array $constantsMap = array()
+ array $constantsMap = []
) {
$this->addTargets($targets);
$this->blackListedMethods = $blackListedMethods;
@@ -112,6 +163,52 @@ public function __construct(
$this->constantsMap = $constantsMap;
}
+ /**
+ * Generate a suitable name based on the config
+ *
+ * @return string
+ */
+ public function generateName()
+ {
+ $nameBuilder = new MockNameBuilder();
+
+ $targetObject = $this->getTargetObject();
+ if ($targetObject !== null) {
+ $className = get_class($targetObject);
+
+ $nameBuilder->addPart(strpos($className, '@') !== false ? md5($className) : $className);
+ }
+
+ $targetClass = $this->getTargetClass();
+ if ($targetClass instanceof TargetClassInterface) {
+ $className = $targetClass->getName();
+
+ $nameBuilder->addPart(strpos($className, '@') !== false ? md5($className) : $className);
+ }
+
+ foreach ($this->getTargetInterfaces() as $targetInterface) {
+ $nameBuilder->addPart($targetInterface->getName());
+ }
+
+ return $nameBuilder->build();
+ }
+
+ /**
+ * @return array
+ */
+ public function getBlackListedMethods()
+ {
+ return $this->blackListedMethods;
+ }
+
+ /**
+ * @return array>
+ */
+ public function getConstantsMap()
+ {
+ return $this->constantsMap;
+ }
+
/**
* Attempt to create a hash of the configuration, in order to allow caching
*
@@ -121,25 +218,26 @@ public function __construct(
*/
public function getHash()
{
- $vars = array(
- 'targetClassName' => $this->targetClassName,
- 'targetInterfaceNames' => $this->targetInterfaceNames,
- 'targetTraitNames' => $this->targetTraitNames,
- 'name' => $this->name,
- 'blackListedMethods' => $this->blackListedMethods,
- 'whiteListedMethod' => $this->whiteListedMethods,
- 'instanceMock' => $this->instanceMock,
- 'parameterOverrides' => $this->parameterOverrides,
- 'mockOriginalDestructor' => $this->mockOriginalDestructor
- );
+ $vars = [
+ 'targetClassName' => $this->targetClassName,
+ 'targetInterfaceNames' => $this->targetInterfaceNames,
+ 'targetTraitNames' => $this->targetTraitNames,
+ 'name' => $this->name,
+ 'blackListedMethods' => $this->blackListedMethods,
+ 'whiteListedMethod' => $this->whiteListedMethods,
+ 'instanceMock' => $this->instanceMock,
+ 'parameterOverrides' => $this->parameterOverrides,
+ 'mockOriginalDestructor' => $this->mockOriginalDestructor,
+ ];
return md5(serialize($vars));
}
/**
- * Gets a list of methods from the classes, interfaces and objects and
- * filters them appropriately. Lot's of filtering going on, perhaps we could
- * have filter classes to iterate through
+ * Gets a list of methods from the classes, interfaces and objects and filters them appropriately.
+ * Lot's of filtering going on, perhaps we could have filter classes to iterate through
+ *
+ * @return list
*/
public function getMethodsToMock()
{
@@ -154,22 +252,28 @@ public function getMethodsToMock()
/**
* Whitelist trumps everything else
*/
- if (count($this->getWhiteListedMethods())) {
- $whitelist = array_map('strtolower', $this->getWhiteListedMethods());
- $methods = array_filter($methods, function ($method) use ($whitelist) {
- return $method->isAbstract() || in_array(strtolower($method->getName()), $whitelist);
- });
+ $whiteListedMethods = $this->getWhiteListedMethods();
+ if ($whiteListedMethods !== []) {
+ $whitelist = array_map('strtolower', $whiteListedMethods);
+
+ return array_filter($methods, static function ($method) use ($whitelist) {
+ if ($method->isAbstract()) {
+ return true;
+ }
- return $methods;
+ return in_array(strtolower($method->getName()), $whitelist, true);
+ });
}
/**
* Remove blacklisted methods
*/
- if (count($this->getBlackListedMethods())) {
- $blacklist = array_map('strtolower', $this->getBlackListedMethods());
- $methods = array_filter($methods, function ($method) use ($blacklist) {
- return !in_array(strtolower($method->getName()), $blacklist);
+ $blackListedMethods = $this->getBlackListedMethods();
+ if ($blackListedMethods !== []) {
+ $blacklist = array_map('strtolower', $blackListedMethods);
+
+ $methods = array_filter($methods, static function ($method) use ($blacklist) {
+ return ! in_array(strtolower($method->getName()), $blacklist, true);
});
}
@@ -179,11 +283,15 @@ public function getMethodsToMock()
* such, we can't mock it and will need a pass to add a dummy
* implementation
*/
- if ($this->getTargetClass()
- && $this->getTargetClass()->implementsInterface("Serializable")
- && $this->getTargetClass()->hasInternalAncestor()) {
- $methods = array_filter($methods, function ($method) {
- return $method->getName() !== "unserialize";
+ $targetClass = $this->getTargetClass();
+
+ if (
+ $targetClass !== null
+ && $targetClass->implementsInterface(Serializable::class)
+ && $targetClass->hasInternalAncestor()
+ ) {
+ $methods = array_filter($methods, static function ($method) {
+ return $method->getName() !== 'unserialize';
});
}
@@ -191,129 +299,55 @@ public function getMethodsToMock()
}
/**
- * We declare the __call method to handle undefined stuff, if the class
- * we're mocking has also defined it, we need to comply with their interface
+ * @return string|null
*/
- public function requiresCallTypeHintRemoval()
+ public function getName()
{
- foreach ($this->getAllMethods() as $method) {
- if ("__call" === $method->getName()) {
- $params = $method->getParameters();
- return !$params[1]->isArray();
- }
- }
-
- return false;
+ return $this->name;
}
/**
- * We declare the __callStatic method to handle undefined stuff, if the class
- * we're mocking has also defined it, we need to comply with their interface
+ * @return string
*/
- public function requiresCallStaticTypeHintRemoval()
- {
- foreach ($this->getAllMethods() as $method) {
- if ("__callStatic" === $method->getName()) {
- $params = $method->getParameters();
- return !$params[1]->isArray();
- }
- }
-
- return false;
- }
-
- public function rename($className)
- {
- $targets = array();
-
- if ($this->targetClassName) {
- $targets[] = $this->targetClassName;
- }
-
- if ($this->targetInterfaceNames) {
- $targets = array_merge($targets, $this->targetInterfaceNames);
- }
-
- if ($this->targetTraitNames) {
- $targets = array_merge($targets, $this->targetTraitNames);
- }
-
- if ($this->targetObject) {
- $targets[] = $this->targetObject;
- }
-
- return new self(
- $targets,
- $this->blackListedMethods,
- $this->whiteListedMethods,
- $className,
- $this->instanceMock,
- $this->parameterOverrides,
- $this->mockOriginalDestructor,
- $this->constantsMap
- );
- }
-
- protected function addTarget($target)
+ public function getNamespaceName()
{
- if (is_object($target)) {
- $this->setTargetObject($target);
- $this->setTargetClassName(get_class($target));
- return $this;
- }
-
- if ($target[0] !== "\\") {
- $target = "\\" . $target;
- }
-
- if (class_exists($target)) {
- $this->setTargetClassName($target);
- return $this;
- }
-
- if (interface_exists($target)) {
- $this->addTargetInterfaceName($target);
- return $this;
- }
+ $parts = explode('\\', $this->getName());
+ array_pop($parts);
- if (trait_exists($target)) {
- $this->addTargetTraitName($target);
- return $this;
+ if ($parts !== []) {
+ return implode('\\', $parts);
}
- /**
- * Default is to set as class, or interface if class already set
- *
- * Don't like this condition, can't remember what the default
- * targetClass is for
- */
- if ($this->getTargetClassName()) {
- $this->addTargetInterfaceName($target);
- return $this;
- }
-
- $this->setTargetClassName($target);
+ return '';
}
- protected function addTargets($interfaces)
+ /**
+ * @return array
+ */
+ public function getParameterOverrides()
{
- foreach ($interfaces as $interface) {
- $this->addTarget($interface);
- }
+ return $this->parameterOverrides;
}
- public function getTargetClassName()
+ /**
+ * @return string
+ */
+ public function getShortName()
{
- return $this->targetClassName;
+ $parts = explode('\\', $this->getName());
+ return array_pop($parts);
}
+ /**
+ * @return null|TargetClassInterface
+ */
public function getTargetClass()
{
if ($this->targetClass) {
return $this->targetClass;
}
- if (!$this->targetClassName) {
+ if (! $this->targetClassName) {
return null;
}
@@ -326,10 +360,11 @@ public function getTargetClass()
->build();
class_alias($this->targetClassName, $alias);
}
+
$dtc = DefinedTargetClass::factory($this->targetClassName, $alias);
- if ($this->getTargetObject() == false && $dtc->isFinal()) {
- throw new \Mockery\Exception(
+ if ($this->getTargetObject() === null && $dtc->isFinal()) {
+ throw new Exception(
'The class ' . $this->targetClassName . ' is marked final and its methods'
. ' cannot be replaced. Classes marked final can be passed in'
. ' to \Mockery::mock() as instantiated objects to create a'
@@ -346,28 +381,25 @@ class_alias($this->targetClassName, $alias);
return $this->targetClass;
}
- public function getTargetTraits()
+ /**
+ * @return class-string|null
+ */
+ public function getTargetClassName()
{
- if (!empty($this->targetTraits)) {
- return $this->targetTraits;
- }
-
- foreach ($this->targetTraitNames as $targetTrait) {
- $this->targetTraits[] = DefinedTargetClass::factory($targetTrait);
- }
-
- $this->targetTraits = array_unique($this->targetTraits); // just in case
- return $this->targetTraits;
+ return $this->targetClassName;
}
+ /**
+ * @return list
+ */
public function getTargetInterfaces()
{
- if (!empty($this->targetInterfaces)) {
+ if ($this->targetInterfaces !== []) {
return $this->targetInterfaces;
}
foreach ($this->targetInterfaceNames as $targetInterface) {
- if (!interface_exists($targetInterface)) {
+ if (! interface_exists($targetInterface)) {
$this->targetInterfaces[] = UndefinedTargetClass::factory($targetInterface);
continue;
}
@@ -379,118 +411,248 @@ public function getTargetInterfaces()
$traversableFound = false;
$iteratorShiftedToFront = false;
foreach ($extendedInterfaces as $interface) {
- if (!$traversableFound && preg_match("/^\\?Iterator(|Aggregate)$/i", $interface)) {
+ if (! $traversableFound && preg_match('/^\\?Iterator(|Aggregate)$/i', $interface)) {
break;
}
- if (preg_match("/^\\\\?IteratorAggregate$/i", $interface)) {
- $this->targetInterfaces[] = DefinedTargetClass::factory("\\IteratorAggregate");
+ if (preg_match('/^\\\\?IteratorAggregate$/i', $interface)) {
+ $this->targetInterfaces[] = DefinedTargetClass::factory('\\IteratorAggregate');
$iteratorShiftedToFront = true;
- } elseif (preg_match("/^\\\\?Iterator$/i", $interface)) {
- $this->targetInterfaces[] = DefinedTargetClass::factory("\\Iterator");
+
+ continue;
+ }
+
+ if (preg_match('/^\\\\?Iterator$/i', $interface)) {
+ $this->targetInterfaces[] = DefinedTargetClass::factory('\\Iterator');
$iteratorShiftedToFront = true;
- } elseif (preg_match("/^\\\\?Traversable$/i", $interface)) {
+
+ continue;
+ }
+
+ if (preg_match('/^\\\\?Traversable$/i', $interface)) {
$traversableFound = true;
}
}
- if ($traversableFound && !$iteratorShiftedToFront) {
- $this->targetInterfaces[] = DefinedTargetClass::factory("\\IteratorAggregate");
+ if ($traversableFound && ! $iteratorShiftedToFront) {
+ $this->targetInterfaces[] = DefinedTargetClass::factory('\\IteratorAggregate');
}
/**
* We never straight up implement Traversable
*/
- if (!preg_match("/^\\\\?Traversable$/i", $targetInterface)) {
+ $isTraversable = preg_match('/^\\\\?Traversable$/i', $targetInterface);
+ if ($isTraversable === 0 || $isTraversable === false) {
$this->targetInterfaces[] = $dtc;
}
}
- $this->targetInterfaces = array_unique($this->targetInterfaces); // just in case
- return $this->targetInterfaces;
+
+ return $this->targetInterfaces = array_unique($this->targetInterfaces);
}
+ /**
+ * @return object|null
+ */
public function getTargetObject()
{
return $this->targetObject;
}
- public function getName()
+ /**
+ * @return list
+ */
+ public function getTargetTraits()
{
- return $this->name;
+ if ($this->targetTraits !== []) {
+ return $this->targetTraits;
+ }
+
+ foreach ($this->targetTraitNames as $targetTrait) {
+ $this->targetTraits[] = DefinedTargetClass::factory($targetTrait);
+ }
+
+ $this->targetTraits = array_unique($this->targetTraits); // just in case
+ return $this->targetTraits;
}
/**
- * Generate a suitable name based on the config
+ * @return array
*/
- public function generateName()
+ public function getWhiteListedMethods()
{
- $nameBuilder = new MockNameBuilder();
+ return $this->whiteListedMethods;
+ }
- if ($this->getTargetObject()) {
- $className = get_class($this->getTargetObject());
- $nameBuilder->addPart(strpos($className, '@') !== false ? md5($className) : $className);
+ /**
+ * @return bool
+ */
+ public function isInstanceMock()
+ {
+ return $this->instanceMock;
+ }
+
+ /**
+ * @return bool
+ */
+ public function isMockOriginalDestructor()
+ {
+ return $this->mockOriginalDestructor;
+ }
+
+ /**
+ * @param class-string $className
+ * @return self
+ */
+ public function rename($className)
+ {
+ $targets = [];
+
+ if ($this->targetClassName) {
+ $targets[] = $this->targetClassName;
}
- if ($this->getTargetClass()) {
- $className = $this->getTargetClass()->getName();
- $nameBuilder->addPart(strpos($className, '@') !== false ? md5($className) : $className);
+ if ($this->targetInterfaceNames) {
+ $targets = array_merge($targets, $this->targetInterfaceNames);
}
- foreach ($this->getTargetInterfaces() as $targetInterface) {
- $nameBuilder->addPart($targetInterface->getName());
+ if ($this->targetTraitNames) {
+ $targets = array_merge($targets, $this->targetTraitNames);
}
- return $nameBuilder->build();
- }
+ if ($this->targetObject) {
+ $targets[] = $this->targetObject;
+ }
- public function getShortName()
- {
- $parts = explode("\\", $this->getName());
- return array_pop($parts);
+ return new self(
+ $targets,
+ $this->blackListedMethods,
+ $this->whiteListedMethods,
+ $className,
+ $this->instanceMock,
+ $this->parameterOverrides,
+ $this->mockOriginalDestructor,
+ $this->constantsMap
+ );
}
- public function getNamespaceName()
+ /**
+ * We declare the __callStatic method to handle undefined stuff, if the class
+ * we're mocking has also defined it, we need to comply with their interface
+ *
+ * @return bool
+ */
+ public function requiresCallStaticTypeHintRemoval()
{
- $parts = explode("\\", $this->getName());
- array_pop($parts);
+ foreach ($this->getAllMethods() as $method) {
+ if ($method->getName() === '__callStatic') {
+ $params = $method->getParameters();
- if (count($parts)) {
- return implode("\\", $parts);
+ if (! array_key_exists(1, $params)) {
+ return false;
+ }
+
+ return ! $params[1]->isArray();
+ }
}
- return "";
+ return false;
}
- public function getBlackListedMethods()
+ /**
+ * We declare the __call method to handle undefined stuff, if the class
+ * we're mocking has also defined it, we need to comply with their interface
+ *
+ * @return bool
+ */
+ public function requiresCallTypeHintRemoval()
{
- return $this->blackListedMethods;
- }
+ foreach ($this->getAllMethods() as $method) {
+ if ($method->getName() === '__call') {
+ $params = $method->getParameters();
+ return ! $params[1]->isArray();
+ }
+ }
- public function getWhiteListedMethods()
- {
- return $this->whiteListedMethods;
+ return false;
}
- public function isInstanceMock()
+ /**
+ * @param class-string|object $target
+ */
+ protected function addTarget($target)
{
- return $this->instanceMock;
+ if (is_object($target)) {
+ $this->setTargetObject($target);
+ $this->setTargetClassName(get_class($target));
+ return;
+ }
+
+ if ($target[0] !== '\\') {
+ $target = '\\' . $target;
+ }
+
+ if (class_exists($target)) {
+ $this->setTargetClassName($target);
+ return;
+ }
+
+ if (interface_exists($target)) {
+ $this->addTargetInterfaceName($target);
+ return;
+ }
+
+ if (trait_exists($target)) {
+ $this->addTargetTraitName($target);
+ return;
+ }
+
+ /**
+ * Default is to set as class, or interface if class already set
+ *
+ * Don't like this condition, can't remember what the default
+ * targetClass is for
+ */
+ if ($this->getTargetClassName()) {
+ $this->addTargetInterfaceName($target);
+ return;
+ }
+
+ $this->setTargetClassName($target);
}
- public function getParameterOverrides()
+ /**
+ * If we attempt to implement Traversable,
+ * we must ensure we are also implementing either Iterator or IteratorAggregate,
+ * and that whichever one it is comes before Traversable in the list of implements.
+ *
+ * @param class-string $targetInterface
+ */
+ protected function addTargetInterfaceName($targetInterface)
{
- return $this->parameterOverrides;
+ $this->targetInterfaceNames[] = $targetInterface;
}
- public function isMockOriginalDestructor()
+ /**
+ * @param array $interfaces
+ */
+ protected function addTargets($interfaces)
{
- return $this->mockOriginalDestructor;
+ foreach ($interfaces as $interface) {
+ $this->addTarget($interface);
+ }
}
- protected function setTargetClassName($targetClassName)
+ /**
+ * @param class-string $targetTraitName
+ */
+ protected function addTargetTraitName($targetTraitName)
{
- $this->targetClassName = $targetClassName;
+ $this->targetTraitNames[] = $targetTraitName;
}
+ /**
+ * @return list
+ */
protected function getAllMethods()
{
if ($this->allMethods) {
@@ -503,7 +665,7 @@ protected function getAllMethods()
$classes[] = $this->getTargetClass();
}
- $methods = array();
+ $methods = [];
foreach ($classes as $class) {
$methods = array_merge($methods, $class->getMethods());
}
@@ -516,9 +678,9 @@ protected function getAllMethods()
}
}
- $names = array();
- $methods = array_filter($methods, function ($method) use (&$names) {
- if (in_array($method->getName(), $names)) {
+ $names = [];
+ $methods = array_filter($methods, static function ($method) use (&$names) {
+ if (in_array($method->getName(), $names, true)) {
return false;
}
@@ -530,27 +692,18 @@ protected function getAllMethods()
}
/**
- * If we attempt to implement Traversable, we must ensure we are also
- * implementing either Iterator or IteratorAggregate, and that whichever one
- * it is comes before Traversable in the list of implements.
+ * @param class-string $targetClassName
*/
- protected function addTargetInterfaceName($targetInterface)
- {
- $this->targetInterfaceNames[] = $targetInterface;
- }
-
- protected function addTargetTraitName($targetTraitName)
+ protected function setTargetClassName($targetClassName)
{
- $this->targetTraitNames[] = $targetTraitName;
+ $this->targetClassName = $targetClassName;
}
+ /**
+ * @param object $object
+ */
protected function setTargetObject($object)
{
$this->targetObject = $object;
}
-
- public function getConstantsMap()
- {
- return $this->constantsMap;
- }
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Generator/MockConfigurationBuilder.php b/api/vendor/mockery/mockery/library/Mockery/Generator/MockConfigurationBuilder.php
index 273b1d8b76..989325e362 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Generator/MockConfigurationBuilder.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Generator/MockConfigurationBuilder.php
@@ -1,29 +1,23 @@
+ */
+ protected $blackListedMethods = [
'__call',
'__callStatic',
'__clone',
@@ -36,139 +30,223 @@ class MockConfigurationBuilder
'__debugInfo', ## mocking this makes it difficult to debug with xdebug
// below are reserved words in PHP
- "__halt_compiler", "abstract", "and", "array", "as",
- "break", "callable", "case", "catch", "class",
- "clone", "const", "continue", "declare", "default",
- "die", "do", "echo", "else", "elseif",
- "empty", "enddeclare", "endfor", "endforeach", "endif",
- "endswitch", "endwhile", "eval", "exit", "extends",
- "final", "for", "foreach", "function", "global",
- "goto", "if", "implements", "include", "include_once",
- "instanceof", "insteadof", "interface", "isset", "list",
- "namespace", "new", "or", "print", "private",
- "protected", "public", "require", "require_once", "return",
- "static", "switch", "throw", "trait", "try",
- "unset", "use", "var", "while", "xor"
- );
-
- protected $php7SemiReservedKeywords = [
- "callable", "class", "trait", "extends", "implements", "static", "abstract", "final",
- "public", "protected", "private", "const", "enddeclare", "endfor", "endforeach", "endif",
- "endwhile", "and", "global", "goto", "instanceof", "insteadof", "interface", "namespace", "new",
- "or", "xor", "try", "use", "var", "exit", "list", "clone", "include", "include_once", "throw",
- "array", "print", "echo", "require", "require_once", "return", "else", "elseif", "default",
- "break", "continue", "switch", "yield", "function", "if", "endswitch", "finally", "for", "foreach",
- "declare", "case", "do", "while", "as", "catch", "die", "self", "parent",
+ '__halt_compiler', 'abstract', 'and', 'array', 'as',
+ 'break', 'callable', 'case', 'catch', 'class',
+ 'clone', 'const', 'continue', 'declare', 'default',
+ 'die', 'do', 'echo', 'else', 'elseif',
+ 'empty', 'enddeclare', 'endfor', 'endforeach', 'endif',
+ 'endswitch', 'endwhile', 'eval', 'exit', 'extends',
+ 'final', 'for', 'foreach', 'function', 'global',
+ 'goto', 'if', 'implements', 'include', 'include_once',
+ 'instanceof', 'insteadof', 'interface', 'isset', 'list',
+ 'namespace', 'new', 'or', 'print', 'private',
+ 'protected', 'public', 'require', 'require_once', 'return',
+ 'static', 'switch', 'throw', 'trait', 'try',
+ 'unset', 'use', 'var', 'while', 'xor',
];
- protected $whiteListedMethods = array();
+ /**
+ * @var array
+ */
+ protected $constantsMap = [];
+
+ /**
+ * @var bool
+ */
protected $instanceMock = false;
- protected $parameterOverrides = array();
+ /**
+ * @var bool
+ */
protected $mockOriginalDestructor = false;
- protected $targets = array();
- protected $constantsMap = array();
+ /**
+ * @var string
+ */
+ protected $name;
+
+ /**
+ * @var array
+ */
+ protected $parameterOverrides = [];
+
+ /**
+ * @var list
+ */
+ protected $php7SemiReservedKeywords = [
+ 'callable', 'class', 'trait', 'extends', 'implements', 'static', 'abstract', 'final',
+ 'public', 'protected', 'private', 'const', 'enddeclare', 'endfor', 'endforeach', 'endif',
+ 'endwhile', 'and', 'global', 'goto', 'instanceof', 'insteadof', 'interface', 'namespace', 'new',
+ 'or', 'xor', 'try', 'use', 'var', 'exit', 'list', 'clone', 'include', 'include_once', 'throw',
+ 'array', 'print', 'echo', 'require', 'require_once', 'return', 'else', 'elseif', 'default',
+ 'break', 'continue', 'switch', 'yield', 'function', 'if', 'endswitch', 'finally', 'for', 'foreach',
+ 'declare', 'case', 'do', 'while', 'as', 'catch', 'die', 'self', 'parent',
+ ];
+
+ /**
+ * @var array
+ */
+ protected $targets = [];
+
+ /**
+ * @var array
+ */
+ protected $whiteListedMethods = [];
public function __construct()
{
$this->blackListedMethods = array_diff($this->blackListedMethods, $this->php7SemiReservedKeywords);
}
- public function addTarget($target)
+ /**
+ * @param string $blackListedMethod
+ * @return self
+ */
+ public function addBlackListedMethod($blackListedMethod)
{
- $this->targets[] = $target;
-
+ $this->blackListedMethods[] = $blackListedMethod;
return $this;
}
- public function addTargets($targets)
+ /**
+ * @param list $blackListedMethods
+ * @return self
+ */
+ public function addBlackListedMethods(array $blackListedMethods)
{
- foreach ($targets as $target) {
- $this->addTarget($target);
+ foreach ($blackListedMethods as $method) {
+ $this->addBlackListedMethod($method);
}
return $this;
}
- public function setName($name)
+ /**
+ * @param class-string $target
+ * @return self
+ */
+ public function addTarget($target)
{
- $this->name = $name;
- return $this;
- }
+ $this->targets[] = $target;
- public function addBlackListedMethod($blackListedMethod)
- {
- $this->blackListedMethods[] = $blackListedMethod;
return $this;
}
- public function addBlackListedMethods(array $blackListedMethods)
+ /**
+ * @param list $targets
+ * @return self
+ */
+ public function addTargets($targets)
{
- foreach ($blackListedMethods as $method) {
- $this->addBlackListedMethod($method);
+ foreach ($targets as $target) {
+ $this->addTarget($target);
}
- return $this;
- }
- public function setBlackListedMethods(array $blackListedMethods)
- {
- $this->blackListedMethods = $blackListedMethods;
return $this;
}
+ /**
+ * @return self
+ */
public function addWhiteListedMethod($whiteListedMethod)
{
$this->whiteListedMethods[] = $whiteListedMethod;
return $this;
}
+ /**
+ * @return self
+ */
public function addWhiteListedMethods(array $whiteListedMethods)
{
foreach ($whiteListedMethods as $method) {
$this->addWhiteListedMethod($method);
}
+
return $this;
}
- public function setWhiteListedMethods(array $whiteListedMethods)
+ /**
+ * @return MockConfiguration
+ */
+ public function getMockConfiguration()
{
- $this->whiteListedMethods = $whiteListedMethods;
+ return new MockConfiguration(
+ $this->targets,
+ $this->blackListedMethods,
+ $this->whiteListedMethods,
+ $this->name,
+ $this->instanceMock,
+ $this->parameterOverrides,
+ $this->mockOriginalDestructor,
+ $this->constantsMap
+ );
+ }
+
+ /**
+ * @param list $blackListedMethods
+ * @return self
+ */
+ public function setBlackListedMethods(array $blackListedMethods)
+ {
+ $this->blackListedMethods = $blackListedMethods;
+ return $this;
+ }
+
+ /**
+ * @return self
+ */
+ public function setConstantsMap(array $map)
+ {
+ $this->constantsMap = $map;
+
return $this;
}
+ /**
+ * @param bool $instanceMock
+ */
public function setInstanceMock($instanceMock)
{
$this->instanceMock = (bool) $instanceMock;
+
+ return $this;
}
- public function setParameterOverrides(array $overrides)
+ /**
+ * @param bool $mockDestructor
+ */
+ public function setMockOriginalDestructor($mockDestructor)
{
- $this->parameterOverrides = $overrides;
+ $this->mockOriginalDestructor = (bool) $mockDestructor;
+ return $this;
}
- public function setMockOriginalDestructor($mockDestructor)
+ /**
+ * @param string $name
+ */
+ public function setName($name)
{
- $this->mockOriginalDestructor = $mockDestructor;
+ $this->name = $name;
return $this;
}
- public function setConstantsMap(array $map)
+ /**
+ * @return self
+ */
+ public function setParameterOverrides(array $overrides)
{
- $this->constantsMap = $map;
+ $this->parameterOverrides = $overrides;
+ return $this;
}
- public function getMockConfiguration()
+ /**
+ * @param list $whiteListedMethods
+ * @return self
+ */
+ public function setWhiteListedMethods(array $whiteListedMethods)
{
- return new MockConfiguration(
- $this->targets,
- $this->blackListedMethods,
- $this->whiteListedMethods,
- $this->name,
- $this->instanceMock,
- $this->parameterOverrides,
- $this->mockOriginalDestructor,
- $this->constantsMap
- );
+ $this->whiteListedMethods = $whiteListedMethods;
+ return $this;
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Generator/MockDefinition.php b/api/vendor/mockery/mockery/library/Mockery/Generator/MockDefinition.php
index fd6a9fa2ae..337c31f644 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Generator/MockDefinition.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Generator/MockDefinition.php
@@ -1,51 +1,64 @@
getName()) {
- throw new \InvalidArgumentException("MockConfiguration must contain a name");
+ if (! $config->getName()) {
+ throw new InvalidArgumentException('MockConfiguration must contain a name');
}
+
$this->config = $config;
$this->code = $code;
}
- public function getConfig()
- {
- return $this->config;
- }
-
+ /**
+ * @return string
+ */
public function getClassName()
{
return $this->config->getName();
}
+ /**
+ * @return string
+ */
public function getCode()
{
return $this->code;
}
+
+ /**
+ * @return MockConfiguration
+ */
+ public function getConfig()
+ {
+ return $this->config;
+ }
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Generator/MockNameBuilder.php b/api/vendor/mockery/mockery/library/Mockery/Generator/MockNameBuilder.php
index 204308ab15..424cdc5947 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Generator/MockNameBuilder.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Generator/MockNameBuilder.php
@@ -1,31 +1,33 @@
+ */
protected $parts = [];
+ /**
+ * @param string $part
+ */
public function addPart($part)
{
$this->parts[] = $part;
@@ -33,12 +35,15 @@ public function addPart($part)
return $this;
}
+ /**
+ * @return string
+ */
public function build()
{
$parts = ['Mockery', static::$mockCounter++];
foreach ($this->parts as $part) {
- $parts[] = str_replace("\\", "_", $part);
+ $parts[] = str_replace('\\', '_', $part);
}
return implode('_', $parts);
diff --git a/api/vendor/mockery/mockery/library/Mockery/Generator/Parameter.php b/api/vendor/mockery/mockery/library/Mockery/Generator/Parameter.php
index 7009533691..442a713c27 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Generator/Parameter.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Generator/Parameter.php
@@ -1,43 +1,55 @@
rfp = $rfp;
}
+ /**
+ * Proxy all method calls to the reflection parameter.
+ *
+ * @template TMixed
+ * @template TResult
+ *
+ * @param string $method
+ * @param array $args
+ *
+ * @return TResult
+ */
public function __call($method, array $args)
{
- return call_user_func_array(array($this->rfp, $method), $args);
+ /** @var TResult */
+ return $this->rfp->{$method}(...$args);
}
/**
@@ -45,7 +57,7 @@ public function __call($method, array $args)
*
* This will be null if there was no type, or it was a scalar or a union.
*
- * @return \ReflectionClass|null
+ * @return null|ReflectionClass
*
* @deprecated since 1.3.3 and will be removed in 2.0.
*/
@@ -53,13 +65,31 @@ public function getClass()
{
$typeHint = Reflector::getTypeHint($this->rfp, true);
- return \class_exists($typeHint) ? DefinedTargetClass::factory($typeHint, false) : null;
+ return class_exists($typeHint) ? DefinedTargetClass::factory($typeHint, false) : null;
+ }
+
+ /**
+ * Get the name of the parameter.
+ *
+ * Some internal classes have funny looking definitions!
+ *
+ * @return string
+ */
+ public function getName()
+ {
+ $name = $this->rfp->getName();
+
+ if (! $name || $name === '...') {
+ return 'arg' . self::$parameterCounter++;
+ }
+
+ return $name;
}
/**
* Get the string representation for the paramater type.
*
- * @return string|null
+ * @return null|string
*/
public function getTypeHint()
{
@@ -78,23 +108,6 @@ public function getTypeHintAsString()
return (string) Reflector::getTypeHint($this->rfp, true);
}
- /**
- * Get the name of the parameter.
- *
- * Some internal classes have funny looking definitions!
- *
- * @return string
- */
- public function getName()
- {
- $name = $this->rfp->getName();
- if (!$name || $name == '...') {
- $name = 'arg' . self::$parameterCounter++;
- }
-
- return $name;
- }
-
/**
* Determine if the parameter is an array.
*
diff --git a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/AvoidMethodClashPass.php b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/AvoidMethodClashPass.php
index 45312573bb..4a7e2a57bb 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/AvoidMethodClashPass.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/AvoidMethodClashPass.php
@@ -1,46 +1,39 @@
getName();
}, $config->getMethodsToMock());
- foreach (["allows", "expects"] as $method) {
- if (in_array($method, $names)) {
- $code = preg_replace(
- "#// start method {$method}.*// end method {$method}#ms",
- "",
- $code
- );
+ foreach (['allows', 'expects'] as $method) {
+ if (in_array($method, $names, true)) {
+ $code = preg_replace(sprintf('#// start method %s.*// end method %s#ms', $method, $method), '', $code);
- $code = str_replace(" implements MockInterface", " implements LegacyMockInterface", $code);
+ $code = str_replace(' implements MockInterface', ' implements LegacyMockInterface', $code);
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/CallTypeHintPass.php b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/CallTypeHintPass.php
index fd00264ca0..747fdeee50 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/CallTypeHintPass.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/CallTypeHintPass.php
@@ -1,29 +1,24 @@
requiresCallTypeHintRemoval()) {
@@ -35,7 +30,7 @@ public function apply($code, MockConfiguration $config)
}
if ($config->requiresCallStaticTypeHintRemoval()) {
- $code = str_replace(
+ return str_replace(
'public static function __callStatic($method, array $args)',
'public static function __callStatic($method, $args)',
$code
diff --git a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassAttributesPass.php b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassAttributesPass.php
new file mode 100644
index 0000000000..86b157ea1e
--- /dev/null
+++ b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassAttributesPass.php
@@ -0,0 +1,40 @@
+getTargetClass();
+
+ if (! $class) {
+ return $code;
+ }
+
+ /** @var array $attributes */
+ $attributes = $class->getAttributes();
+
+ if ($attributes !== []) {
+ return str_replace('#[\AllowDynamicProperties]', '#[' . implode(',', $attributes) . ']', $code);
+ }
+
+ return $code;
+ }
+}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassNamePass.php b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassNamePass.php
index b5a31098ea..0280a06493 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassNamePass.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassNamePass.php
@@ -1,49 +1,35 @@
getNamespaceName();
- $namespace = ltrim($namespace, "\\");
+ $namespace = ltrim($namespace, '\\');
$className = $config->getShortName();
- $code = str_replace(
- 'namespace Mockery;',
- $namespace ? 'namespace ' . $namespace . ';' : '',
- $code
- );
-
- $code = str_replace(
- 'class Mock',
- 'class ' . $className,
- $code
- );
+ $code = str_replace('namespace Mockery;', $namespace !== '' ? 'namespace ' . $namespace . ';' : '', $code);
- return $code;
+ return str_replace('class Mock', 'class ' . $className, $code);
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassPass.php b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassPass.php
index 1debcbb189..ba4826c6a3 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassPass.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassPass.php
@@ -1,34 +1,32 @@
getTargetClass();
- if (!$target) {
+ if (! $target) {
return $code;
}
@@ -36,18 +34,16 @@ public function apply($code, MockConfiguration $config)
return $code;
}
- $className = ltrim($target->getName(), "\\");
+ $className = ltrim($target->getName(), '\\');
- if (!class_exists($className)) {
- \Mockery::declareClass($className);
+ if (! class_exists($className)) {
+ Mockery::declareClass($className);
}
- $code = str_replace(
- "implements MockInterface",
- "extends \\" . $className . " implements MockInterface",
+ return str_replace(
+ 'implements MockInterface',
+ 'extends \\' . $className . ' implements MockInterface',
$code
);
-
- return $code;
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ConstantsPass.php b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ConstantsPass.php
index df5dd8cefb..1088a0de2c 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ConstantsPass.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ConstantsPass.php
@@ -1,33 +1,51 @@
getConstantsMap();
- if (empty($cm)) {
+ if ($cm === []) {
return $code;
}
- if (!isset($cm[$config->getName()])) {
+ $name = $config->getName();
+ if (! array_key_exists($name, $cm)) {
return $code;
}
- $cm = $cm[$config->getName()];
-
$constantsCode = '';
- foreach ($cm as $constant => $value) {
+ foreach ($cm[$name] as $constant => $value) {
$constantsCode .= sprintf("\n const %s = %s;\n", $constant, var_export($value, true));
}
- $i = strrpos($code, '}');
- $code = substr_replace($code, $constantsCode, $i);
- $code .= "}\n";
+ $offset = strrpos($code, '}');
+ if ($offset === false) {
+ return $code;
+ }
- return $code;
+ return substr_replace($code, $constantsCode, $offset) . '}' . PHP_EOL;
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InstanceMockPass.php b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InstanceMockPass.php
index 6279147578..78adba487b 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InstanceMockPass.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InstanceMockPass.php
@@ -1,30 +1,22 @@
rememberMock(\$this);
-
+
\$this->_mockery_constructorCalled(func_get_args());
}
MOCK;
+ /**
+ * @param string $code
+ * @return string
+ */
public function apply($code, MockConfiguration $config)
{
if ($config->isInstanceMock()) {
- $code = $this->appendToClass($code, static::INSTANCE_MOCK_CODE);
+ return $this->appendToClass($code, static::INSTANCE_MOCK_CODE);
}
return $code;
@@ -76,8 +72,7 @@ public function apply($code, MockConfiguration $config)
protected function appendToClass($class, $code)
{
- $lastBrace = strrpos($class, "}");
- $class = substr($class, 0, $lastBrace) . $code . "\n }\n";
- return $class;
+ $lastBrace = strrpos($class, '}');
+ return substr($class, 0, $lastBrace) . $code . "\n }\n";
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InterfacePass.php b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InterfacePass.php
index 982956e5c1..4eabcb08b6 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InterfacePass.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InterfacePass.php
@@ -1,48 +1,41 @@
getTargetInterfaces() as $i) {
- $name = ltrim($i->getName(), "\\");
- if (!interface_exists($name)) {
- \Mockery::declareInterface($name);
+ $name = ltrim($i->getName(), '\\');
+ if (! interface_exists($name)) {
+ Mockery::declareInterface($name);
}
}
- $interfaces = array_reduce((array) $config->getTargetInterfaces(), function ($code, $i) {
- return $code . ", \\" . ltrim($i->getName(), "\\");
- }, "");
-
- $code = str_replace(
- "implements MockInterface",
- "implements MockInterface" . $interfaces,
- $code
- );
+ $interfaces = array_reduce($config->getTargetInterfaces(), static function ($code, $i) {
+ return $code . ', \\' . ltrim($i->getName(), '\\');
+ }, '');
- return $code;
+ return str_replace('implements MockInterface', 'implements MockInterface' . $interfaces, $code);
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/MagicMethodTypeHintsPass.php b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/MagicMethodTypeHintsPass.php
index ddcdb0b774..f4191fd81d 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/MagicMethodTypeHintsPass.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/MagicMethodTypeHintsPass.php
@@ -1,36 +1,36 @@
getMethods(), function (Method $method) {
- return in_array($method->getName(), $this->mockMagicMethods);
+ return in_array($method->getName(), $this->mockMagicMethods, true);
});
}
+ protected function renderTypeHint(Parameter $param)
+ {
+ $typeHint = $param->getTypeHint();
+
+ return $typeHint === null ? '' : sprintf('%s ', $typeHint);
+ }
+
/**
* Applies type hints of magic methods from
* class to the passed code.
*
* @param int $code
- * @param Method $method
+ *
* @return string
*/
private function applyMagicTypeHints($code, Method $method)
{
if ($this->isMethodWithinCode($code, $method)) {
- $namedParameters = $this->getOriginalParameters(
- $code,
- $method
- );
+ $namedParameters = $this->getOriginalParameters($code, $method);
$code = preg_replace(
$this->getDeclarationRegex($method->getName()),
$this->getMethodDeclaration($method, $namedParameters),
$code
);
}
+
return $code;
}
/**
- * Checks if the method is declared within code.
+ * Returns a regex string used to match the
+ * declaration of some method.
*
- * @param int $code
- * @param Method $method
- * @return boolean
- */
- private function isMethodWithinCode($code, Method $method)
- {
- return preg_match(
- $this->getDeclarationRegex($method->getName()),
- $code
- ) == 1;
- }
-
- /**
- * Returns the method original parameters, as they're
- * described in the $code string.
+ * @param string $methodName
*
- * @param int $code
- * @param Method $method
- * @return array
+ * @return string
*/
- private function getOriginalParameters($code, Method $method)
+ private function getDeclarationRegex($methodName)
{
- $matches = [];
- $parameterMatches = [];
-
- preg_match(
- $this->getDeclarationRegex($method->getName()),
- $code,
- $matches
- );
-
- if (count($matches) > 0) {
- preg_match_all(
- '/(?<=\$)(\w+)+/i',
- $matches[0],
- $parameterMatches
- );
- }
-
- $groupMatches = end($parameterMatches);
- $parameterNames = is_array($groupMatches) ? $groupMatches : [$groupMatches];
-
- return $parameterNames;
+ return sprintf('/public\s+(?:static\s+)?function\s+%s\s*\(.*\)\s*(?=\{)/i', $methodName);
}
/**
* Gets the declaration code, as a string, for the passed method.
*
- * @param Method $method
- * @param array $namedParameters
+ * @param array $namedParameters
+ *
* @return string
*/
- private function getMethodDeclaration(
- Method $method,
- array $namedParameters
- ) {
+ private function getMethodDeclaration(Method $method, array $namedParameters)
+ {
$declaration = 'public';
$declaration .= $method->isStatic() ? ' static' : '';
$declaration .= ' function ' . $method->getName() . '(';
foreach ($method->getParameters() as $index => $parameter) {
$declaration .= $this->renderTypeHint($parameter);
- $name = isset($namedParameters[$index]) ? $namedParameters[$index] : $parameter->getName();
+ $name = $namedParameters[$index] ?? $parameter->getName();
$declaration .= '$' . $name;
$declaration .= ',';
}
+
$declaration = rtrim($declaration, ',');
$declaration .= ') ';
@@ -191,22 +159,39 @@ private function getMethodDeclaration(
return $declaration;
}
- protected function renderTypeHint(Parameter $param)
+ /**
+ * Returns the method original parameters, as they're
+ * described in the $code string.
+ *
+ * @param int $code
+ *
+ * @return array
+ */
+ private function getOriginalParameters($code, Method $method)
{
- $typeHint = $param->getTypeHint();
+ $matches = [];
+ $parameterMatches = [];
- return $typeHint === null ? '' : sprintf('%s ', $typeHint);
+ preg_match($this->getDeclarationRegex($method->getName()), $code, $matches);
+
+ if ($matches !== []) {
+ preg_match_all('/(?<=\$)(\w+)+/i', $matches[0], $parameterMatches);
+ }
+
+ $groupMatches = end($parameterMatches);
+
+ return is_array($groupMatches) ? $groupMatches : [$groupMatches];
}
/**
- * Returns a regex string used to match the
- * declaration of some method.
+ * Checks if the method is declared within code.
*
- * @param string $methodName
- * @return string
+ * @param int $code
+ *
+ * @return bool
*/
- private function getDeclarationRegex($methodName)
+ private function isMethodWithinCode($code, Method $method)
{
- return "/public\s+(?:static\s+)?function\s+$methodName\s*\(.*\)\s*(?=\{)/i";
+ return preg_match($this->getDeclarationRegex($method->getName()), $code) === 1;
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/MethodDefinitionPass.php b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/MethodDefinitionPass.php
index b0b743df79..68d37f9d13 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/MethodDefinitionPass.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/MethodDefinitionPass.php
@@ -1,31 +1,40 @@
getMethodsToMock() as $method) {
@@ -54,6 +63,12 @@ public function apply($code, MockConfiguration $config)
return $code;
}
+ protected function appendToClass($class, $code)
+ {
+ $lastBrace = strrpos($class, '}');
+ return substr($class, 0, $lastBrace) . $code . "\n }\n";
+ }
+
protected function renderParams(Method $method, $config)
{
$class = $method->getDeclaringClass();
@@ -65,18 +80,41 @@ protected function renderParams(Method $method, $config)
}
}
- $methodParams = array();
+ $methodParams = [];
$params = $method->getParameters();
+ $isPhp81 = PHP_VERSION_ID >= 80100;
foreach ($params as $param) {
$paramDef = $this->renderTypeHint($param);
$paramDef .= $param->isPassedByReference() ? '&' : '';
$paramDef .= $param->isVariadic() ? '...' : '';
$paramDef .= '$' . $param->getName();
- if (!$param->isVariadic()) {
- if (false !== $param->isDefaultValueAvailable()) {
+ if (! $param->isVariadic()) {
+ if ($param->isDefaultValueAvailable() !== false) {
$defaultValue = $param->getDefaultValue();
- $paramDef .= ' = ' . (is_object($defaultValue) ? get_class($defaultValue) : var_export($defaultValue, true));
+
+ if (is_object($defaultValue)) {
+ $prefix = get_class($defaultValue);
+ if ($isPhp81) {
+ if (enum_exists($prefix)) {
+ $prefix = var_export($defaultValue, true);
+ } elseif (
+ ! $param->isDefaultValueConstant() &&
+ // "Parameter #1 [ F\Q\CN $a = new \F\Q\CN(param1, param2: 2) ]
+ preg_match(
+ '#\s.*?\s=\snew\s(.*?)\s]$#',
+ $param->__toString(),
+ $matches
+ ) === 1
+ ) {
+ $prefix = 'new ' . $matches[1];
+ }
+ }
+ } else {
+ $prefix = var_export($defaultValue, true);
+ }
+
+ $paramDef .= ' = ' . $prefix;
} elseif ($param->isOptional()) {
$paramDef .= ' = null';
}
@@ -84,6 +122,7 @@ protected function renderParams(Method $method, $config)
$methodParams[] = $paramDef;
}
+
return '(' . implode(', ', $methodParams) . ')';
}
@@ -94,13 +133,6 @@ protected function renderReturnType(Method $method)
return $type ? sprintf(': %s', $type) : '';
}
- protected function appendToClass($class, $code)
- {
- $lastBrace = strrpos($class, "}");
- $class = substr($class, 0, $lastBrace) . $code . "\n }\n";
- return $class;
- }
-
protected function renderTypeHint(Parameter $param)
{
$typeHint = $param->getTypeHint();
@@ -131,8 +163,8 @@ private function renderMethodBody($method, $config)
$param = $params[$i];
if (strpos($param, '&') !== false) {
$body .= << $i) {
- \$argv[$i] = {$param};
+if (\$argc > {$i}) {
+ \$argv[{$i}] = {$param};
}
BODY;
@@ -143,12 +175,13 @@ private function renderMethodBody($method, $config)
$paramCount = count($params);
for ($i = 0; $i < $paramCount; ++$i) {
$param = $params[$i];
- if (!$param->isPassedByReference()) {
+ if (! $param->isPassedByReference()) {
continue;
}
+
$body .= << $i) {
- \$argv[$i] =& \${$param->getName()};
+if (\$argc > {$i}) {
+ \$argv[{$i}] =& \${$param->getName()};
}
BODY;
@@ -157,11 +190,10 @@ private function renderMethodBody($method, $config)
$body .= "\$ret = {$invoke}(__FUNCTION__, \$argv);\n";
- if (! in_array($method->getReturnType(), ['never','void'], true)) {
+ if (! in_array($method->getReturnType(), ['never', 'void'], true)) {
$body .= "return \$ret;\n";
}
- $body .= "}\n";
- return $body;
+ return $body . "}\n";
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/Pass.php b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/Pass.php
index f7b72c9fa7..9200873bb9 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/Pass.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/Pass.php
@@ -1,21 +1,11 @@
'/public function __wakeup\(\)\s+\{.*?\}/sm',
'__toString' => '/public function __toString\(\)\s+(:\s+string)?\s*\{.*?\}/sm',
- );
+ ];
+ /**
+ * @param string $code
+ * @return string
+ */
public function apply($code, MockConfiguration $config)
{
$target = $config->getTargetClass();
- if (!$target) {
+ if (! $target instanceof TargetClassInterface) {
return $code;
}
foreach ($target->getMethods() as $method) {
- if ($method->isFinal() && isset($this->methods[$method->getName()])) {
- $code = preg_replace($this->methods[$method->getName()], '', $code);
+ if (! $method->isFinal()) {
+ continue;
}
+
+ if (! isset($this->methods[$method->getName()])) {
+ continue;
+ }
+
+ $code = preg_replace($this->methods[$method->getName()], '', $code);
}
return $code;
diff --git a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveDestructorPass.php b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveDestructorPass.php
index ed5a4206b4..7fd86e7bc9 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveDestructorPass.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveDestructorPass.php
@@ -1,43 +1,37 @@
+ * @copyright https://github.com/mockery/mockery/blob/HEAD/COPYRIGHT.md
+ * @license https://github.com/mockery/mockery/blob/HEAD/LICENSE BSD 3-Clause License
+ * @link https://github.com/mockery/mockery for the canonical source repository
*/
namespace Mockery\Generator\StringManipulation\Pass;
use Mockery\Generator\MockConfiguration;
+use function preg_replace;
/**
* Remove mock's empty destructor if we tend to use original class destructor
*/
-class RemoveDestructorPass
+class RemoveDestructorPass implements Pass
{
+ /**
+ * @param string $code
+ * @return string
+ */
public function apply($code, MockConfiguration $config)
{
$target = $config->getTargetClass();
- if (!$target) {
+ if (! $target) {
return $code;
}
- if (!$config->isMockOriginalDestructor()) {
- $code = preg_replace('/public function __destruct\(\)\s+\{.*?\}/sm', '', $code);
+ if (! $config->isMockOriginalDestructor()) {
+ return preg_replace('/public function __destruct\(\)\s+\{.*?\}/sm', '', $code);
}
return $code;
diff --git a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveUnserializeForInternalSerializableClassesPass.php b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveUnserializeForInternalSerializableClassesPass.php
index 0abefe2657..5bbb578e38 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveUnserializeForInternalSerializableClassesPass.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveUnserializeForInternalSerializableClassesPass.php
@@ -1,26 +1,19 @@
getTargetClass();
- if (!$target) {
+ if (! $target) {
return $code;
}
- if (!$target->hasInternalAncestor() || !$target->implementsInterface("Serializable")) {
+ if (! $target->hasInternalAncestor() || ! $target->implementsInterface('Serializable')) {
return $code;
}
- $code = $this->appendToClass($code, \PHP_VERSION_ID < 80100 ? self::DUMMY_METHOD_DEFINITION_LEGACY : self::DUMMY_METHOD_DEFINITION);
-
- return $code;
+ return $this->appendToClass(
+ $code,
+ PHP_VERSION_ID < 80100 ? self::DUMMY_METHOD_DEFINITION_LEGACY : self::DUMMY_METHOD_DEFINITION
+ );
}
protected function appendToClass($class, $code)
{
- $lastBrace = strrpos($class, "}");
- $class = substr($class, 0, $lastBrace) . $code . "\n }\n";
- return $class;
+ $lastBrace = strrpos($class, '}');
+ return substr($class, 0, $lastBrace) . $code . "\n }\n";
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/TraitPass.php b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/TraitPass.php
index f6db5d7491..faf2a90f9c 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/TraitPass.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/TraitPass.php
@@ -1,47 +1,39 @@
getTargetTraits();
- if (empty($traits)) {
+ if ($traits === []) {
return $code;
}
- $useStatements = array_map(function ($trait) {
- return "use \\\\" . ltrim($trait->getName(), "\\") . ";";
+ $useStatements = array_map(static function ($trait) {
+ return 'use \\\\' . ltrim($trait->getName(), '\\') . ';';
}, $traits);
- $code = preg_replace(
- '/^{$/m',
- "{\n " . implode("\n ", $useStatements) . "\n",
- $code
- );
-
- return $code;
+ return preg_replace('/^{$/m', "{\n " . implode("\n ", $useStatements) . "\n", $code);
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulationGenerator.php b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulationGenerator.php
index 4bc415f61a..5cb1421722 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulationGenerator.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Generator/StringManipulationGenerator.php
@@ -1,26 +1,18 @@
+ */
+ protected $passes = [];
/**
- * Creates a new StringManipulationGenerator with the default passes
- *
- * @return StringManipulationGenerator
+ * @var string
*/
- public static function withDefaultPasses()
- {
- return new static([
- new CallTypeHintPass(),
- new MagicMethodTypeHintsPass(),
- new ClassPass(),
- new TraitPass(),
- new ClassNamePass(),
- new InstanceMockPass(),
- new InterfacePass(),
- new AvoidMethodClashPass(),
- new MethodDefinitionPass(),
- new RemoveUnserializeForInternalSerializableClassesPass(),
- new RemoveBuiltinMethodsThatAreFinalPass(),
- new RemoveDestructorPass(),
- new ConstantsPass(),
- ]);
- }
+ private $code;
+ /**
+ * @param list $passes
+ */
public function __construct(array $passes)
{
$this->passes = $passes;
+
+ $this->code = file_get_contents(__DIR__ . '/../Mock.php');
}
+ /**
+ * @param Pass $pass
+ * @return void
+ */
+ public function addPass(Pass $pass)
+ {
+ $this->passes[] = $pass;
+ }
+
+ /**
+ * @return MockDefinition
+ */
public function generate(MockConfiguration $config)
{
- $code = file_get_contents(__DIR__ . '/../Mock.php');
$className = $config->getName() ?: $config->generateName();
$namedConfig = $config->rename($className);
+ $code = $this->code;
foreach ($this->passes as $pass) {
$code = $pass->apply($code, $namedConfig);
}
@@ -82,8 +75,28 @@ public function generate(MockConfiguration $config)
return new MockDefinition($namedConfig, $code);
}
- public function addPass(Pass $pass)
+ /**
+ * Creates a new StringManipulationGenerator with the default passes
+ *
+ * @return StringManipulationGenerator
+ */
+ public static function withDefaultPasses()
{
- $this->passes[] = $pass;
+ return new static([
+ new CallTypeHintPass(),
+ new MagicMethodTypeHintsPass(),
+ new ClassPass(),
+ new TraitPass(),
+ new ClassNamePass(),
+ new InstanceMockPass(),
+ new InterfacePass(),
+ new AvoidMethodClashPass(),
+ new MethodDefinitionPass(),
+ new RemoveUnserializeForInternalSerializableClassesPass(),
+ new RemoveBuiltinMethodsThatAreFinalPass(),
+ new RemoveDestructorPass(),
+ new ConstantsPass(),
+ new ClassAttributesPass(),
+ ]);
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Generator/TargetClassInterface.php b/api/vendor/mockery/mockery/library/Mockery/Generator/TargetClassInterface.php
index 7724412421..730ae1b5f4 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Generator/TargetClassInterface.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Generator/TargetClassInterface.php
@@ -1,21 +1,11 @@
*/
- public function getName();
+ public function getAttributes();
+
+ /**
+ * Returns the targetClass's interfaces.
+ *
+ * @return array
+ */
+ public function getInterfaces();
/**
* Returns the targetClass's methods.
*
- * @return array
+ * @return array
*/
public function getMethods();
/**
- * Returns the targetClass's interfaces.
+ * Returns the targetClass's name.
*
- * @return array
+ * @return class-string
*/
- public function getInterfaces();
+ public function getName();
/**
* Returns the targetClass's namespace name.
@@ -68,40 +64,41 @@ public function getNamespaceName();
public function getShortName();
/**
- * Returns whether the targetClass is abstract.
+ * Returns whether the targetClass has
+ * an internal ancestor.
*
- * @return boolean
+ * @return bool
*/
- public function isAbstract();
+ public function hasInternalAncestor();
/**
- * Returns whether the targetClass is final.
+ * Returns whether the targetClass is in
+ * the passed interface.
+ *
+ * @param class-string|string $interface
*
- * @return boolean
+ * @return bool
*/
- public function isFinal();
+ public function implementsInterface($interface);
/**
* Returns whether the targetClass is in namespace.
*
- * @return boolean
+ * @return bool
*/
public function inNamespace();
/**
- * Returns whether the targetClass is in
- * the passed interface.
+ * Returns whether the targetClass is abstract.
*
- * @param mixed $interface
- * @return boolean
+ * @return bool
*/
- public function implementsInterface($interface);
+ public function isAbstract();
/**
- * Returns whether the targetClass has
- * an internal ancestor.
+ * Returns whether the targetClass is final.
*
- * @return boolean
+ * @return bool
*/
- public function hasInternalAncestor();
+ public function isFinal();
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Generator/UndefinedTargetClass.php b/api/vendor/mockery/mockery/library/Mockery/Generator/UndefinedTargetClass.php
index fb83c61047..ea72202551 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Generator/UndefinedTargetClass.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Generator/UndefinedTargetClass.php
@@ -1,94 +1,141 @@
name = $name;
}
- public static function factory($name)
+ /**
+ * @return class-string
+ */
+ public function __toString()
{
- return new self($name);
+ return $this->name;
}
- public function getName()
+ /**
+ * @param class-string $name
+ * @return self
+ */
+ public static function factory($name)
{
- return $this->name;
+ return new self($name);
}
- public function isAbstract()
+ /**
+ * @return list
+ */
+ public function getAttributes()
{
- return false;
+ return [];
}
- public function isFinal()
+ /**
+ * @return list
+ */
+ public function getInterfaces()
{
- return false;
+ return [];
}
+ /**
+ * @return list
+ */
public function getMethods()
{
- return array();
+ return [];
}
- public function getInterfaces()
+ /**
+ * @return class-string
+ */
+ public function getName()
{
- return array();
+ return $this->name;
}
+ /**
+ * @return string
+ */
public function getNamespaceName()
{
- $parts = explode("\\", ltrim($this->getName(), "\\"));
+ $parts = explode('\\', ltrim($this->getName(), '\\'));
array_pop($parts);
- return implode("\\", $parts);
+ return implode('\\', $parts);
}
- public function inNamespace()
+ /**
+ * @return string
+ */
+ public function getShortName()
{
- return $this->getNamespaceName() !== '';
+ $parts = explode('\\', $this->getName());
+ return array_pop($parts);
}
- public function getShortName()
+ /**
+ * @return bool
+ */
+ public function hasInternalAncestor()
{
- $parts = explode("\\", $this->getName());
- return array_pop($parts);
+ return false;
}
+ /**
+ * @param class-string $interface
+ * @return bool
+ */
public function implementsInterface($interface)
{
return false;
}
- public function hasInternalAncestor()
+ /**
+ * @return bool
+ */
+ public function inNamespace()
+ {
+ return $this->getNamespaceName() !== '';
+ }
+
+ /**
+ * @return bool
+ */
+ public function isAbstract()
{
return false;
}
- public function __toString()
+ /**
+ * @return bool
+ */
+ public function isFinal()
{
- return $this->name;
+ return false;
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/HigherOrderMessage.php b/api/vendor/mockery/mockery/library/Mockery/HigherOrderMessage.php
index 1c13c8985c..42df34bea9 100644
--- a/api/vendor/mockery/mockery/library/Mockery/HigherOrderMessage.php
+++ b/api/vendor/mockery/mockery/library/Mockery/HigherOrderMessage.php
@@ -1,33 +1,32 @@
mock = $mock;
@@ -35,7 +34,10 @@ public function __construct(MockInterface $mock, $method)
}
/**
- * @return \Mockery\Expectation
+ * @param string $method
+ * @param array $args
+ *
+ * @return Expectation|ExpectationInterface|HigherOrderMessage
*/
public function __call($method, $args)
{
@@ -44,6 +46,7 @@ public function __call($method, $args)
}
$expectation = $this->mock->{$this->method}($method);
+
return $expectation->withArgs($args);
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Instantiator.php b/api/vendor/mockery/mockery/library/Mockery/Instantiator.php
index 0eafff7fe9..11b8e5ba02 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Instantiator.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Instantiator.php
@@ -1,155 +1,132 @@
.
+ * @copyright https://github.com/mockery/mockery/blob/HEAD/COPYRIGHT.md
+ * @license https://github.com/mockery/mockery/blob/HEAD/LICENSE BSD 3-Clause License
+ * @link https://github.com/mockery/mockery for the canonical source repository
*/
namespace Mockery;
use Closure;
+use Exception;
+use InvalidArgumentException;
use ReflectionClass;
use UnexpectedValueException;
-use InvalidArgumentException;
+
+use function class_exists;
+use function restore_error_handler;
+use function set_error_handler;
+use function sprintf;
+use function strlen;
+use function unserialize;
/**
- * This is a trimmed down version of https://github.com/doctrine/instantiator,
- * basically without the caching
- *
- * @author Marco Pivetta
+ * This is a trimmed down version of https://github.com/doctrine/instantiator, without the caching mechanism.
*/
final class Instantiator
{
/**
- * {@inheritDoc}
+ * @template TClass of object
+ *
+ * @param class-string $className
+ *
+ * @throws InvalidArgumentException
+ * @throws UnexpectedValueException
+ *
+ * @return TClass
*/
- public function instantiate($className)
+ public function instantiate($className): object
{
- $factory = $this->buildFactory($className);
- $instance = $factory();
+ return $this->buildFactory($className)();
+ }
- return $instance;
+ /**
+ * @throws UnexpectedValueException
+ */
+ private function attemptInstantiationViaUnSerialization(
+ ReflectionClass $reflectionClass,
+ string $serializedString
+ ): void {
+ set_error_handler(static function ($code, $message, $file, $line) use ($reflectionClass, &$error): void {
+ $msg = sprintf(
+ 'Could not produce an instance of "%s" via un-serialization, since an error was triggered in file "%s" at line "%d"',
+ $reflectionClass->getName(),
+ $file,
+ $line
+ );
+
+ $error = new UnexpectedValueException($msg, 0, new Exception($message, $code));
+ });
+
+ try {
+ unserialize($serializedString);
+ } catch (Exception $exception) {
+ restore_error_handler();
+
+ throw new UnexpectedValueException(
+ sprintf(
+ 'An exception was raised while trying to instantiate an instance of "%s" via un-serialization',
+ $reflectionClass->getName()
+ ),
+ 0,
+ $exception
+ );
+ }
+
+ restore_error_handler();
+
+ if ($error instanceof UnexpectedValueException) {
+ throw $error;
+ }
}
/**
- * Builds a {@see \Closure} capable of instantiating the given $className without
- * invoking its constructor.
- *
- * @param string $className
- *
- * @return Closure
+ * Builds a {@see Closure} capable of instantiating the given $className without invoking its constructor.
*/
- private function buildFactory($className)
+ private function buildFactory(string $className): Closure
{
$reflectionClass = $this->getReflectionClass($className);
if ($this->isInstantiableViaReflection($reflectionClass)) {
- return function () use ($reflectionClass) {
+ return static function () use ($reflectionClass) {
return $reflectionClass->newInstanceWithoutConstructor();
};
}
- $serializedString = sprintf(
- 'O:%d:"%s":0:{}',
- strlen($className),
- $className
- );
+ $serializedString = sprintf('O:%d:"%s":0:{}', strlen($className), $className);
$this->attemptInstantiationViaUnSerialization($reflectionClass, $serializedString);
- return function () use ($serializedString) {
+ return static function () use ($serializedString) {
return unserialize($serializedString);
};
}
/**
- * @param string $className
- *
- * @return ReflectionClass
- *
* @throws InvalidArgumentException
*/
- private function getReflectionClass($className)
+ private function getReflectionClass(string $className): ReflectionClass
{
if (! class_exists($className)) {
- throw new InvalidArgumentException("Class:$className does not exist");
+ throw new InvalidArgumentException(sprintf('Class:%s does not exist', $className));
}
$reflection = new ReflectionClass($className);
if ($reflection->isAbstract()) {
- throw new InvalidArgumentException("Class:$className is an abstract class");
+ throw new InvalidArgumentException(sprintf('Class:%s is an abstract class', $className));
}
return $reflection;
}
- /**
- * @param ReflectionClass $reflectionClass
- * @param string $serializedString
- *
- * @throws UnexpectedValueException
- *
- * @return void
- */
- private function attemptInstantiationViaUnSerialization(ReflectionClass $reflectionClass, $serializedString)
- {
- set_error_handler(function ($code, $message, $file, $line) use ($reflectionClass, & $error) {
- $msg = sprintf(
- 'Could not produce an instance of "%s" via un-serialization, since an error was triggered in file "%s" at line "%d"',
- $reflectionClass->getName(),
- $file,
- $line
- );
-
- $error = new UnexpectedValueException($msg, 0, new \Exception($message, $code));
- });
-
- try {
- unserialize($serializedString);
- } catch (\Exception $exception) {
- restore_error_handler();
-
- throw new UnexpectedValueException("An exception was raised while trying to instantiate an instance of \"{$reflectionClass->getName()}\" via un-serialization", 0, $exception);
- }
-
- restore_error_handler();
-
- if ($error) {
- throw $error;
- }
- }
-
- /**
- * @param ReflectionClass $reflectionClass
- *
- * @return bool
- */
- private function isInstantiableViaReflection(ReflectionClass $reflectionClass)
- {
- return ! ($reflectionClass->isInternal() && $reflectionClass->isFinal());
- }
-
/**
* Verifies whether the given class is to be considered internal
- *
- * @param ReflectionClass $reflectionClass
- *
- * @return bool
*/
- private function hasInternalAncestors(ReflectionClass $reflectionClass)
+ private function hasInternalAncestors(ReflectionClass $reflectionClass): bool
{
do {
if ($reflectionClass->isInternal()) {
@@ -159,4 +136,12 @@ private function hasInternalAncestors(ReflectionClass $reflectionClass)
return false;
}
+
+ /**
+ * Verifies if the class is instantiable via reflection
+ */
+ private function isInstantiableViaReflection(ReflectionClass $reflectionClass): bool
+ {
+ return ! ($reflectionClass->isInternal() && $reflectionClass->isFinal());
+ }
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/LegacyMockInterface.php b/api/vendor/mockery/mockery/library/Mockery/LegacyMockInterface.php
index ae0cc2a753..5c904e1375 100644
--- a/api/vendor/mockery/mockery/library/Mockery/LegacyMockInterface.php
+++ b/api/vendor/mockery/mockery/library/Mockery/LegacyMockInterface.php
@@ -1,240 +1,258 @@
$args
+ *
+ * @return null|Expectation
*/
- public function shouldIgnoreMissing($returnValue = null);
+ public function mockery_findExpectation($method, array $args);
/**
- * @return Mock
+ * Return the container for this mock
+ *
+ * @return Container
*/
- public function shouldAllowMockingProtectedMethods();
+ public function mockery_getContainer();
/**
- * Set mock to defer unexpected methods to its parent if possible
- *
- * @deprecated since 1.4.0. Please use makePartial() instead.
+ * Get current ordered number
*
- * @return Mock
+ * @return int
*/
- public function shouldDeferMissing();
+ public function mockery_getCurrentOrder();
/**
- * Set mock to defer unexpected methods to its parent if possible
+ * Gets the count of expectations for this mock
*
- * @return Mock
+ * @return int
*/
- public function makePartial();
+ public function mockery_getExpectationCount();
/**
- * @param null|string $method
- * @param null|array|Closure $args
- * @return mixed
+ * Return the expectations director for the given method
+ *
+ * @param string $method
+ *
+ * @return null|ExpectationDirector
*/
- public function shouldHaveReceived($method, $args = null);
+ public function mockery_getExpectationsFor($method);
/**
- * @return mixed
+ * Fetch array of ordered groups
+ *
+ * @return array
*/
- public function shouldHaveBeenCalled();
+ public function mockery_getGroups();
/**
- * @param null|string $method
- * @param null|array|Closure $args
- * @return mixed
+ * @return string[]
*/
- public function shouldNotHaveReceived($method, $args = null);
+ public function mockery_getMockableMethods();
/**
- * @param array $args (optional)
- * @return mixed
+ * @return array
*/
- public function shouldNotHaveBeenCalled(array $args = null);
+ public function mockery_getMockableProperties();
/**
- * In the event shouldReceive() accepting an array of methods/returns
- * this method will switch them from normal expectations to default
- * expectations
+ * Return the name for this mock
*
- * @return self
+ * @return string
*/
- public function byDefault();
+ public function mockery_getName();
/**
- * Iterate across all expectation directors and validate each
+ * Alternative setup method to constructor
*
- * @throws \Mockery\CountValidator\Exception
- * @return void
- */
- public function mockery_verify();
-
- /**
- * Tear down tasks for this mock
+ * @param object $partialObject
*
* @return void
*/
- public function mockery_teardown();
+ public function mockery_init(?Container $container = null, $partialObject = null);
/**
- * Fetch the next available allocation order number
- *
- * @return int
+ * @return bool
*/
- public function mockery_allocateOrder();
+ public function mockery_isAnonymous();
/**
- * Set ordering for a group
+ * Set current ordered number
*
- * @param mixed $group
* @param int $order
+ *
+ * @return int
*/
- public function mockery_setGroup($group, $order);
+ public function mockery_setCurrentOrder($order);
/**
- * Fetch array of ordered groups
+ * Return the expectations director for the given method
*
- * @return array
+ * @param string $method
+ *
+ * @return null|ExpectationDirector
*/
- public function mockery_getGroups();
+ public function mockery_setExpectationsFor($method, ExpectationDirector $director);
/**
- * Set current ordered number
+ * Set ordering for a group
*
- * @param int $order
+ * @param string $group
+ * @param int $order
+ *
+ * @return void
*/
- public function mockery_setCurrentOrder($order);
+ public function mockery_setGroup($group, $order);
/**
- * Get current ordered number
+ * Tear down tasks for this mock
*
- * @return int
+ * @return void
*/
- public function mockery_getCurrentOrder();
+ public function mockery_teardown();
/**
* Validate the current mock's ordering
*
* @param string $method
- * @param int $order
- * @throws \Mockery\Exception
+ * @param int $order
+ *
+ * @throws Exception
+ *
* @return void
*/
public function mockery_validateOrder($method, $order);
/**
- * Gets the count of expectations for this mock
+ * Iterate across all expectation directors and validate each
*
- * @return int
+ * @throws Throwable
+ *
+ * @return void
*/
- public function mockery_getExpectationCount();
+ public function mockery_verify();
/**
- * Return the expectations director for the given method
+ * Allows additional methods to be mocked that do not explicitly exist on mocked class
*
- * @var string $method
- * @return \Mockery\ExpectationDirector|null
+ * @param string $method the method name to be mocked
+ * @return self
*/
- public function mockery_setExpectationsFor($method, \Mockery\ExpectationDirector $director);
+ public function shouldAllowMockingMethod($method);
/**
- * Return the expectations director for the given method
+ * @return self
+ */
+ public function shouldAllowMockingProtectedMethods();
+
+ /**
+ * Set mock to defer unexpected methods to its parent if possible
+ *
+ * @deprecated since 1.4.0. Please use makePartial() instead.
*
- * @var string $method
- * @return \Mockery\ExpectationDirector|null
+ * @return self
*/
- public function mockery_getExpectationsFor($method);
+ public function shouldDeferMissing();
/**
- * Find an expectation matching the given method and arguments
+ * @return self
+ */
+ public function shouldHaveBeenCalled();
+
+ /**
+ * @template TMixed
+ * @param string $method
+ * @param null|array|Closure $args
*
- * @var string $method
- * @var array $args
- * @return \Mockery\Expectation|null
+ * @return self
*/
- public function mockery_findExpectation($method, array $args);
+ public function shouldHaveReceived($method, $args = null);
/**
- * Return the container for this mock
+ * Set mock to ignore unexpected methods and return Undefined class
+ *
+ * @template TReturnValue
+ *
+ * @param null|TReturnValue $returnValue the default return value for calls to missing functions on this mock
*
- * @return \Mockery\Container
+ * @return self
*/
- public function mockery_getContainer();
+ public function shouldIgnoreMissing($returnValue = null);
/**
- * Return the name for this mock
+ * @template TMixed
+ * @param null|array $args (optional)
*
- * @return string
+ * @return self
*/
- public function mockery_getName();
+ public function shouldNotHaveBeenCalled(?array $args = null);
/**
- * @return array
+ * @template TMixed
+ * @param string $method
+ * @param null|array|Closure $args
+ *
+ * @return self
*/
- public function mockery_getMockableProperties();
+ public function shouldNotHaveReceived($method, $args = null);
/**
- * @return string[]
+ * Shortcut method for setting an expectation that a method should not be called.
+ *
+ * @param string ...$methodNames one or many methods that are expected not to be called in this mock
+ *
+ * @return Expectation|ExpectationInterface|HigherOrderMessage
*/
- public function mockery_getMockableMethods();
+ public function shouldNotReceive(...$methodNames);
/**
- * @return bool
+ * Set expected method calls
+ *
+ * @param string ...$methodNames one or many methods that are expected to be called in this mock
+ *
+ * @return Expectation|ExpectationInterface|HigherOrderMessage
*/
- public function mockery_isAnonymous();
+ public function shouldReceive(...$methodNames);
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Loader/EvalLoader.php b/api/vendor/mockery/mockery/library/Mockery/Loader/EvalLoader.php
index e5f78a2001..63247e87de 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Loader/EvalLoader.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Loader/EvalLoader.php
@@ -1,36 +1,32 @@
getClassName(), false)) {
return;
}
- eval("?>" . $definition->getCode());
+ eval('?>' . $definition->getCode());
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Loader/Loader.php b/api/vendor/mockery/mockery/library/Mockery/Loader/Loader.php
index 170ffb6e91..90d568901a 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Loader/Loader.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Loader/Loader.php
@@ -1,21 +1,11 @@
path = realpath($path) ?: sys_get_temp_dir();
+ if ($path === null) {
+ $path = sys_get_temp_dir();
+ }
+
+ $this->path = realpath($path);
}
+ public function __destruct()
+ {
+ $files = array_diff(glob($this->path . DIRECTORY_SEPARATOR . 'Mockery_*.php') ?: [], [$this->lastPath]);
+
+ foreach ($files as $file) {
+ @unlink($file);
+ }
+ }
+
+ /**
+ * Load the given mock definition
+ *
+ * @return void
+ */
public function load(MockDefinition $definition)
{
if (class_exists($definition->getClassName(), false)) {
return;
}
- $tmpfname = $this->path . DIRECTORY_SEPARATOR . "Mockery_" . uniqid() . ".php";
- file_put_contents($tmpfname, $definition->getCode());
+ $this->lastPath = sprintf('%s%s%s.php', $this->path, DIRECTORY_SEPARATOR, uniqid('Mockery_', false));
+
+ file_put_contents($this->lastPath, $definition->getCode());
- require $tmpfname;
+ if (file_exists($this->lastPath)) {
+ require $this->lastPath;
+ }
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Matcher/AndAnyOtherArgs.php b/api/vendor/mockery/mockery/library/Mockery/Matcher/AndAnyOtherArgs.php
index e3c3b9439f..f4a698e260 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Matcher/AndAnyOtherArgs.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Matcher/AndAnyOtherArgs.php
@@ -1,21 +1,11 @@
';
}
/**
- * Return a string representation of this Matcher
+ * Check if the actual value matches the expected.
*
- * @return string
+ * @template TMixed
+ *
+ * @param TMixed $actual
+ *
+ * @return bool
*/
- public function __toString()
+ public function match(&$actual)
{
- return '';
+ return true;
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Matcher/Any.php b/api/vendor/mockery/mockery/library/Mockery/Matcher/Any.php
index 1ff440b1be..5bb4b2f04c 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Matcher/Any.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Matcher/Any.php
@@ -1,21 +1,11 @@
';
}
/**
- * Return a string representation of this Matcher
+ * Check if the actual value matches the expected.
*
- * @return string
+ * @template TMixed
+ *
+ * @param TMixed $actual
+ *
+ * @return bool
*/
- public function __toString()
+ public function match(&$actual)
{
- return '';
+ return true;
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Matcher/AnyArgs.php b/api/vendor/mockery/mockery/library/Mockery/Matcher/AnyArgs.php
index 9663a76d47..0e1ce8c6a0 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Matcher/AnyArgs.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Matcher/AnyArgs.php
@@ -1,40 +1,31 @@
';
}
/**
- * @inheritdoc
+ * @template TMixed
+ *
+ * @param TMixed $actual
+ *
+ * @return bool
*/
- public function __toString()
+ public function match(&$actual)
{
- return '';
+ return true;
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Matcher/AnyOf.php b/api/vendor/mockery/mockery/library/Mockery/Matcher/AnyOf.php
index bcce4b7453..425dcae3fc 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Matcher/AnyOf.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Matcher/AnyOf.php
@@ -1,46 +1,41 @@
_expected, true);
+ return '';
}
/**
- * Return a string representation of this Matcher
+ * Check if the actual value does not match the expected (in this
+ * case it's specifically NOT expected).
*
- * @return string
+ * @template TMixed
+ *
+ * @param TMixed $actual
+ *
+ * @return bool
*/
- public function __toString()
+ public function match(&$actual)
{
- return '';
+ return in_array($actual, $this->_expected, true);
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Matcher/ArgumentListMatcher.php b/api/vendor/mockery/mockery/library/Mockery/Matcher/ArgumentListMatcher.php
index 04408f569e..56e58f6939 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Matcher/ArgumentListMatcher.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Matcher/ArgumentListMatcher.php
@@ -1,21 +1,11 @@
_expected;
- $result = $closure($actual);
- return $result === true;
+ return '';
}
/**
- * Return a string representation of this Matcher
+ * Check if the actual value matches the expected.
*
- * @return string
+ * @template TMixed
+ *
+ * @param TMixed $actual
+ *
+ * @return bool
*/
- public function __toString()
+ public function match(&$actual)
{
- return '';
+ return ($this->_expected)($actual) === true;
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Matcher/Contains.php b/api/vendor/mockery/mockery/library/Mockery/Matcher/Contains.php
index 79afb73a75..9fdeb83151 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Matcher/Contains.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Matcher/Contains.php
@@ -1,31 +1,42 @@
_expected as $v) {
+ $elements[] = (string) $v;
+ }
+
+ return '';
+ }
+
/**
* Check if the actual value matches the expected.
*
- * @param mixed $actual
+ * @template TMixed
+ *
+ * @param TMixed $actual
+ *
* @return bool
*/
public function match(&$actual)
@@ -39,26 +50,12 @@ public function match(&$actual)
break;
}
}
+
if ($match === false) {
return false;
}
}
- return true;
- }
- /**
- * Return a string representation of this Matcher
- *
- * @return string
- */
- public function __toString()
- {
- $return = '_expected as $v) {
- $elements[] = (string) $v;
- }
- $return .= implode(', ', $elements) . ']>';
- return $return;
+ return true;
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Matcher/Ducktype.php b/api/vendor/mockery/mockery/library/Mockery/Matcher/Ducktype.php
index 291f422081..3f3a9ef769 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Matcher/Ducktype.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Matcher/Ducktype.php
@@ -1,53 +1,52 @@
_expected) . ']>';
+ }
+
/**
* Check if the actual value matches the expected.
*
- * @param mixed $actual
+ * @template TMixed
+ *
+ * @param TMixed $actual
+ *
* @return bool
*/
public function match(&$actual)
{
- if (!is_object($actual)) {
+ if (! is_object($actual)) {
return false;
}
+
foreach ($this->_expected as $method) {
- if (!method_exists($actual, $method)) {
+ if (! method_exists($actual, $method)) {
return false;
}
}
- return true;
- }
- /**
- * Return a string representation of this Matcher
- *
- * @return string
- */
- public function __toString()
- {
- return '_expected) . ']>';
+ return true;
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Matcher/HasKey.php b/api/vendor/mockery/mockery/library/Mockery/Matcher/HasKey.php
index fa983eaf78..15ef915a5a 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Matcher/HasKey.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Matcher/HasKey.php
@@ -1,45 +1,48 @@
_expected, $actual);
+ return sprintf('', $this->_expected);
}
/**
- * Return a string representation of this Matcher
+ * Check if the actual value matches the expected.
*
- * @return string
+ * @template TMixed
+ *
+ * @param TMixed $actual
+ *
+ * @return bool
*/
- public function __toString()
+ public function match(&$actual)
{
- return "_expected]>";
+ if (! is_array($actual) && ! $actual instanceof ArrayAccess) {
+ return false;
+ }
+
+ return array_key_exists($this->_expected, (array) $actual);
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Matcher/HasValue.php b/api/vendor/mockery/mockery/library/Mockery/Matcher/HasValue.php
index 8ca6afd138..8d37a5f74a 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Matcher/HasValue.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Matcher/HasValue.php
@@ -1,46 +1,47 @@
_expected, $actual);
+ return '_expected . ']>';
}
/**
- * Return a string representation of this Matcher
+ * Check if the actual value matches the expected.
*
- * @return string
+ * @template TMixed
+ *
+ * @param TMixed $actual
+ *
+ * @return bool
*/
- public function __toString()
+ public function match(&$actual)
{
- $return = '_expected . ']>';
- return $return;
+ if (! is_array($actual) && ! $actual instanceof ArrayAccess) {
+ return false;
+ }
+
+ return in_array($this->_expected, (array) $actual, true);
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Matcher/IsEqual.php b/api/vendor/mockery/mockery/library/Mockery/Matcher/IsEqual.php
new file mode 100644
index 0000000000..72d1a02f2e
--- /dev/null
+++ b/api/vendor/mockery/mockery/library/Mockery/Matcher/IsEqual.php
@@ -0,0 +1,38 @@
+';
+ }
+
+ /**
+ * Check if the actual value matches the expected.
+ *
+ * @template TMixed
+ *
+ * @param TMixed $actual
+ *
+ * @return bool
+ */
+ public function match(&$actual)
+ {
+ return $this->_expected == $actual;
+ }
+}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Matcher/IsSame.php b/api/vendor/mockery/mockery/library/Mockery/Matcher/IsSame.php
new file mode 100644
index 0000000000..7671448e4a
--- /dev/null
+++ b/api/vendor/mockery/mockery/library/Mockery/Matcher/IsSame.php
@@ -0,0 +1,38 @@
+';
+ }
+
+ /**
+ * Check if the actual value matches the expected.
+ *
+ * @template TMixed
+ *
+ * @param TMixed $actual
+ *
+ * @return bool
+ */
+ public function match(&$actual)
+ {
+ return $this->_expected === $actual;
+ }
+}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Matcher/MatcherAbstract.php b/api/vendor/mockery/mockery/library/Mockery/Matcher/MatcherAbstract.php
index 3233079ec4..813950a5d6 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Matcher/MatcherAbstract.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Matcher/MatcherAbstract.php
@@ -1,58 +1,39 @@
_expected = $expected;
}
-
- /**
- * Check if the actual value matches the expected.
- * Actual passed by reference to preserve reference trail (where applicable)
- * back to the original method parameter.
- *
- * @param mixed $actual
- * @return bool
- */
- abstract public function match(&$actual);
-
- /**
- * Return a string representation of this Matcher
- *
- * @return string
- */
- abstract public function __toString();
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Matcher/MatcherInterface.php b/api/vendor/mockery/mockery/library/Mockery/Matcher/MatcherInterface.php
new file mode 100644
index 0000000000..19154eab22
--- /dev/null
+++ b/api/vendor/mockery/mockery/library/Mockery/Matcher/MatcherInterface.php
@@ -0,0 +1,36 @@
+_expected;
- return true === call_user_func_array($closure, $actual);
+ return '';
}
/**
- * Return a string representation of this Matcher
+ * Check if the actual value matches the expected.
+ * Actual passed by reference to preserve reference trail (where applicable)
+ * back to the original method parameter.
*
- * @return string
+ * @template TMixed
+ *
+ * @param TMixed $actual
+ *
+ * @return bool
*/
- public function __toString()
+ public function match(&$actual)
{
- return '';
+ return ($this->_expected)(...$actual) === true;
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Matcher/MustBe.php b/api/vendor/mockery/mockery/library/Mockery/Matcher/MustBe.php
index 27b5ec5622..d365bc70a5 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Matcher/MustBe.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Matcher/MustBe.php
@@ -1,52 +1,47 @@
';
+ }
+
/**
* Check if the actual value matches the expected.
*
- * @param mixed $actual
+ * @template TMixed
+ *
+ * @param TMixed $actual
+ *
* @return bool
*/
public function match(&$actual)
{
- if (!is_object($actual)) {
+ if (! is_object($actual)) {
return $this->_expected === $actual;
}
return $this->_expected == $actual;
}
-
- /**
- * Return a string representation of this Matcher
- *
- * @return string
- */
- public function __toString()
- {
- return '';
- }
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Matcher/NoArgs.php b/api/vendor/mockery/mockery/library/Mockery/Matcher/NoArgs.php
index 5e9e4189e7..37438f13b5 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Matcher/NoArgs.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Matcher/NoArgs.php
@@ -1,40 +1,33 @@
';
}
/**
- * @inheritdoc
+ * @template TMixed
+ *
+ * @param TMixed $actual
+ *
+ * @return bool
*/
- public function __toString()
+ public function match(&$actual)
{
- return '';
+ return count($actual) === 0;
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Matcher/Not.php b/api/vendor/mockery/mockery/library/Mockery/Matcher/Not.php
index 756ccaa5b7..133007eb03 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Matcher/Not.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Matcher/Not.php
@@ -1,21 +1,11 @@
_expected;
+ return '';
}
/**
- * Return a string representation of this Matcher
+ * Check if the actual value does not match the expected (in this
+ * case it's specifically NOT expected).
*
- * @return string
+ * @template TMixed
+ *
+ * @param TMixed $actual
+ *
+ * @return bool
*/
- public function __toString()
+ public function match(&$actual)
{
- return '';
+ return $actual !== $this->_expected;
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Matcher/NotAnyOf.php b/api/vendor/mockery/mockery/library/Mockery/Matcher/NotAnyOf.php
index cd82701573..567b24e01d 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Matcher/NotAnyOf.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Matcher/NotAnyOf.php
@@ -1,32 +1,35 @@
';
+ }
+
/**
* Check if the actual value does not match the expected (in this
* case it's specifically NOT expected).
*
- * @param mixed $actual
+ * @template TMixed
+ *
+ * @param TMixed $actual
+ *
* @return bool
*/
public function match(&$actual)
@@ -36,16 +39,7 @@ public function match(&$actual)
return false;
}
}
- return true;
- }
- /**
- * Return a string representation of this Matcher
- *
- * @return string
- */
- public function __toString()
- {
- return '';
+ return true;
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Matcher/Pattern.php b/api/vendor/mockery/mockery/library/Mockery/Matcher/Pattern.php
index 362c366fd8..b2e84dfaa3 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Matcher/Pattern.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Matcher/Pattern.php
@@ -1,45 +1,40 @@
_expected, (string) $actual) >= 1;
+ return '';
}
/**
- * Return a string representation of this Matcher
+ * Check if the actual value matches the expected pattern.
*
- * @return string
+ * @template TMixed
+ *
+ * @param TMixed $actual
+ *
+ * @return bool
*/
- public function __toString()
+ public function match(&$actual)
{
- return '';
+ return preg_match($this->_expected, (string) $actual) >= 1;
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Matcher/Subset.php b/api/vendor/mockery/mockery/library/Mockery/Matcher/Subset.php
index 5e706c81f5..96893fb9f4 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Matcher/Subset.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Matcher/Subset.php
@@ -1,33 +1,28 @@
formatArray($this->expected) . '>';
}
/**
@@ -58,12 +53,15 @@ public static function loose(array $expected)
/**
* Check if the actual value matches the expected.
*
- * @param mixed $actual
+ * @template TMixed
+ *
+ * @param TMixed $actual
+ *
* @return bool
*/
public function match(&$actual)
{
- if (!is_array($actual)) {
+ if (! is_array($actual)) {
return false;
}
@@ -75,18 +73,27 @@ public function match(&$actual)
}
/**
- * Return a string representation of this Matcher
+ * @param array $expected Expected subset of data
+ *
+ * @return Subset
+ */
+ public static function strict(array $expected)
+ {
+ return new static($expected, true);
+ }
+
+ /**
+ * Recursively format an array into the string representation for this matcher
*
* @return string
*/
- public function __toString()
+ protected function formatArray(array $array)
{
- $return = 'expected as $k=>$v) {
- $elements[] = $k . '=' . (string) $v;
+ $elements = [];
+ foreach ($array as $k => $v) {
+ $elements[] = $k . '=' . (is_array($v) ? $this->formatArray($v) : (string) $v);
}
- $return .= implode(', ', $elements) . ']>';
- return $return;
+
+ return '[' . implode(', ', $elements) . ']';
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Matcher/Type.php b/api/vendor/mockery/mockery/library/Mockery/Matcher/Type.php
index d81ce83428..8265b602ee 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Matcher/Type.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Matcher/Type.php
@@ -1,56 +1,59 @@
_expected) . '>';
+ }
+
/**
* Check if the actual value matches the expected.
*
- * @param mixed $actual
+ * @template TMixed
+ *
+ * @param TMixed $actual
+ *
* @return bool
*/
public function match(&$actual)
{
- if ($this->_expected == 'real') {
- $function = 'is_float';
- } else {
- $function = 'is_' . strtolower($this->_expected);
- }
+ $function = $this->_expected === 'real' ? 'is_float' : 'is_' . strtolower($this->_expected);
+
if (function_exists($function)) {
return $function($actual);
- } elseif (is_string($this->_expected)
- && (class_exists($this->_expected) || interface_exists($this->_expected))) {
+ }
+
+ if (! is_string($this->_expected)) {
+ return false;
+ }
+
+ if (class_exists($this->_expected) || interface_exists($this->_expected)) {
return $actual instanceof $this->_expected;
}
- return false;
- }
- /**
- * Return a string representation of this Matcher
- *
- * @return string
- */
- public function __toString()
- {
- return '<' . ucfirst($this->_expected) . '>';
+ return false;
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/MethodCall.php b/api/vendor/mockery/mockery/library/Mockery/MethodCall.php
index db68fd81f4..f331514f0f 100644
--- a/api/vendor/mockery/mockery/library/Mockery/MethodCall.php
+++ b/api/vendor/mockery/mockery/library/Mockery/MethodCall.php
@@ -1,43 +1,50 @@
method = $method;
$this->args = $args;
}
- public function getMethod()
+ /**
+ * @return array
+ */
+ public function getArgs()
{
- return $this->method;
+ return $this->args;
}
- public function getArgs()
+ /**
+ * @return string
+ */
+ public function getMethod()
{
- return $this->args;
+ return $this->method;
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Mock.php b/api/vendor/mockery/mockery/library/Mockery/Mock.php
index c9000838ff..068cce35b3 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Mock.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Mock.php
@@ -1,32 +1,34 @@
_mockery_container = $container;
if (!is_null($partialObject)) {
$this->_mockery_partial = $partialObject;
@@ -195,6 +201,8 @@ public function mockery_init(\Mockery\Container $container = null, $partialObjec
}
$this->_mockery_instanceMock = $instanceMock;
+
+ $this->_mockery_parentClass = get_parent_class($this);
}
/**
@@ -202,54 +210,54 @@ public function mockery_init(\Mockery\Container $container = null, $partialObjec
*
* @param string ...$methodNames one or many methods that are expected to be called in this mock
*
- * @return \Mockery\ExpectationInterface|\Mockery\Expectation|\Mockery\HigherOrderMessage
+ * @return ExpectationInterface|Expectation|HigherOrderMessage
*/
public function shouldReceive(...$methodNames)
{
- if (count($methodNames) === 0) {
- return new HigherOrderMessage($this, "shouldReceive");
+ if ($methodNames === []) {
+ return new HigherOrderMessage($this, 'shouldReceive');
}
foreach ($methodNames as $method) {
- if ("" == $method) {
- throw new \InvalidArgumentException("Received empty method name");
+ if ('' === $method) {
+ throw new \InvalidArgumentException('Received empty method name');
}
}
$self = $this;
$allowMockingProtectedMethods = $this->_mockery_allowMockingProtectedMethods;
-
- $lastExpectation = \Mockery::parseShouldReturnArgs(
+ return \Mockery::parseShouldReturnArgs(
$this,
$methodNames,
- function ($method) use ($self, $allowMockingProtectedMethods) {
+ static function ($method) use ($self, $allowMockingProtectedMethods) {
$rm = $self->mockery_getMethod($method);
if ($rm) {
if ($rm->isPrivate()) {
- throw new \InvalidArgumentException("$method() cannot be mocked as it is a private method");
+ throw new \InvalidArgumentException($method . '() cannot be mocked as it is a private method');
}
+
if (!$allowMockingProtectedMethods && $rm->isProtected()) {
- throw new \InvalidArgumentException("$method() cannot be mocked as it is a protected method and mocking protected methods is not enabled for the currently used mock object. Use shouldAllowMockingProtectedMethods() to enable mocking of protected methods.");
+ throw new \InvalidArgumentException($method . '() cannot be mocked as it is a protected method and mocking protected methods is not enabled for the currently used mock object. Use shouldAllowMockingProtectedMethods() to enable mocking of protected methods.');
}
}
$director = $self->mockery_getExpectationsFor($method);
if (!$director) {
- $director = new \Mockery\ExpectationDirector($method, $self);
+ $director = new ExpectationDirector($method, $self);
$self->mockery_setExpectationsFor($method, $director);
}
- $expectation = new \Mockery\Expectation($self, $method);
+
+ $expectation = new Expectation($self, $method);
$director->addExpectation($expectation);
return $expectation;
}
);
- return $lastExpectation;
}
// start method allows
/**
* @param mixed $something String method name or map of method => return
- * @return self|\Mockery\ExpectationInterface|\Mockery\Expectation|\Mockery\HigherOrderMessage
+ * @return self|ExpectationInterface|Expectation|HigherOrderMessage
*/
public function allows($something = [])
{
@@ -267,14 +275,14 @@ public function allows($something = [])
return $this;
}
- // end method allows
+ // end method allows
// start method expects
/**
- /**
- * @param mixed $something String method name (optional)
- * @return \Mockery\ExpectationInterface|\Mockery\Expectation|ExpectsHigherOrderMessage
- */
+ /**
+ * @param mixed $something String method name (optional)
+ * @return ExpectationInterface|Expectation|ExpectsHigherOrderMessage
+ */
public function expects($something = null)
{
if (is_string($something)) {
@@ -283,29 +291,32 @@ public function expects($something = null)
return new ExpectsHigherOrderMessage($this);
}
- // end method expects
+ // end method expects
/**
* Shortcut method for setting an expectation that a method should not be called.
*
* @param string ...$methodNames one or many methods that are expected not to be called in this mock
- * @return \Mockery\ExpectationInterface|\Mockery\Expectation|\Mockery\HigherOrderMessage
+ * @return ExpectationInterface|Expectation|HigherOrderMessage
*/
public function shouldNotReceive(...$methodNames)
{
- if (count($methodNames) === 0) {
- return new HigherOrderMessage($this, "shouldNotReceive");
+ if ($methodNames === []) {
+ return new HigherOrderMessage($this, 'shouldNotReceive');
}
- $expectation = call_user_func_array(array($this, 'shouldReceive'), $methodNames);
+ $expectation = call_user_func_array(function (string $methodNames) {
+ return $this->shouldReceive($methodNames);
+ }, $methodNames);
$expectation->never();
return $expectation;
}
/**
* Allows additional methods to be mocked that do not explicitly exist on mocked class
- * @param String $method name of the method to be mocked
- * @return Mock
+ *
+ * @param string $method name of the method to be mocked
+ * @return Mock|MockInterface|LegacyMockInterface
*/
public function shouldAllowMockingMethod($method)
{
@@ -317,7 +328,7 @@ public function shouldAllowMockingMethod($method)
* Set mock to ignore unexpected methods and return Undefined class
* @param mixed $returnValue the default return value for calls to missing functions on this mock
* @param bool $recursive Specify if returned mocks should also have shouldIgnoreMissing set
- * @return Mock
+ * @return static
*/
public function shouldIgnoreMissing($returnValue = null, $recursive = false)
{
@@ -330,12 +341,12 @@ public function shouldIgnoreMissing($returnValue = null, $recursive = false)
public function asUndefined()
{
$this->_mockery_ignoreMissing = true;
- $this->_mockery_defaultReturnValue = new \Mockery\Undefined();
+ $this->_mockery_defaultReturnValue = new Undefined();
return $this;
}
/**
- * @return Mock
+ * @return static
*/
public function shouldAllowMockingProtectedMethods()
{
@@ -360,7 +371,7 @@ public function shouldAllowMockingProtectedMethods()
*
* @deprecated 2.0.0 Please use makePartial() instead
*
- * @return Mock
+ * @return static
*/
public function shouldDeferMissing()
{
@@ -373,7 +384,7 @@ public function shouldDeferMissing()
* It was an alias for shouldDeferMissing(), which will be removed
* in 2.0.0.
*
- * @return Mock
+ * @return static
*/
public function makePartial()
{
@@ -396,6 +407,7 @@ public function byDefault()
$exp->byDefault();
}
}
+
return $this;
}
@@ -415,15 +427,16 @@ public static function __callStatic($method, array $args)
/**
* Forward calls to this magic method to the __call method
*/
+ #[\ReturnTypeWillChange]
public function __toString()
{
- return $this->__call('__toString', array());
+ return $this->__call('__toString', []);
}
/**
* Iterate across all expectation directors and validate each
*
- * @throws \Mockery\CountValidator\Exception
+ * @throws Exception
* @return void
*/
public function mockery_verify()
@@ -431,10 +444,12 @@ public function mockery_verify()
if ($this->_mockery_verified) {
return;
}
- if (isset($this->_mockery_ignoreVerification)
+
+ if (property_exists($this, '_mockery_ignoreVerification') && $this->_mockery_ignoreVerification !== null
&& $this->_mockery_ignoreVerification == true) {
return;
}
+
$this->_mockery_verified = true;
foreach ($this->_mockery_expectations as $director) {
$director->verify();
@@ -467,7 +482,7 @@ public function mockery_teardown()
*/
public function mockery_allocateOrder()
{
- $this->_mockery_allocatedOrder += 1;
+ ++$this->_mockery_allocatedOrder;
return $this->_mockery_allocatedOrder;
}
@@ -524,8 +539,8 @@ public function mockery_getCurrentOrder()
public function mockery_validateOrder($method, $order)
{
if ($order < $this->_mockery_currentOrder) {
- $exception = new \Mockery\Exception\InvalidOrderException(
- 'Method ' . __CLASS__ . '::' . $method . '()'
+ $exception = new InvalidOrderException(
+ 'Method ' . self::class . '::' . $method . '()'
. ' called out of order: expected order '
. $order . ', was ' . $this->_mockery_currentOrder
);
@@ -535,6 +550,7 @@ public function mockery_validateOrder($method, $order)
->setActualOrder($this->_mockery_currentOrder);
throw $exception;
}
+
$this->mockery_setCurrentOrder($order);
}
@@ -549,6 +565,7 @@ public function mockery_getExpectationCount()
foreach ($this->_mockery_expectations as $director) {
$count += $director->getExpectationCount();
}
+
return $count;
}
@@ -556,9 +573,9 @@ public function mockery_getExpectationCount()
* Return the expectations director for the given method
*
* @var string $method
- * @return \Mockery\ExpectationDirector|null
+ * @return ExpectationDirector|null
*/
- public function mockery_setExpectationsFor($method, \Mockery\ExpectationDirector $director)
+ public function mockery_setExpectationsFor($method, ExpectationDirector $director)
{
$this->_mockery_expectations[$method] = $director;
}
@@ -567,7 +584,7 @@ public function mockery_setExpectationsFor($method, \Mockery\ExpectationDirector
* Return the expectations director for the given method
*
* @var string $method
- * @return \Mockery\ExpectationDirector|null
+ * @return ExpectationDirector|null
*/
public function mockery_getExpectationsFor($method)
{
@@ -581,13 +598,14 @@ public function mockery_getExpectationsFor($method)
*
* @var string $method
* @var array $args
- * @return \Mockery\Expectation|null
+ * @return Expectation|null
*/
public function mockery_findExpectation($method, array $args)
{
if (!isset($this->_mockery_expectations[$method])) {
return null;
}
+
$director = $this->_mockery_expectations[$method];
return $director->findExpectation($args);
@@ -596,7 +614,7 @@ public function mockery_findExpectation($method, array $args)
/**
* Return the container for this mock
*
- * @return \Mockery\Container
+ * @return Container
*/
public function mockery_getContainer()
{
@@ -610,7 +628,7 @@ public function mockery_getContainer()
*/
public function mockery_getName()
{
- return __CLASS__;
+ return self::class;
}
/**
@@ -623,11 +641,19 @@ public function mockery_getMockableProperties()
public function __isset($name)
{
- if (false === stripos($name, '_mockery_') && get_parent_class($this) && method_exists(get_parent_class($this), '__isset')) {
- return call_user_func(get_parent_class($this) . '::__isset', $name);
+ if (false !== stripos($name, '_mockery_')) {
+ return false;
+ }
+
+ if (!$this->_mockery_parentClass) {
+ return false;
}
- return false;
+ if (!method_exists($this->_mockery_parentClass, '__isset')) {
+ return false;
+ }
+
+ return call_user_func($this->_mockery_parentClass . '::__isset', $name);
}
public function mockery_getExpectations()
@@ -646,10 +672,11 @@ public function mockery_getExpectations()
*/
public function mockery_callSubjectMethod($name, array $args)
{
- if (!method_exists($this, $name) && get_parent_class($this) && method_exists(get_parent_class($this), '__call')) {
- return call_user_func(get_parent_class($this) . '::__call', $name, $args);
+ if (!method_exists($this, $name) && $this->_mockery_parentClass && method_exists($this->_mockery_parentClass, '__call')) {
+ return call_user_func($this->_mockery_parentClass . '::__call', $name, $args);
}
- return call_user_func_array(get_parent_class($this) . '::' . $name, $args);
+
+ return call_user_func_array($this->_mockery_parentClass . '::' . $name, $args);
}
/**
@@ -668,7 +695,7 @@ public function mockery_isAnonymous()
$rfc = new \ReflectionClass($this);
// PHP 8 has Stringable interface
- $interfaces = array_filter($rfc->getInterfaces(), function ($i) {
+ $interfaces = array_filter($rfc->getInterfaces(), static function ($i) {
return $i->getName() !== 'Stringable';
});
@@ -729,6 +756,8 @@ public function mockery_returnValueForMethod($name)
case 'int': return 0;
case 'float': return 0.0;
case 'bool': return false;
+ case 'true': return true;
+ case 'false': return false;
case 'array':
case 'iterable':
@@ -736,12 +765,14 @@ public function mockery_returnValueForMethod($name)
case 'callable':
case '\Closure':
- return function () {
+ return static function () : void {
};
case '\Traversable':
case '\Generator':
- $generator = function () { yield; };
+ $generator = static function () {
+ yield;
+ };
return $generator();
case 'void':
@@ -755,6 +786,7 @@ public function mockery_returnValueForMethod($name)
if ($this->_mockery_ignoreMissingRecursive) {
$mock->shouldIgnoreMissing($this->_mockery_defaultReturnValue, true);
}
+
return $mock;
default:
@@ -762,6 +794,7 @@ public function mockery_returnValueForMethod($name)
if ($this->_mockery_ignoreMissingRecursive) {
$mock->shouldIgnoreMissing($this->_mockery_defaultReturnValue, true);
}
+
return $mock;
}
}
@@ -769,65 +802,67 @@ public function mockery_returnValueForMethod($name)
public function shouldHaveReceived($method = null, $args = null)
{
if ($method === null) {
- return new HigherOrderMessage($this, "shouldHaveReceived");
+ return new HigherOrderMessage($this, 'shouldHaveReceived');
}
- $expectation = new \Mockery\VerificationExpectation($this, $method);
+ $expectation = new VerificationExpectation($this, $method);
if (null !== $args) {
$expectation->withArgs($args);
}
+
$expectation->atLeast()->once();
- $director = new \Mockery\VerificationDirector($this->_mockery_getReceivedMethodCalls(), $expectation);
- $this->_mockery_expectations_count++;
+ $director = new VerificationDirector($this->_mockery_getReceivedMethodCalls(), $expectation);
+ ++$this->_mockery_expectations_count;
$director->verify();
return $director;
}
public function shouldHaveBeenCalled()
{
- return $this->shouldHaveReceived("__invoke");
+ return $this->shouldHaveReceived('__invoke');
}
public function shouldNotHaveReceived($method = null, $args = null)
{
if ($method === null) {
- return new HigherOrderMessage($this, "shouldNotHaveReceived");
+ return new HigherOrderMessage($this, 'shouldNotHaveReceived');
}
- $expectation = new \Mockery\VerificationExpectation($this, $method);
+ $expectation = new VerificationExpectation($this, $method);
if (null !== $args) {
$expectation->withArgs($args);
}
+
$expectation->never();
- $director = new \Mockery\VerificationDirector($this->_mockery_getReceivedMethodCalls(), $expectation);
- $this->_mockery_expectations_count++;
+ $director = new VerificationDirector($this->_mockery_getReceivedMethodCalls(), $expectation);
+ ++$this->_mockery_expectations_count;
$director->verify();
return null;
}
- public function shouldNotHaveBeenCalled(array $args = null)
+ public function shouldNotHaveBeenCalled(?array $args = null)
{
- return $this->shouldNotHaveReceived("__invoke", $args);
+ return $this->shouldNotHaveReceived('__invoke', $args);
}
protected static function _mockery_handleStaticMethodCall($method, array $args)
{
- $associatedRealObject = \Mockery::fetchMock(__CLASS__);
+ $associatedRealObject = \Mockery::fetchMock(self::class);
try {
return $associatedRealObject->__call($method, $args);
- } catch (BadMethodCallException $e) {
+ } catch (BadMethodCallException $badMethodCallException) {
throw new BadMethodCallException(
'Static method ' . $associatedRealObject->mockery_getName() . '::' . $method
. '() does not exist on this mock object',
0,
- $e
+ $badMethodCallException
);
}
}
protected function _mockery_getReceivedMethodCalls()
{
- return $this->_mockery_receivedMethodCalls ?: $this->_mockery_receivedMethodCalls = new \Mockery\ReceivedMethodCalls();
+ return $this->_mockery_receivedMethodCalls ?: $this->_mockery_receivedMethodCalls = new ReceivedMethodCalls();
}
/**
@@ -841,6 +876,7 @@ protected function _mockery_constructorCalled(array $args)
if (!isset($this->_mockery_expectations['__construct']) /* _mockery_handleMethodCall runs the other checks */) {
return;
}
+
$this->_mockery_handleMethodCall('__construct', $args);
}
@@ -853,16 +889,12 @@ protected function _mockery_findExpectedMethodHandler($method)
$lowerCasedMockeryExpectations = array_change_key_case($this->_mockery_expectations, CASE_LOWER);
$lowerCasedMethod = strtolower($method);
- if (isset($lowerCasedMockeryExpectations[$lowerCasedMethod])) {
- return $lowerCasedMockeryExpectations[$lowerCasedMethod];
- }
-
- return null;
+ return $lowerCasedMockeryExpectations[$lowerCasedMethod] ?? null;
}
protected function _mockery_handleMethodCall($method, array $args)
{
- $this->_mockery_getReceivedMethodCalls()->push(new \Mockery\MethodCall($method, $args));
+ $this->_mockery_getReceivedMethodCalls()->push(new MethodCall($method, $args));
$rm = $this->mockery_getMethod($method);
if ($rm && $rm->isProtected() && !$this->_mockery_allowMockingProtectedMethods) {
@@ -879,7 +911,11 @@ protected function _mockery_handleMethodCall($method, array $args)
// noop - there is no hasPrototype method
}
- return call_user_func_array(get_parent_class($this) . '::' . $method, $args);
+ if (null === $this->_mockery_parentClass) {
+ $this->_mockery_parentClass = get_parent_class($this);
+ }
+
+ return call_user_func_array($this->_mockery_parentClass . '::' . $method, $args);
}
$handler = $this->_mockery_findExpectedMethodHandler($method);
@@ -887,7 +923,7 @@ protected function _mockery_handleMethodCall($method, array $args)
if ($handler !== null && !$this->_mockery_disableExpectationMatching) {
try {
return $handler->call($args);
- } catch (\Mockery\Exception\NoMatchingExpectationException $e) {
+ } catch (NoMatchingExpectationException $e) {
if (!$this->_mockery_ignoreMissing && !$this->_mockery_deferMissing) {
throw $e;
}
@@ -895,36 +931,43 @@ protected function _mockery_handleMethodCall($method, array $args)
}
if (!is_null($this->_mockery_partial) &&
- (method_exists($this->_mockery_partial, $method) || method_exists($this->_mockery_partial, '__call'))
- ) {
- return call_user_func_array(array($this->_mockery_partial, $method), $args);
- } elseif ($this->_mockery_deferMissing && is_callable(get_parent_class($this) . '::' . $method)
- && (!$this->hasMethodOverloadingInParentClass() || (get_parent_class($this) && method_exists(get_parent_class($this), $method)))) {
- return call_user_func_array(get_parent_class($this) . '::' . $method, $args);
- } elseif ($this->_mockery_deferMissing && get_parent_class($this) && method_exists(get_parent_class($this), '__call')) {
- return call_user_func(get_parent_class($this) . '::__call', $method, $args);
- } elseif ($method == '__toString') {
+ (method_exists($this->_mockery_partial, $method) || method_exists($this->_mockery_partial, '__call'))) {
+ return $this->_mockery_partial->{$method}(...$args);
+ }
+
+ if ($this->_mockery_deferMissing && is_callable($this->_mockery_parentClass . '::' . $method)
+ && (!$this->hasMethodOverloadingInParentClass() || ($this->_mockery_parentClass && method_exists($this->_mockery_parentClass, $method)))) {
+ return call_user_func_array($this->_mockery_parentClass . '::' . $method, $args);
+ }
+
+ if ($this->_mockery_deferMissing && $this->_mockery_parentClass && method_exists($this->_mockery_parentClass, '__call')) {
+ return call_user_func($this->_mockery_parentClass . '::__call', $method, $args);
+ }
+
+ if ($method === '__toString') {
// __toString is special because we force its addition to the class API regardless of the
// original implementation. Thus, we should always return a string rather than honor
// _mockery_ignoreMissing and break the API with an error.
- return sprintf("%s#%s", __CLASS__, spl_object_hash($this));
- } elseif ($this->_mockery_ignoreMissing) {
- if (\Mockery::getConfiguration()->mockingNonExistentMethodsAllowed() || (!is_null($this->_mockery_partial) && method_exists($this->_mockery_partial, $method)) || is_callable(get_parent_class($this) . '::' . $method)) {
- if ($this->_mockery_defaultReturnValue instanceof \Mockery\Undefined) {
- return call_user_func_array(array($this->_mockery_defaultReturnValue, $method), $args);
- } elseif (null === $this->_mockery_defaultReturnValue) {
- return $this->mockery_returnValueForMethod($method);
- }
+ return sprintf('%s#%s', self::class, spl_object_hash($this));
+ }
- return $this->_mockery_defaultReturnValue;
+ if ($this->_mockery_ignoreMissing && (\Mockery::getConfiguration()->mockingNonExistentMethodsAllowed() || (!is_null($this->_mockery_partial) && method_exists($this->_mockery_partial, $method)) || is_callable($this->_mockery_parentClass . '::' . $method))) {
+ if ($this->_mockery_defaultReturnValue instanceof Undefined) {
+ return $this->_mockery_defaultReturnValue->{$method}(...$args);
}
+
+ if (null === $this->_mockery_defaultReturnValue) {
+ return $this->mockery_returnValueForMethod($method);
+ }
+
+ return $this->_mockery_defaultReturnValue;
}
- $message = 'Method ' . __CLASS__ . '::' . $method .
+ $message = 'Method ' . self::class . '::' . $method .
'() does not exist on this mock object';
if (!is_null($rm)) {
- $message = 'Received ' . __CLASS__ .
+ $message = 'Received ' . self::class .
'::' . $method . '(), but no expectations were specified';
}
@@ -945,7 +988,7 @@ protected function mockery_getMethods()
return static::$_mockery_methods;
}
- if (isset($this->_mockery_partial)) {
+ if ($this->_mockery_partial !== null) {
$reflected = new \ReflectionObject($this->_mockery_partial);
} else {
$reflected = new \ReflectionClass($this);
@@ -957,7 +1000,7 @@ protected function mockery_getMethods()
private function hasMethodOverloadingInParentClass()
{
// if there's __call any name would be callable
- return is_callable(get_parent_class($this) . '::aFunctionNameThatNoOneWouldEverUseInRealLife12345');
+ return is_callable($this->_mockery_parentClass . '::aFunctionNameThatNoOneWouldEverUseInRealLife12345');
}
/**
@@ -966,10 +1009,10 @@ private function hasMethodOverloadingInParentClass()
private function getNonPublicMethods()
{
return array_map(
- function ($method) {
+ static function ($method) {
return $method->getName();
},
- array_filter($this->mockery_getMethods(), function ($method) {
+ array_filter($this->mockery_getMethods(), static function ($method) {
return !$method->isPublic();
})
);
diff --git a/api/vendor/mockery/mockery/library/Mockery/MockInterface.php b/api/vendor/mockery/mockery/library/Mockery/MockInterface.php
index 7c1774b49d..9dc5364763 100644
--- a/api/vendor/mockery/mockery/library/Mockery/MockInterface.php
+++ b/api/vendor/mockery/mockery/library/Mockery/MockInterface.php
@@ -1,38 +1,28 @@
return
- * @return self|\Mockery\ExpectationInterface|\Mockery\Expectation|\Mockery\HigherOrderMessage
+ * @param mixed $something String method name or map of method => return
+ *
+ * @return Expectation|ExpectationInterface|HigherOrderMessage|self
*/
public function allows($something = []);
/**
- * @param mixed $something String method name (optional)
- * @return \Mockery\ExpectationInterface|\Mockery\Expectation|\Mockery\ExpectsHigherOrderMessage
+ * @param mixed $something String method name (optional)
+ *
+ * @return Expectation|ExpectationInterface|ExpectsHigherOrderMessage
*/
public function expects($something = null);
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/QuickDefinitionsConfiguration.php b/api/vendor/mockery/mockery/library/Mockery/QuickDefinitionsConfiguration.php
index b0eea66237..aef28b77cc 100644
--- a/api/vendor/mockery/mockery/library/Mockery/QuickDefinitionsConfiguration.php
+++ b/api/vendor/mockery/mockery/library/Mockery/QuickDefinitionsConfiguration.php
@@ -1,30 +1,21 @@
matchArgs($methodCall->getArgs())) {
+ if (! $expectation->matchArgs($methodCall->getArgs())) {
continue;
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Reflector.php b/api/vendor/mockery/mockery/library/Mockery/Reflector.php
index 4e8c6e1fcd..8e4fc1582a 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Reflector.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Reflector.php
@@ -1,107 +1,108 @@
*/
- public static function isArray(\ReflectionParameter $param)
- {
- $type = $param->getType();
-
- return $type instanceof \ReflectionNamedType && $type->getName();
- }
+ public const BUILTIN_TYPES = ['array', 'bool', 'int', 'float', 'null', 'object', 'string'];
/**
- * Compute the string representation for the paramater type.
- *
- * @param \ReflectionParameter $param
- * @param bool $withoutNullable
+ * List of reserved words.
*
- * @return string|null
+ * @var list
*/
- public static function getTypeHint(\ReflectionParameter $param, $withoutNullable = false)
- {
- if (!$param->hasType()) {
- return null;
- }
+ public const RESERVED_WORDS = ['bool', 'true', 'false', 'float', 'int', 'iterable', 'mixed', 'never', 'null', 'object', 'string', 'void'];
- $type = $param->getType();
- $declaringClass = $param->getDeclaringClass();
- $typeHint = self::typeToString($type, $declaringClass);
+ /**
+ * Iterable.
+ *
+ * @var list
+ */
+ private const ITERABLE = ['iterable'];
- return (!$withoutNullable && $type->allowsNull()) ? self::formatNullableType($typeHint) : $typeHint;
- }
+ /**
+ * Traversable array.
+ *
+ * @var list
+ */
+ private const TRAVERSABLE_ARRAY = ['\Traversable', 'array'];
/**
* Compute the string representation for the return type.
*
- * @param \ReflectionParameter $param
* @param bool $withoutNullable
*
- * @return string|null
+ * @return null|string
*/
- public static function getReturnType(\ReflectionMethod $method, $withoutNullable = false)
+ public static function getReturnType(ReflectionMethod $method, $withoutNullable = false)
{
$type = $method->getReturnType();
- if (is_null($type) && method_exists($method, 'getTentativeReturnType')) {
+ if (! $type instanceof ReflectionType && method_exists($method, 'getTentativeReturnType')) {
$type = $method->getTentativeReturnType();
}
- if (is_null($type)) {
+ if (! $type instanceof ReflectionType) {
return null;
}
- $typeHint = self::typeToString($type, $method->getDeclaringClass());
+ $typeHint = self::getTypeFromReflectionType($type, $method->getDeclaringClass());
- return (!$withoutNullable && $type->allowsNull()) ? self::formatNullableType($typeHint) : $typeHint;
+ return (! $withoutNullable && $type->allowsNull()) ? self::formatNullableType($typeHint) : $typeHint;
}
/**
* Compute the string representation for the simplest return type.
*
- * @param \ReflectionParameter $param
- *
- * @return string|null
+ * @return null|string
*/
- public static function getSimplestReturnType(\ReflectionMethod $method)
+ public static function getSimplestReturnType(ReflectionMethod $method)
{
$type = $method->getReturnType();
- if (is_null($type) && method_exists($method, 'getTentativeReturnType')) {
+ if (! $type instanceof ReflectionType && method_exists($method, 'getTentativeReturnType')) {
$type = $method->getTentativeReturnType();
}
- if (is_null($type) || $type->allowsNull()) {
+ if (! $type instanceof ReflectionType || $type->allowsNull()) {
return null;
}
@@ -123,32 +124,139 @@ public static function getSimplestReturnType(\ReflectionMethod $method)
}
/**
- * Get the string representation of the given type.
+ * Compute the string representation for the paramater type.
*
- * @param \ReflectionType $type
- * @param string $declaringClass
+ * @param bool $withoutNullable
*
- * @return string|null
+ * @return null|string
*/
- private static function typeToString(\ReflectionType $type, \ReflectionClass $declaringClass)
+ public static function getTypeHint(ReflectionParameter $param, $withoutNullable = false)
{
- return \implode('|', \array_map(function (array $typeInformation) {
- return $typeInformation['typeHint'];
- }, self::getTypeInformation($type, $declaringClass)));
+ if (! $param->hasType()) {
+ return null;
+ }
+
+ $type = $param->getType();
+ $declaringClass = $param->getDeclaringClass();
+ $typeHint = self::getTypeFromReflectionType($type, $declaringClass);
+
+ return (! $withoutNullable && $type->allowsNull()) ? self::formatNullableType($typeHint) : $typeHint;
}
/**
- * Get the string representation of the given type.
+ * Determine if the parameter is typed as an array.
*
- * @param \ReflectionType $type
- * @param \ReflectionClass $declaringClass
+ * @return bool
+ */
+ public static function isArray(ReflectionParameter $param)
+ {
+ $type = $param->getType();
+
+ return $type instanceof ReflectionNamedType && $type->getName();
+ }
+
+ /**
+ * Determine if the given type is a reserved word.
+ */
+ public static function isReservedWord(string $type): bool
+ {
+ return in_array(strtolower($type), self::RESERVED_WORDS, true);
+ }
+
+ /**
+ * Format the given type as a nullable type.
+ */
+ private static function formatNullableType(string $typeHint): string
+ {
+ if ($typeHint === 'mixed') {
+ return $typeHint;
+ }
+
+ if (strpos($typeHint, 'null') !== false) {
+ return $typeHint;
+ }
+
+ if (PHP_VERSION_ID < 80000) {
+ return sprintf('?%s', $typeHint);
+ }
+
+ return sprintf('%s|null', $typeHint);
+ }
+
+ private static function getTypeFromReflectionType(ReflectionType $type, ReflectionClass $declaringClass): string
+ {
+ if ($type instanceof ReflectionNamedType) {
+ $typeHint = $type->getName();
+
+ if ($type->isBuiltin()) {
+ return $typeHint;
+ }
+
+ if ($typeHint === 'static') {
+ return $typeHint;
+ }
+
+ // 'self' needs to be resolved to the name of the declaring class
+ if ($typeHint === 'self') {
+ $typeHint = $declaringClass->getName();
+ }
+
+ // 'parent' needs to be resolved to the name of the parent class
+ if ($typeHint === 'parent') {
+ $typeHint = $declaringClass->getParentClass()->getName();
+ }
+
+ // class names need prefixing with a slash
+ return sprintf('\\%s', $typeHint);
+ }
+
+ if ($type instanceof ReflectionIntersectionType) {
+ $types = array_map(
+ static function (ReflectionType $type) use ($declaringClass): string {
+ return self::getTypeFromReflectionType($type, $declaringClass);
+ },
+ $type->getTypes()
+ );
+
+ return implode('&', $types);
+ }
+
+ if ($type instanceof ReflectionUnionType) {
+ $types = array_map(
+ static function (ReflectionType $type) use ($declaringClass): string {
+ return self::getTypeFromReflectionType($type, $declaringClass);
+ },
+ $type->getTypes()
+ );
+
+ $intersect = array_intersect(self::TRAVERSABLE_ARRAY, $types);
+ if ($intersect === self::TRAVERSABLE_ARRAY) {
+ $types = array_merge(self::ITERABLE, array_diff($types, self::TRAVERSABLE_ARRAY));
+ }
+
+ return implode(
+ '|',
+ array_map(
+ static function (string $type): string {
+ return strpos($type, '&') === false ? $type : sprintf('(%s)', $type);
+ },
+ $types
+ )
+ );
+ }
+
+ throw new InvalidArgumentException('Unknown ReflectionType: ' . get_debug_type($type));
+ }
+
+ /**
+ * Get the string representation of the given type.
*
- * @return list
+ * @return list
*/
- private static function getTypeInformation(\ReflectionType $type, \ReflectionClass $declaringClass)
+ private static function getTypeInformation(ReflectionType $type, ReflectionClass $declaringClass): array
{
// PHP 8 union types and PHP 8.1 intersection types can be recursively processed
- if ($type instanceof \ReflectionUnionType || $type instanceof \ReflectionIntersectionType) {
+ if ($type instanceof ReflectionUnionType || $type instanceof ReflectionIntersectionType) {
$types = [];
foreach ($type->getTypes() as $innterType) {
@@ -172,7 +280,7 @@ private static function getTypeInformation(\ReflectionType $type, \ReflectionCla
return [
[
'typeHint' => $typeHint,
- 'isPrimitive' => in_array($typeHint, ['array', 'bool', 'int', 'float', 'null', 'object', 'string']),
+ 'isPrimitive' => in_array($typeHint, self::BUILTIN_TYPES, true),
],
];
}
@@ -205,20 +313,4 @@ private static function getTypeInformation(\ReflectionType $type, \ReflectionCla
],
];
}
-
- /**
- * Format the given type as a nullable type.
- *
- * @param string $typeHint
- *
- * @return string
- */
- private static function formatNullableType($typeHint)
- {
- if (\PHP_VERSION_ID < 80000) {
- return sprintf('?%s', $typeHint);
- }
-
- return $typeHint === 'mixed' ? 'mixed' : sprintf('%s|null', $typeHint);
- }
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/Undefined.php b/api/vendor/mockery/mockery/library/Mockery/Undefined.php
index 53b05e9c5f..ca3ace4671 100644
--- a/api/vendor/mockery/mockery/library/Mockery/Undefined.php
+++ b/api/vendor/mockery/mockery/library/Mockery/Undefined.php
@@ -1,32 +1,25 @@
receivedMethodCalls = $receivedMethodCalls;
$this->expectation = $expectation;
}
- public function verify()
+ /**
+ * @return self
+ */
+ public function atLeast()
{
- return $this->receivedMethodCalls->verify($this->expectation);
+ return $this->cloneWithoutCountValidatorsApplyAndVerify('atLeast', []);
}
- public function with(...$args)
+ /**
+ * @return self
+ */
+ public function atMost()
{
- return $this->cloneApplyAndVerify("with", $args);
+ return $this->cloneWithoutCountValidatorsApplyAndVerify('atMost', []);
}
- public function withArgs($args)
+ /**
+ * @param int $minimum
+ * @param int $maximum
+ *
+ * @return self
+ */
+ public function between($minimum, $maximum)
{
- return $this->cloneApplyAndVerify("withArgs", array($args));
+ return $this->cloneWithoutCountValidatorsApplyAndVerify('between', [$minimum, $maximum]);
}
- public function withNoArgs()
+ /**
+ * @return self
+ */
+ public function once()
{
- return $this->cloneApplyAndVerify("withNoArgs", array());
+ return $this->cloneWithoutCountValidatorsApplyAndVerify('once', []);
}
- public function withAnyArgs()
+ /**
+ * @param int $limit
+ *
+ * @return self
+ */
+ public function times($limit = null)
{
- return $this->cloneApplyAndVerify("withAnyArgs", array());
+ return $this->cloneWithoutCountValidatorsApplyAndVerify('times', [$limit]);
}
- public function times($limit = null)
+ /**
+ * @return self
+ */
+ public function twice()
{
- return $this->cloneWithoutCountValidatorsApplyAndVerify("times", array($limit));
+ return $this->cloneWithoutCountValidatorsApplyAndVerify('twice', []);
}
- public function once()
+ public function verify()
{
- return $this->cloneWithoutCountValidatorsApplyAndVerify("once", array());
+ $this->receivedMethodCalls->verify($this->expectation);
}
- public function twice()
+ /**
+ * @template TArgs
+ *
+ * @param TArgs $args
+ *
+ * @return self
+ */
+ public function with(...$args)
{
- return $this->cloneWithoutCountValidatorsApplyAndVerify("twice", array());
+ return $this->cloneApplyAndVerify('with', $args);
}
- public function atLeast()
+ /**
+ * @return self
+ */
+ public function withAnyArgs()
{
- return $this->cloneWithoutCountValidatorsApplyAndVerify("atLeast", array());
+ return $this->cloneApplyAndVerify('withAnyArgs', []);
}
- public function atMost()
+ /**
+ * @template TArgs
+ *
+ * @param TArgs $args
+ *
+ * @return self
+ */
+ public function withArgs($args)
{
- return $this->cloneWithoutCountValidatorsApplyAndVerify("atMost", array());
+ return $this->cloneApplyAndVerify('withArgs', [$args]);
}
- public function between($minimum, $maximum)
+ /**
+ * @return self
+ */
+ public function withNoArgs()
{
- return $this->cloneWithoutCountValidatorsApplyAndVerify("between", array($minimum, $maximum));
+ return $this->cloneApplyAndVerify('withNoArgs', []);
}
- protected function cloneWithoutCountValidatorsApplyAndVerify($method, $args)
+ /**
+ * @param string $method
+ * @param array $args
+ *
+ * @return self
+ */
+ protected function cloneApplyAndVerify($method, $args)
{
- $expectation = clone $this->expectation;
- $expectation->clearCountValidators();
- call_user_func_array(array($expectation, $method), $args);
- $director = new VerificationDirector($this->receivedMethodCalls, $expectation);
- $director->verify();
- return $director;
+ $verificationExpectation = clone $this->expectation;
+
+ $verificationExpectation->{$method}(...$args);
+
+ $verificationDirector = new self($this->receivedMethodCalls, $verificationExpectation);
+
+ $verificationDirector->verify();
+
+ return $verificationDirector;
}
- protected function cloneApplyAndVerify($method, $args)
+ /**
+ * @param string $method
+ * @param array $args
+ *
+ * @return self
+ */
+ protected function cloneWithoutCountValidatorsApplyAndVerify($method, $args)
{
- $expectation = clone $this->expectation;
- call_user_func_array(array($expectation, $method), $args);
- $director = new VerificationDirector($this->receivedMethodCalls, $expectation);
- $director->verify();
- return $director;
+ $verificationExpectation = clone $this->expectation;
+
+ $verificationExpectation->clearCountValidators();
+
+ $verificationExpectation->{$method}(...$args);
+
+ $verificationDirector = new self($this->receivedMethodCalls, $verificationExpectation);
+
+ $verificationDirector->verify();
+
+ return $verificationDirector;
}
}
diff --git a/api/vendor/mockery/mockery/library/Mockery/VerificationExpectation.php b/api/vendor/mockery/mockery/library/Mockery/VerificationExpectation.php
index 3844a090af..9e36f6c613 100644
--- a/api/vendor/mockery/mockery/library/Mockery/VerificationExpectation.php
+++ b/api/vendor/mockery/mockery/library/Mockery/VerificationExpectation.php
@@ -1,35 +1,29 @@
_countValidators = array();
- }
-
public function __clone()
{
parent::__clone();
+
$this->_actualCount = 0;
}
+
+ /**
+ * @return void
+ */
+ public function clearCountValidators()
+ {
+ $this->_countValidators = [];
+ }
}
diff --git a/api/vendor/mockery/mockery/library/helpers.php b/api/vendor/mockery/mockery/library/helpers.php
index 0756a328d1..8f15857aa3 100644
--- a/api/vendor/mockery/mockery/library/helpers.php
+++ b/api/vendor/mockery/mockery/library/helpers.php
@@ -1,64 +1,76 @@
|TMock|Closure(LegacyMockInterface&MockInterface&TMock):LegacyMockInterface&MockInterface&TMock|array> $args
+ *
+ * @return LegacyMockInterface&MockInterface&TMock
+ */
function mock(...$args)
{
return Mockery::mock(...$args);
}
}
-if (!function_exists("spy")) {
+if (! \function_exists('spy')) {
+ /**
+ * @template TSpy of object
+ *
+ * @param array|TSpy|Closure(LegacyMockInterface&MockInterface&TSpy):LegacyMockInterface&MockInterface&TSpy|array> $args
+ *
+ * @return LegacyMockInterface&MockInterface&TSpy
+ */
function spy(...$args)
{
return Mockery::spy(...$args);
}
}
-if (!function_exists("namedMock")) {
+if (! \function_exists('namedMock')) {
+ /**
+ * @template TNamedMock of object
+ *
+ * @param array|TNamedMock|array> $args
+ *
+ * @return LegacyMockInterface&MockInterface&TNamedMock
+ */
function namedMock(...$args)
{
return Mockery::namedMock(...$args);
}
}
-if (!function_exists("anyArgs")) {
- function anyArgs()
+if (! \function_exists('anyArgs')) {
+ function anyArgs(): AnyArgs
{
return new AnyArgs();
}
}
-if (!function_exists("andAnyOtherArgs")) {
- function andAnyOtherArgs()
+if (! \function_exists('andAnyOtherArgs')) {
+ function andAnyOtherArgs(): AndAnyOtherArgs
{
return new AndAnyOtherArgs();
}
}
-if (!function_exists("andAnyOthers")) {
- function andAnyOthers()
+if (! \function_exists('andAnyOthers')) {
+ function andAnyOthers(): AndAnyOtherArgs
{
return new AndAnyOtherArgs();
}
diff --git a/api/vendor/monolog/monolog/CHANGELOG.md b/api/vendor/monolog/monolog/CHANGELOG.md
index 7f9db2b074..122d85cde7 100644
--- a/api/vendor/monolog/monolog/CHANGELOG.md
+++ b/api/vendor/monolog/monolog/CHANGELOG.md
@@ -1,3 +1,36 @@
+### 2.10.0 (2024-11-12)
+
+ * Added `$fileOpenMode` to `StreamHandler` to define a custom fopen mode to open the log file (#1913)
+ * Fixed `StreamHandler` handling of write failures so that it now closes/reopens the stream and retries the write once before failing (#1882)
+ * Fixed `StreamHandler` error handler causing issues if a stream handler triggers an error (#1866)
+ * Fixed `JsonFormatter` handling of incomplete classes (#1834)
+ * Fixed `RotatingFileHandler` bug where rotation could sometimes not happen correctly (#1905)
+
+### 2.9.3 (2024-04-12)
+
+ * Fixed PHP 8.4 deprecation warnings (#1874)
+
+### 2.9.2 (2023-10-27)
+
+ * Fixed display_errors parsing in ErrorHandler which did not support string values (#1804)
+ * Fixed bug where the previous error handler would not be restored in some cases where StreamHandler fails (#1815)
+ * Fixed normalization error when normalizing incomplete classes (#1833)
+
+### 2.9.1 (2023-02-06)
+
+ * Fixed Logger not being serializable anymore (#1792)
+
+### 2.9.0 (2023-02-05)
+
+ * Deprecated FlowdockHandler & Formatter as the flowdock service was shutdown (#1748)
+ * Added support for enum context values in PsrLogMessageProcessor (#1773)
+ * Added graylog2/gelf-php 2.x support (#1747)
+ * Improved `BrowserConsoleHandler` logging to use more appropriate methods than just console.log in the browser (#1739)
+ * Fixed `WhatFailureGroupHandler` not catching errors happening inside `close()` (#1791)
+ * Fixed datetime field in `GoogleCloudLoggingFormatter` (#1758)
+ * Fixed infinite loop detection within Fibers (#1753)
+ * Fixed `AmqpHandler->setExtraAttributes` not working with buffering handler wrappers (#1781)
+
### 2.8.0 (2022-07-24)
* Deprecated `CubeHandler` and `PHPConsoleHandler` as both projects are abandoned and those should not be used anymore (#1734)
diff --git a/api/vendor/monolog/monolog/composer.json b/api/vendor/monolog/monolog/composer.json
index ab775ad634..a1f08a22d8 100644
--- a/api/vendor/monolog/monolog/composer.json
+++ b/api/vendor/monolog/monolog/composer.json
@@ -21,14 +21,14 @@
"aws/aws-sdk-php": "^2.4.9 || ^3.0",
"doctrine/couchdb": "~1.0@dev",
"elasticsearch/elasticsearch": "^7 || ^8",
- "graylog2/gelf-php": "^1.4.2",
+ "graylog2/gelf-php": "^1.4.2 || ^2@dev",
"guzzlehttp/guzzle": "^7.4",
"guzzlehttp/psr7": "^2.2",
"mongodb/mongodb": "^1.8",
"php-amqplib/php-amqplib": "~2.4 || ^3",
"phpspec/prophecy": "^1.15",
- "phpstan/phpstan": "^0.12.91",
- "phpunit/phpunit": "^8.5.14",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^8.5.38 || ^9.6.19",
"predis/predis": "^1.1 || ^2.0",
"rollbar/rollbar": "^1.3 || ^2 || ^3",
"ruflin/elastica": "^7",
diff --git a/api/vendor/monolog/monolog/src/Monolog/DateTimeImmutable.php b/api/vendor/monolog/monolog/src/Monolog/DateTimeImmutable.php
index 6a1ba9b25a..789f9bfc4c 100644
--- a/api/vendor/monolog/monolog/src/Monolog/DateTimeImmutable.php
+++ b/api/vendor/monolog/monolog/src/Monolog/DateTimeImmutable.php
@@ -30,6 +30,8 @@ public function __construct(bool $useMicroseconds, ?DateTimeZone $timezone = nul
{
$this->useMicroseconds = $useMicroseconds;
+ // if you like to use a custom time to pass to Logger::addRecord directly,
+ // call modify() or setTimestamp() on this instance to change the date after creating it
parent::__construct('now', $timezone);
}
diff --git a/api/vendor/monolog/monolog/src/Monolog/ErrorHandler.php b/api/vendor/monolog/monolog/src/Monolog/ErrorHandler.php
index 576f1713f0..1406d34e82 100644
--- a/api/vendor/monolog/monolog/src/Monolog/ErrorHandler.php
+++ b/api/vendor/monolog/monolog/src/Monolog/ErrorHandler.php
@@ -198,7 +198,7 @@ private function handleException(\Throwable $e): void
($this->previousExceptionHandler)($e);
}
- if (!headers_sent() && !ini_get('display_errors')) {
+ if (!headers_sent() && in_array(strtolower((string) ini_get('display_errors')), ['0', '', 'false', 'off', 'none', 'no'], true)) {
http_response_code(500);
}
diff --git a/api/vendor/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php b/api/vendor/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php
index 41b56b3c0a..867ae586bf 100644
--- a/api/vendor/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php
+++ b/api/vendor/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php
@@ -15,6 +15,7 @@
* formats the record to be used in the FlowdockHandler
*
* @author Dominik Liebler
+ * @deprecated Since 2.9.0 and 3.3.0, Flowdock was shutdown we will thus drop this handler in Monolog 4
*/
class FlowdockFormatter implements FormatterInterface
{
diff --git a/api/vendor/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php b/api/vendor/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php
index a1a79372df..3b3e1e7f6d 100644
--- a/api/vendor/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php
+++ b/api/vendor/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php
@@ -47,6 +47,11 @@ class GelfMessageFormatter extends NormalizerFormatter
*/
protected $maxLength;
+ /**
+ * @var int
+ */
+ private $gelfVersion = 2;
+
/**
* Translates Monolog log levels to Graylog2 log priorities.
*
@@ -78,6 +83,10 @@ public function __construct(?string $systemName = null, ?string $extraPrefix = n
$this->extraPrefix = is_null($extraPrefix) ? '' : $extraPrefix;
$this->contextPrefix = $contextPrefix;
$this->maxLength = is_null($maxLength) ? self::DEFAULT_MAX_LENGTH : $maxLength;
+
+ if (method_exists(Message::class, 'setFacility')) {
+ $this->gelfVersion = 1;
+ }
}
/**
@@ -113,16 +122,20 @@ public function format(array $record): Message
$message->setShortMessage(Utils::substr($record['message'], 0, $this->maxLength));
}
- if (isset($record['channel'])) {
- $message->setFacility($record['channel']);
- }
- if (isset($extra['line'])) {
- $message->setLine($extra['line']);
- unset($extra['line']);
- }
- if (isset($extra['file'])) {
- $message->setFile($extra['file']);
- unset($extra['file']);
+ if ($this->gelfVersion === 1) {
+ if (isset($record['channel'])) {
+ $message->setFacility($record['channel']);
+ }
+ if (isset($extra['line'])) {
+ $message->setLine($extra['line']);
+ unset($extra['line']);
+ }
+ if (isset($extra['file'])) {
+ $message->setFile($extra['file']);
+ unset($extra['file']);
+ }
+ } else {
+ $message->setAdditional('facility', $record['channel']);
}
foreach ($extra as $key => $val) {
@@ -147,11 +160,13 @@ public function format(array $record): Message
$message->setAdditional($this->contextPrefix . $key, $val);
}
- /** @phpstan-ignore-next-line */
- if (null === $message->getFile() && isset($context['exception']['file'])) {
- if (preg_match("/^(.+):([0-9]+)$/", $context['exception']['file'], $matches)) {
- $message->setFile($matches[1]);
- $message->setLine($matches[2]);
+ if ($this->gelfVersion === 1) {
+ /** @phpstan-ignore-next-line */
+ if (null === $message->getFile() && isset($context['exception']['file'])) {
+ if (preg_match("/^(.+):([0-9]+)$/", $context['exception']['file'], $matches)) {
+ $message->setFile($matches[1]);
+ $message->setLine($matches[2]);
+ }
}
}
diff --git a/api/vendor/monolog/monolog/src/Monolog/Formatter/GoogleCloudLoggingFormatter.php b/api/vendor/monolog/monolog/src/Monolog/Formatter/GoogleCloudLoggingFormatter.php
index 0cd287f5e4..ca52ebf4e5 100644
--- a/api/vendor/monolog/monolog/src/Monolog/Formatter/GoogleCloudLoggingFormatter.php
+++ b/api/vendor/monolog/monolog/src/Monolog/Formatter/GoogleCloudLoggingFormatter.php
@@ -17,6 +17,7 @@
/**
* Encodes message information into JSON in a format compatible with Cloud logging.
*
+ * @see https://cloud.google.com/logging/docs/structured-logging
* @see https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry
*
* @author Luís Cobucci
@@ -28,7 +29,7 @@ public function format(array $record): string
{
// Re-key level for GCP logging
$record['severity'] = $record['level_name'];
- $record['timestamp'] = $record['datetime']->format(DateTimeInterface::RFC3339_EXTENDED);
+ $record['time'] = $record['datetime']->format(DateTimeInterface::RFC3339_EXTENDED);
// Remove keys that are not used by GCP
unset($record['level'], $record['level_name'], $record['datetime']);
diff --git a/api/vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php b/api/vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php
index b737d82e35..753e6852cc 100644
--- a/api/vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php
+++ b/api/vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php
@@ -192,6 +192,10 @@ protected function normalize($data, int $depth = 0)
return $data;
}
+ if (\get_class($data) === '__PHP_Incomplete_Class') {
+ return new \ArrayObject($data);
+ }
+
if (method_exists($data, '__toString')) {
return $data->__toString();
}
diff --git a/api/vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php b/api/vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php
index b31b2971a1..e6e7898336 100644
--- a/api/vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php
+++ b/api/vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php
@@ -155,7 +155,7 @@ protected function normalizeException(\Throwable $e, int $depth = 0): string
do {
$depth++;
if ($depth > $this->maxNormalizeDepth) {
- $str .= '\n[previous exception] Over ' . $this->maxNormalizeDepth . ' levels deep, aborting normalization';
+ $str .= "\n[previous exception] Over " . $this->maxNormalizeDepth . ' levels deep, aborting normalization';
break;
}
diff --git a/api/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php b/api/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php
index 5441bc0aad..f926a842f8 100644
--- a/api/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php
+++ b/api/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php
@@ -174,6 +174,9 @@ protected function normalize($data, int $depth = 0)
if ($data instanceof \JsonSerializable) {
/** @var null|scalar|array $value */
$value = $data->jsonSerialize();
+ } elseif (\get_class($data) === '__PHP_Incomplete_Class') {
+ $accessor = new \ArrayObject($data);
+ $value = (string) $accessor['__PHP_Incomplete_Class_Name'];
} elseif (method_exists($data, '__toString')) {
/** @var string $value */
$value = $data->__toString();
diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/AmqpHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/AmqpHandler.php
index c4997482e8..994872ce89 100644
--- a/api/vendor/monolog/monolog/src/Monolog/Handler/AmqpHandler.php
+++ b/api/vendor/monolog/monolog/src/Monolog/Handler/AmqpHandler.php
@@ -151,13 +151,14 @@ protected function getRoutingKey(array $record): string
private function createAmqpMessage(string $data): AMQPMessage
{
- return new AMQPMessage(
- $data,
- [
- 'delivery_mode' => 2,
- 'content_type' => 'application/json',
- ]
- );
+ $attributes = [
+ 'delivery_mode' => 2,
+ 'content_type' => 'application/json',
+ ];
+ if ($this->extraAttributes) {
+ $attributes = array_merge($attributes, $this->extraAttributes);
+ }
+ return new AMQPMessage($data, $attributes);
}
/**
diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php
index fa383f1c21..95bbfed426 100644
--- a/api/vendor/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php
+++ b/api/vendor/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php
@@ -14,6 +14,7 @@
use Monolog\Formatter\FormatterInterface;
use Monolog\Formatter\LineFormatter;
use Monolog\Utils;
+use Monolog\Logger;
use function count;
use function headers_list;
@@ -177,7 +178,7 @@ private static function generateScript(): string
$extra = static::dump('Extra', $record['extra']);
if (empty($context) && empty($extra)) {
- $script[] = static::call_array('log', static::handleStyles($record['formatted']));
+ $script[] = static::call_array(static::getConsoleMethodForLevel($record['level']), static::handleStyles($record['formatted']));
} else {
$script = array_merge(
$script,
@@ -192,6 +193,20 @@ private static function generateScript(): string
return "(function (c) {if (c && c.groupCollapsed) {\n" . implode("\n", $script) . "\n}})(console);";
}
+ private static function getConsoleMethodForLevel(int $level): string
+ {
+ return [
+ Logger::DEBUG => 'debug',
+ Logger::INFO => 'info',
+ Logger::NOTICE => 'info',
+ Logger::WARNING => 'warn',
+ Logger::ERROR => 'error',
+ Logger::CRITICAL => 'error',
+ Logger::ALERT => 'error',
+ Logger::EMERGENCY => 'error',
+ ][$level] ?? 'log';
+ }
+
/**
* @return string[]
*/
diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/ElasticsearchHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/ElasticsearchHandler.php
index e88375c0e5..264b380d74 100644
--- a/api/vendor/monolog/monolog/src/Monolog/Handler/ElasticsearchHandler.php
+++ b/api/vendor/monolog/monolog/src/Monolog/Handler/ElasticsearchHandler.php
@@ -187,6 +187,7 @@ protected function bulkSend(array $records): void
*/
protected function createExceptionFromResponses($responses): Throwable
{
+ // @phpstan-ignore offsetAccess.nonOffsetAccessible
foreach ($responses['items'] ?? [] as $item) {
if (isset($item['index']['error'])) {
return $this->createExceptionFromError($item['index']['error']);
diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php
index 718f17ef19..5e43e1dc2f 100644
--- a/api/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php
+++ b/api/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php
@@ -161,7 +161,7 @@ public function handleBatch(array $records): void
*
* @phpstan-param Record $record
*/
- public function getHandler(array $record = null)
+ public function getHandler(?array $record = null)
{
if (!$this->handler instanceof HandlerInterface) {
$this->handler = ($this->handler)($record, $this);
diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php
index 0627b44514..dfcb3af288 100644
--- a/api/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php
+++ b/api/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php
@@ -210,7 +210,7 @@ private function flushBuffer(): void
*
* @phpstan-param Record $record
*/
- public function getHandler(array $record = null)
+ public function getHandler(?array $record = null)
{
if (!$this->handler instanceof HandlerInterface) {
$this->handler = ($this->handler)($record, $this);
diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php
index b837bdb66e..5715d5800f 100644
--- a/api/vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php
+++ b/api/vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php
@@ -28,6 +28,7 @@
* @see https://www.flowdock.com/api/push
*
* @phpstan-import-type FormattedRecord from AbstractProcessingHandler
+ * @deprecated Since 2.9.0 and 3.3.0, Flowdock was shutdown we will thus drop this handler in Monolog 4
*/
class FlowdockHandler extends SocketHandler
{
diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php
index 17745d2215..2d0c1a72d5 100644
--- a/api/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php
+++ b/api/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php
@@ -112,17 +112,22 @@ public function setFilenameFormat(string $filenameFormat, string $dateFormat): s
*/
protected function write(array $record): void
{
- // on the first record written, if the log is new, we should rotate (once per day)
+ // on the first record written, if the log is new, we rotate (once per day) after the log has been written so that the new file exists
if (null === $this->mustRotate) {
$this->mustRotate = null === $this->url || !file_exists($this->url);
}
+ // if the next rotation is expired, then we rotate immediately
if ($this->nextRotation <= $record['datetime']) {
$this->mustRotate = true;
- $this->close();
+ $this->close(); // triggers rotation
}
parent::write($record);
+
+ if ($this->mustRotate) {
+ $this->close(); // triggers rotation
+ }
}
/**
@@ -134,6 +139,8 @@ protected function rotate(): void
$this->url = $this->getTimedFilename();
$this->nextRotation = new \DateTimeImmutable('tomorrow');
+ $this->mustRotate = false;
+
// skip GC of old logs if files are unlimited
if (0 === $this->maxFiles) {
return;
@@ -166,8 +173,6 @@ protected function rotate(): void
restore_error_handler();
}
}
-
- $this->mustRotate = false;
}
protected function getTimedFilename(): string
diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php
index c128a32d18..25cce07f92 100644
--- a/api/vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php
+++ b/api/vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php
@@ -90,7 +90,7 @@ public function handle(array $record): bool
*
* @return HandlerInterface
*/
- public function getHandler(array $record = null)
+ public function getHandler(?array $record = null)
{
if (!$this->handler instanceof HandlerInterface) {
$this->handler = ($this->handler)($record, $this);
diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php b/api/vendor/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php
index 71a4109461..9ae100371d 100644
--- a/api/vendor/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php
+++ b/api/vendor/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php
@@ -100,7 +100,7 @@ public function __construct(
bool $useShortAttachment = false,
bool $includeContextAndExtra = false,
array $excludeFields = array(),
- FormatterInterface $formatter = null
+ ?FormatterInterface $formatter = null
) {
$this
->setChannel($channel)
diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php
index 651835122e..218d438471 100644
--- a/api/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php
+++ b/api/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php
@@ -41,17 +41,22 @@ class StreamHandler extends AbstractProcessingHandler
protected $filePermission;
/** @var bool */
protected $useLocking;
+ /** @var string */
+ protected $fileOpenMode;
/** @var true|null */
private $dirCreated = null;
+ /** @var bool */
+ private $retrying = false;
/**
* @param resource|string $stream If a missing path can't be created, an UnexpectedValueException will be thrown on first write
* @param int|null $filePermission Optional file permissions (default (0644) are only for owner read/write)
* @param bool $useLocking Try to lock log file before doing any writes
+ * @param string $fileOpenMode The fopen() mode used when opening a file, if $stream is a file path
*
* @throws \InvalidArgumentException If stream is not a resource or string
*/
- public function __construct($stream, $level = Logger::DEBUG, bool $bubble = true, ?int $filePermission = null, bool $useLocking = false)
+ public function __construct($stream, $level = Logger::DEBUG, bool $bubble = true, ?int $filePermission = null, bool $useLocking = false, $fileOpenMode = 'a')
{
parent::__construct($level, $bubble);
@@ -78,6 +83,7 @@ public function __construct($stream, $level = Logger::DEBUG, bool $bubble = true
throw new \InvalidArgumentException('A stream must either be a resource or a string.');
}
+ $this->fileOpenMode = $fileOpenMode;
$this->filePermission = $filePermission;
$this->useLocking = $useLocking;
}
@@ -134,12 +140,17 @@ protected function write(array $record): void
}
$this->createDir($url);
$this->errorMessage = null;
- set_error_handler([$this, 'customErrorHandler']);
- $stream = fopen($url, 'a');
- if ($this->filePermission !== null) {
- @chmod($url, $this->filePermission);
+ set_error_handler(function (...$args) {
+ return $this->customErrorHandler(...$args);
+ });
+ try {
+ $stream = fopen($url, $this->fileOpenMode);
+ if ($this->filePermission !== null) {
+ @chmod($url, $this->filePermission);
+ }
+ } finally {
+ restore_error_handler();
}
- restore_error_handler();
if (!is_resource($stream)) {
$this->stream = null;
@@ -159,8 +170,30 @@ protected function write(array $record): void
flock($stream, LOCK_EX);
}
- $this->streamWrite($stream, $record);
+ $this->errorMessage = null;
+ set_error_handler(function (...$args) {
+ return $this->customErrorHandler(...$args);
+ });
+ try {
+ $this->streamWrite($stream, $record);
+ } finally {
+ restore_error_handler();
+ }
+ if ($this->errorMessage !== null) {
+ $error = $this->errorMessage;
+ // close the resource if possible to reopen it, and retry the failed write
+ if (!$this->retrying && $this->url !== null && $this->url !== 'php://memory') {
+ $this->retrying = true;
+ $this->close();
+ $this->write($record);
+
+ return;
+ }
+
+ throw new \UnexpectedValueException('Writing to the log file failed: '.$error . Utils::getRecordMessageForException($record));
+ }
+ $this->retrying = false;
if ($this->useLocking) {
flock($stream, LOCK_UN);
}
@@ -180,7 +213,7 @@ protected function streamWrite($stream, array $record): void
private function customErrorHandler(int $code, string $msg): bool
{
- $this->errorMessage = preg_replace('{^(fopen|mkdir)\(.*?\): }', '', $msg);
+ $this->errorMessage = preg_replace('{^(fopen|mkdir|fwrite)\(.*?\): }', '', $msg);
return true;
}
@@ -209,7 +242,9 @@ private function createDir(string $url): void
$dir = $this->getDirFromStream($url);
if (null !== $dir && !is_dir($dir)) {
$this->errorMessage = null;
- set_error_handler([$this, 'customErrorHandler']);
+ set_error_handler(function (...$args) {
+ return $this->customErrorHandler(...$args);
+ });
$status = mkdir($dir, 0777, true);
restore_error_handler();
if (false === $status && !is_dir($dir) && strpos((string) $this->errorMessage, 'File exists') === false) {
diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/TelegramBotHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/TelegramBotHandler.php
index 8912eba510..a6223b795a 100644
--- a/api/vendor/monolog/monolog/src/Monolog/Handler/TelegramBotHandler.php
+++ b/api/vendor/monolog/monolog/src/Monolog/Handler/TelegramBotHandler.php
@@ -108,9 +108,9 @@ public function __construct(
string $channel,
$level = Logger::DEBUG,
bool $bubble = true,
- string $parseMode = null,
- bool $disableWebPagePreview = null,
- bool $disableNotification = null,
+ ?string $parseMode = null,
+ ?bool $disableWebPagePreview = null,
+ ?bool $disableNotification = null,
bool $splitLongMessages = false,
bool $delayBetweenMessages = false
)
@@ -130,7 +130,7 @@ public function __construct(
$this->delayBetweenMessages($delayBetweenMessages);
}
- public function setParseMode(string $parseMode = null): self
+ public function setParseMode(?string $parseMode = null): self
{
if ($parseMode !== null && !in_array($parseMode, self::AVAILABLE_PARSE_MODES)) {
throw new \InvalidArgumentException('Unknown parseMode, use one of these: ' . implode(', ', self::AVAILABLE_PARSE_MODES) . '.');
@@ -141,14 +141,14 @@ public function setParseMode(string $parseMode = null): self
return $this;
}
- public function disableWebPagePreview(bool $disableWebPagePreview = null): self
+ public function disableWebPagePreview(?bool $disableWebPagePreview = null): self
{
$this->disableWebPagePreview = $disableWebPagePreview;
return $this;
}
- public function disableNotification(bool $disableNotification = null): self
+ public function disableNotification(?bool $disableNotification = null): self
{
$this->disableNotification = $disableNotification;
diff --git a/api/vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php b/api/vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php
index 2dd136720e..b6d3d3b197 100644
--- a/api/vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php
+++ b/api/vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php
@@ -64,4 +64,18 @@ public function handleBatch(array $records): void
}
}
}
+
+ /**
+ * {@inheritDoc}
+ */
+ public function close(): void
+ {
+ foreach ($this->handlers as $handler) {
+ try {
+ $handler->close();
+ } catch (\Throwable $e) {
+ // What failure?
+ }
+ }
+ }
}
diff --git a/api/vendor/monolog/monolog/src/Monolog/Logger.php b/api/vendor/monolog/monolog/src/Monolog/Logger.php
index 1ab75b9e09..bf65d3c534 100644
--- a/api/vendor/monolog/monolog/src/Monolog/Logger.php
+++ b/api/vendor/monolog/monolog/src/Monolog/Logger.php
@@ -168,6 +168,11 @@ class Logger implements LoggerInterface, ResettableInterface
*/
private $logDepth = 0;
+ /**
+ * @var \WeakMap<\Fiber, int> Keeps track of depth inside fibers to prevent infinite logging loops
+ */
+ private $fiberLogDepth;
+
/**
* @var bool Whether to detect infinite logging loops
*
@@ -189,6 +194,13 @@ public function __construct(string $name, array $handlers = [], array $processor
$this->setHandlers($handlers);
$this->processors = $processors;
$this->timezone = $timezone ?: new DateTimeZone(date_default_timezone_get() ?: 'UTC');
+
+ if (\PHP_VERSION_ID >= 80100) {
+ // Local variable for phpstan, see https://github.com/phpstan/phpstan/issues/6732#issuecomment-1111118412
+ /** @var \WeakMap<\Fiber, int> $fiberLogDepth */
+ $fiberLogDepth = new \WeakMap();
+ $this->fiberLogDepth = $fiberLogDepth;
+ }
}
public function getName(): string
@@ -325,19 +337,28 @@ public function useLoggingLoopDetection(bool $detectCycles): self
*
* @phpstan-param Level $level
*/
- public function addRecord(int $level, string $message, array $context = [], DateTimeImmutable $datetime = null): bool
+ public function addRecord(int $level, string $message, array $context = [], ?DateTimeImmutable $datetime = null): bool
{
if (isset(self::RFC_5424_LEVELS[$level])) {
$level = self::RFC_5424_LEVELS[$level];
}
if ($this->detectCycles) {
- $this->logDepth += 1;
+ if (\PHP_VERSION_ID >= 80100 && $fiber = \Fiber::getCurrent()) {
+ // @phpstan-ignore offsetAssign.dimType
+ $this->fiberLogDepth[$fiber] = $this->fiberLogDepth[$fiber] ?? 0;
+ $logDepth = ++$this->fiberLogDepth[$fiber];
+ } else {
+ $logDepth = ++$this->logDepth;
+ }
+ } else {
+ $logDepth = 0;
}
- if ($this->logDepth === 3) {
+
+ if ($logDepth === 3) {
$this->warning('A possible infinite logging loop was detected and aborted. It appears some of your handler code is triggering logging, see the previous log record for a hint as to what may be the cause.');
return false;
- } elseif ($this->logDepth >= 5) { // log depth 4 is let through so we can log the warning above
+ } elseif ($logDepth >= 5) { // log depth 4 is let through, so we can log the warning above
return false;
}
@@ -387,7 +408,11 @@ public function addRecord(int $level, string $message, array $context = [], Date
}
} finally {
if ($this->detectCycles) {
- $this->logDepth--;
+ if (isset($fiber)) {
+ $this->fiberLogDepth[$fiber]--;
+ } else {
+ $this->logDepth--;
+ }
}
}
@@ -698,4 +723,40 @@ protected function handleException(Throwable $e, array $record): void
($this->exceptionHandler)($e, $record);
}
+
+ /**
+ * @return array
+ */
+ public function __serialize(): array
+ {
+ return [
+ 'name' => $this->name,
+ 'handlers' => $this->handlers,
+ 'processors' => $this->processors,
+ 'microsecondTimestamps' => $this->microsecondTimestamps,
+ 'timezone' => $this->timezone,
+ 'exceptionHandler' => $this->exceptionHandler,
+ 'logDepth' => $this->logDepth,
+ 'detectCycles' => $this->detectCycles,
+ ];
+ }
+
+ /**
+ * @param array $data
+ */
+ public function __unserialize(array $data): void
+ {
+ foreach (['name', 'handlers', 'processors', 'microsecondTimestamps', 'timezone', 'exceptionHandler', 'logDepth', 'detectCycles'] as $property) {
+ if (isset($data[$property])) {
+ $this->$property = $data[$property];
+ }
+ }
+
+ if (\PHP_VERSION_ID >= 80100) {
+ // Local variable for phpstan, see https://github.com/phpstan/phpstan/issues/6732#issuecomment-1111118412
+ /** @var \WeakMap<\Fiber, int> $fiberLogDepth */
+ $fiberLogDepth = new \WeakMap();
+ $this->fiberLogDepth = $fiberLogDepth;
+ }
+ }
}
diff --git a/api/vendor/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php b/api/vendor/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php
index 2c2a00e75f..e7c12176a7 100644
--- a/api/vendor/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php
+++ b/api/vendor/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php
@@ -66,6 +66,8 @@ public function __invoke(array $record): array
} else {
$replacements[$placeholder] = $val->format($this->dateFormat ?: static::SIMPLE_DATE);
}
+ } elseif ($val instanceof \UnitEnum) {
+ $replacements[$placeholder] = $val instanceof \BackedEnum ? $val->value : $val->name;
} elseif (is_object($val)) {
$replacements[$placeholder] = '[object '.Utils::getClass($val).']';
} elseif (is_array($val)) {
diff --git a/api/vendor/monolog/monolog/src/Monolog/Processor/WebProcessor.php b/api/vendor/monolog/monolog/src/Monolog/Processor/WebProcessor.php
index 51850e17f7..887f4d3968 100644
--- a/api/vendor/monolog/monolog/src/Monolog/Processor/WebProcessor.php
+++ b/api/vendor/monolog/monolog/src/Monolog/Processor/WebProcessor.php
@@ -43,7 +43,7 @@ class WebProcessor implements ProcessorInterface
* @param array|\ArrayAccess|null $serverData Array or object w/ ArrayAccess that provides access to the $_SERVER data
* @param array|array|null $extraFields Field names and the related key inside $serverData to be added (or just a list of field names to use the default configured $serverData mapping). If not provided it defaults to: [url, ip, http_method, server, referrer] + unique_id if present in server data
*/
- public function __construct($serverData = null, array $extraFields = null)
+ public function __construct($serverData = null, ?array $extraFields = null)
{
if (null === $serverData) {
$this->serverData = &$_SERVER;
diff --git a/api/vendor/monolog/monolog/src/Monolog/Utils.php b/api/vendor/monolog/monolog/src/Monolog/Utils.php
index 360c42199c..d4ff4c040a 100644
--- a/api/vendor/monolog/monolog/src/Monolog/Utils.php
+++ b/api/vendor/monolog/monolog/src/Monolog/Utils.php
@@ -249,7 +249,7 @@ public static function expandIniShorthandBytes($val)
}
$val = (int) $match['val'];
- switch (strtolower($match['unit'] ?? '')) {
+ switch (strtolower($match['unit'])) {
case 'g':
$val *= 1024;
case 'm':
diff --git a/api/vendor/myclabs/deep-copy/.github/FUNDING.yml b/api/vendor/myclabs/deep-copy/.github/FUNDING.yml
deleted file mode 100644
index b8da664ddc..0000000000
--- a/api/vendor/myclabs/deep-copy/.github/FUNDING.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-# These are supported funding model platforms
-
-github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
-patreon: # Replace with a single Patreon username
-open_collective: # Replace with a single Open Collective username
-ko_fi: # Replace with a single Ko-fi username
-tidelift: "packagist/myclabs/deep-copy"
-community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
-liberapay: # Replace with a single Liberapay username
-issuehunt: # Replace with a single IssueHunt username
-otechie: # Replace with a single Otechie username
-custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/api/vendor/myclabs/deep-copy/.github/workflows/ci.yaml b/api/vendor/myclabs/deep-copy/.github/workflows/ci.yaml
deleted file mode 100644
index eac2812e39..0000000000
--- a/api/vendor/myclabs/deep-copy/.github/workflows/ci.yaml
+++ /dev/null
@@ -1,101 +0,0 @@
-name: "Continuous Integration"
-
-on:
- - pull_request
- - push
-
-env:
- COMPOSER_ROOT_VERSION: 1.99
-
-jobs:
- composer-json-lint:
- name: "Lint composer.json"
-
- runs-on: "ubuntu-latest"
-
- strategy:
- matrix:
- php-version:
- - "8.1"
-
- steps:
- - name: "Checkout"
- uses: "actions/checkout@v2"
-
- - name: "Install PHP"
- uses: "shivammathur/setup-php@v2"
- with:
- coverage: "none"
- php-version: "${{ matrix.php-version }}"
- tools: composer-normalize
-
- - name: "Get composer cache directory"
- id: composercache
- run: echo "::set-output name=dir::$(composer config cache-files-dir)"
-
- - name: "Cache dependencies"
- uses: actions/cache@v2
- with:
- path: ${{ steps.composercache.outputs.dir }}
- key: ${{ runner.os }}-php-${{ matrix.php-version }}-${{ matrix.dependencies }}-composer-${{ hashFiles('**/composer.json') }}
- restore-keys: ${{ runner.os }}-php-${{ matrix.php-version }}-${{ matrix.dependencies }}-composer-
-
- - name: "Install dependencies"
- run: "composer update --no-interaction --no-progress"
-
- - name: "Validate composer.json"
- run: "composer validate --strict"
-
- - name: "Normalize composer.json"
- run: "composer-normalize --dry-run"
-
- tests:
- name: "Tests"
-
- runs-on: "ubuntu-latest"
-
- strategy:
- matrix:
- php-version:
- - "7.1"
- - "7.2"
- - "7.3"
- - "7.4"
- - "8.0"
- - "8.1"
- dependencies:
- - "lowest"
- - "highest"
-
- steps:
- - name: "Checkout"
- uses: "actions/checkout@v2"
-
- - name: "Install PHP"
- uses: "shivammathur/setup-php@v2"
- with:
- php-version: "${{ matrix.php-version }}"
- ini-values: zend.assertions=1
-
- - name: "Get composer cache directory"
- id: composercache
- run: echo "::set-output name=dir::$(composer config cache-files-dir)"
-
- - name: "Cache dependencies"
- uses: actions/cache@v2
- with:
- path: ${{ steps.composercache.outputs.dir }}
- key: ${{ runner.os }}-php-${{ matrix.php-version }}-${{ matrix.dependencies }}-composer-${{ hashFiles('**/composer.json') }}
- restore-keys: ${{ runner.os }}-php-${{ matrix.php-version }}-${{ matrix.dependencies }}-composer-
-
- - name: "Install lowest dependencies"
- if: ${{ matrix.dependencies == 'lowest' }}
- run: "composer update --no-interaction --no-progress --prefer-lowest"
-
- - name: "Install highest dependencies"
- if: ${{ matrix.dependencies == 'highest' }}
- run: "composer update --no-interaction --no-progress"
-
- - name: "Run tests"
- timeout-minutes: 3
- run: "vendor/bin/phpunit"
diff --git a/api/vendor/myclabs/deep-copy/README.md b/api/vendor/myclabs/deep-copy/README.md
index 503e93dfff..88ae14ccab 100644
--- a/api/vendor/myclabs/deep-copy/README.md
+++ b/api/vendor/myclabs/deep-copy/README.md
@@ -3,7 +3,7 @@
DeepCopy helps you create deep copies (clones) of your objects. It is designed to handle cycles in the association graph.
[![Total Downloads](https://poser.pugx.org/myclabs/deep-copy/downloads.svg)](https://packagist.org/packages/myclabs/deep-copy)
-[![Integrate](https://github.com/myclabs/DeepCopy/workflows/ci/badge.svg?branch=1.x)](https://github.com/myclabs/DeepCopy/actions)
+[![Integrate](https://github.com/myclabs/DeepCopy/actions/workflows/ci.yaml/badge.svg?branch=1.x)](https://github.com/myclabs/DeepCopy/actions/workflows/ci.yaml)
## Table of Contents
@@ -186,6 +186,9 @@ $matcher = new TypeMatcher('Doctrine\Common\Collections\Collection');
- `DeepCopy\Filter` applies a transformation to the object attribute matched by `DeepCopy\Matcher`
- `DeepCopy\TypeFilter` applies a transformation to any element matched by `DeepCopy\TypeMatcher`
+By design, matching a filter will stop the chain of filters (i.e. the next ones will not be applied).
+Using the ([`ChainableFilter`](#chainablefilter-filter)) won't stop the chain of filters.
+
#### `SetNullFilter` (filter)
@@ -226,6 +229,34 @@ $copy = $copier->copy($object);
```
+#### `ChainableFilter` (filter)
+
+If you use cloning on proxy classes, you might want to apply two filters for:
+1. loading the data
+2. applying a transformation
+
+You can use the `ChainableFilter` as a decorator of the proxy loader filter, which won't stop the chain of filters (i.e.
+the next ones may be applied).
+
+
+```php
+use DeepCopy\DeepCopy;
+use DeepCopy\Filter\ChainableFilter;
+use DeepCopy\Filter\Doctrine\DoctrineProxyFilter;
+use DeepCopy\Filter\SetNullFilter;
+use DeepCopy\Matcher\Doctrine\DoctrineProxyMatcher;
+use DeepCopy\Matcher\PropertyNameMatcher;
+
+$copier = new DeepCopy();
+$copier->addFilter(new ChainableFilter(new DoctrineProxyFilter()), new DoctrineProxyMatcher());
+$copier->addFilter(new SetNullFilter(), new PropertyNameMatcher('id'));
+
+$copy = $copier->copy($object);
+
+echo $copy->id; // null
+```
+
+
#### `DoctrineCollectionFilter` (filter)
If you use Doctrine and want to copy an entity, you will need to use the `DoctrineCollectionFilter`:
@@ -268,6 +299,8 @@ Doctrine proxy class (...\\\_\_CG\_\_\Proxy).
You can use the `DoctrineProxyFilter` to load the actual entity behind the Doctrine proxy class.
**Make sure, though, to put this as one of your very first filters in the filter chain so that the entity is loaded
before other filters are applied!**
+We recommend to decorate the `DoctrineProxyFilter` with the `ChainableFilter` to allow applying other filters to the
+cloned lazy loaded entities.
```php
use DeepCopy\DeepCopy;
@@ -275,7 +308,7 @@ use DeepCopy\Filter\Doctrine\DoctrineProxyFilter;
use DeepCopy\Matcher\Doctrine\DoctrineProxyMatcher;
$copier = new DeepCopy();
-$copier->addFilter(new DoctrineProxyFilter(), new DoctrineProxyMatcher());
+$copier->addFilter(new ChainableFilter(new DoctrineProxyFilter()), new DoctrineProxyMatcher());
$copy = $copier->copy($object);
diff --git a/api/vendor/myclabs/deep-copy/composer.json b/api/vendor/myclabs/deep-copy/composer.json
index 66fb34a58a..f115fff851 100644
--- a/api/vendor/myclabs/deep-copy/composer.json
+++ b/api/vendor/myclabs/deep-copy/composer.json
@@ -16,11 +16,12 @@
"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"
},
"conflict": {
"doctrine/collections": "<1.6.8",
- "doctrine/common": "<2.13.3 || >=3,<3.2.2"
+ "doctrine/common": "<2.13.3 || >=3 <3.2.2"
},
"autoload": {
"psr-4": {
@@ -32,8 +33,8 @@
},
"autoload-dev": {
"psr-4": {
- "DeepCopy\\": "fixtures/",
- "DeepCopyTest\\": "tests/DeepCopyTest/"
+ "DeepCopyTest\\": "tests/DeepCopyTest/",
+ "DeepCopy\\": "fixtures/"
}
},
"config": {
diff --git a/api/vendor/myclabs/deep-copy/src/DeepCopy/DeepCopy.php b/api/vendor/myclabs/deep-copy/src/DeepCopy/DeepCopy.php
index 5e68c64e4f..f739d922db 100644
--- a/api/vendor/myclabs/deep-copy/src/DeepCopy/DeepCopy.php
+++ b/api/vendor/myclabs/deep-copy/src/DeepCopy/DeepCopy.php
@@ -4,13 +4,16 @@
use ArrayObject;
use DateInterval;
+use DatePeriod;
use DateTimeInterface;
use DateTimeZone;
use DeepCopy\Exception\CloneException;
+use DeepCopy\Filter\ChainableFilter;
use DeepCopy\Filter\Filter;
use DeepCopy\Matcher\Matcher;
use DeepCopy\Reflection\ReflectionHelper;
use DeepCopy\TypeFilter\Date\DateIntervalFilter;
+use DeepCopy\TypeFilter\Date\DatePeriodFilter;
use DeepCopy\TypeFilter\Spl\ArrayObjectFilter;
use DeepCopy\TypeFilter\Spl\SplDoublyLinkedListFilter;
use DeepCopy\TypeFilter\TypeFilter;
@@ -63,6 +66,7 @@ public function __construct($useCloneMethod = false)
$this->addTypeFilter(new ArrayObjectFilter($this), new TypeMatcher(ArrayObject::class));
$this->addTypeFilter(new DateIntervalFilter(), new TypeMatcher(DateInterval::class));
+ $this->addTypeFilter(new DatePeriodFilter(), new TypeMatcher(DatePeriod::class));
$this->addTypeFilter(new SplDoublyLinkedListFilter($this), new TypeMatcher(SplDoublyLinkedList::class));
}
@@ -223,6 +227,11 @@ private function copyObjectProperty($object, ReflectionProperty $property)
return;
}
+ // Ignore readonly properties
+ if (method_exists($property, 'isReadOnly') && $property->isReadOnly()) {
+ return;
+ }
+
// Apply the filters
foreach ($this->filters as $item) {
/** @var Matcher $matcher */
@@ -239,6 +248,10 @@ function ($object) {
}
);
+ if ($filter instanceof ChainableFilter) {
+ continue;
+ }
+
// If a filter matches, we stop processing this property
return;
}
diff --git a/api/vendor/myclabs/deep-copy/src/DeepCopy/Filter/ChainableFilter.php b/api/vendor/myclabs/deep-copy/src/DeepCopy/Filter/ChainableFilter.php
new file mode 100644
index 0000000000..4e3f7bbc47
--- /dev/null
+++ b/api/vendor/myclabs/deep-copy/src/DeepCopy/Filter/ChainableFilter.php
@@ -0,0 +1,24 @@
+filter = $filter;
+ }
+
+ public function apply($object, $property, $objectCopier)
+ {
+ $this->filter->apply($object, $property, $objectCopier);
+ }
+}
diff --git a/api/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DatePeriodFilter.php b/api/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DatePeriodFilter.php
new file mode 100644
index 0000000000..6bd2f7e574
--- /dev/null
+++ b/api/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DatePeriodFilter.php
@@ -0,0 +1,42 @@
+= 80200 && $element->include_end_date) {
+ $options |= DatePeriod::INCLUDE_END_DATE;
+ }
+ if (!$element->include_start_date) {
+ $options |= DatePeriod::EXCLUDE_START_DATE;
+ }
+
+ if ($element->getEndDate()) {
+ return new DatePeriod($element->getStartDate(), $element->getDateInterval(), $element->getEndDate(), $options);
+ }
+
+ if (PHP_VERSION_ID >= 70217) {
+ $recurrences = $element->getRecurrences();
+ } else {
+ $recurrences = $element->recurrences - $element->include_start_date;
+ }
+
+ return new DatePeriod($element->getStartDate(), $element->getDateInterval(), $recurrences, $options);
+ }
+}
diff --git a/api/vendor/nesbot/carbon/composer.json b/api/vendor/nesbot/carbon/composer.json
index 63bfb1c2e6..0014434ea1 100644
--- a/api/vendor/nesbot/carbon/composer.json
+++ b/api/vendor/nesbot/carbon/composer.json
@@ -42,13 +42,15 @@
"require": {
"php": "^7.1.8 || ^8.0",
"ext-json": "*",
+ "carbonphp/carbon-doctrine-types": "*",
+ "psr/clock": "^1.0",
"symfony/polyfill-mbstring": "^1.0",
"symfony/polyfill-php80": "^1.16",
"symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0"
},
"require-dev": {
- "doctrine/dbal": "^2.0 || ^3.1.4",
- "doctrine/orm": "^2.7",
+ "doctrine/dbal": "^2.0 || ^3.1.4 || ^4.0",
+ "doctrine/orm": "^2.7 || ^3.0",
"friendsofphp/php-cs-fixer": "^3.0",
"kylekatarnls/multi-tester": "^2.0",
"ondrejmirtes/better-reflection": "*",
@@ -59,6 +61,9 @@
"phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20",
"squizlabs/php_codesniffer": "^3.4"
},
+ "provide": {
+ "psr/clock-implementation": "1.0"
+ },
"minimum-stability": "dev",
"prefer-stable": true,
"autoload": {
@@ -87,8 +92,8 @@
},
"extra": {
"branch-alias": {
- "dev-3.x": "3.x-dev",
- "dev-master": "2.x-dev"
+ "dev-master": "3.x-dev",
+ "dev-2.x": "2.x-dev"
},
"laravel": {
"providers": [
@@ -116,6 +121,7 @@
"test": [
"@phpunit",
"@style-check"
- ]
+ ],
+ "sponsors": "php sponsors.php"
}
}
diff --git a/api/vendor/nesbot/carbon/readme.md b/api/vendor/nesbot/carbon/readme.md
index a178c3c702..97ec8ce08d 100644
--- a/api/vendor/nesbot/carbon/readme.md
+++ b/api/vendor/nesbot/carbon/readme.md
@@ -2,7 +2,7 @@
[![Latest Stable Version](https://img.shields.io/packagist/v/nesbot/carbon.svg?style=flat-square)](https://packagist.org/packages/nesbot/carbon)
[![Total Downloads](https://img.shields.io/packagist/dt/nesbot/carbon.svg?style=flat-square)](https://packagist.org/packages/nesbot/carbon)
-[![GitHub Actions](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fbriannesbitt%2FCarbon%2Fbadge&style=flat-square&label=Build&logo=none)](https://actions-badge.atrox.dev/briannesbitt/Carbon/goto)
+[![GitHub Actions](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fbriannesbitt%2FCarbon%2Fbadge&style=flat-square&label=Build&logo=none)](https://github.com/briannesbitt/Carbon/actions)
[![codecov.io](https://img.shields.io/codecov/c/github/briannesbitt/Carbon.svg?style=flat-square)](https://codecov.io/github/briannesbitt/Carbon?branch=master)
[![Tidelift](https://tidelift.com/badges/github/briannesbitt/Carbon)](https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme)
@@ -119,31 +119,53 @@ This project exists thanks to all the people who contribute.
Support this project by becoming a sponsor. Your logo will show up here with a link to your website.
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[[Become a sponsor via OpenCollective](https://opencollective.com/Carbon#sponsor)]
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-[[Become a sponsor](https://opencollective.com/Carbon#sponsor)]
+
+
+
+[[Become a sponsor via GitHub](https://github.com/sponsors/kylekatarnls)]
### Backers
Thank you to all our backers! 🙏
-
+
[[Become a backer](https://opencollective.com/Carbon#backer)]
diff --git a/api/vendor/nesbot/carbon/sponsors.php b/api/vendor/nesbot/carbon/sponsors.php
new file mode 100644
index 0000000000..67b217161a
--- /dev/null
+++ b/api/vendor/nesbot/carbon/sponsors.php
@@ -0,0 +1,129 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+use Carbon\CarbonImmutable;
+
+require_once __DIR__.'/vendor/autoload.php';
+
+function getMaxHistoryMonthsByAmount($amount): int
+{
+ if ($amount >= 50) {
+ return 6;
+ }
+
+ if ($amount >= 20) {
+ return 4;
+ }
+
+ return 2;
+}
+
+function getHtmlAttribute($rawValue): string
+{
+ return str_replace(
+ ['', "\r"],
+ '',
+ trim(htmlspecialchars((string) $rawValue), " \n\r\t\v\0"),
+ );
+}
+
+function getOpenCollectiveSponsors(): string
+{
+ $customSponsorImages = [
+ // For consistency and equity among sponsors, as of now, we kindly ask our sponsors
+ // to provide an image having a width/height ratio between 1/1 and 2/1.
+ // By default, we'll show the member picture from OpenCollective, and will resize it if bigger
+ // int(OpenCollective.MemberId) => ImageURL
+ ];
+
+ $members = json_decode(file_get_contents('https://opencollective.com/carbon/members/all.json'), true);
+
+ $list = array_filter($members, static function ($member): bool {
+ return ($member['lastTransactionAmount'] > 3 || $member['isActive']) &&
+ $member['role'] === 'BACKER' &&
+ $member['type'] !== 'USER' &&
+ (
+ $member['totalAmountDonated'] > 100 ||
+ $member['lastTransactionAt'] > CarbonImmutable::now()
+ ->subMonthsNoOverflow(getMaxHistoryMonthsByAmount($member['lastTransactionAmount']))
+ ->format('Y-m-d h:i') ||
+ $member['isActive'] && $member['lastTransactionAmount'] >= 30
+ );
+ });
+
+ $list = array_map(static function (array $member): array {
+ $createdAt = CarbonImmutable::parse($member['createdAt']);
+ $lastTransactionAt = CarbonImmutable::parse($member['lastTransactionAt']);
+
+ if ($createdAt->format('d H:i:s.u') > $lastTransactionAt->format('d H:i:s.u')) {
+ $createdAt = $createdAt
+ ->setDay($lastTransactionAt->day)
+ ->modify($lastTransactionAt->format('H:i:s.u'));
+ }
+
+ $monthlyContribution = (float) ($member['totalAmountDonated'] / ceil($createdAt->floatDiffInMonths()));
+
+ if (
+ $lastTransactionAt->isAfter('last month') &&
+ $member['lastTransactionAmount'] > $monthlyContribution
+ ) {
+ $monthlyContribution = (float) $member['lastTransactionAmount'];
+ }
+
+ $yearlyContribution = (float) ($member['totalAmountDonated'] / max(1, $createdAt->floatDiffInYears()));
+ $status = null;
+
+ if ($monthlyContribution > 29) {
+ $status = 'sponsor';
+ } elseif ($monthlyContribution > 4.5 || $yearlyContribution > 29) {
+ $status = 'backer';
+ } elseif ($member['totalAmountDonated'] > 0) {
+ $status = 'helper';
+ }
+
+ return array_merge($member, [
+ 'star' => ($monthlyContribution > 98 || $yearlyContribution > 500),
+ 'status' => $status,
+ 'monthlyContribution' => $monthlyContribution,
+ 'yearlyContribution' => $yearlyContribution,
+ ]);
+ }, $list);
+
+ usort($list, static function (array $a, array $b): int {
+ return ($b['monthlyContribution'] <=> $a['monthlyContribution'])
+ ?: ($b['totalAmountDonated'] <=> $a['totalAmountDonated']);
+ });
+
+ return implode('', array_map(static function (array $member) use ($customSponsorImages): string {
+ $href = htmlspecialchars($member['website'] ?? $member['profile']);
+ $src = $customSponsorImages[$member['MemberId'] ?? ''] ?? $member['image'] ?? (strtr($member['profile'], ['https://opencollective.com/' => 'https://images.opencollective.com/']).'/avatar/256.png');
+ [$x, $y] = @getimagesize($src) ?: [0, 0];
+ $validImage = ($x && $y);
+ $src = $validImage ? htmlspecialchars($src) : 'https://opencollective.com/static/images/default-guest-logo.svg';
+ $height = $member['status'] === 'sponsor' ? 64 : 42;
+ $width = min($height * 2, $validImage ? round($x * $height / $y) : $height);
+ $href .= (strpos($href, '?') === false ? '?' : '&').'utm_source=opencollective&utm_medium=github&utm_campaign=Carbon';
+ $title = getHtmlAttribute(($member['description'] ?? null) ?: $member['name']);
+ $alt = getHtmlAttribute($member['name']);
+
+ return "\n".''.
+ '
'.
+ '';
+ }, $list))."\n";
+}
+
+file_put_contents('readme.md', preg_replace_callback(
+ '/()[\s\S]+()/',
+ static function (array $match): string {
+ return $match[1].getOpenCollectiveSponsors().$match[2];
+ },
+ file_get_contents('readme.md')
+));
diff --git a/api/vendor/nesbot/carbon/src/Carbon/Carbon.php b/api/vendor/nesbot/carbon/src/Carbon/Carbon.php
index 1e285aa4a7..e32569ae30 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/Carbon.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/Carbon.php
@@ -33,477 +33,477 @@
* @property int $second
* @property int $micro
* @property int $microsecond
- * @property int|float|string $timestamp seconds since the Unix Epoch
- * @property string $englishDayOfWeek the day of week in English
- * @property string $shortEnglishDayOfWeek the abbreviated day of week in English
- * @property string $englishMonth the month in English
- * @property string $shortEnglishMonth the abbreviated month in English
+ * @property int|float|string $timestamp seconds since the Unix Epoch
+ * @property string $englishDayOfWeek the day of week in English
+ * @property string $shortEnglishDayOfWeek the abbreviated day of week in English
+ * @property string $englishMonth the month in English
+ * @property string $shortEnglishMonth the abbreviated month in English
* @property int $milliseconds
* @property int $millisecond
* @property int $milli
- * @property int $week 1 through 53
- * @property int $isoWeek 1 through 53
- * @property int $weekYear year according to week format
- * @property int $isoWeekYear year according to ISO week format
- * @property int $dayOfYear 1 through 366
- * @property int $age does a diffInYears() with default parameters
- * @property int $offset the timezone offset in seconds from UTC
- * @property int $offsetMinutes the timezone offset in minutes from UTC
- * @property int $offsetHours the timezone offset in hours from UTC
- * @property CarbonTimeZone $timezone the current timezone
- * @property CarbonTimeZone $tz alias of $timezone
- * @property-read int $dayOfWeek 0 (for Sunday) through 6 (for Saturday)
- * @property-read int $dayOfWeekIso 1 (for Monday) through 7 (for Sunday)
- * @property-read int $weekOfYear ISO-8601 week number of year, weeks starting on Monday
- * @property-read int $daysInMonth number of days in the given month
- * @property-read string $latinMeridiem "am"/"pm" (Ante meridiem or Post meridiem latin lowercase mark)
- * @property-read string $latinUpperMeridiem "AM"/"PM" (Ante meridiem or Post meridiem latin uppercase mark)
- * @property-read string $timezoneAbbreviatedName the current timezone abbreviated name
- * @property-read string $tzAbbrName alias of $timezoneAbbreviatedName
- * @property-read string $dayName long name of weekday translated according to Carbon locale, in english if no translation available for current language
- * @property-read string $shortDayName short name of weekday translated according to Carbon locale, in english if no translation available for current language
- * @property-read string $minDayName very short name of weekday translated according to Carbon locale, in english if no translation available for current language
- * @property-read string $monthName long name of month translated according to Carbon locale, in english if no translation available for current language
- * @property-read string $shortMonthName short name of month translated according to Carbon locale, in english if no translation available for current language
- * @property-read string $meridiem lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language
- * @property-read string $upperMeridiem uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language
- * @property-read int $noZeroHour current hour from 1 to 24
- * @property-read int $weeksInYear 51 through 53
- * @property-read int $isoWeeksInYear 51 through 53
- * @property-read int $weekOfMonth 1 through 5
- * @property-read int $weekNumberInMonth 1 through 5
- * @property-read int $firstWeekDay 0 through 6
- * @property-read int $lastWeekDay 0 through 6
- * @property-read int $daysInYear 365 or 366
- * @property-read int $quarter the quarter of this instance, 1 - 4
- * @property-read int $decade the decade of this instance
- * @property-read int $century the century of this instance
- * @property-read int $millennium the millennium of this instance
- * @property-read bool $dst daylight savings time indicator, true if DST, false otherwise
- * @property-read bool $local checks if the timezone is local, true if local, false otherwise
- * @property-read bool $utc checks if the timezone is UTC, true if UTC, false otherwise
- * @property-read string $timezoneName the current timezone name
- * @property-read string $tzName alias of $timezoneName
- * @property-read string $locale locale of the current instance
+ * @property int $week 1 through 53
+ * @property int $isoWeek 1 through 53
+ * @property int $weekYear year according to week format
+ * @property int $isoWeekYear year according to ISO week format
+ * @property int $dayOfYear 1 through 366
+ * @property int $age does a diffInYears() with default parameters
+ * @property int $offset the timezone offset in seconds from UTC
+ * @property int $offsetMinutes the timezone offset in minutes from UTC
+ * @property int $offsetHours the timezone offset in hours from UTC
+ * @property CarbonTimeZone $timezone the current timezone
+ * @property CarbonTimeZone $tz alias of $timezone
+ * @property-read int $dayOfWeek 0 (for Sunday) through 6 (for Saturday)
+ * @property-read int $dayOfWeekIso 1 (for Monday) through 7 (for Sunday)
+ * @property-read int $weekOfYear ISO-8601 week number of year, weeks starting on Monday
+ * @property-read int $daysInMonth number of days in the given month
+ * @property-read string $latinMeridiem "am"/"pm" (Ante meridiem or Post meridiem latin lowercase mark)
+ * @property-read string $latinUpperMeridiem "AM"/"PM" (Ante meridiem or Post meridiem latin uppercase mark)
+ * @property-read string $timezoneAbbreviatedName the current timezone abbreviated name
+ * @property-read string $tzAbbrName alias of $timezoneAbbreviatedName
+ * @property-read string $dayName long name of weekday translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string $shortDayName short name of weekday translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string $minDayName very short name of weekday translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string $monthName long name of month translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string $shortMonthName short name of month translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string $meridiem lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language
+ * @property-read string $upperMeridiem uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language
+ * @property-read int $noZeroHour current hour from 1 to 24
+ * @property-read int $weeksInYear 51 through 53
+ * @property-read int $isoWeeksInYear 51 through 53
+ * @property-read int $weekOfMonth 1 through 5
+ * @property-read int $weekNumberInMonth 1 through 5
+ * @property-read int $firstWeekDay 0 through 6
+ * @property-read int $lastWeekDay 0 through 6
+ * @property-read int $daysInYear 365 or 366
+ * @property-read int $quarter the quarter of this instance, 1 - 4
+ * @property-read int $decade the decade of this instance
+ * @property-read int $century the century of this instance
+ * @property-read int $millennium the millennium of this instance
+ * @property-read bool $dst daylight savings time indicator, true if DST, false otherwise
+ * @property-read bool $local checks if the timezone is local, true if local, false otherwise
+ * @property-read bool $utc checks if the timezone is UTC, true if UTC, false otherwise
+ * @property-read string $timezoneName the current timezone name
+ * @property-read string $tzName alias of $timezoneName
+ * @property-read string $locale locale of the current instance
*
- * @method bool isUtc() Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.)
- * @method bool isLocal() Check if the current instance has non-UTC timezone.
- * @method bool isValid() Check if the current instance is a valid date.
- * @method bool isDST() Check if the current instance is in a daylight saving time.
- * @method bool isSunday() Checks if the instance day is sunday.
- * @method bool isMonday() Checks if the instance day is monday.
- * @method bool isTuesday() Checks if the instance day is tuesday.
- * @method bool isWednesday() Checks if the instance day is wednesday.
- * @method bool isThursday() Checks if the instance day is thursday.
- * @method bool isFriday() Checks if the instance day is friday.
- * @method bool isSaturday() Checks if the instance day is saturday.
- * @method bool isSameYear(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same year as the instance. If null passed, compare to now (with the same timezone).
- * @method bool isCurrentYear() Checks if the instance is in the same year as the current moment.
- * @method bool isNextYear() Checks if the instance is in the same year as the current moment next year.
- * @method bool isLastYear() Checks if the instance is in the same year as the current moment last year.
- * @method bool isSameWeek(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same week as the instance. If null passed, compare to now (with the same timezone).
- * @method bool isCurrentWeek() Checks if the instance is in the same week as the current moment.
- * @method bool isNextWeek() Checks if the instance is in the same week as the current moment next week.
- * @method bool isLastWeek() Checks if the instance is in the same week as the current moment last week.
- * @method bool isSameDay(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same day as the instance. If null passed, compare to now (with the same timezone).
- * @method bool isCurrentDay() Checks if the instance is in the same day as the current moment.
- * @method bool isNextDay() Checks if the instance is in the same day as the current moment next day.
- * @method bool isLastDay() Checks if the instance is in the same day as the current moment last day.
- * @method bool isSameHour(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same hour as the instance. If null passed, compare to now (with the same timezone).
- * @method bool isCurrentHour() Checks if the instance is in the same hour as the current moment.
- * @method bool isNextHour() Checks if the instance is in the same hour as the current moment next hour.
- * @method bool isLastHour() Checks if the instance is in the same hour as the current moment last hour.
- * @method bool isSameMinute(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same minute as the instance. If null passed, compare to now (with the same timezone).
- * @method bool isCurrentMinute() Checks if the instance is in the same minute as the current moment.
- * @method bool isNextMinute() Checks if the instance is in the same minute as the current moment next minute.
- * @method bool isLastMinute() Checks if the instance is in the same minute as the current moment last minute.
- * @method bool isSameSecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same second as the instance. If null passed, compare to now (with the same timezone).
- * @method bool isCurrentSecond() Checks if the instance is in the same second as the current moment.
- * @method bool isNextSecond() Checks if the instance is in the same second as the current moment next second.
- * @method bool isLastSecond() Checks if the instance is in the same second as the current moment last second.
- * @method bool isSameMicro(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone).
- * @method bool isCurrentMicro() Checks if the instance is in the same microsecond as the current moment.
- * @method bool isNextMicro() Checks if the instance is in the same microsecond as the current moment next microsecond.
- * @method bool isLastMicro() Checks if the instance is in the same microsecond as the current moment last microsecond.
- * @method bool isSameMicrosecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone).
- * @method bool isCurrentMicrosecond() Checks if the instance is in the same microsecond as the current moment.
- * @method bool isNextMicrosecond() Checks if the instance is in the same microsecond as the current moment next microsecond.
- * @method bool isLastMicrosecond() Checks if the instance is in the same microsecond as the current moment last microsecond.
- * @method bool isCurrentMonth() Checks if the instance is in the same month as the current moment.
- * @method bool isNextMonth() Checks if the instance is in the same month as the current moment next month.
- * @method bool isLastMonth() Checks if the instance is in the same month as the current moment last month.
- * @method bool isCurrentQuarter() Checks if the instance is in the same quarter as the current moment.
- * @method bool isNextQuarter() Checks if the instance is in the same quarter as the current moment next quarter.
- * @method bool isLastQuarter() Checks if the instance is in the same quarter as the current moment last quarter.
- * @method bool isSameDecade(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same decade as the instance. If null passed, compare to now (with the same timezone).
- * @method bool isCurrentDecade() Checks if the instance is in the same decade as the current moment.
- * @method bool isNextDecade() Checks if the instance is in the same decade as the current moment next decade.
- * @method bool isLastDecade() Checks if the instance is in the same decade as the current moment last decade.
- * @method bool isSameCentury(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same century as the instance. If null passed, compare to now (with the same timezone).
- * @method bool isCurrentCentury() Checks if the instance is in the same century as the current moment.
- * @method bool isNextCentury() Checks if the instance is in the same century as the current moment next century.
- * @method bool isLastCentury() Checks if the instance is in the same century as the current moment last century.
- * @method bool isSameMillennium(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same millennium as the instance. If null passed, compare to now (with the same timezone).
- * @method bool isCurrentMillennium() Checks if the instance is in the same millennium as the current moment.
- * @method bool isNextMillennium() Checks if the instance is in the same millennium as the current moment next millennium.
- * @method bool isLastMillennium() Checks if the instance is in the same millennium as the current moment last millennium.
- * @method $this years(int $value) Set current instance year to the given value.
- * @method $this year(int $value) Set current instance year to the given value.
- * @method $this setYears(int $value) Set current instance year to the given value.
- * @method $this setYear(int $value) Set current instance year to the given value.
- * @method $this months(int $value) Set current instance month to the given value.
- * @method $this month(int $value) Set current instance month to the given value.
- * @method $this setMonths(int $value) Set current instance month to the given value.
- * @method $this setMonth(int $value) Set current instance month to the given value.
- * @method $this days(int $value) Set current instance day to the given value.
- * @method $this day(int $value) Set current instance day to the given value.
- * @method $this setDays(int $value) Set current instance day to the given value.
- * @method $this setDay(int $value) Set current instance day to the given value.
- * @method $this hours(int $value) Set current instance hour to the given value.
- * @method $this hour(int $value) Set current instance hour to the given value.
- * @method $this setHours(int $value) Set current instance hour to the given value.
- * @method $this setHour(int $value) Set current instance hour to the given value.
- * @method $this minutes(int $value) Set current instance minute to the given value.
- * @method $this minute(int $value) Set current instance minute to the given value.
- * @method $this setMinutes(int $value) Set current instance minute to the given value.
- * @method $this setMinute(int $value) Set current instance minute to the given value.
- * @method $this seconds(int $value) Set current instance second to the given value.
- * @method $this second(int $value) Set current instance second to the given value.
- * @method $this setSeconds(int $value) Set current instance second to the given value.
- * @method $this setSecond(int $value) Set current instance second to the given value.
- * @method $this millis(int $value) Set current instance millisecond to the given value.
- * @method $this milli(int $value) Set current instance millisecond to the given value.
- * @method $this setMillis(int $value) Set current instance millisecond to the given value.
- * @method $this setMilli(int $value) Set current instance millisecond to the given value.
- * @method $this milliseconds(int $value) Set current instance millisecond to the given value.
- * @method $this millisecond(int $value) Set current instance millisecond to the given value.
- * @method $this setMilliseconds(int $value) Set current instance millisecond to the given value.
- * @method $this setMillisecond(int $value) Set current instance millisecond to the given value.
- * @method $this micros(int $value) Set current instance microsecond to the given value.
- * @method $this micro(int $value) Set current instance microsecond to the given value.
- * @method $this setMicros(int $value) Set current instance microsecond to the given value.
- * @method $this setMicro(int $value) Set current instance microsecond to the given value.
- * @method $this microseconds(int $value) Set current instance microsecond to the given value.
- * @method $this microsecond(int $value) Set current instance microsecond to the given value.
- * @method $this setMicroseconds(int $value) Set current instance microsecond to the given value.
- * @method $this setMicrosecond(int $value) Set current instance microsecond to the given value.
- * @method $this addYears(int $value = 1) Add years (the $value count passed in) to the instance (using date interval).
- * @method $this addYear() Add one year to the instance (using date interval).
- * @method $this subYears(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval).
- * @method $this subYear() Sub one year to the instance (using date interval).
- * @method $this addYearsWithOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
- * @method $this addYearWithOverflow() Add one year to the instance (using date interval) with overflow explicitly allowed.
- * @method $this subYearsWithOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
- * @method $this subYearWithOverflow() Sub one year to the instance (using date interval) with overflow explicitly allowed.
- * @method $this addYearsWithoutOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addYearWithoutOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subYearsWithoutOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subYearWithoutOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addYearsWithNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addYearWithNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subYearsWithNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subYearWithNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addYearsNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addYearNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subYearsNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subYearNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addMonths(int $value = 1) Add months (the $value count passed in) to the instance (using date interval).
- * @method $this addMonth() Add one month to the instance (using date interval).
- * @method $this subMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval).
- * @method $this subMonth() Sub one month to the instance (using date interval).
- * @method $this addMonthsWithOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
- * @method $this addMonthWithOverflow() Add one month to the instance (using date interval) with overflow explicitly allowed.
- * @method $this subMonthsWithOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
- * @method $this subMonthWithOverflow() Sub one month to the instance (using date interval) with overflow explicitly allowed.
- * @method $this addMonthsWithoutOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addMonthWithoutOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subMonthsWithoutOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subMonthWithoutOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addMonthsWithNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addMonthWithNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subMonthsWithNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subMonthWithNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addMonthsNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addMonthNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subMonthsNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subMonthNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addDays(int $value = 1) Add days (the $value count passed in) to the instance (using date interval).
- * @method $this addDay() Add one day to the instance (using date interval).
- * @method $this subDays(int $value = 1) Sub days (the $value count passed in) to the instance (using date interval).
- * @method $this subDay() Sub one day to the instance (using date interval).
- * @method $this addHours(int $value = 1) Add hours (the $value count passed in) to the instance (using date interval).
- * @method $this addHour() Add one hour to the instance (using date interval).
- * @method $this subHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using date interval).
- * @method $this subHour() Sub one hour to the instance (using date interval).
- * @method $this addMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using date interval).
- * @method $this addMinute() Add one minute to the instance (using date interval).
- * @method $this subMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using date interval).
- * @method $this subMinute() Sub one minute to the instance (using date interval).
- * @method $this addSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using date interval).
- * @method $this addSecond() Add one second to the instance (using date interval).
- * @method $this subSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using date interval).
- * @method $this subSecond() Sub one second to the instance (using date interval).
- * @method $this addMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval).
- * @method $this addMilli() Add one millisecond to the instance (using date interval).
- * @method $this subMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval).
- * @method $this subMilli() Sub one millisecond to the instance (using date interval).
- * @method $this addMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval).
- * @method $this addMillisecond() Add one millisecond to the instance (using date interval).
- * @method $this subMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval).
- * @method $this subMillisecond() Sub one millisecond to the instance (using date interval).
- * @method $this addMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval).
- * @method $this addMicro() Add one microsecond to the instance (using date interval).
- * @method $this subMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval).
- * @method $this subMicro() Sub one microsecond to the instance (using date interval).
- * @method $this addMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval).
- * @method $this addMicrosecond() Add one microsecond to the instance (using date interval).
- * @method $this subMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval).
- * @method $this subMicrosecond() Sub one microsecond to the instance (using date interval).
- * @method $this addMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval).
- * @method $this addMillennium() Add one millennium to the instance (using date interval).
- * @method $this subMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval).
- * @method $this subMillennium() Sub one millennium to the instance (using date interval).
- * @method $this addMillenniaWithOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
- * @method $this addMillenniumWithOverflow() Add one millennium to the instance (using date interval) with overflow explicitly allowed.
- * @method $this subMillenniaWithOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
- * @method $this subMillenniumWithOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly allowed.
- * @method $this addMillenniaWithoutOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addMillenniumWithoutOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subMillenniaWithoutOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subMillenniumWithoutOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addMillenniaWithNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addMillenniumWithNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subMillenniaWithNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subMillenniumWithNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addMillenniaNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addMillenniumNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subMillenniaNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subMillenniumNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval).
- * @method $this addCentury() Add one century to the instance (using date interval).
- * @method $this subCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval).
- * @method $this subCentury() Sub one century to the instance (using date interval).
- * @method $this addCenturiesWithOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
- * @method $this addCenturyWithOverflow() Add one century to the instance (using date interval) with overflow explicitly allowed.
- * @method $this subCenturiesWithOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
- * @method $this subCenturyWithOverflow() Sub one century to the instance (using date interval) with overflow explicitly allowed.
- * @method $this addCenturiesWithoutOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addCenturyWithoutOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subCenturiesWithoutOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subCenturyWithoutOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addCenturiesWithNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addCenturyWithNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subCenturiesWithNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subCenturyWithNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addCenturiesNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addCenturyNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subCenturiesNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subCenturyNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval).
- * @method $this addDecade() Add one decade to the instance (using date interval).
- * @method $this subDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval).
- * @method $this subDecade() Sub one decade to the instance (using date interval).
- * @method $this addDecadesWithOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
- * @method $this addDecadeWithOverflow() Add one decade to the instance (using date interval) with overflow explicitly allowed.
- * @method $this subDecadesWithOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
- * @method $this subDecadeWithOverflow() Sub one decade to the instance (using date interval) with overflow explicitly allowed.
- * @method $this addDecadesWithoutOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addDecadeWithoutOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subDecadesWithoutOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subDecadeWithoutOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addDecadesWithNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addDecadeWithNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subDecadesWithNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subDecadeWithNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addDecadesNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addDecadeNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subDecadesNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subDecadeNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval).
- * @method $this addQuarter() Add one quarter to the instance (using date interval).
- * @method $this subQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval).
- * @method $this subQuarter() Sub one quarter to the instance (using date interval).
- * @method $this addQuartersWithOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
- * @method $this addQuarterWithOverflow() Add one quarter to the instance (using date interval) with overflow explicitly allowed.
- * @method $this subQuartersWithOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
- * @method $this subQuarterWithOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly allowed.
- * @method $this addQuartersWithoutOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addQuarterWithoutOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subQuartersWithoutOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subQuarterWithoutOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addQuartersWithNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addQuarterWithNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subQuartersWithNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subQuarterWithNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addQuartersNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addQuarterNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subQuartersNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this subQuarterNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
- * @method $this addWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using date interval).
- * @method $this addWeek() Add one week to the instance (using date interval).
- * @method $this subWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using date interval).
- * @method $this subWeek() Sub one week to the instance (using date interval).
- * @method $this addWeekdays(int $value = 1) Add weekdays (the $value count passed in) to the instance (using date interval).
- * @method $this addWeekday() Add one weekday to the instance (using date interval).
- * @method $this subWeekdays(int $value = 1) Sub weekdays (the $value count passed in) to the instance (using date interval).
- * @method $this subWeekday() Sub one weekday to the instance (using date interval).
- * @method $this addRealMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp).
- * @method $this addRealMicro() Add one microsecond to the instance (using timestamp).
- * @method $this subRealMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp).
- * @method $this subRealMicro() Sub one microsecond to the instance (using timestamp).
- * @method CarbonPeriod microsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given.
- * @method $this addRealMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp).
- * @method $this addRealMicrosecond() Add one microsecond to the instance (using timestamp).
- * @method $this subRealMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp).
- * @method $this subRealMicrosecond() Sub one microsecond to the instance (using timestamp).
- * @method CarbonPeriod microsecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given.
- * @method $this addRealMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp).
- * @method $this addRealMilli() Add one millisecond to the instance (using timestamp).
- * @method $this subRealMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp).
- * @method $this subRealMilli() Sub one millisecond to the instance (using timestamp).
- * @method CarbonPeriod millisUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given.
- * @method $this addRealMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp).
- * @method $this addRealMillisecond() Add one millisecond to the instance (using timestamp).
- * @method $this subRealMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp).
- * @method $this subRealMillisecond() Sub one millisecond to the instance (using timestamp).
- * @method CarbonPeriod millisecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given.
- * @method $this addRealSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using timestamp).
- * @method $this addRealSecond() Add one second to the instance (using timestamp).
- * @method $this subRealSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using timestamp).
- * @method $this subRealSecond() Sub one second to the instance (using timestamp).
- * @method CarbonPeriod secondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each second or every X seconds if a factor is given.
- * @method $this addRealMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using timestamp).
- * @method $this addRealMinute() Add one minute to the instance (using timestamp).
- * @method $this subRealMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using timestamp).
- * @method $this subRealMinute() Sub one minute to the instance (using timestamp).
- * @method CarbonPeriod minutesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each minute or every X minutes if a factor is given.
- * @method $this addRealHours(int $value = 1) Add hours (the $value count passed in) to the instance (using timestamp).
- * @method $this addRealHour() Add one hour to the instance (using timestamp).
- * @method $this subRealHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using timestamp).
- * @method $this subRealHour() Sub one hour to the instance (using timestamp).
- * @method CarbonPeriod hoursUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each hour or every X hours if a factor is given.
- * @method $this addRealDays(int $value = 1) Add days (the $value count passed in) to the instance (using timestamp).
- * @method $this addRealDay() Add one day to the instance (using timestamp).
- * @method $this subRealDays(int $value = 1) Sub days (the $value count passed in) to the instance (using timestamp).
- * @method $this subRealDay() Sub one day to the instance (using timestamp).
- * @method CarbonPeriod daysUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each day or every X days if a factor is given.
- * @method $this addRealWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using timestamp).
- * @method $this addRealWeek() Add one week to the instance (using timestamp).
- * @method $this subRealWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using timestamp).
- * @method $this subRealWeek() Sub one week to the instance (using timestamp).
- * @method CarbonPeriod weeksUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each week or every X weeks if a factor is given.
- * @method $this addRealMonths(int $value = 1) Add months (the $value count passed in) to the instance (using timestamp).
- * @method $this addRealMonth() Add one month to the instance (using timestamp).
- * @method $this subRealMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using timestamp).
- * @method $this subRealMonth() Sub one month to the instance (using timestamp).
- * @method CarbonPeriod monthsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each month or every X months if a factor is given.
- * @method $this addRealQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using timestamp).
- * @method $this addRealQuarter() Add one quarter to the instance (using timestamp).
- * @method $this subRealQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using timestamp).
- * @method $this subRealQuarter() Sub one quarter to the instance (using timestamp).
- * @method CarbonPeriod quartersUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each quarter or every X quarters if a factor is given.
- * @method $this addRealYears(int $value = 1) Add years (the $value count passed in) to the instance (using timestamp).
- * @method $this addRealYear() Add one year to the instance (using timestamp).
- * @method $this subRealYears(int $value = 1) Sub years (the $value count passed in) to the instance (using timestamp).
- * @method $this subRealYear() Sub one year to the instance (using timestamp).
- * @method CarbonPeriod yearsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each year or every X years if a factor is given.
- * @method $this addRealDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using timestamp).
- * @method $this addRealDecade() Add one decade to the instance (using timestamp).
- * @method $this subRealDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using timestamp).
- * @method $this subRealDecade() Sub one decade to the instance (using timestamp).
- * @method CarbonPeriod decadesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each decade or every X decades if a factor is given.
- * @method $this addRealCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using timestamp).
- * @method $this addRealCentury() Add one century to the instance (using timestamp).
- * @method $this subRealCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using timestamp).
- * @method $this subRealCentury() Sub one century to the instance (using timestamp).
- * @method CarbonPeriod centuriesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each century or every X centuries if a factor is given.
- * @method $this addRealMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using timestamp).
- * @method $this addRealMillennium() Add one millennium to the instance (using timestamp).
- * @method $this subRealMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using timestamp).
- * @method $this subRealMillennium() Sub one millennium to the instance (using timestamp).
- * @method CarbonPeriod millenniaUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millennium or every X millennia if a factor is given.
- * @method $this roundYear(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function.
- * @method $this roundYears(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function.
- * @method $this floorYear(float $precision = 1) Truncate the current instance year with given precision.
- * @method $this floorYears(float $precision = 1) Truncate the current instance year with given precision.
- * @method $this ceilYear(float $precision = 1) Ceil the current instance year with given precision.
- * @method $this ceilYears(float $precision = 1) Ceil the current instance year with given precision.
- * @method $this roundMonth(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function.
- * @method $this roundMonths(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function.
- * @method $this floorMonth(float $precision = 1) Truncate the current instance month with given precision.
- * @method $this floorMonths(float $precision = 1) Truncate the current instance month with given precision.
- * @method $this ceilMonth(float $precision = 1) Ceil the current instance month with given precision.
- * @method $this ceilMonths(float $precision = 1) Ceil the current instance month with given precision.
- * @method $this roundDay(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function.
- * @method $this roundDays(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function.
- * @method $this floorDay(float $precision = 1) Truncate the current instance day with given precision.
- * @method $this floorDays(float $precision = 1) Truncate the current instance day with given precision.
- * @method $this ceilDay(float $precision = 1) Ceil the current instance day with given precision.
- * @method $this ceilDays(float $precision = 1) Ceil the current instance day with given precision.
- * @method $this roundHour(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function.
- * @method $this roundHours(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function.
- * @method $this floorHour(float $precision = 1) Truncate the current instance hour with given precision.
- * @method $this floorHours(float $precision = 1) Truncate the current instance hour with given precision.
- * @method $this ceilHour(float $precision = 1) Ceil the current instance hour with given precision.
- * @method $this ceilHours(float $precision = 1) Ceil the current instance hour with given precision.
- * @method $this roundMinute(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function.
- * @method $this roundMinutes(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function.
- * @method $this floorMinute(float $precision = 1) Truncate the current instance minute with given precision.
- * @method $this floorMinutes(float $precision = 1) Truncate the current instance minute with given precision.
- * @method $this ceilMinute(float $precision = 1) Ceil the current instance minute with given precision.
- * @method $this ceilMinutes(float $precision = 1) Ceil the current instance minute with given precision.
- * @method $this roundSecond(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function.
- * @method $this roundSeconds(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function.
- * @method $this floorSecond(float $precision = 1) Truncate the current instance second with given precision.
- * @method $this floorSeconds(float $precision = 1) Truncate the current instance second with given precision.
- * @method $this ceilSecond(float $precision = 1) Ceil the current instance second with given precision.
- * @method $this ceilSeconds(float $precision = 1) Ceil the current instance second with given precision.
- * @method $this roundMillennium(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function.
- * @method $this roundMillennia(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function.
- * @method $this floorMillennium(float $precision = 1) Truncate the current instance millennium with given precision.
- * @method $this floorMillennia(float $precision = 1) Truncate the current instance millennium with given precision.
- * @method $this ceilMillennium(float $precision = 1) Ceil the current instance millennium with given precision.
- * @method $this ceilMillennia(float $precision = 1) Ceil the current instance millennium with given precision.
- * @method $this roundCentury(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function.
- * @method $this roundCenturies(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function.
- * @method $this floorCentury(float $precision = 1) Truncate the current instance century with given precision.
- * @method $this floorCenturies(float $precision = 1) Truncate the current instance century with given precision.
- * @method $this ceilCentury(float $precision = 1) Ceil the current instance century with given precision.
- * @method $this ceilCenturies(float $precision = 1) Ceil the current instance century with given precision.
- * @method $this roundDecade(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function.
- * @method $this roundDecades(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function.
- * @method $this floorDecade(float $precision = 1) Truncate the current instance decade with given precision.
- * @method $this floorDecades(float $precision = 1) Truncate the current instance decade with given precision.
- * @method $this ceilDecade(float $precision = 1) Ceil the current instance decade with given precision.
- * @method $this ceilDecades(float $precision = 1) Ceil the current instance decade with given precision.
- * @method $this roundQuarter(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function.
- * @method $this roundQuarters(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function.
- * @method $this floorQuarter(float $precision = 1) Truncate the current instance quarter with given precision.
- * @method $this floorQuarters(float $precision = 1) Truncate the current instance quarter with given precision.
- * @method $this ceilQuarter(float $precision = 1) Ceil the current instance quarter with given precision.
- * @method $this ceilQuarters(float $precision = 1) Ceil the current instance quarter with given precision.
- * @method $this roundMillisecond(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function.
- * @method $this roundMilliseconds(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function.
- * @method $this floorMillisecond(float $precision = 1) Truncate the current instance millisecond with given precision.
- * @method $this floorMilliseconds(float $precision = 1) Truncate the current instance millisecond with given precision.
- * @method $this ceilMillisecond(float $precision = 1) Ceil the current instance millisecond with given precision.
- * @method $this ceilMilliseconds(float $precision = 1) Ceil the current instance millisecond with given precision.
- * @method $this roundMicrosecond(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function.
- * @method $this roundMicroseconds(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function.
- * @method $this floorMicrosecond(float $precision = 1) Truncate the current instance microsecond with given precision.
- * @method $this floorMicroseconds(float $precision = 1) Truncate the current instance microsecond with given precision.
- * @method $this ceilMicrosecond(float $precision = 1) Ceil the current instance microsecond with given precision.
- * @method $this ceilMicroseconds(float $precision = 1) Ceil the current instance microsecond with given precision.
- * @method string shortAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
- * @method string longAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
- * @method string shortRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
- * @method string longRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
- * @method string shortRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
- * @method string longRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
- * @method string shortRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
- * @method string longRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
- * @method static static|false createFromFormat(string $format, string $time, string|DateTimeZone $timezone = null) Parse a string into a new Carbon object according to the specified format.
- * @method static static __set_state(array $array) https://php.net/manual/en/datetime.set-state.php
+ * @method bool isUtc() Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.)
+ * @method bool isLocal() Check if the current instance has non-UTC timezone.
+ * @method bool isValid() Check if the current instance is a valid date.
+ * @method bool isDST() Check if the current instance is in a daylight saving time.
+ * @method bool isSunday() Checks if the instance day is sunday.
+ * @method bool isMonday() Checks if the instance day is monday.
+ * @method bool isTuesday() Checks if the instance day is tuesday.
+ * @method bool isWednesday() Checks if the instance day is wednesday.
+ * @method bool isThursday() Checks if the instance day is thursday.
+ * @method bool isFriday() Checks if the instance day is friday.
+ * @method bool isSaturday() Checks if the instance day is saturday.
+ * @method bool isSameYear(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same year as the instance. If null passed, compare to now (with the same timezone).
+ * @method bool isCurrentYear() Checks if the instance is in the same year as the current moment.
+ * @method bool isNextYear() Checks if the instance is in the same year as the current moment next year.
+ * @method bool isLastYear() Checks if the instance is in the same year as the current moment last year.
+ * @method bool isSameWeek(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same week as the instance. If null passed, compare to now (with the same timezone).
+ * @method bool isCurrentWeek() Checks if the instance is in the same week as the current moment.
+ * @method bool isNextWeek() Checks if the instance is in the same week as the current moment next week.
+ * @method bool isLastWeek() Checks if the instance is in the same week as the current moment last week.
+ * @method bool isSameDay(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same day as the instance. If null passed, compare to now (with the same timezone).
+ * @method bool isCurrentDay() Checks if the instance is in the same day as the current moment.
+ * @method bool isNextDay() Checks if the instance is in the same day as the current moment next day.
+ * @method bool isLastDay() Checks if the instance is in the same day as the current moment last day.
+ * @method bool isSameHour(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same hour as the instance. If null passed, compare to now (with the same timezone).
+ * @method bool isCurrentHour() Checks if the instance is in the same hour as the current moment.
+ * @method bool isNextHour() Checks if the instance is in the same hour as the current moment next hour.
+ * @method bool isLastHour() Checks if the instance is in the same hour as the current moment last hour.
+ * @method bool isSameMinute(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same minute as the instance. If null passed, compare to now (with the same timezone).
+ * @method bool isCurrentMinute() Checks if the instance is in the same minute as the current moment.
+ * @method bool isNextMinute() Checks if the instance is in the same minute as the current moment next minute.
+ * @method bool isLastMinute() Checks if the instance is in the same minute as the current moment last minute.
+ * @method bool isSameSecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same second as the instance. If null passed, compare to now (with the same timezone).
+ * @method bool isCurrentSecond() Checks if the instance is in the same second as the current moment.
+ * @method bool isNextSecond() Checks if the instance is in the same second as the current moment next second.
+ * @method bool isLastSecond() Checks if the instance is in the same second as the current moment last second.
+ * @method bool isSameMicro(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone).
+ * @method bool isCurrentMicro() Checks if the instance is in the same microsecond as the current moment.
+ * @method bool isNextMicro() Checks if the instance is in the same microsecond as the current moment next microsecond.
+ * @method bool isLastMicro() Checks if the instance is in the same microsecond as the current moment last microsecond.
+ * @method bool isSameMicrosecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone).
+ * @method bool isCurrentMicrosecond() Checks if the instance is in the same microsecond as the current moment.
+ * @method bool isNextMicrosecond() Checks if the instance is in the same microsecond as the current moment next microsecond.
+ * @method bool isLastMicrosecond() Checks if the instance is in the same microsecond as the current moment last microsecond.
+ * @method bool isCurrentMonth() Checks if the instance is in the same month as the current moment.
+ * @method bool isNextMonth() Checks if the instance is in the same month as the current moment next month.
+ * @method bool isLastMonth() Checks if the instance is in the same month as the current moment last month.
+ * @method bool isCurrentQuarter() Checks if the instance is in the same quarter as the current moment.
+ * @method bool isNextQuarter() Checks if the instance is in the same quarter as the current moment next quarter.
+ * @method bool isLastQuarter() Checks if the instance is in the same quarter as the current moment last quarter.
+ * @method bool isSameDecade(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same decade as the instance. If null passed, compare to now (with the same timezone).
+ * @method bool isCurrentDecade() Checks if the instance is in the same decade as the current moment.
+ * @method bool isNextDecade() Checks if the instance is in the same decade as the current moment next decade.
+ * @method bool isLastDecade() Checks if the instance is in the same decade as the current moment last decade.
+ * @method bool isSameCentury(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same century as the instance. If null passed, compare to now (with the same timezone).
+ * @method bool isCurrentCentury() Checks if the instance is in the same century as the current moment.
+ * @method bool isNextCentury() Checks if the instance is in the same century as the current moment next century.
+ * @method bool isLastCentury() Checks if the instance is in the same century as the current moment last century.
+ * @method bool isSameMillennium(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same millennium as the instance. If null passed, compare to now (with the same timezone).
+ * @method bool isCurrentMillennium() Checks if the instance is in the same millennium as the current moment.
+ * @method bool isNextMillennium() Checks if the instance is in the same millennium as the current moment next millennium.
+ * @method bool isLastMillennium() Checks if the instance is in the same millennium as the current moment last millennium.
+ * @method $this years(int $value) Set current instance year to the given value.
+ * @method $this year(int $value) Set current instance year to the given value.
+ * @method $this setYears(int $value) Set current instance year to the given value.
+ * @method $this setYear(int $value) Set current instance year to the given value.
+ * @method $this months(int $value) Set current instance month to the given value.
+ * @method $this month(int $value) Set current instance month to the given value.
+ * @method $this setMonths(int $value) Set current instance month to the given value.
+ * @method $this setMonth(int $value) Set current instance month to the given value.
+ * @method $this days(int $value) Set current instance day to the given value.
+ * @method $this day(int $value) Set current instance day to the given value.
+ * @method $this setDays(int $value) Set current instance day to the given value.
+ * @method $this setDay(int $value) Set current instance day to the given value.
+ * @method $this hours(int $value) Set current instance hour to the given value.
+ * @method $this hour(int $value) Set current instance hour to the given value.
+ * @method $this setHours(int $value) Set current instance hour to the given value.
+ * @method $this setHour(int $value) Set current instance hour to the given value.
+ * @method $this minutes(int $value) Set current instance minute to the given value.
+ * @method $this minute(int $value) Set current instance minute to the given value.
+ * @method $this setMinutes(int $value) Set current instance minute to the given value.
+ * @method $this setMinute(int $value) Set current instance minute to the given value.
+ * @method $this seconds(int $value) Set current instance second to the given value.
+ * @method $this second(int $value) Set current instance second to the given value.
+ * @method $this setSeconds(int $value) Set current instance second to the given value.
+ * @method $this setSecond(int $value) Set current instance second to the given value.
+ * @method $this millis(int $value) Set current instance millisecond to the given value.
+ * @method $this milli(int $value) Set current instance millisecond to the given value.
+ * @method $this setMillis(int $value) Set current instance millisecond to the given value.
+ * @method $this setMilli(int $value) Set current instance millisecond to the given value.
+ * @method $this milliseconds(int $value) Set current instance millisecond to the given value.
+ * @method $this millisecond(int $value) Set current instance millisecond to the given value.
+ * @method $this setMilliseconds(int $value) Set current instance millisecond to the given value.
+ * @method $this setMillisecond(int $value) Set current instance millisecond to the given value.
+ * @method $this micros(int $value) Set current instance microsecond to the given value.
+ * @method $this micro(int $value) Set current instance microsecond to the given value.
+ * @method $this setMicros(int $value) Set current instance microsecond to the given value.
+ * @method $this setMicro(int $value) Set current instance microsecond to the given value.
+ * @method $this microseconds(int $value) Set current instance microsecond to the given value.
+ * @method $this microsecond(int $value) Set current instance microsecond to the given value.
+ * @method $this setMicroseconds(int $value) Set current instance microsecond to the given value.
+ * @method $this setMicrosecond(int $value) Set current instance microsecond to the given value.
+ * @method $this addYears(int $value = 1) Add years (the $value count passed in) to the instance (using date interval).
+ * @method $this addYear() Add one year to the instance (using date interval).
+ * @method $this subYears(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval).
+ * @method $this subYear() Sub one year to the instance (using date interval).
+ * @method $this addYearsWithOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method $this addYearWithOverflow() Add one year to the instance (using date interval) with overflow explicitly allowed.
+ * @method $this subYearsWithOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method $this subYearWithOverflow() Sub one year to the instance (using date interval) with overflow explicitly allowed.
+ * @method $this addYearsWithoutOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addYearWithoutOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subYearsWithoutOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subYearWithoutOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addYearsWithNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addYearWithNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subYearsWithNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subYearWithNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addYearsNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addYearNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subYearsNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subYearNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addMonths(int $value = 1) Add months (the $value count passed in) to the instance (using date interval).
+ * @method $this addMonth() Add one month to the instance (using date interval).
+ * @method $this subMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval).
+ * @method $this subMonth() Sub one month to the instance (using date interval).
+ * @method $this addMonthsWithOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method $this addMonthWithOverflow() Add one month to the instance (using date interval) with overflow explicitly allowed.
+ * @method $this subMonthsWithOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method $this subMonthWithOverflow() Sub one month to the instance (using date interval) with overflow explicitly allowed.
+ * @method $this addMonthsWithoutOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addMonthWithoutOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subMonthsWithoutOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subMonthWithoutOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addMonthsWithNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addMonthWithNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subMonthsWithNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subMonthWithNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addMonthsNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addMonthNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subMonthsNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subMonthNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addDays(int $value = 1) Add days (the $value count passed in) to the instance (using date interval).
+ * @method $this addDay() Add one day to the instance (using date interval).
+ * @method $this subDays(int $value = 1) Sub days (the $value count passed in) to the instance (using date interval).
+ * @method $this subDay() Sub one day to the instance (using date interval).
+ * @method $this addHours(int $value = 1) Add hours (the $value count passed in) to the instance (using date interval).
+ * @method $this addHour() Add one hour to the instance (using date interval).
+ * @method $this subHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using date interval).
+ * @method $this subHour() Sub one hour to the instance (using date interval).
+ * @method $this addMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using date interval).
+ * @method $this addMinute() Add one minute to the instance (using date interval).
+ * @method $this subMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using date interval).
+ * @method $this subMinute() Sub one minute to the instance (using date interval).
+ * @method $this addSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using date interval).
+ * @method $this addSecond() Add one second to the instance (using date interval).
+ * @method $this subSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using date interval).
+ * @method $this subSecond() Sub one second to the instance (using date interval).
+ * @method $this addMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval).
+ * @method $this addMilli() Add one millisecond to the instance (using date interval).
+ * @method $this subMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval).
+ * @method $this subMilli() Sub one millisecond to the instance (using date interval).
+ * @method $this addMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval).
+ * @method $this addMillisecond() Add one millisecond to the instance (using date interval).
+ * @method $this subMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval).
+ * @method $this subMillisecond() Sub one millisecond to the instance (using date interval).
+ * @method $this addMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval).
+ * @method $this addMicro() Add one microsecond to the instance (using date interval).
+ * @method $this subMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval).
+ * @method $this subMicro() Sub one microsecond to the instance (using date interval).
+ * @method $this addMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval).
+ * @method $this addMicrosecond() Add one microsecond to the instance (using date interval).
+ * @method $this subMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval).
+ * @method $this subMicrosecond() Sub one microsecond to the instance (using date interval).
+ * @method $this addMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval).
+ * @method $this addMillennium() Add one millennium to the instance (using date interval).
+ * @method $this subMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval).
+ * @method $this subMillennium() Sub one millennium to the instance (using date interval).
+ * @method $this addMillenniaWithOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method $this addMillenniumWithOverflow() Add one millennium to the instance (using date interval) with overflow explicitly allowed.
+ * @method $this subMillenniaWithOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method $this subMillenniumWithOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly allowed.
+ * @method $this addMillenniaWithoutOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addMillenniumWithoutOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subMillenniaWithoutOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subMillenniumWithoutOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addMillenniaWithNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addMillenniumWithNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subMillenniaWithNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subMillenniumWithNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addMillenniaNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addMillenniumNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subMillenniaNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subMillenniumNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval).
+ * @method $this addCentury() Add one century to the instance (using date interval).
+ * @method $this subCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval).
+ * @method $this subCentury() Sub one century to the instance (using date interval).
+ * @method $this addCenturiesWithOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method $this addCenturyWithOverflow() Add one century to the instance (using date interval) with overflow explicitly allowed.
+ * @method $this subCenturiesWithOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method $this subCenturyWithOverflow() Sub one century to the instance (using date interval) with overflow explicitly allowed.
+ * @method $this addCenturiesWithoutOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addCenturyWithoutOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subCenturiesWithoutOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subCenturyWithoutOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addCenturiesWithNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addCenturyWithNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subCenturiesWithNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subCenturyWithNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addCenturiesNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addCenturyNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subCenturiesNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subCenturyNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval).
+ * @method $this addDecade() Add one decade to the instance (using date interval).
+ * @method $this subDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval).
+ * @method $this subDecade() Sub one decade to the instance (using date interval).
+ * @method $this addDecadesWithOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method $this addDecadeWithOverflow() Add one decade to the instance (using date interval) with overflow explicitly allowed.
+ * @method $this subDecadesWithOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method $this subDecadeWithOverflow() Sub one decade to the instance (using date interval) with overflow explicitly allowed.
+ * @method $this addDecadesWithoutOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addDecadeWithoutOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subDecadesWithoutOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subDecadeWithoutOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addDecadesWithNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addDecadeWithNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subDecadesWithNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subDecadeWithNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addDecadesNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addDecadeNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subDecadesNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subDecadeNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval).
+ * @method $this addQuarter() Add one quarter to the instance (using date interval).
+ * @method $this subQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval).
+ * @method $this subQuarter() Sub one quarter to the instance (using date interval).
+ * @method $this addQuartersWithOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method $this addQuarterWithOverflow() Add one quarter to the instance (using date interval) with overflow explicitly allowed.
+ * @method $this subQuartersWithOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method $this subQuarterWithOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly allowed.
+ * @method $this addQuartersWithoutOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addQuarterWithoutOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subQuartersWithoutOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subQuarterWithoutOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addQuartersWithNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addQuarterWithNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subQuartersWithNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subQuarterWithNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addQuartersNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addQuarterNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subQuartersNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this subQuarterNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method $this addWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using date interval).
+ * @method $this addWeek() Add one week to the instance (using date interval).
+ * @method $this subWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using date interval).
+ * @method $this subWeek() Sub one week to the instance (using date interval).
+ * @method $this addWeekdays(int $value = 1) Add weekdays (the $value count passed in) to the instance (using date interval).
+ * @method $this addWeekday() Add one weekday to the instance (using date interval).
+ * @method $this subWeekdays(int $value = 1) Sub weekdays (the $value count passed in) to the instance (using date interval).
+ * @method $this subWeekday() Sub one weekday to the instance (using date interval).
+ * @method $this addRealMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp).
+ * @method $this addRealMicro() Add one microsecond to the instance (using timestamp).
+ * @method $this subRealMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp).
+ * @method $this subRealMicro() Sub one microsecond to the instance (using timestamp).
+ * @method CarbonPeriod microsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given.
+ * @method $this addRealMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp).
+ * @method $this addRealMicrosecond() Add one microsecond to the instance (using timestamp).
+ * @method $this subRealMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp).
+ * @method $this subRealMicrosecond() Sub one microsecond to the instance (using timestamp).
+ * @method CarbonPeriod microsecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given.
+ * @method $this addRealMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp).
+ * @method $this addRealMilli() Add one millisecond to the instance (using timestamp).
+ * @method $this subRealMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp).
+ * @method $this subRealMilli() Sub one millisecond to the instance (using timestamp).
+ * @method CarbonPeriod millisUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given.
+ * @method $this addRealMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp).
+ * @method $this addRealMillisecond() Add one millisecond to the instance (using timestamp).
+ * @method $this subRealMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp).
+ * @method $this subRealMillisecond() Sub one millisecond to the instance (using timestamp).
+ * @method CarbonPeriod millisecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given.
+ * @method $this addRealSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using timestamp).
+ * @method $this addRealSecond() Add one second to the instance (using timestamp).
+ * @method $this subRealSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using timestamp).
+ * @method $this subRealSecond() Sub one second to the instance (using timestamp).
+ * @method CarbonPeriod secondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each second or every X seconds if a factor is given.
+ * @method $this addRealMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using timestamp).
+ * @method $this addRealMinute() Add one minute to the instance (using timestamp).
+ * @method $this subRealMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using timestamp).
+ * @method $this subRealMinute() Sub one minute to the instance (using timestamp).
+ * @method CarbonPeriod minutesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each minute or every X minutes if a factor is given.
+ * @method $this addRealHours(int $value = 1) Add hours (the $value count passed in) to the instance (using timestamp).
+ * @method $this addRealHour() Add one hour to the instance (using timestamp).
+ * @method $this subRealHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using timestamp).
+ * @method $this subRealHour() Sub one hour to the instance (using timestamp).
+ * @method CarbonPeriod hoursUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each hour or every X hours if a factor is given.
+ * @method $this addRealDays(int $value = 1) Add days (the $value count passed in) to the instance (using timestamp).
+ * @method $this addRealDay() Add one day to the instance (using timestamp).
+ * @method $this subRealDays(int $value = 1) Sub days (the $value count passed in) to the instance (using timestamp).
+ * @method $this subRealDay() Sub one day to the instance (using timestamp).
+ * @method CarbonPeriod daysUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each day or every X days if a factor is given.
+ * @method $this addRealWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using timestamp).
+ * @method $this addRealWeek() Add one week to the instance (using timestamp).
+ * @method $this subRealWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using timestamp).
+ * @method $this subRealWeek() Sub one week to the instance (using timestamp).
+ * @method CarbonPeriod weeksUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each week or every X weeks if a factor is given.
+ * @method $this addRealMonths(int $value = 1) Add months (the $value count passed in) to the instance (using timestamp).
+ * @method $this addRealMonth() Add one month to the instance (using timestamp).
+ * @method $this subRealMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using timestamp).
+ * @method $this subRealMonth() Sub one month to the instance (using timestamp).
+ * @method CarbonPeriod monthsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each month or every X months if a factor is given.
+ * @method $this addRealQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using timestamp).
+ * @method $this addRealQuarter() Add one quarter to the instance (using timestamp).
+ * @method $this subRealQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using timestamp).
+ * @method $this subRealQuarter() Sub one quarter to the instance (using timestamp).
+ * @method CarbonPeriod quartersUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each quarter or every X quarters if a factor is given.
+ * @method $this addRealYears(int $value = 1) Add years (the $value count passed in) to the instance (using timestamp).
+ * @method $this addRealYear() Add one year to the instance (using timestamp).
+ * @method $this subRealYears(int $value = 1) Sub years (the $value count passed in) to the instance (using timestamp).
+ * @method $this subRealYear() Sub one year to the instance (using timestamp).
+ * @method CarbonPeriod yearsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each year or every X years if a factor is given.
+ * @method $this addRealDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using timestamp).
+ * @method $this addRealDecade() Add one decade to the instance (using timestamp).
+ * @method $this subRealDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using timestamp).
+ * @method $this subRealDecade() Sub one decade to the instance (using timestamp).
+ * @method CarbonPeriod decadesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each decade or every X decades if a factor is given.
+ * @method $this addRealCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using timestamp).
+ * @method $this addRealCentury() Add one century to the instance (using timestamp).
+ * @method $this subRealCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using timestamp).
+ * @method $this subRealCentury() Sub one century to the instance (using timestamp).
+ * @method CarbonPeriod centuriesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each century or every X centuries if a factor is given.
+ * @method $this addRealMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using timestamp).
+ * @method $this addRealMillennium() Add one millennium to the instance (using timestamp).
+ * @method $this subRealMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using timestamp).
+ * @method $this subRealMillennium() Sub one millennium to the instance (using timestamp).
+ * @method CarbonPeriod millenniaUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millennium or every X millennia if a factor is given.
+ * @method $this roundYear(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function.
+ * @method $this roundYears(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function.
+ * @method $this floorYear(float $precision = 1) Truncate the current instance year with given precision.
+ * @method $this floorYears(float $precision = 1) Truncate the current instance year with given precision.
+ * @method $this ceilYear(float $precision = 1) Ceil the current instance year with given precision.
+ * @method $this ceilYears(float $precision = 1) Ceil the current instance year with given precision.
+ * @method $this roundMonth(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function.
+ * @method $this roundMonths(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function.
+ * @method $this floorMonth(float $precision = 1) Truncate the current instance month with given precision.
+ * @method $this floorMonths(float $precision = 1) Truncate the current instance month with given precision.
+ * @method $this ceilMonth(float $precision = 1) Ceil the current instance month with given precision.
+ * @method $this ceilMonths(float $precision = 1) Ceil the current instance month with given precision.
+ * @method $this roundDay(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function.
+ * @method $this roundDays(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function.
+ * @method $this floorDay(float $precision = 1) Truncate the current instance day with given precision.
+ * @method $this floorDays(float $precision = 1) Truncate the current instance day with given precision.
+ * @method $this ceilDay(float $precision = 1) Ceil the current instance day with given precision.
+ * @method $this ceilDays(float $precision = 1) Ceil the current instance day with given precision.
+ * @method $this roundHour(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function.
+ * @method $this roundHours(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function.
+ * @method $this floorHour(float $precision = 1) Truncate the current instance hour with given precision.
+ * @method $this floorHours(float $precision = 1) Truncate the current instance hour with given precision.
+ * @method $this ceilHour(float $precision = 1) Ceil the current instance hour with given precision.
+ * @method $this ceilHours(float $precision = 1) Ceil the current instance hour with given precision.
+ * @method $this roundMinute(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function.
+ * @method $this roundMinutes(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function.
+ * @method $this floorMinute(float $precision = 1) Truncate the current instance minute with given precision.
+ * @method $this floorMinutes(float $precision = 1) Truncate the current instance minute with given precision.
+ * @method $this ceilMinute(float $precision = 1) Ceil the current instance minute with given precision.
+ * @method $this ceilMinutes(float $precision = 1) Ceil the current instance minute with given precision.
+ * @method $this roundSecond(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function.
+ * @method $this roundSeconds(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function.
+ * @method $this floorSecond(float $precision = 1) Truncate the current instance second with given precision.
+ * @method $this floorSeconds(float $precision = 1) Truncate the current instance second with given precision.
+ * @method $this ceilSecond(float $precision = 1) Ceil the current instance second with given precision.
+ * @method $this ceilSeconds(float $precision = 1) Ceil the current instance second with given precision.
+ * @method $this roundMillennium(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function.
+ * @method $this roundMillennia(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function.
+ * @method $this floorMillennium(float $precision = 1) Truncate the current instance millennium with given precision.
+ * @method $this floorMillennia(float $precision = 1) Truncate the current instance millennium with given precision.
+ * @method $this ceilMillennium(float $precision = 1) Ceil the current instance millennium with given precision.
+ * @method $this ceilMillennia(float $precision = 1) Ceil the current instance millennium with given precision.
+ * @method $this roundCentury(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function.
+ * @method $this roundCenturies(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function.
+ * @method $this floorCentury(float $precision = 1) Truncate the current instance century with given precision.
+ * @method $this floorCenturies(float $precision = 1) Truncate the current instance century with given precision.
+ * @method $this ceilCentury(float $precision = 1) Ceil the current instance century with given precision.
+ * @method $this ceilCenturies(float $precision = 1) Ceil the current instance century with given precision.
+ * @method $this roundDecade(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function.
+ * @method $this roundDecades(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function.
+ * @method $this floorDecade(float $precision = 1) Truncate the current instance decade with given precision.
+ * @method $this floorDecades(float $precision = 1) Truncate the current instance decade with given precision.
+ * @method $this ceilDecade(float $precision = 1) Ceil the current instance decade with given precision.
+ * @method $this ceilDecades(float $precision = 1) Ceil the current instance decade with given precision.
+ * @method $this roundQuarter(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function.
+ * @method $this roundQuarters(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function.
+ * @method $this floorQuarter(float $precision = 1) Truncate the current instance quarter with given precision.
+ * @method $this floorQuarters(float $precision = 1) Truncate the current instance quarter with given precision.
+ * @method $this ceilQuarter(float $precision = 1) Ceil the current instance quarter with given precision.
+ * @method $this ceilQuarters(float $precision = 1) Ceil the current instance quarter with given precision.
+ * @method $this roundMillisecond(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function.
+ * @method $this roundMilliseconds(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function.
+ * @method $this floorMillisecond(float $precision = 1) Truncate the current instance millisecond with given precision.
+ * @method $this floorMilliseconds(float $precision = 1) Truncate the current instance millisecond with given precision.
+ * @method $this ceilMillisecond(float $precision = 1) Ceil the current instance millisecond with given precision.
+ * @method $this ceilMilliseconds(float $precision = 1) Ceil the current instance millisecond with given precision.
+ * @method $this roundMicrosecond(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function.
+ * @method $this roundMicroseconds(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function.
+ * @method $this floorMicrosecond(float $precision = 1) Truncate the current instance microsecond with given precision.
+ * @method $this floorMicroseconds(float $precision = 1) Truncate the current instance microsecond with given precision.
+ * @method $this ceilMicrosecond(float $precision = 1) Ceil the current instance microsecond with given precision.
+ * @method $this ceilMicroseconds(float $precision = 1) Ceil the current instance microsecond with given precision.
+ * @method string shortAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method string longAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method string shortRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method string longRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method string shortRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method string longRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method string shortRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method string longRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method static static|false createFromFormat(string $format, string $time, DateTimeZone|string|false|null $timezone = null) Parse a string into a new Carbon object according to the specified format.
+ * @method static static __set_state(array $array) https://php.net/manual/en/datetime.set-state.php
*
*
*/
diff --git a/api/vendor/nesbot/carbon/src/Carbon/CarbonImmutable.php b/api/vendor/nesbot/carbon/src/Carbon/CarbonImmutable.php
index 960d66c056..4c9c1cfef5 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/CarbonImmutable.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/CarbonImmutable.php
@@ -33,477 +33,477 @@
* @property int $second
* @property int $micro
* @property int $microsecond
- * @property int|float|string $timestamp seconds since the Unix Epoch
- * @property string $englishDayOfWeek the day of week in English
- * @property string $shortEnglishDayOfWeek the abbreviated day of week in English
- * @property string $englishMonth the month in English
- * @property string $shortEnglishMonth the abbreviated month in English
+ * @property int|float|string $timestamp seconds since the Unix Epoch
+ * @property string $englishDayOfWeek the day of week in English
+ * @property string $shortEnglishDayOfWeek the abbreviated day of week in English
+ * @property string $englishMonth the month in English
+ * @property string $shortEnglishMonth the abbreviated month in English
* @property int $milliseconds
* @property int $millisecond
* @property int $milli
- * @property int $week 1 through 53
- * @property int $isoWeek 1 through 53
- * @property int $weekYear year according to week format
- * @property int $isoWeekYear year according to ISO week format
- * @property int $dayOfYear 1 through 366
- * @property int $age does a diffInYears() with default parameters
- * @property int $offset the timezone offset in seconds from UTC
- * @property int $offsetMinutes the timezone offset in minutes from UTC
- * @property int $offsetHours the timezone offset in hours from UTC
- * @property CarbonTimeZone $timezone the current timezone
- * @property CarbonTimeZone $tz alias of $timezone
- * @property-read int $dayOfWeek 0 (for Sunday) through 6 (for Saturday)
- * @property-read int $dayOfWeekIso 1 (for Monday) through 7 (for Sunday)
- * @property-read int $weekOfYear ISO-8601 week number of year, weeks starting on Monday
- * @property-read int $daysInMonth number of days in the given month
- * @property-read string $latinMeridiem "am"/"pm" (Ante meridiem or Post meridiem latin lowercase mark)
- * @property-read string $latinUpperMeridiem "AM"/"PM" (Ante meridiem or Post meridiem latin uppercase mark)
- * @property-read string $timezoneAbbreviatedName the current timezone abbreviated name
- * @property-read string $tzAbbrName alias of $timezoneAbbreviatedName
- * @property-read string $dayName long name of weekday translated according to Carbon locale, in english if no translation available for current language
- * @property-read string $shortDayName short name of weekday translated according to Carbon locale, in english if no translation available for current language
- * @property-read string $minDayName very short name of weekday translated according to Carbon locale, in english if no translation available for current language
- * @property-read string $monthName long name of month translated according to Carbon locale, in english if no translation available for current language
- * @property-read string $shortMonthName short name of month translated according to Carbon locale, in english if no translation available for current language
- * @property-read string $meridiem lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language
- * @property-read string $upperMeridiem uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language
- * @property-read int $noZeroHour current hour from 1 to 24
- * @property-read int $weeksInYear 51 through 53
- * @property-read int $isoWeeksInYear 51 through 53
- * @property-read int $weekOfMonth 1 through 5
- * @property-read int $weekNumberInMonth 1 through 5
- * @property-read int $firstWeekDay 0 through 6
- * @property-read int $lastWeekDay 0 through 6
- * @property-read int $daysInYear 365 or 366
- * @property-read int $quarter the quarter of this instance, 1 - 4
- * @property-read int $decade the decade of this instance
- * @property-read int $century the century of this instance
- * @property-read int $millennium the millennium of this instance
- * @property-read bool $dst daylight savings time indicator, true if DST, false otherwise
- * @property-read bool $local checks if the timezone is local, true if local, false otherwise
- * @property-read bool $utc checks if the timezone is UTC, true if UTC, false otherwise
- * @property-read string $timezoneName the current timezone name
- * @property-read string $tzName alias of $timezoneName
- * @property-read string $locale locale of the current instance
+ * @property int $week 1 through 53
+ * @property int $isoWeek 1 through 53
+ * @property int $weekYear year according to week format
+ * @property int $isoWeekYear year according to ISO week format
+ * @property int $dayOfYear 1 through 366
+ * @property int $age does a diffInYears() with default parameters
+ * @property int $offset the timezone offset in seconds from UTC
+ * @property int $offsetMinutes the timezone offset in minutes from UTC
+ * @property int $offsetHours the timezone offset in hours from UTC
+ * @property CarbonTimeZone $timezone the current timezone
+ * @property CarbonTimeZone $tz alias of $timezone
+ * @property-read int $dayOfWeek 0 (for Sunday) through 6 (for Saturday)
+ * @property-read int $dayOfWeekIso 1 (for Monday) through 7 (for Sunday)
+ * @property-read int $weekOfYear ISO-8601 week number of year, weeks starting on Monday
+ * @property-read int $daysInMonth number of days in the given month
+ * @property-read string $latinMeridiem "am"/"pm" (Ante meridiem or Post meridiem latin lowercase mark)
+ * @property-read string $latinUpperMeridiem "AM"/"PM" (Ante meridiem or Post meridiem latin uppercase mark)
+ * @property-read string $timezoneAbbreviatedName the current timezone abbreviated name
+ * @property-read string $tzAbbrName alias of $timezoneAbbreviatedName
+ * @property-read string $dayName long name of weekday translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string $shortDayName short name of weekday translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string $minDayName very short name of weekday translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string $monthName long name of month translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string $shortMonthName short name of month translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string $meridiem lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language
+ * @property-read string $upperMeridiem uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language
+ * @property-read int $noZeroHour current hour from 1 to 24
+ * @property-read int $weeksInYear 51 through 53
+ * @property-read int $isoWeeksInYear 51 through 53
+ * @property-read int $weekOfMonth 1 through 5
+ * @property-read int $weekNumberInMonth 1 through 5
+ * @property-read int $firstWeekDay 0 through 6
+ * @property-read int $lastWeekDay 0 through 6
+ * @property-read int $daysInYear 365 or 366
+ * @property-read int $quarter the quarter of this instance, 1 - 4
+ * @property-read int $decade the decade of this instance
+ * @property-read int $century the century of this instance
+ * @property-read int $millennium the millennium of this instance
+ * @property-read bool $dst daylight savings time indicator, true if DST, false otherwise
+ * @property-read bool $local checks if the timezone is local, true if local, false otherwise
+ * @property-read bool $utc checks if the timezone is UTC, true if UTC, false otherwise
+ * @property-read string $timezoneName the current timezone name
+ * @property-read string $tzName alias of $timezoneName
+ * @property-read string $locale locale of the current instance
*
- * @method bool isUtc() Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.)
- * @method bool isLocal() Check if the current instance has non-UTC timezone.
- * @method bool isValid() Check if the current instance is a valid date.
- * @method bool isDST() Check if the current instance is in a daylight saving time.
- * @method bool isSunday() Checks if the instance day is sunday.
- * @method bool isMonday() Checks if the instance day is monday.
- * @method bool isTuesday() Checks if the instance day is tuesday.
- * @method bool isWednesday() Checks if the instance day is wednesday.
- * @method bool isThursday() Checks if the instance day is thursday.
- * @method bool isFriday() Checks if the instance day is friday.
- * @method bool isSaturday() Checks if the instance day is saturday.
- * @method bool isSameYear(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same year as the instance. If null passed, compare to now (with the same timezone).
- * @method bool isCurrentYear() Checks if the instance is in the same year as the current moment.
- * @method bool isNextYear() Checks if the instance is in the same year as the current moment next year.
- * @method bool isLastYear() Checks if the instance is in the same year as the current moment last year.
- * @method bool isSameWeek(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same week as the instance. If null passed, compare to now (with the same timezone).
- * @method bool isCurrentWeek() Checks if the instance is in the same week as the current moment.
- * @method bool isNextWeek() Checks if the instance is in the same week as the current moment next week.
- * @method bool isLastWeek() Checks if the instance is in the same week as the current moment last week.
- * @method bool isSameDay(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same day as the instance. If null passed, compare to now (with the same timezone).
- * @method bool isCurrentDay() Checks if the instance is in the same day as the current moment.
- * @method bool isNextDay() Checks if the instance is in the same day as the current moment next day.
- * @method bool isLastDay() Checks if the instance is in the same day as the current moment last day.
- * @method bool isSameHour(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same hour as the instance. If null passed, compare to now (with the same timezone).
- * @method bool isCurrentHour() Checks if the instance is in the same hour as the current moment.
- * @method bool isNextHour() Checks if the instance is in the same hour as the current moment next hour.
- * @method bool isLastHour() Checks if the instance is in the same hour as the current moment last hour.
- * @method bool isSameMinute(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same minute as the instance. If null passed, compare to now (with the same timezone).
- * @method bool isCurrentMinute() Checks if the instance is in the same minute as the current moment.
- * @method bool isNextMinute() Checks if the instance is in the same minute as the current moment next minute.
- * @method bool isLastMinute() Checks if the instance is in the same minute as the current moment last minute.
- * @method bool isSameSecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same second as the instance. If null passed, compare to now (with the same timezone).
- * @method bool isCurrentSecond() Checks if the instance is in the same second as the current moment.
- * @method bool isNextSecond() Checks if the instance is in the same second as the current moment next second.
- * @method bool isLastSecond() Checks if the instance is in the same second as the current moment last second.
- * @method bool isSameMicro(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone).
- * @method bool isCurrentMicro() Checks if the instance is in the same microsecond as the current moment.
- * @method bool isNextMicro() Checks if the instance is in the same microsecond as the current moment next microsecond.
- * @method bool isLastMicro() Checks if the instance is in the same microsecond as the current moment last microsecond.
- * @method bool isSameMicrosecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone).
- * @method bool isCurrentMicrosecond() Checks if the instance is in the same microsecond as the current moment.
- * @method bool isNextMicrosecond() Checks if the instance is in the same microsecond as the current moment next microsecond.
- * @method bool isLastMicrosecond() Checks if the instance is in the same microsecond as the current moment last microsecond.
- * @method bool isCurrentMonth() Checks if the instance is in the same month as the current moment.
- * @method bool isNextMonth() Checks if the instance is in the same month as the current moment next month.
- * @method bool isLastMonth() Checks if the instance is in the same month as the current moment last month.
- * @method bool isCurrentQuarter() Checks if the instance is in the same quarter as the current moment.
- * @method bool isNextQuarter() Checks if the instance is in the same quarter as the current moment next quarter.
- * @method bool isLastQuarter() Checks if the instance is in the same quarter as the current moment last quarter.
- * @method bool isSameDecade(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same decade as the instance. If null passed, compare to now (with the same timezone).
- * @method bool isCurrentDecade() Checks if the instance is in the same decade as the current moment.
- * @method bool isNextDecade() Checks if the instance is in the same decade as the current moment next decade.
- * @method bool isLastDecade() Checks if the instance is in the same decade as the current moment last decade.
- * @method bool isSameCentury(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same century as the instance. If null passed, compare to now (with the same timezone).
- * @method bool isCurrentCentury() Checks if the instance is in the same century as the current moment.
- * @method bool isNextCentury() Checks if the instance is in the same century as the current moment next century.
- * @method bool isLastCentury() Checks if the instance is in the same century as the current moment last century.
- * @method bool isSameMillennium(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same millennium as the instance. If null passed, compare to now (with the same timezone).
- * @method bool isCurrentMillennium() Checks if the instance is in the same millennium as the current moment.
- * @method bool isNextMillennium() Checks if the instance is in the same millennium as the current moment next millennium.
- * @method bool isLastMillennium() Checks if the instance is in the same millennium as the current moment last millennium.
- * @method CarbonImmutable years(int $value) Set current instance year to the given value.
- * @method CarbonImmutable year(int $value) Set current instance year to the given value.
- * @method CarbonImmutable setYears(int $value) Set current instance year to the given value.
- * @method CarbonImmutable setYear(int $value) Set current instance year to the given value.
- * @method CarbonImmutable months(int $value) Set current instance month to the given value.
- * @method CarbonImmutable month(int $value) Set current instance month to the given value.
- * @method CarbonImmutable setMonths(int $value) Set current instance month to the given value.
- * @method CarbonImmutable setMonth(int $value) Set current instance month to the given value.
- * @method CarbonImmutable days(int $value) Set current instance day to the given value.
- * @method CarbonImmutable day(int $value) Set current instance day to the given value.
- * @method CarbonImmutable setDays(int $value) Set current instance day to the given value.
- * @method CarbonImmutable setDay(int $value) Set current instance day to the given value.
- * @method CarbonImmutable hours(int $value) Set current instance hour to the given value.
- * @method CarbonImmutable hour(int $value) Set current instance hour to the given value.
- * @method CarbonImmutable setHours(int $value) Set current instance hour to the given value.
- * @method CarbonImmutable setHour(int $value) Set current instance hour to the given value.
- * @method CarbonImmutable minutes(int $value) Set current instance minute to the given value.
- * @method CarbonImmutable minute(int $value) Set current instance minute to the given value.
- * @method CarbonImmutable setMinutes(int $value) Set current instance minute to the given value.
- * @method CarbonImmutable setMinute(int $value) Set current instance minute to the given value.
- * @method CarbonImmutable seconds(int $value) Set current instance second to the given value.
- * @method CarbonImmutable second(int $value) Set current instance second to the given value.
- * @method CarbonImmutable setSeconds(int $value) Set current instance second to the given value.
- * @method CarbonImmutable setSecond(int $value) Set current instance second to the given value.
- * @method CarbonImmutable millis(int $value) Set current instance millisecond to the given value.
- * @method CarbonImmutable milli(int $value) Set current instance millisecond to the given value.
- * @method CarbonImmutable setMillis(int $value) Set current instance millisecond to the given value.
- * @method CarbonImmutable setMilli(int $value) Set current instance millisecond to the given value.
- * @method CarbonImmutable milliseconds(int $value) Set current instance millisecond to the given value.
- * @method CarbonImmutable millisecond(int $value) Set current instance millisecond to the given value.
- * @method CarbonImmutable setMilliseconds(int $value) Set current instance millisecond to the given value.
- * @method CarbonImmutable setMillisecond(int $value) Set current instance millisecond to the given value.
- * @method CarbonImmutable micros(int $value) Set current instance microsecond to the given value.
- * @method CarbonImmutable micro(int $value) Set current instance microsecond to the given value.
- * @method CarbonImmutable setMicros(int $value) Set current instance microsecond to the given value.
- * @method CarbonImmutable setMicro(int $value) Set current instance microsecond to the given value.
- * @method CarbonImmutable microseconds(int $value) Set current instance microsecond to the given value.
- * @method CarbonImmutable microsecond(int $value) Set current instance microsecond to the given value.
- * @method CarbonImmutable setMicroseconds(int $value) Set current instance microsecond to the given value.
- * @method CarbonImmutable setMicrosecond(int $value) Set current instance microsecond to the given value.
- * @method CarbonImmutable addYears(int $value = 1) Add years (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable addYear() Add one year to the instance (using date interval).
- * @method CarbonImmutable subYears(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable subYear() Sub one year to the instance (using date interval).
- * @method CarbonImmutable addYearsWithOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
- * @method CarbonImmutable addYearWithOverflow() Add one year to the instance (using date interval) with overflow explicitly allowed.
- * @method CarbonImmutable subYearsWithOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
- * @method CarbonImmutable subYearWithOverflow() Sub one year to the instance (using date interval) with overflow explicitly allowed.
- * @method CarbonImmutable addYearsWithoutOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addYearWithoutOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subYearsWithoutOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subYearWithoutOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addYearsWithNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addYearWithNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subYearsWithNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subYearWithNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addYearsNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addYearNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subYearsNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subYearNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addMonths(int $value = 1) Add months (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable addMonth() Add one month to the instance (using date interval).
- * @method CarbonImmutable subMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable subMonth() Sub one month to the instance (using date interval).
- * @method CarbonImmutable addMonthsWithOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
- * @method CarbonImmutable addMonthWithOverflow() Add one month to the instance (using date interval) with overflow explicitly allowed.
- * @method CarbonImmutable subMonthsWithOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
- * @method CarbonImmutable subMonthWithOverflow() Sub one month to the instance (using date interval) with overflow explicitly allowed.
- * @method CarbonImmutable addMonthsWithoutOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addMonthWithoutOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subMonthsWithoutOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subMonthWithoutOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addMonthsWithNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addMonthWithNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subMonthsWithNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subMonthWithNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addMonthsNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addMonthNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subMonthsNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subMonthNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addDays(int $value = 1) Add days (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable addDay() Add one day to the instance (using date interval).
- * @method CarbonImmutable subDays(int $value = 1) Sub days (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable subDay() Sub one day to the instance (using date interval).
- * @method CarbonImmutable addHours(int $value = 1) Add hours (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable addHour() Add one hour to the instance (using date interval).
- * @method CarbonImmutable subHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable subHour() Sub one hour to the instance (using date interval).
- * @method CarbonImmutable addMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable addMinute() Add one minute to the instance (using date interval).
- * @method CarbonImmutable subMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable subMinute() Sub one minute to the instance (using date interval).
- * @method CarbonImmutable addSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable addSecond() Add one second to the instance (using date interval).
- * @method CarbonImmutable subSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable subSecond() Sub one second to the instance (using date interval).
- * @method CarbonImmutable addMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable addMilli() Add one millisecond to the instance (using date interval).
- * @method CarbonImmutable subMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable subMilli() Sub one millisecond to the instance (using date interval).
- * @method CarbonImmutable addMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable addMillisecond() Add one millisecond to the instance (using date interval).
- * @method CarbonImmutable subMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable subMillisecond() Sub one millisecond to the instance (using date interval).
- * @method CarbonImmutable addMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable addMicro() Add one microsecond to the instance (using date interval).
- * @method CarbonImmutable subMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable subMicro() Sub one microsecond to the instance (using date interval).
- * @method CarbonImmutable addMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable addMicrosecond() Add one microsecond to the instance (using date interval).
- * @method CarbonImmutable subMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable subMicrosecond() Sub one microsecond to the instance (using date interval).
- * @method CarbonImmutable addMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable addMillennium() Add one millennium to the instance (using date interval).
- * @method CarbonImmutable subMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable subMillennium() Sub one millennium to the instance (using date interval).
- * @method CarbonImmutable addMillenniaWithOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
- * @method CarbonImmutable addMillenniumWithOverflow() Add one millennium to the instance (using date interval) with overflow explicitly allowed.
- * @method CarbonImmutable subMillenniaWithOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
- * @method CarbonImmutable subMillenniumWithOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly allowed.
- * @method CarbonImmutable addMillenniaWithoutOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addMillenniumWithoutOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subMillenniaWithoutOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subMillenniumWithoutOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addMillenniaWithNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addMillenniumWithNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subMillenniaWithNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subMillenniumWithNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addMillenniaNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addMillenniumNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subMillenniaNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subMillenniumNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable addCentury() Add one century to the instance (using date interval).
- * @method CarbonImmutable subCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable subCentury() Sub one century to the instance (using date interval).
- * @method CarbonImmutable addCenturiesWithOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
- * @method CarbonImmutable addCenturyWithOverflow() Add one century to the instance (using date interval) with overflow explicitly allowed.
- * @method CarbonImmutable subCenturiesWithOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
- * @method CarbonImmutable subCenturyWithOverflow() Sub one century to the instance (using date interval) with overflow explicitly allowed.
- * @method CarbonImmutable addCenturiesWithoutOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addCenturyWithoutOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subCenturiesWithoutOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subCenturyWithoutOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addCenturiesWithNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addCenturyWithNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subCenturiesWithNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subCenturyWithNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addCenturiesNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addCenturyNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subCenturiesNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subCenturyNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable addDecade() Add one decade to the instance (using date interval).
- * @method CarbonImmutable subDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable subDecade() Sub one decade to the instance (using date interval).
- * @method CarbonImmutable addDecadesWithOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
- * @method CarbonImmutable addDecadeWithOverflow() Add one decade to the instance (using date interval) with overflow explicitly allowed.
- * @method CarbonImmutable subDecadesWithOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
- * @method CarbonImmutable subDecadeWithOverflow() Sub one decade to the instance (using date interval) with overflow explicitly allowed.
- * @method CarbonImmutable addDecadesWithoutOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addDecadeWithoutOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subDecadesWithoutOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subDecadeWithoutOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addDecadesWithNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addDecadeWithNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subDecadesWithNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subDecadeWithNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addDecadesNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addDecadeNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subDecadesNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subDecadeNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable addQuarter() Add one quarter to the instance (using date interval).
- * @method CarbonImmutable subQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable subQuarter() Sub one quarter to the instance (using date interval).
- * @method CarbonImmutable addQuartersWithOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
- * @method CarbonImmutable addQuarterWithOverflow() Add one quarter to the instance (using date interval) with overflow explicitly allowed.
- * @method CarbonImmutable subQuartersWithOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
- * @method CarbonImmutable subQuarterWithOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly allowed.
- * @method CarbonImmutable addQuartersWithoutOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addQuarterWithoutOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subQuartersWithoutOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subQuarterWithoutOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addQuartersWithNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addQuarterWithNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subQuartersWithNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subQuarterWithNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addQuartersNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addQuarterNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subQuartersNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable subQuarterNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
- * @method CarbonImmutable addWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable addWeek() Add one week to the instance (using date interval).
- * @method CarbonImmutable subWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable subWeek() Sub one week to the instance (using date interval).
- * @method CarbonImmutable addWeekdays(int $value = 1) Add weekdays (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable addWeekday() Add one weekday to the instance (using date interval).
- * @method CarbonImmutable subWeekdays(int $value = 1) Sub weekdays (the $value count passed in) to the instance (using date interval).
- * @method CarbonImmutable subWeekday() Sub one weekday to the instance (using date interval).
- * @method CarbonImmutable addRealMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable addRealMicro() Add one microsecond to the instance (using timestamp).
- * @method CarbonImmutable subRealMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable subRealMicro() Sub one microsecond to the instance (using timestamp).
- * @method CarbonPeriod microsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given.
- * @method CarbonImmutable addRealMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable addRealMicrosecond() Add one microsecond to the instance (using timestamp).
- * @method CarbonImmutable subRealMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable subRealMicrosecond() Sub one microsecond to the instance (using timestamp).
- * @method CarbonPeriod microsecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given.
- * @method CarbonImmutable addRealMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable addRealMilli() Add one millisecond to the instance (using timestamp).
- * @method CarbonImmutable subRealMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable subRealMilli() Sub one millisecond to the instance (using timestamp).
- * @method CarbonPeriod millisUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given.
- * @method CarbonImmutable addRealMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable addRealMillisecond() Add one millisecond to the instance (using timestamp).
- * @method CarbonImmutable subRealMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable subRealMillisecond() Sub one millisecond to the instance (using timestamp).
- * @method CarbonPeriod millisecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given.
- * @method CarbonImmutable addRealSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable addRealSecond() Add one second to the instance (using timestamp).
- * @method CarbonImmutable subRealSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable subRealSecond() Sub one second to the instance (using timestamp).
- * @method CarbonPeriod secondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each second or every X seconds if a factor is given.
- * @method CarbonImmutable addRealMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable addRealMinute() Add one minute to the instance (using timestamp).
- * @method CarbonImmutable subRealMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable subRealMinute() Sub one minute to the instance (using timestamp).
- * @method CarbonPeriod minutesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each minute or every X minutes if a factor is given.
- * @method CarbonImmutable addRealHours(int $value = 1) Add hours (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable addRealHour() Add one hour to the instance (using timestamp).
- * @method CarbonImmutable subRealHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable subRealHour() Sub one hour to the instance (using timestamp).
- * @method CarbonPeriod hoursUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each hour or every X hours if a factor is given.
- * @method CarbonImmutable addRealDays(int $value = 1) Add days (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable addRealDay() Add one day to the instance (using timestamp).
- * @method CarbonImmutable subRealDays(int $value = 1) Sub days (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable subRealDay() Sub one day to the instance (using timestamp).
- * @method CarbonPeriod daysUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each day or every X days if a factor is given.
- * @method CarbonImmutable addRealWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable addRealWeek() Add one week to the instance (using timestamp).
- * @method CarbonImmutable subRealWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable subRealWeek() Sub one week to the instance (using timestamp).
- * @method CarbonPeriod weeksUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each week or every X weeks if a factor is given.
- * @method CarbonImmutable addRealMonths(int $value = 1) Add months (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable addRealMonth() Add one month to the instance (using timestamp).
- * @method CarbonImmutable subRealMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable subRealMonth() Sub one month to the instance (using timestamp).
- * @method CarbonPeriod monthsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each month or every X months if a factor is given.
- * @method CarbonImmutable addRealQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable addRealQuarter() Add one quarter to the instance (using timestamp).
- * @method CarbonImmutable subRealQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable subRealQuarter() Sub one quarter to the instance (using timestamp).
- * @method CarbonPeriod quartersUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each quarter or every X quarters if a factor is given.
- * @method CarbonImmutable addRealYears(int $value = 1) Add years (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable addRealYear() Add one year to the instance (using timestamp).
- * @method CarbonImmutable subRealYears(int $value = 1) Sub years (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable subRealYear() Sub one year to the instance (using timestamp).
- * @method CarbonPeriod yearsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each year or every X years if a factor is given.
- * @method CarbonImmutable addRealDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable addRealDecade() Add one decade to the instance (using timestamp).
- * @method CarbonImmutable subRealDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable subRealDecade() Sub one decade to the instance (using timestamp).
- * @method CarbonPeriod decadesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each decade or every X decades if a factor is given.
- * @method CarbonImmutable addRealCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable addRealCentury() Add one century to the instance (using timestamp).
- * @method CarbonImmutable subRealCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable subRealCentury() Sub one century to the instance (using timestamp).
- * @method CarbonPeriod centuriesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each century or every X centuries if a factor is given.
- * @method CarbonImmutable addRealMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable addRealMillennium() Add one millennium to the instance (using timestamp).
- * @method CarbonImmutable subRealMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using timestamp).
- * @method CarbonImmutable subRealMillennium() Sub one millennium to the instance (using timestamp).
- * @method CarbonPeriod millenniaUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millennium or every X millennia if a factor is given.
- * @method CarbonImmutable roundYear(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function.
- * @method CarbonImmutable roundYears(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function.
- * @method CarbonImmutable floorYear(float $precision = 1) Truncate the current instance year with given precision.
- * @method CarbonImmutable floorYears(float $precision = 1) Truncate the current instance year with given precision.
- * @method CarbonImmutable ceilYear(float $precision = 1) Ceil the current instance year with given precision.
- * @method CarbonImmutable ceilYears(float $precision = 1) Ceil the current instance year with given precision.
- * @method CarbonImmutable roundMonth(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function.
- * @method CarbonImmutable roundMonths(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function.
- * @method CarbonImmutable floorMonth(float $precision = 1) Truncate the current instance month with given precision.
- * @method CarbonImmutable floorMonths(float $precision = 1) Truncate the current instance month with given precision.
- * @method CarbonImmutable ceilMonth(float $precision = 1) Ceil the current instance month with given precision.
- * @method CarbonImmutable ceilMonths(float $precision = 1) Ceil the current instance month with given precision.
- * @method CarbonImmutable roundDay(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function.
- * @method CarbonImmutable roundDays(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function.
- * @method CarbonImmutable floorDay(float $precision = 1) Truncate the current instance day with given precision.
- * @method CarbonImmutable floorDays(float $precision = 1) Truncate the current instance day with given precision.
- * @method CarbonImmutable ceilDay(float $precision = 1) Ceil the current instance day with given precision.
- * @method CarbonImmutable ceilDays(float $precision = 1) Ceil the current instance day with given precision.
- * @method CarbonImmutable roundHour(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function.
- * @method CarbonImmutable roundHours(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function.
- * @method CarbonImmutable floorHour(float $precision = 1) Truncate the current instance hour with given precision.
- * @method CarbonImmutable floorHours(float $precision = 1) Truncate the current instance hour with given precision.
- * @method CarbonImmutable ceilHour(float $precision = 1) Ceil the current instance hour with given precision.
- * @method CarbonImmutable ceilHours(float $precision = 1) Ceil the current instance hour with given precision.
- * @method CarbonImmutable roundMinute(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function.
- * @method CarbonImmutable roundMinutes(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function.
- * @method CarbonImmutable floorMinute(float $precision = 1) Truncate the current instance minute with given precision.
- * @method CarbonImmutable floorMinutes(float $precision = 1) Truncate the current instance minute with given precision.
- * @method CarbonImmutable ceilMinute(float $precision = 1) Ceil the current instance minute with given precision.
- * @method CarbonImmutable ceilMinutes(float $precision = 1) Ceil the current instance minute with given precision.
- * @method CarbonImmutable roundSecond(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function.
- * @method CarbonImmutable roundSeconds(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function.
- * @method CarbonImmutable floorSecond(float $precision = 1) Truncate the current instance second with given precision.
- * @method CarbonImmutable floorSeconds(float $precision = 1) Truncate the current instance second with given precision.
- * @method CarbonImmutable ceilSecond(float $precision = 1) Ceil the current instance second with given precision.
- * @method CarbonImmutable ceilSeconds(float $precision = 1) Ceil the current instance second with given precision.
- * @method CarbonImmutable roundMillennium(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function.
- * @method CarbonImmutable roundMillennia(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function.
- * @method CarbonImmutable floorMillennium(float $precision = 1) Truncate the current instance millennium with given precision.
- * @method CarbonImmutable floorMillennia(float $precision = 1) Truncate the current instance millennium with given precision.
- * @method CarbonImmutable ceilMillennium(float $precision = 1) Ceil the current instance millennium with given precision.
- * @method CarbonImmutable ceilMillennia(float $precision = 1) Ceil the current instance millennium with given precision.
- * @method CarbonImmutable roundCentury(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function.
- * @method CarbonImmutable roundCenturies(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function.
- * @method CarbonImmutable floorCentury(float $precision = 1) Truncate the current instance century with given precision.
- * @method CarbonImmutable floorCenturies(float $precision = 1) Truncate the current instance century with given precision.
- * @method CarbonImmutable ceilCentury(float $precision = 1) Ceil the current instance century with given precision.
- * @method CarbonImmutable ceilCenturies(float $precision = 1) Ceil the current instance century with given precision.
- * @method CarbonImmutable roundDecade(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function.
- * @method CarbonImmutable roundDecades(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function.
- * @method CarbonImmutable floorDecade(float $precision = 1) Truncate the current instance decade with given precision.
- * @method CarbonImmutable floorDecades(float $precision = 1) Truncate the current instance decade with given precision.
- * @method CarbonImmutable ceilDecade(float $precision = 1) Ceil the current instance decade with given precision.
- * @method CarbonImmutable ceilDecades(float $precision = 1) Ceil the current instance decade with given precision.
- * @method CarbonImmutable roundQuarter(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function.
- * @method CarbonImmutable roundQuarters(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function.
- * @method CarbonImmutable floorQuarter(float $precision = 1) Truncate the current instance quarter with given precision.
- * @method CarbonImmutable floorQuarters(float $precision = 1) Truncate the current instance quarter with given precision.
- * @method CarbonImmutable ceilQuarter(float $precision = 1) Ceil the current instance quarter with given precision.
- * @method CarbonImmutable ceilQuarters(float $precision = 1) Ceil the current instance quarter with given precision.
- * @method CarbonImmutable roundMillisecond(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function.
- * @method CarbonImmutable roundMilliseconds(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function.
- * @method CarbonImmutable floorMillisecond(float $precision = 1) Truncate the current instance millisecond with given precision.
- * @method CarbonImmutable floorMilliseconds(float $precision = 1) Truncate the current instance millisecond with given precision.
- * @method CarbonImmutable ceilMillisecond(float $precision = 1) Ceil the current instance millisecond with given precision.
- * @method CarbonImmutable ceilMilliseconds(float $precision = 1) Ceil the current instance millisecond with given precision.
- * @method CarbonImmutable roundMicrosecond(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function.
- * @method CarbonImmutable roundMicroseconds(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function.
- * @method CarbonImmutable floorMicrosecond(float $precision = 1) Truncate the current instance microsecond with given precision.
- * @method CarbonImmutable floorMicroseconds(float $precision = 1) Truncate the current instance microsecond with given precision.
- * @method CarbonImmutable ceilMicrosecond(float $precision = 1) Ceil the current instance microsecond with given precision.
- * @method CarbonImmutable ceilMicroseconds(float $precision = 1) Ceil the current instance microsecond with given precision.
- * @method string shortAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
- * @method string longAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
- * @method string shortRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
- * @method string longRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
- * @method string shortRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
- * @method string longRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
- * @method string shortRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
- * @method string longRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
- * @method static static|false createFromFormat(string $format, string $time, string|DateTimeZone $timezone = null) Parse a string into a new CarbonImmutable object according to the specified format.
- * @method static static __set_state(array $array) https://php.net/manual/en/datetime.set-state.php
+ * @method bool isUtc() Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.)
+ * @method bool isLocal() Check if the current instance has non-UTC timezone.
+ * @method bool isValid() Check if the current instance is a valid date.
+ * @method bool isDST() Check if the current instance is in a daylight saving time.
+ * @method bool isSunday() Checks if the instance day is sunday.
+ * @method bool isMonday() Checks if the instance day is monday.
+ * @method bool isTuesday() Checks if the instance day is tuesday.
+ * @method bool isWednesday() Checks if the instance day is wednesday.
+ * @method bool isThursday() Checks if the instance day is thursday.
+ * @method bool isFriday() Checks if the instance day is friday.
+ * @method bool isSaturday() Checks if the instance day is saturday.
+ * @method bool isSameYear(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same year as the instance. If null passed, compare to now (with the same timezone).
+ * @method bool isCurrentYear() Checks if the instance is in the same year as the current moment.
+ * @method bool isNextYear() Checks if the instance is in the same year as the current moment next year.
+ * @method bool isLastYear() Checks if the instance is in the same year as the current moment last year.
+ * @method bool isSameWeek(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same week as the instance. If null passed, compare to now (with the same timezone).
+ * @method bool isCurrentWeek() Checks if the instance is in the same week as the current moment.
+ * @method bool isNextWeek() Checks if the instance is in the same week as the current moment next week.
+ * @method bool isLastWeek() Checks if the instance is in the same week as the current moment last week.
+ * @method bool isSameDay(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same day as the instance. If null passed, compare to now (with the same timezone).
+ * @method bool isCurrentDay() Checks if the instance is in the same day as the current moment.
+ * @method bool isNextDay() Checks if the instance is in the same day as the current moment next day.
+ * @method bool isLastDay() Checks if the instance is in the same day as the current moment last day.
+ * @method bool isSameHour(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same hour as the instance. If null passed, compare to now (with the same timezone).
+ * @method bool isCurrentHour() Checks if the instance is in the same hour as the current moment.
+ * @method bool isNextHour() Checks if the instance is in the same hour as the current moment next hour.
+ * @method bool isLastHour() Checks if the instance is in the same hour as the current moment last hour.
+ * @method bool isSameMinute(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same minute as the instance. If null passed, compare to now (with the same timezone).
+ * @method bool isCurrentMinute() Checks if the instance is in the same minute as the current moment.
+ * @method bool isNextMinute() Checks if the instance is in the same minute as the current moment next minute.
+ * @method bool isLastMinute() Checks if the instance is in the same minute as the current moment last minute.
+ * @method bool isSameSecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same second as the instance. If null passed, compare to now (with the same timezone).
+ * @method bool isCurrentSecond() Checks if the instance is in the same second as the current moment.
+ * @method bool isNextSecond() Checks if the instance is in the same second as the current moment next second.
+ * @method bool isLastSecond() Checks if the instance is in the same second as the current moment last second.
+ * @method bool isSameMicro(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone).
+ * @method bool isCurrentMicro() Checks if the instance is in the same microsecond as the current moment.
+ * @method bool isNextMicro() Checks if the instance is in the same microsecond as the current moment next microsecond.
+ * @method bool isLastMicro() Checks if the instance is in the same microsecond as the current moment last microsecond.
+ * @method bool isSameMicrosecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone).
+ * @method bool isCurrentMicrosecond() Checks if the instance is in the same microsecond as the current moment.
+ * @method bool isNextMicrosecond() Checks if the instance is in the same microsecond as the current moment next microsecond.
+ * @method bool isLastMicrosecond() Checks if the instance is in the same microsecond as the current moment last microsecond.
+ * @method bool isCurrentMonth() Checks if the instance is in the same month as the current moment.
+ * @method bool isNextMonth() Checks if the instance is in the same month as the current moment next month.
+ * @method bool isLastMonth() Checks if the instance is in the same month as the current moment last month.
+ * @method bool isCurrentQuarter() Checks if the instance is in the same quarter as the current moment.
+ * @method bool isNextQuarter() Checks if the instance is in the same quarter as the current moment next quarter.
+ * @method bool isLastQuarter() Checks if the instance is in the same quarter as the current moment last quarter.
+ * @method bool isSameDecade(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same decade as the instance. If null passed, compare to now (with the same timezone).
+ * @method bool isCurrentDecade() Checks if the instance is in the same decade as the current moment.
+ * @method bool isNextDecade() Checks if the instance is in the same decade as the current moment next decade.
+ * @method bool isLastDecade() Checks if the instance is in the same decade as the current moment last decade.
+ * @method bool isSameCentury(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same century as the instance. If null passed, compare to now (with the same timezone).
+ * @method bool isCurrentCentury() Checks if the instance is in the same century as the current moment.
+ * @method bool isNextCentury() Checks if the instance is in the same century as the current moment next century.
+ * @method bool isLastCentury() Checks if the instance is in the same century as the current moment last century.
+ * @method bool isSameMillennium(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same millennium as the instance. If null passed, compare to now (with the same timezone).
+ * @method bool isCurrentMillennium() Checks if the instance is in the same millennium as the current moment.
+ * @method bool isNextMillennium() Checks if the instance is in the same millennium as the current moment next millennium.
+ * @method bool isLastMillennium() Checks if the instance is in the same millennium as the current moment last millennium.
+ * @method CarbonImmutable years(int $value) Set current instance year to the given value.
+ * @method CarbonImmutable year(int $value) Set current instance year to the given value.
+ * @method CarbonImmutable setYears(int $value) Set current instance year to the given value.
+ * @method CarbonImmutable setYear(int $value) Set current instance year to the given value.
+ * @method CarbonImmutable months(int $value) Set current instance month to the given value.
+ * @method CarbonImmutable month(int $value) Set current instance month to the given value.
+ * @method CarbonImmutable setMonths(int $value) Set current instance month to the given value.
+ * @method CarbonImmutable setMonth(int $value) Set current instance month to the given value.
+ * @method CarbonImmutable days(int $value) Set current instance day to the given value.
+ * @method CarbonImmutable day(int $value) Set current instance day to the given value.
+ * @method CarbonImmutable setDays(int $value) Set current instance day to the given value.
+ * @method CarbonImmutable setDay(int $value) Set current instance day to the given value.
+ * @method CarbonImmutable hours(int $value) Set current instance hour to the given value.
+ * @method CarbonImmutable hour(int $value) Set current instance hour to the given value.
+ * @method CarbonImmutable setHours(int $value) Set current instance hour to the given value.
+ * @method CarbonImmutable setHour(int $value) Set current instance hour to the given value.
+ * @method CarbonImmutable minutes(int $value) Set current instance minute to the given value.
+ * @method CarbonImmutable minute(int $value) Set current instance minute to the given value.
+ * @method CarbonImmutable setMinutes(int $value) Set current instance minute to the given value.
+ * @method CarbonImmutable setMinute(int $value) Set current instance minute to the given value.
+ * @method CarbonImmutable seconds(int $value) Set current instance second to the given value.
+ * @method CarbonImmutable second(int $value) Set current instance second to the given value.
+ * @method CarbonImmutable setSeconds(int $value) Set current instance second to the given value.
+ * @method CarbonImmutable setSecond(int $value) Set current instance second to the given value.
+ * @method CarbonImmutable millis(int $value) Set current instance millisecond to the given value.
+ * @method CarbonImmutable milli(int $value) Set current instance millisecond to the given value.
+ * @method CarbonImmutable setMillis(int $value) Set current instance millisecond to the given value.
+ * @method CarbonImmutable setMilli(int $value) Set current instance millisecond to the given value.
+ * @method CarbonImmutable milliseconds(int $value) Set current instance millisecond to the given value.
+ * @method CarbonImmutable millisecond(int $value) Set current instance millisecond to the given value.
+ * @method CarbonImmutable setMilliseconds(int $value) Set current instance millisecond to the given value.
+ * @method CarbonImmutable setMillisecond(int $value) Set current instance millisecond to the given value.
+ * @method CarbonImmutable micros(int $value) Set current instance microsecond to the given value.
+ * @method CarbonImmutable micro(int $value) Set current instance microsecond to the given value.
+ * @method CarbonImmutable setMicros(int $value) Set current instance microsecond to the given value.
+ * @method CarbonImmutable setMicro(int $value) Set current instance microsecond to the given value.
+ * @method CarbonImmutable microseconds(int $value) Set current instance microsecond to the given value.
+ * @method CarbonImmutable microsecond(int $value) Set current instance microsecond to the given value.
+ * @method CarbonImmutable setMicroseconds(int $value) Set current instance microsecond to the given value.
+ * @method CarbonImmutable setMicrosecond(int $value) Set current instance microsecond to the given value.
+ * @method CarbonImmutable addYears(int $value = 1) Add years (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable addYear() Add one year to the instance (using date interval).
+ * @method CarbonImmutable subYears(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable subYear() Sub one year to the instance (using date interval).
+ * @method CarbonImmutable addYearsWithOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method CarbonImmutable addYearWithOverflow() Add one year to the instance (using date interval) with overflow explicitly allowed.
+ * @method CarbonImmutable subYearsWithOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method CarbonImmutable subYearWithOverflow() Sub one year to the instance (using date interval) with overflow explicitly allowed.
+ * @method CarbonImmutable addYearsWithoutOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addYearWithoutOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subYearsWithoutOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subYearWithoutOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addYearsWithNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addYearWithNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subYearsWithNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subYearWithNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addYearsNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addYearNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subYearsNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subYearNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addMonths(int $value = 1) Add months (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable addMonth() Add one month to the instance (using date interval).
+ * @method CarbonImmutable subMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable subMonth() Sub one month to the instance (using date interval).
+ * @method CarbonImmutable addMonthsWithOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method CarbonImmutable addMonthWithOverflow() Add one month to the instance (using date interval) with overflow explicitly allowed.
+ * @method CarbonImmutable subMonthsWithOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method CarbonImmutable subMonthWithOverflow() Sub one month to the instance (using date interval) with overflow explicitly allowed.
+ * @method CarbonImmutable addMonthsWithoutOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addMonthWithoutOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subMonthsWithoutOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subMonthWithoutOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addMonthsWithNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addMonthWithNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subMonthsWithNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subMonthWithNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addMonthsNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addMonthNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subMonthsNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subMonthNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addDays(int $value = 1) Add days (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable addDay() Add one day to the instance (using date interval).
+ * @method CarbonImmutable subDays(int $value = 1) Sub days (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable subDay() Sub one day to the instance (using date interval).
+ * @method CarbonImmutable addHours(int $value = 1) Add hours (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable addHour() Add one hour to the instance (using date interval).
+ * @method CarbonImmutable subHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable subHour() Sub one hour to the instance (using date interval).
+ * @method CarbonImmutable addMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable addMinute() Add one minute to the instance (using date interval).
+ * @method CarbonImmutable subMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable subMinute() Sub one minute to the instance (using date interval).
+ * @method CarbonImmutable addSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable addSecond() Add one second to the instance (using date interval).
+ * @method CarbonImmutable subSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable subSecond() Sub one second to the instance (using date interval).
+ * @method CarbonImmutable addMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable addMilli() Add one millisecond to the instance (using date interval).
+ * @method CarbonImmutable subMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable subMilli() Sub one millisecond to the instance (using date interval).
+ * @method CarbonImmutable addMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable addMillisecond() Add one millisecond to the instance (using date interval).
+ * @method CarbonImmutable subMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable subMillisecond() Sub one millisecond to the instance (using date interval).
+ * @method CarbonImmutable addMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable addMicro() Add one microsecond to the instance (using date interval).
+ * @method CarbonImmutable subMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable subMicro() Sub one microsecond to the instance (using date interval).
+ * @method CarbonImmutable addMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable addMicrosecond() Add one microsecond to the instance (using date interval).
+ * @method CarbonImmutable subMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable subMicrosecond() Sub one microsecond to the instance (using date interval).
+ * @method CarbonImmutable addMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable addMillennium() Add one millennium to the instance (using date interval).
+ * @method CarbonImmutable subMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable subMillennium() Sub one millennium to the instance (using date interval).
+ * @method CarbonImmutable addMillenniaWithOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method CarbonImmutable addMillenniumWithOverflow() Add one millennium to the instance (using date interval) with overflow explicitly allowed.
+ * @method CarbonImmutable subMillenniaWithOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method CarbonImmutable subMillenniumWithOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly allowed.
+ * @method CarbonImmutable addMillenniaWithoutOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addMillenniumWithoutOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subMillenniaWithoutOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subMillenniumWithoutOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addMillenniaWithNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addMillenniumWithNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subMillenniaWithNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subMillenniumWithNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addMillenniaNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addMillenniumNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subMillenniaNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subMillenniumNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable addCentury() Add one century to the instance (using date interval).
+ * @method CarbonImmutable subCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable subCentury() Sub one century to the instance (using date interval).
+ * @method CarbonImmutable addCenturiesWithOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method CarbonImmutable addCenturyWithOverflow() Add one century to the instance (using date interval) with overflow explicitly allowed.
+ * @method CarbonImmutable subCenturiesWithOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method CarbonImmutable subCenturyWithOverflow() Sub one century to the instance (using date interval) with overflow explicitly allowed.
+ * @method CarbonImmutable addCenturiesWithoutOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addCenturyWithoutOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subCenturiesWithoutOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subCenturyWithoutOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addCenturiesWithNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addCenturyWithNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subCenturiesWithNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subCenturyWithNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addCenturiesNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addCenturyNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subCenturiesNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subCenturyNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable addDecade() Add one decade to the instance (using date interval).
+ * @method CarbonImmutable subDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable subDecade() Sub one decade to the instance (using date interval).
+ * @method CarbonImmutable addDecadesWithOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method CarbonImmutable addDecadeWithOverflow() Add one decade to the instance (using date interval) with overflow explicitly allowed.
+ * @method CarbonImmutable subDecadesWithOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method CarbonImmutable subDecadeWithOverflow() Sub one decade to the instance (using date interval) with overflow explicitly allowed.
+ * @method CarbonImmutable addDecadesWithoutOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addDecadeWithoutOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subDecadesWithoutOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subDecadeWithoutOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addDecadesWithNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addDecadeWithNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subDecadesWithNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subDecadeWithNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addDecadesNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addDecadeNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subDecadesNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subDecadeNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable addQuarter() Add one quarter to the instance (using date interval).
+ * @method CarbonImmutable subQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable subQuarter() Sub one quarter to the instance (using date interval).
+ * @method CarbonImmutable addQuartersWithOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method CarbonImmutable addQuarterWithOverflow() Add one quarter to the instance (using date interval) with overflow explicitly allowed.
+ * @method CarbonImmutable subQuartersWithOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method CarbonImmutable subQuarterWithOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly allowed.
+ * @method CarbonImmutable addQuartersWithoutOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addQuarterWithoutOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subQuartersWithoutOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subQuarterWithoutOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addQuartersWithNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addQuarterWithNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subQuartersWithNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subQuarterWithNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addQuartersNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addQuarterNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subQuartersNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable subQuarterNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method CarbonImmutable addWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable addWeek() Add one week to the instance (using date interval).
+ * @method CarbonImmutable subWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable subWeek() Sub one week to the instance (using date interval).
+ * @method CarbonImmutable addWeekdays(int $value = 1) Add weekdays (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable addWeekday() Add one weekday to the instance (using date interval).
+ * @method CarbonImmutable subWeekdays(int $value = 1) Sub weekdays (the $value count passed in) to the instance (using date interval).
+ * @method CarbonImmutable subWeekday() Sub one weekday to the instance (using date interval).
+ * @method CarbonImmutable addRealMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable addRealMicro() Add one microsecond to the instance (using timestamp).
+ * @method CarbonImmutable subRealMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable subRealMicro() Sub one microsecond to the instance (using timestamp).
+ * @method CarbonPeriod microsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given.
+ * @method CarbonImmutable addRealMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable addRealMicrosecond() Add one microsecond to the instance (using timestamp).
+ * @method CarbonImmutable subRealMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable subRealMicrosecond() Sub one microsecond to the instance (using timestamp).
+ * @method CarbonPeriod microsecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given.
+ * @method CarbonImmutable addRealMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable addRealMilli() Add one millisecond to the instance (using timestamp).
+ * @method CarbonImmutable subRealMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable subRealMilli() Sub one millisecond to the instance (using timestamp).
+ * @method CarbonPeriod millisUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given.
+ * @method CarbonImmutable addRealMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable addRealMillisecond() Add one millisecond to the instance (using timestamp).
+ * @method CarbonImmutable subRealMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable subRealMillisecond() Sub one millisecond to the instance (using timestamp).
+ * @method CarbonPeriod millisecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given.
+ * @method CarbonImmutable addRealSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable addRealSecond() Add one second to the instance (using timestamp).
+ * @method CarbonImmutable subRealSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable subRealSecond() Sub one second to the instance (using timestamp).
+ * @method CarbonPeriod secondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each second or every X seconds if a factor is given.
+ * @method CarbonImmutable addRealMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable addRealMinute() Add one minute to the instance (using timestamp).
+ * @method CarbonImmutable subRealMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable subRealMinute() Sub one minute to the instance (using timestamp).
+ * @method CarbonPeriod minutesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each minute or every X minutes if a factor is given.
+ * @method CarbonImmutable addRealHours(int $value = 1) Add hours (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable addRealHour() Add one hour to the instance (using timestamp).
+ * @method CarbonImmutable subRealHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable subRealHour() Sub one hour to the instance (using timestamp).
+ * @method CarbonPeriod hoursUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each hour or every X hours if a factor is given.
+ * @method CarbonImmutable addRealDays(int $value = 1) Add days (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable addRealDay() Add one day to the instance (using timestamp).
+ * @method CarbonImmutable subRealDays(int $value = 1) Sub days (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable subRealDay() Sub one day to the instance (using timestamp).
+ * @method CarbonPeriod daysUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each day or every X days if a factor is given.
+ * @method CarbonImmutable addRealWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable addRealWeek() Add one week to the instance (using timestamp).
+ * @method CarbonImmutable subRealWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable subRealWeek() Sub one week to the instance (using timestamp).
+ * @method CarbonPeriod weeksUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each week or every X weeks if a factor is given.
+ * @method CarbonImmutable addRealMonths(int $value = 1) Add months (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable addRealMonth() Add one month to the instance (using timestamp).
+ * @method CarbonImmutable subRealMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable subRealMonth() Sub one month to the instance (using timestamp).
+ * @method CarbonPeriod monthsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each month or every X months if a factor is given.
+ * @method CarbonImmutable addRealQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable addRealQuarter() Add one quarter to the instance (using timestamp).
+ * @method CarbonImmutable subRealQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable subRealQuarter() Sub one quarter to the instance (using timestamp).
+ * @method CarbonPeriod quartersUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each quarter or every X quarters if a factor is given.
+ * @method CarbonImmutable addRealYears(int $value = 1) Add years (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable addRealYear() Add one year to the instance (using timestamp).
+ * @method CarbonImmutable subRealYears(int $value = 1) Sub years (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable subRealYear() Sub one year to the instance (using timestamp).
+ * @method CarbonPeriod yearsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each year or every X years if a factor is given.
+ * @method CarbonImmutable addRealDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable addRealDecade() Add one decade to the instance (using timestamp).
+ * @method CarbonImmutable subRealDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable subRealDecade() Sub one decade to the instance (using timestamp).
+ * @method CarbonPeriod decadesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each decade or every X decades if a factor is given.
+ * @method CarbonImmutable addRealCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable addRealCentury() Add one century to the instance (using timestamp).
+ * @method CarbonImmutable subRealCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable subRealCentury() Sub one century to the instance (using timestamp).
+ * @method CarbonPeriod centuriesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each century or every X centuries if a factor is given.
+ * @method CarbonImmutable addRealMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable addRealMillennium() Add one millennium to the instance (using timestamp).
+ * @method CarbonImmutable subRealMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using timestamp).
+ * @method CarbonImmutable subRealMillennium() Sub one millennium to the instance (using timestamp).
+ * @method CarbonPeriod millenniaUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millennium or every X millennia if a factor is given.
+ * @method CarbonImmutable roundYear(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function.
+ * @method CarbonImmutable roundYears(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function.
+ * @method CarbonImmutable floorYear(float $precision = 1) Truncate the current instance year with given precision.
+ * @method CarbonImmutable floorYears(float $precision = 1) Truncate the current instance year with given precision.
+ * @method CarbonImmutable ceilYear(float $precision = 1) Ceil the current instance year with given precision.
+ * @method CarbonImmutable ceilYears(float $precision = 1) Ceil the current instance year with given precision.
+ * @method CarbonImmutable roundMonth(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function.
+ * @method CarbonImmutable roundMonths(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function.
+ * @method CarbonImmutable floorMonth(float $precision = 1) Truncate the current instance month with given precision.
+ * @method CarbonImmutable floorMonths(float $precision = 1) Truncate the current instance month with given precision.
+ * @method CarbonImmutable ceilMonth(float $precision = 1) Ceil the current instance month with given precision.
+ * @method CarbonImmutable ceilMonths(float $precision = 1) Ceil the current instance month with given precision.
+ * @method CarbonImmutable roundDay(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function.
+ * @method CarbonImmutable roundDays(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function.
+ * @method CarbonImmutable floorDay(float $precision = 1) Truncate the current instance day with given precision.
+ * @method CarbonImmutable floorDays(float $precision = 1) Truncate the current instance day with given precision.
+ * @method CarbonImmutable ceilDay(float $precision = 1) Ceil the current instance day with given precision.
+ * @method CarbonImmutable ceilDays(float $precision = 1) Ceil the current instance day with given precision.
+ * @method CarbonImmutable roundHour(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function.
+ * @method CarbonImmutable roundHours(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function.
+ * @method CarbonImmutable floorHour(float $precision = 1) Truncate the current instance hour with given precision.
+ * @method CarbonImmutable floorHours(float $precision = 1) Truncate the current instance hour with given precision.
+ * @method CarbonImmutable ceilHour(float $precision = 1) Ceil the current instance hour with given precision.
+ * @method CarbonImmutable ceilHours(float $precision = 1) Ceil the current instance hour with given precision.
+ * @method CarbonImmutable roundMinute(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function.
+ * @method CarbonImmutable roundMinutes(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function.
+ * @method CarbonImmutable floorMinute(float $precision = 1) Truncate the current instance minute with given precision.
+ * @method CarbonImmutable floorMinutes(float $precision = 1) Truncate the current instance minute with given precision.
+ * @method CarbonImmutable ceilMinute(float $precision = 1) Ceil the current instance minute with given precision.
+ * @method CarbonImmutable ceilMinutes(float $precision = 1) Ceil the current instance minute with given precision.
+ * @method CarbonImmutable roundSecond(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function.
+ * @method CarbonImmutable roundSeconds(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function.
+ * @method CarbonImmutable floorSecond(float $precision = 1) Truncate the current instance second with given precision.
+ * @method CarbonImmutable floorSeconds(float $precision = 1) Truncate the current instance second with given precision.
+ * @method CarbonImmutable ceilSecond(float $precision = 1) Ceil the current instance second with given precision.
+ * @method CarbonImmutable ceilSeconds(float $precision = 1) Ceil the current instance second with given precision.
+ * @method CarbonImmutable roundMillennium(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function.
+ * @method CarbonImmutable roundMillennia(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function.
+ * @method CarbonImmutable floorMillennium(float $precision = 1) Truncate the current instance millennium with given precision.
+ * @method CarbonImmutable floorMillennia(float $precision = 1) Truncate the current instance millennium with given precision.
+ * @method CarbonImmutable ceilMillennium(float $precision = 1) Ceil the current instance millennium with given precision.
+ * @method CarbonImmutable ceilMillennia(float $precision = 1) Ceil the current instance millennium with given precision.
+ * @method CarbonImmutable roundCentury(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function.
+ * @method CarbonImmutable roundCenturies(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function.
+ * @method CarbonImmutable floorCentury(float $precision = 1) Truncate the current instance century with given precision.
+ * @method CarbonImmutable floorCenturies(float $precision = 1) Truncate the current instance century with given precision.
+ * @method CarbonImmutable ceilCentury(float $precision = 1) Ceil the current instance century with given precision.
+ * @method CarbonImmutable ceilCenturies(float $precision = 1) Ceil the current instance century with given precision.
+ * @method CarbonImmutable roundDecade(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function.
+ * @method CarbonImmutable roundDecades(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function.
+ * @method CarbonImmutable floorDecade(float $precision = 1) Truncate the current instance decade with given precision.
+ * @method CarbonImmutable floorDecades(float $precision = 1) Truncate the current instance decade with given precision.
+ * @method CarbonImmutable ceilDecade(float $precision = 1) Ceil the current instance decade with given precision.
+ * @method CarbonImmutable ceilDecades(float $precision = 1) Ceil the current instance decade with given precision.
+ * @method CarbonImmutable roundQuarter(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function.
+ * @method CarbonImmutable roundQuarters(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function.
+ * @method CarbonImmutable floorQuarter(float $precision = 1) Truncate the current instance quarter with given precision.
+ * @method CarbonImmutable floorQuarters(float $precision = 1) Truncate the current instance quarter with given precision.
+ * @method CarbonImmutable ceilQuarter(float $precision = 1) Ceil the current instance quarter with given precision.
+ * @method CarbonImmutable ceilQuarters(float $precision = 1) Ceil the current instance quarter with given precision.
+ * @method CarbonImmutable roundMillisecond(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function.
+ * @method CarbonImmutable roundMilliseconds(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function.
+ * @method CarbonImmutable floorMillisecond(float $precision = 1) Truncate the current instance millisecond with given precision.
+ * @method CarbonImmutable floorMilliseconds(float $precision = 1) Truncate the current instance millisecond with given precision.
+ * @method CarbonImmutable ceilMillisecond(float $precision = 1) Ceil the current instance millisecond with given precision.
+ * @method CarbonImmutable ceilMilliseconds(float $precision = 1) Ceil the current instance millisecond with given precision.
+ * @method CarbonImmutable roundMicrosecond(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function.
+ * @method CarbonImmutable roundMicroseconds(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function.
+ * @method CarbonImmutable floorMicrosecond(float $precision = 1) Truncate the current instance microsecond with given precision.
+ * @method CarbonImmutable floorMicroseconds(float $precision = 1) Truncate the current instance microsecond with given precision.
+ * @method CarbonImmutable ceilMicrosecond(float $precision = 1) Ceil the current instance microsecond with given precision.
+ * @method CarbonImmutable ceilMicroseconds(float $precision = 1) Ceil the current instance microsecond with given precision.
+ * @method string shortAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method string longAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method string shortRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method string longRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method string shortRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method string longRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method string shortRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method string longRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method static static|false createFromFormat(string $format, string $time, DateTimeZone|string|false|null $timezone = null) Parse a string into a new CarbonImmutable object according to the specified format.
+ * @method static static __set_state(array $array) https://php.net/manual/en/datetime.set-state.php
*
*
*/
diff --git a/api/vendor/nesbot/carbon/src/Carbon/CarbonInterface.php b/api/vendor/nesbot/carbon/src/Carbon/CarbonInterface.php
index 4b6ce76c5b..b90e298172 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/CarbonInterface.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/CarbonInterface.php
@@ -702,15 +702,6 @@ public function __get($name);
*/
public function __isset($name);
- /**
- * Returns the values to dump on serialize() called on.
- *
- * Only used by PHP >= 7.4.
- *
- * @return array
- */
- public function __serialize(): array;
-
/**
* Set a part of the Carbon object
*
@@ -754,15 +745,6 @@ public function __sleep();
*/
public function __toString();
- /**
- * Set locale if specified on unserialize() called.
- *
- * Only used by PHP >= 7.4.
- *
- * @return void
- */
- public function __unserialize(array $data): void;
-
/**
* Add given units or interval to the current instance.
*
@@ -1059,13 +1041,13 @@ public function copy();
* If $hour is not null then the default values for $minute and $second
* will be 0.
*
- * @param int|null $year
- * @param int|null $month
- * @param int|null $day
- * @param int|null $hour
- * @param int|null $minute
- * @param int|null $second
- * @param DateTimeZone|string|null $tz
+ * @param DateTimeInterface|int|null $year
+ * @param int|null $month
+ * @param int|null $day
+ * @param int|null $hour
+ * @param int|null $minute
+ * @param int|null $second
+ * @param DateTimeZone|string|null $tz
*
* @throws InvalidFormatException
*
@@ -2771,12 +2753,35 @@ public function isLastOfMonth();
public function isLeapYear();
/**
- * Determines if the instance is a long year
+ * Determines if the instance is a long year (using ISO 8601 year).
+ *
+ * @example
+ * ```
+ * Carbon::parse('2015-01-01')->isLongIsoYear(); // true
+ * Carbon::parse('2016-01-01')->isLongIsoYear(); // true
+ * Carbon::parse('2016-01-03')->isLongIsoYear(); // false
+ * Carbon::parse('2019-12-29')->isLongIsoYear(); // false
+ * Carbon::parse('2019-12-30')->isLongIsoYear(); // true
+ * ```
+ *
+ * @see https://en.wikipedia.org/wiki/ISO_8601#Week_dates
+ *
+ * @return bool
+ */
+ public function isLongIsoYear();
+
+ /**
+ * Determines if the instance is a long year (using calendar year).
+ *
+ * ⚠️ This method completely ignores month and day to use the numeric year number,
+ * it's not correct if the exact date matters. For instance as `2019-12-30` is already
+ * in the first week of the 2020 year, if you want to know from this date if ISO week
+ * year 2020 is a long year, use `isLongIsoYear` instead.
*
* @example
* ```
- * Carbon::parse('2015-01-01')->isLongYear(); // true
- * Carbon::parse('2016-01-01')->isLongYear(); // false
+ * Carbon::create(2015)->isLongYear(); // true
+ * Carbon::create(2016)->isLongYear(); // false
* ```
*
* @see https://en.wikipedia.org/wiki/ISO_8601#Week_dates
@@ -5115,12 +5120,14 @@ public function weeksInYear($dayOfWeek = null, $dayOfYear = null);
*
* /!\ Use this method for unit tests only.
*
+ * @template T
+ *
* @param DateTimeInterface|Closure|static|string|false|null $testNow real or mock Carbon instance
- * @param Closure|null $callback
+ * @param Closure(): T $callback
*
- * @return mixed
+ * @return T
*/
- public static function withTestNow($testNow = null, $callback = null);
+ public static function withTestNow($testNow, $callback);
/**
* Create a Carbon instance for yesterday.
diff --git a/api/vendor/nesbot/carbon/src/Carbon/CarbonInterval.php b/api/vendor/nesbot/carbon/src/Carbon/CarbonInterval.php
index 796f9cdcd0..8437c545e1 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/CarbonInterval.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/CarbonInterval.php
@@ -15,6 +15,7 @@
use Carbon\Exceptions\BadFluentSetterException;
use Carbon\Exceptions\InvalidCastException;
use Carbon\Exceptions\InvalidIntervalException;
+use Carbon\Exceptions\OutOfRangeException;
use Carbon\Exceptions\ParseErrorException;
use Carbon\Exceptions\UnitNotConfiguredException;
use Carbon\Exceptions\UnknownGetterException;
@@ -28,11 +29,14 @@
use Carbon\Traits\ToStringFormat;
use Closure;
use DateInterval;
+use DateMalformedIntervalStringException;
use DateTimeInterface;
use DateTimeZone;
use Exception;
+use InvalidArgumentException;
use ReflectionException;
use ReturnTypeWillChange;
+use RuntimeException;
use Throwable;
/**
@@ -245,6 +249,11 @@ class CarbonInterval extends DateInterval implements CarbonConverterInterface
*/
private static $flipCascadeFactors;
+ /**
+ * @var bool
+ */
+ private static $floatSettersEnabled = false;
+
/**
* The registered macros.
*
@@ -346,6 +355,19 @@ public static function setCascadeFactors(array $cascadeFactors)
static::$cascadeFactors = $cascadeFactors;
}
+ /**
+ * This option allow you to opt-in for the Carbon 3 behavior where float
+ * values will no longer be cast to integer (so truncated).
+ *
+ * ⚠️ This settings will be applied globally, which mean your whole application
+ * code including the third-party dependencies that also may use Carbon will
+ * adopt the new behavior.
+ */
+ public static function enableFloatSetters(bool $floatSettersEnabled = true): void
+ {
+ self::$floatSettersEnabled = $floatSettersEnabled;
+ }
+
///////////////////////////////////////////////////////////////////
//////////////////////////// CONSTRUCTORS /////////////////////////
///////////////////////////////////////////////////////////////////
@@ -354,13 +376,13 @@ public static function setCascadeFactors(array $cascadeFactors)
* Create a new CarbonInterval instance.
*
* @param Closure|DateInterval|string|int|null $years
- * @param int|null $months
- * @param int|null $weeks
- * @param int|null $days
- * @param int|null $hours
- * @param int|null $minutes
- * @param int|null $seconds
- * @param int|null $microseconds
+ * @param int|float|null $months
+ * @param int|float|null $weeks
+ * @param int|float|null $days
+ * @param int|float|null $hours
+ * @param int|float|null $minutes
+ * @param int|float|null $seconds
+ * @param int|float|null $microseconds
*
* @throws Exception when the interval_spec (passed as $years) cannot be parsed as an interval.
*/
@@ -380,8 +402,9 @@ public function __construct($years = 1, $months = null, $weeks = null, $days = n
}
$spec = $years;
+ $isStringSpec = (\is_string($spec) && !preg_match('/^[\d.]/', $spec));
- if (!\is_string($spec) || (float) $years || preg_match('/^[\d.]/', $years)) {
+ if (!$isStringSpec || (float) $years) {
$spec = static::PERIOD_PREFIX;
$spec .= $years > 0 ? $years.static::PERIOD_YEARS : '';
@@ -406,7 +429,74 @@ public function __construct($years = 1, $months = null, $weeks = null, $days = n
}
}
- parent::__construct($spec);
+ try {
+ parent::__construct($spec);
+ } catch (Throwable $exception) {
+ try {
+ parent::__construct('PT0S');
+
+ if ($isStringSpec) {
+ if (!preg_match('/^P
+ (?:(?[+-]?\d*(?:\.\d+)?)Y)?
+ (?:(?[+-]?\d*(?:\.\d+)?)M)?
+ (?:(?[+-]?\d*(?:\.\d+)?)W)?
+ (?:(?[+-]?\d*(?:\.\d+)?)D)?
+ (?:T
+ (?:(?[+-]?\d*(?:\.\d+)?)H)?
+ (?:(?[+-]?\d*(?:\.\d+)?)M)?
+ (?:(?[+-]?\d*(?:\.\d+)?)S)?
+ )?
+ $/x', $spec, $match)) {
+ throw new InvalidArgumentException("Invalid duration: $spec");
+ }
+
+ $years = (float) ($match['year'] ?? 0);
+ $this->assertSafeForInteger('year', $years);
+ $months = (float) ($match['month'] ?? 0);
+ $this->assertSafeForInteger('month', $months);
+ $weeks = (float) ($match['week'] ?? 0);
+ $this->assertSafeForInteger('week', $weeks);
+ $days = (float) ($match['day'] ?? 0);
+ $this->assertSafeForInteger('day', $days);
+ $hours = (float) ($match['hour'] ?? 0);
+ $this->assertSafeForInteger('hour', $hours);
+ $minutes = (float) ($match['minute'] ?? 0);
+ $this->assertSafeForInteger('minute', $minutes);
+ $seconds = (float) ($match['second'] ?? 0);
+ $this->assertSafeForInteger('second', $seconds);
+ }
+
+ $totalDays = (($weeks * static::getDaysPerWeek()) + $days);
+ $this->assertSafeForInteger('days total (including weeks)', $totalDays);
+
+ $this->y = (int) $years;
+ $this->m = (int) $months;
+ $this->d = (int) $totalDays;
+ $this->h = (int) $hours;
+ $this->i = (int) $minutes;
+ $this->s = (int) $seconds;
+
+ if (
+ ((float) $this->y) !== $years ||
+ ((float) $this->m) !== $months ||
+ ((float) $this->d) !== $totalDays ||
+ ((float) $this->h) !== $hours ||
+ ((float) $this->i) !== $minutes ||
+ ((float) $this->s) !== $seconds
+ ) {
+ $this->add(static::fromString(
+ ($years - $this->y).' years '.
+ ($months - $this->m).' months '.
+ ($totalDays - $this->d).' days '.
+ ($hours - $this->h).' hours '.
+ ($minutes - $this->i).' minutes '.
+ ($seconds - $this->s).' seconds '
+ ));
+ }
+ } catch (Throwable $secondException) {
+ throw $secondException instanceof OutOfRangeException ? $secondException : $exception;
+ }
+ }
if ($microseconds !== null) {
$this->f = $microseconds / Carbon::MICROSECONDS_PER_SECOND;
@@ -682,6 +772,23 @@ public static function __callStatic($method, $parameters)
}
}
+ /**
+ * Evaluate the PHP generated by var_export() and recreate the exported CarbonInterval instance.
+ *
+ * @param array $dump data as exported by var_export()
+ *
+ * @return static
+ */
+ #[ReturnTypeWillChange]
+ public static function __set_state($dump)
+ {
+ /** @noinspection PhpVoidFunctionResultUsedInspection */
+ /** @var DateInterval $dateInterval */
+ $dateInterval = parent::__set_state($dump);
+
+ return static::instance($dateInterval);
+ }
+
/**
* Return the current context from inside a macro callee or a new one if static.
*
@@ -952,11 +1059,18 @@ public function cast(string $className)
* set the $days field.
*
* @param DateInterval $interval
+ * @param bool $skipCopy set to true to return the passed object
+ * (without copying it) if it's already of the
+ * current class
*
* @return static
*/
- public static function instance(DateInterval $interval, array $skip = [])
+ public static function instance(DateInterval $interval, array $skip = [], bool $skipCopy = false)
{
+ if ($skipCopy && $interval instanceof static) {
+ return $interval;
+ }
+
return self::castIntervalToClass($interval, static::class, $skip);
}
@@ -968,17 +1082,20 @@ public static function instance(DateInterval $interval, array $skip = [])
*
* @param mixed|int|DateInterval|string|Closure|null $interval interval or number of the given $unit
* @param string|null $unit if specified, $interval must be an integer
+ * @param bool $skipCopy set to true to return the passed object
+ * (without copying it) if it's already of the
+ * current class
*
* @return static|null
*/
- public static function make($interval, $unit = null)
+ public static function make($interval, $unit = null, bool $skipCopy = false)
{
if ($unit) {
$interval = "$interval ".Carbon::pluralUnit($unit);
}
if ($interval instanceof DateInterval) {
- return static::instance($interval);
+ return static::instance($interval, [], $skipCopy);
}
if ($interval instanceof Closure) {
@@ -1004,8 +1121,14 @@ protected static function makeFromString(string $interval)
return static::fromString($interval);
}
- /** @var static $interval */
- $interval = static::createFromDateString($interval);
+ // @codeCoverageIgnoreStart
+ try {
+ /** @var static $interval */
+ $interval = static::createFromDateString($interval);
+ } catch (DateMalformedIntervalStringException $e) {
+ return null;
+ }
+ // @codeCoverageIgnoreEnd
return !$interval || $interval->isEmpty() ? null : $interval;
}
@@ -1138,43 +1261,63 @@ public function set($name, $value = null)
foreach ($properties as $key => $value) {
switch (Carbon::singularUnit(rtrim($key, 'z'))) {
case 'year':
+ $this->checkIntegerValue($key, $value);
$this->y = $value;
+ $this->handleDecimalPart('year', $value, $this->y);
break;
case 'month':
+ $this->checkIntegerValue($key, $value);
$this->m = $value;
+ $this->handleDecimalPart('month', $value, $this->m);
break;
case 'week':
- $this->d = $value * (int) static::getDaysPerWeek();
+ $this->checkIntegerValue($key, $value);
+ $days = $value * (int) static::getDaysPerWeek();
+ $this->assertSafeForInteger('days total (including weeks)', $days);
+ $this->d = $days;
+ $this->handleDecimalPart('day', $days, $this->d);
break;
case 'day':
+ $this->checkIntegerValue($key, $value);
$this->d = $value;
+ $this->handleDecimalPart('day', $value, $this->d);
break;
case 'daysexcludeweek':
case 'dayzexcludeweek':
- $this->d = $this->weeks * (int) static::getDaysPerWeek() + $value;
+ $this->checkIntegerValue($key, $value);
+ $days = $this->weeks * (int) static::getDaysPerWeek() + $value;
+ $this->assertSafeForInteger('days total (including weeks)', $days);
+ $this->d = $days;
+ $this->handleDecimalPart('day', $days, $this->d);
break;
case 'hour':
+ $this->checkIntegerValue($key, $value);
$this->h = $value;
+ $this->handleDecimalPart('hour', $value, $this->h);
break;
case 'minute':
+ $this->checkIntegerValue($key, $value);
$this->i = $value;
+ $this->handleDecimalPart('minute', $value, $this->i);
break;
case 'second':
+ $this->checkIntegerValue($key, $value);
$this->s = $value;
+ $this->handleDecimalPart('second', $value, $this->s);
break;
@@ -2834,4 +2977,78 @@ private function needsDeclension(string $mode, int $index, int $parts): bool
return true;
}
}
+
+ private function checkIntegerValue(string $name, $value)
+ {
+ if (\is_int($value)) {
+ return;
+ }
+
+ $this->assertSafeForInteger($name, $value);
+
+ if (\is_float($value) && (((float) (int) $value) === $value)) {
+ return;
+ }
+
+ if (!self::$floatSettersEnabled) {
+ $type = \gettype($value);
+ @trigger_error(
+ "Since 2.70.0, it's deprecated to pass $type value for $name.\n".
+ "It's truncated when stored as an integer interval unit.\n".
+ "From 3.0.0, decimal part will no longer be truncated and will be cascaded to smaller units.\n".
+ "- To maintain the current behavior, use explicit cast: $name((int) \$value)\n".
+ "- To adopt the new behavior globally, call CarbonInterval::enableFloatSetters()\n",
+ \E_USER_DEPRECATED
+ );
+ }
+ }
+
+ /**
+ * Throw an exception if precision loss when storing the given value as an integer would be >= 1.0.
+ */
+ private function assertSafeForInteger(string $name, $value)
+ {
+ if ($value && !\is_int($value) && ($value >= 0x7fffffffffffffff || $value <= -0x7fffffffffffffff)) {
+ throw new OutOfRangeException($name, -0x7fffffffffffffff, 0x7fffffffffffffff, $value);
+ }
+ }
+
+ private function handleDecimalPart(string $unit, $value, $integerValue)
+ {
+ if (self::$floatSettersEnabled) {
+ $floatValue = (float) $value;
+ $base = (float) $integerValue;
+
+ if ($floatValue === $base) {
+ return;
+ }
+
+ $units = [
+ 'y' => 'year',
+ 'm' => 'month',
+ 'd' => 'day',
+ 'h' => 'hour',
+ 'i' => 'minute',
+ 's' => 'second',
+ ];
+ $upper = true;
+
+ foreach ($units as $property => $name) {
+ if ($name === $unit) {
+ $upper = false;
+
+ continue;
+ }
+
+ if (!$upper && $this->$property !== 0) {
+ throw new RuntimeException(
+ "You cannot set $unit to a float value as $name would be overridden, ".
+ 'set it first to 0 explicitly if you really want to erase its value'
+ );
+ }
+ }
+
+ $this->add($unit, $floatValue - $base);
+ }
+ }
}
diff --git a/api/vendor/nesbot/carbon/src/Carbon/CarbonPeriod.php b/api/vendor/nesbot/carbon/src/Carbon/CarbonPeriod.php
index 01679142ea..d12a986971 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/CarbonPeriod.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/CarbonPeriod.php
@@ -51,43 +51,47 @@
* @property-read CarbonInterface $end Period end date.
* @property-read CarbonInterval $interval Underlying date interval instance. Always present, one day by default.
*
- * @method static CarbonPeriod start($date, $inclusive = null) Create instance specifying start date or modify the start date if called on an instance.
- * @method static CarbonPeriod since($date, $inclusive = null) Alias for start().
- * @method static CarbonPeriod sinceNow($inclusive = null) Create instance with start date set to now or set the start date to now if called on an instance.
- * @method static CarbonPeriod end($date = null, $inclusive = null) Create instance specifying end date or modify the end date if called on an instance.
- * @method static CarbonPeriod until($date = null, $inclusive = null) Alias for end().
- * @method static CarbonPeriod untilNow($inclusive = null) Create instance with end date set to now or set the end date to now if called on an instance.
- * @method static CarbonPeriod dates($start, $end = null) Create instance with start and end dates or modify the start and end dates if called on an instance.
- * @method static CarbonPeriod between($start, $end = null) Create instance with start and end dates or modify the start and end dates if called on an instance.
- * @method static CarbonPeriod recurrences($recurrences = null) Create instance with maximum number of recurrences or modify the number of recurrences if called on an instance.
- * @method static CarbonPeriod times($recurrences = null) Alias for recurrences().
- * @method static CarbonPeriod options($options = null) Create instance with options or modify the options if called on an instance.
- * @method static CarbonPeriod toggle($options, $state = null) Create instance with options toggled on or off, or toggle options if called on an instance.
- * @method static CarbonPeriod filter($callback, $name = null) Create instance with filter added to the stack or append a filter if called on an instance.
- * @method static CarbonPeriod push($callback, $name = null) Alias for filter().
- * @method static CarbonPeriod prepend($callback, $name = null) Create instance with filter prepended to the stack or prepend a filter if called on an instance.
- * @method static CarbonPeriod filters(array $filters = []) Create instance with filters stack or replace the whole filters stack if called on an instance.
- * @method static CarbonPeriod interval($interval) Create instance with given date interval or modify the interval if called on an instance.
- * @method static CarbonPeriod each($interval) Create instance with given date interval or modify the interval if called on an instance.
- * @method static CarbonPeriod every($interval) Create instance with given date interval or modify the interval if called on an instance.
- * @method static CarbonPeriod step($interval) Create instance with given date interval or modify the interval if called on an instance.
- * @method static CarbonPeriod stepBy($interval) Create instance with given date interval or modify the interval if called on an instance.
- * @method static CarbonPeriod invert() Create instance with inverted date interval or invert the interval if called on an instance.
- * @method static CarbonPeriod years($years = 1) Create instance specifying a number of years for date interval or replace the interval by the given a number of years if called on an instance.
- * @method static CarbonPeriod year($years = 1) Alias for years().
- * @method static CarbonPeriod months($months = 1) Create instance specifying a number of months for date interval or replace the interval by the given a number of months if called on an instance.
- * @method static CarbonPeriod month($months = 1) Alias for months().
- * @method static CarbonPeriod weeks($weeks = 1) Create instance specifying a number of weeks for date interval or replace the interval by the given a number of weeks if called on an instance.
- * @method static CarbonPeriod week($weeks = 1) Alias for weeks().
- * @method static CarbonPeriod days($days = 1) Create instance specifying a number of days for date interval or replace the interval by the given a number of days if called on an instance.
- * @method static CarbonPeriod dayz($days = 1) Alias for days().
- * @method static CarbonPeriod day($days = 1) Alias for days().
- * @method static CarbonPeriod hours($hours = 1) Create instance specifying a number of hours for date interval or replace the interval by the given a number of hours if called on an instance.
- * @method static CarbonPeriod hour($hours = 1) Alias for hours().
- * @method static CarbonPeriod minutes($minutes = 1) Create instance specifying a number of minutes for date interval or replace the interval by the given a number of minutes if called on an instance.
- * @method static CarbonPeriod minute($minutes = 1) Alias for minutes().
- * @method static CarbonPeriod seconds($seconds = 1) Create instance specifying a number of seconds for date interval or replace the interval by the given a number of seconds if called on an instance.
- * @method static CarbonPeriod second($seconds = 1) Alias for seconds().
+ * @method static static start($date, $inclusive = null) Create instance specifying start date or modify the start date if called on an instance.
+ * @method static static since($date, $inclusive = null) Alias for start().
+ * @method static static sinceNow($inclusive = null) Create instance with start date set to now or set the start date to now if called on an instance.
+ * @method static static end($date = null, $inclusive = null) Create instance specifying end date or modify the end date if called on an instance.
+ * @method static static until($date = null, $inclusive = null) Alias for end().
+ * @method static static untilNow($inclusive = null) Create instance with end date set to now or set the end date to now if called on an instance.
+ * @method static static dates($start, $end = null) Create instance with start and end dates or modify the start and end dates if called on an instance.
+ * @method static static between($start, $end = null) Create instance with start and end dates or modify the start and end dates if called on an instance.
+ * @method static static recurrences($recurrences = null) Create instance with maximum number of recurrences or modify the number of recurrences if called on an instance.
+ * @method static static times($recurrences = null) Alias for recurrences().
+ * @method static static options($options = null) Create instance with options or modify the options if called on an instance.
+ * @method static static toggle($options, $state = null) Create instance with options toggled on or off, or toggle options if called on an instance.
+ * @method static static filter($callback, $name = null) Create instance with filter added to the stack or append a filter if called on an instance.
+ * @method static static push($callback, $name = null) Alias for filter().
+ * @method static static prepend($callback, $name = null) Create instance with filter prepended to the stack or prepend a filter if called on an instance.
+ * @method static static filters(array $filters = []) Create instance with filters stack or replace the whole filters stack if called on an instance.
+ * @method static static interval($interval) Create instance with given date interval or modify the interval if called on an instance.
+ * @method static static each($interval) Create instance with given date interval or modify the interval if called on an instance.
+ * @method static static every($interval) Create instance with given date interval or modify the interval if called on an instance.
+ * @method static static step($interval) Create instance with given date interval or modify the interval if called on an instance.
+ * @method static static stepBy($interval) Create instance with given date interval or modify the interval if called on an instance.
+ * @method static static invert() Create instance with inverted date interval or invert the interval if called on an instance.
+ * @method static static years($years = 1) Create instance specifying a number of years for date interval or replace the interval by the given a number of years if called on an instance.
+ * @method static static year($years = 1) Alias for years().
+ * @method static static months($months = 1) Create instance specifying a number of months for date interval or replace the interval by the given a number of months if called on an instance.
+ * @method static static month($months = 1) Alias for months().
+ * @method static static weeks($weeks = 1) Create instance specifying a number of weeks for date interval or replace the interval by the given a number of weeks if called on an instance.
+ * @method static static week($weeks = 1) Alias for weeks().
+ * @method static static days($days = 1) Create instance specifying a number of days for date interval or replace the interval by the given a number of days if called on an instance.
+ * @method static static dayz($days = 1) Alias for days().
+ * @method static static day($days = 1) Alias for days().
+ * @method static static hours($hours = 1) Create instance specifying a number of hours for date interval or replace the interval by the given a number of hours if called on an instance.
+ * @method static static hour($hours = 1) Alias for hours().
+ * @method static static minutes($minutes = 1) Create instance specifying a number of minutes for date interval or replace the interval by the given a number of minutes if called on an instance.
+ * @method static static minute($minutes = 1) Alias for minutes().
+ * @method static static seconds($seconds = 1) Create instance specifying a number of seconds for date interval or replace the interval by the given a number of seconds if called on an instance.
+ * @method static static second($seconds = 1) Alias for seconds().
+ * @method static static milliseconds($milliseconds = 1) Create instance specifying a number of milliseconds for date interval or replace the interval by the given a number of milliseconds if called on an instance.
+ * @method static static millisecond($milliseconds = 1) Alias for milliseconds().
+ * @method static static microseconds($microseconds = 1) Create instance specifying a number of microseconds for date interval or replace the interval by the given a number of microseconds if called on an instance.
+ * @method static static microsecond($microseconds = 1) Alias for microseconds().
* @method $this roundYear(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function.
* @method $this roundYears(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function.
* @method $this floorYear(float $precision = 1) Truncate the current instance year with given precision.
@@ -234,6 +238,13 @@ class CarbonPeriod implements Iterator, Countable, JsonSerializable
*/
public const END_MAX_ATTEMPTS = 10000;
+ /**
+ * Default date class of iteration items.
+ *
+ * @var string
+ */
+ protected const DEFAULT_DATE_CLASS = Carbon::class;
+
/**
* The registered macros.
*
@@ -493,15 +504,16 @@ protected static function parseIso8601($iso)
$interval = null;
$start = null;
$end = null;
+ $dateClass = static::DEFAULT_DATE_CLASS;
foreach (explode('/', $iso) as $key => $part) {
if ($key === 0 && preg_match('/^R(\d*|INF)$/', $part, $match)) {
$parsed = \strlen($match[1]) ? (($match[1] !== 'INF') ? (int) $match[1] : INF) : null;
} elseif ($interval === null && $parsed = CarbonInterval::make($part)) {
$interval = $part;
- } elseif ($start === null && $parsed = Carbon::make($part)) {
+ } elseif ($start === null && $parsed = $dateClass::make($part)) {
$start = $part;
- } elseif ($end === null && $parsed = Carbon::make(static::addMissingParts($start ?? '', $part))) {
+ } elseif ($end === null && $parsed = $dateClass::make(static::addMissingParts($start ?? '', $part))) {
$end = $part;
} else {
throw new InvalidPeriodParameterException("Invalid ISO 8601 specification: $iso.");
@@ -514,7 +526,7 @@ protected static function parseIso8601($iso)
}
/**
- * Add missing parts of the target date from the soure date.
+ * Add missing parts of the target date from the source date.
*
* @param string $source
* @param string $target
@@ -632,6 +644,10 @@ public static function __callStatic($method, $parameters)
*/
public function __construct(...$arguments)
{
+ if (is_a($this->dateClass, DateTimeImmutable::class, true)) {
+ $this->options = static::IMMUTABLE;
+ }
+
// Parse and assign arguments one by one. First argument may be an ISO 8601 spec,
// which will be first parsed into parts and then processed the same way.
@@ -659,6 +675,8 @@ public function __construct(...$arguments)
}
}
+ $optionsSet = false;
+
foreach ($arguments as $argument) {
$parsedDate = null;
@@ -682,15 +700,17 @@ public function __construct(...$arguments)
$this->setEndDate($parsedDate);
} elseif ($this->recurrences === null && $this->endDate === null && is_numeric($argument)) {
$this->setRecurrences($argument);
- } elseif ($this->options === null && (\is_int($argument) || $argument === null)) {
- $this->setOptions($argument);
+ } elseif (!$optionsSet && (\is_int($argument) || $argument === null)) {
+ $optionsSet = true;
+ $this->setOptions(((int) $this->options) | ((int) $argument));
} else {
throw new InvalidPeriodParameterException('Invalid constructor parameters.');
}
}
if ($this->startDate === null) {
- $this->setStartDate(Carbon::now());
+ $dateClass = $this->dateClass;
+ $this->setStartDate($dateClass::now());
}
if ($this->dateInterval === null) {
@@ -1805,13 +1825,19 @@ public function __call($method, $parameters)
case 'minute':
case 'seconds':
case 'second':
+ case 'milliseconds':
+ case 'millisecond':
+ case 'microseconds':
+ case 'microsecond':
return $this->setDateInterval((
// Override default P1D when instantiating via fluent setters.
[$this->isDefaultInterval ? new CarbonInterval('PT0S') : $this->dateInterval, $method]
)(...$parameters));
}
- if ($this->localStrictModeEnabled ?? Carbon::isStrictModeEnabled()) {
+ $dateClass = $this->dateClass;
+
+ if ($this->localStrictModeEnabled ?? $dateClass::isStrictModeEnabled()) {
throw new UnknownMethodException($method);
}
@@ -2008,7 +2034,7 @@ public function map(callable $callback)
/**
* Determines if the instance is equal to another.
- * Warning: if options differ, instances wil never be equal.
+ * Warning: if options differ, instances will never be equal.
*
* @param mixed $period
*
@@ -2023,7 +2049,7 @@ public function eq($period): bool
/**
* Determines if the instance is equal to another.
- * Warning: if options differ, instances wil never be equal.
+ * Warning: if options differ, instances will never be equal.
*
* @param mixed $period
*
@@ -2046,7 +2072,7 @@ public function equalTo($period): bool
/**
* Determines if the instance is not equal to another.
- * Warning: if options differ, instances wil never be equal.
+ * Warning: if options differ, instances will never be equal.
*
* @param mixed $period
*
@@ -2061,7 +2087,7 @@ public function ne($period): bool
/**
* Determines if the instance is not equal to another.
- * Warning: if options differ, instances wil never be equal.
+ * Warning: if options differ, instances will never be equal.
*
* @param mixed $period
*
@@ -2670,7 +2696,9 @@ private function makeDateTime($value): ?DateTimeInterface
!preg_match('/^R\d/', $value) &&
preg_match('/[a-z\d]/i', $value)
) {
- return Carbon::parse($value, $this->tzName);
+ $dateClass = $this->dateClass;
+
+ return $dateClass::parse($value, $this->tzName);
}
}
diff --git a/api/vendor/nesbot/carbon/src/Carbon/CarbonPeriodImmutable.php b/api/vendor/nesbot/carbon/src/Carbon/CarbonPeriodImmutable.php
index cda0733f50..f0d0ee2811 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/CarbonPeriodImmutable.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/CarbonPeriodImmutable.php
@@ -13,6 +13,13 @@
class CarbonPeriodImmutable extends CarbonPeriod
{
+ /**
+ * Default date class of iteration items.
+ *
+ * @var string
+ */
+ protected const DEFAULT_DATE_CLASS = CarbonImmutable::class;
+
/**
* Date class of iteration items.
*
diff --git a/api/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonDoctrineType.php b/api/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonDoctrineType.php
deleted file mode 100644
index ccc457fcd2..0000000000
--- a/api/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonDoctrineType.php
+++ /dev/null
@@ -1,23 +0,0 @@
-
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Carbon\Doctrine;
-
-use Doctrine\DBAL\Platforms\AbstractPlatform;
-
-interface CarbonDoctrineType
-{
- public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform);
-
- public function convertToPHPValue($value, AbstractPlatform $platform);
-
- public function convertToDatabaseValue($value, AbstractPlatform $platform);
-}
diff --git a/api/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonImmutableType.php b/api/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonImmutableType.php
deleted file mode 100644
index bf476a77e5..0000000000
--- a/api/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonImmutableType.php
+++ /dev/null
@@ -1,37 +0,0 @@
-
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Carbon\Doctrine;
-
-use Doctrine\DBAL\Platforms\AbstractPlatform;
-
-class CarbonImmutableType extends DateTimeImmutableType implements CarbonDoctrineType
-{
- /**
- * {@inheritdoc}
- *
- * @return string
- */
- public function getName()
- {
- return 'carbon_immutable';
- }
-
- /**
- * {@inheritdoc}
- *
- * @return bool
- */
- public function requiresSQLCommentHint(AbstractPlatform $platform)
- {
- return true;
- }
-}
diff --git a/api/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonType.php b/api/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonType.php
deleted file mode 100644
index 9289d84d34..0000000000
--- a/api/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonType.php
+++ /dev/null
@@ -1,37 +0,0 @@
-
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Carbon\Doctrine;
-
-use Doctrine\DBAL\Platforms\AbstractPlatform;
-
-class CarbonType extends DateTimeType implements CarbonDoctrineType
-{
- /**
- * {@inheritdoc}
- *
- * @return string
- */
- public function getName()
- {
- return 'carbon';
- }
-
- /**
- * {@inheritdoc}
- *
- * @return bool
- */
- public function requiresSQLCommentHint(AbstractPlatform $platform)
- {
- return true;
- }
-}
diff --git a/api/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeType.php b/api/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeType.php
deleted file mode 100644
index 29b0bb955e..0000000000
--- a/api/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeType.php
+++ /dev/null
@@ -1,16 +0,0 @@
- */
- use CarbonTypeConverter;
-}
diff --git a/api/vendor/nesbot/carbon/src/Carbon/Factory.php b/api/vendor/nesbot/carbon/src/Carbon/Factory.php
index a4a496c899..d497535f77 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/Factory.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/Factory.php
@@ -231,7 +231,7 @@
* You should rather use the ->settings() method.
* Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants
* are available for quarters, years, decade, centuries, millennia (singular and plural forms).
- * @method mixed withTestNow($testNow = null, $callback = null) Temporarily sets a static date to be used within the callback.
+ * @method mixed withTestNow($testNow, $callback) Temporarily sets a static date to be used within the callback.
* Using setTestNow to set the date, executing the callback, then
* clearing the test instance.
* /!\ Use this method for unit tests only.
diff --git a/api/vendor/nesbot/carbon/src/Carbon/FactoryImmutable.php b/api/vendor/nesbot/carbon/src/Carbon/FactoryImmutable.php
index 67088f21c9..d88a1cf67f 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/FactoryImmutable.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/FactoryImmutable.php
@@ -12,6 +12,9 @@
namespace Carbon;
use Closure;
+use DateTimeImmutable;
+use DateTimeZone;
+use Psr\Clock\ClockInterface;
/**
* A factory to generate CarbonImmutable instances with common settings.
@@ -111,7 +114,6 @@
* @method CarbonImmutable maxValue() Create a Carbon instance for the greatest supported date.
* @method CarbonImmutable minValue() Create a Carbon instance for the lowest supported date.
* @method void mixin($mixin) Mix another object into the class.
- * @method CarbonImmutable now($tz = null) Get a Carbon instance for the current date and time.
* @method CarbonImmutable parse($time = null, $tz = null) Create a carbon instance from a string.
* This is an alias for the constructor that allows better fluent syntax
* as it allows you to do Carbon::parse('Monday next week')->fn() rather
@@ -229,7 +231,7 @@
* You should rather use the ->settings() method.
* Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants
* are available for quarters, years, decade, centuries, millennia (singular and plural forms).
- * @method mixed withTestNow($testNow = null, $callback = null) Temporarily sets a static date to be used within the callback.
+ * @method mixed withTestNow($testNow, $callback) Temporarily sets a static date to be used within the callback.
* Using setTestNow to set the date, executing the callback, then
* clearing the test instance.
* /!\ Use this method for unit tests only.
@@ -237,7 +239,21 @@
*
*
*/
-class FactoryImmutable extends Factory
+class FactoryImmutable extends Factory implements ClockInterface
{
protected $className = CarbonImmutable::class;
+
+ /**
+ * Get a Carbon instance for the current date and time.
+ *
+ * @param DateTimeZone|string|int|null $tz
+ *
+ * @return CarbonImmutable
+ */
+ public function now($tz = null): DateTimeImmutable
+ {
+ $className = $this->className;
+
+ return new $className(null, $tz);
+ }
}
diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/en_CH.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/en_CH.php
index e2dd81db54..10d9cd8f1a 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/Lang/en_CH.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/en_CH.php
@@ -11,4 +11,12 @@
return array_replace_recursive(require __DIR__.'/en.php', [
'first_day_of_week' => 1,
+ 'formats' => [
+ 'LT' => 'HH:mm',
+ 'LTS' => 'HH:mm:ss',
+ 'L' => 'DD.MM.YYYY',
+ 'LL' => 'D MMMM YYYY',
+ 'LLL' => 'D MMMM YYYY HH:mm',
+ 'LLLL' => 'dddd D MMMM YYYY HH:mm',
+ ],
]);
diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/hu.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/hu.php
index b2d2ac1137..b7583eecd7 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/Lang/hu.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/hu.php
@@ -82,7 +82,7 @@
'second_before' => ':count másodperccel',
's_before' => ':count másodperccel',
'months' => ['január', 'február', 'március', 'április', 'május', 'június', 'július', 'augusztus', 'szeptember', 'október', 'november', 'december'],
- 'months_short' => ['jan.', 'feb.', 'márc.', 'ápr.', 'máj.', 'jún.', 'júl.', 'aug.', 'szept.', 'okt.', 'nov.', 'dec.'],
+ 'months_short' => ['jan.', 'febr.', 'márc.', 'ápr.', 'máj.', 'jún.', 'júl.', 'aug.', 'szept.', 'okt.', 'nov.', 'dec.'],
'weekdays' => ['vasárnap', 'hétfő', 'kedd', 'szerda', 'csütörtök', 'péntek', 'szombat'],
'weekdays_short' => ['vas', 'hét', 'kedd', 'sze', 'csüt', 'pén', 'szo'],
'weekdays_min' => ['v', 'h', 'k', 'sze', 'cs', 'p', 'sz'],
diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/ms.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/ms.php
index 36934eeb1c..c9e80854f9 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/Lang/ms.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/ms.php
@@ -48,7 +48,7 @@
'ago' => ':time yang lepas',
'from_now' => ':time dari sekarang',
'after' => ':time kemudian',
- 'before' => ':time lepas',
+ 'before' => ':time sebelum',
'diff_now' => 'sekarang',
'diff_today' => 'Hari',
'diff_today_regexp' => 'Hari(?:\\s+ini)?(?:\\s+pukul)?',
diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/sk.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/sk.php
index 08af197cfe..f9702e960c 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/Lang/sk.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/sk.php
@@ -33,33 +33,87 @@
* - Marek Adamický
* - AlterwebStudio
*/
+
+use Carbon\CarbonInterface;
+
+$fromNow = function ($time) {
+ return 'o '.strtr($time, [
+ 'hodina' => 'hodinu',
+ 'minúta' => 'minútu',
+ 'sekunda' => 'sekundu',
+ ]);
+};
+
+$ago = function ($time) {
+ $replacements = [
+ '/\bhodina\b/' => 'hodinou',
+ '/\bminúta\b/' => 'minútou',
+ '/\bsekunda\b/' => 'sekundou',
+ '/\bdeň\b/u' => 'dňom',
+ '/\btýždeň\b/u' => 'týždňom',
+ '/\bmesiac\b/' => 'mesiacom',
+ '/\brok\b/' => 'rokom',
+ ];
+
+ $replacementsPlural = [
+ '/\bhodiny\b/' => 'hodinami',
+ '/\bminúty\b/' => 'minútami',
+ '/\bsekundy\b/' => 'sekundami',
+ '/\bdni\b/' => 'dňami',
+ '/\btýždne\b/' => 'týždňami',
+ '/\bmesiace\b/' => 'mesiacmi',
+ '/\broky\b/' => 'rokmi',
+ ];
+
+ foreach ($replacements + $replacementsPlural as $pattern => $replacement) {
+ $time = preg_replace($pattern, $replacement, $time);
+ }
+
+ return "pred $time";
+};
+
return [
- 'year' => 'rok|:count roky|:count rokov',
+ 'year' => ':count rok|:count roky|:count rokov',
+ 'a_year' => 'rok|:count roky|:count rokov',
'y' => ':count r',
- 'month' => 'mesiac|:count mesiace|:count mesiacov',
+ 'month' => ':count mesiac|:count mesiace|:count mesiacov',
+ 'a_month' => 'mesiac|:count mesiace|:count mesiacov',
'm' => ':count m',
- 'week' => 'týždeň|:count týždne|:count týždňov',
+ 'week' => ':count týždeň|:count týždne|:count týždňov',
+ 'a_week' => 'týždeň|:count týždne|:count týždňov',
'w' => ':count t',
- 'day' => 'deň|:count dni|:count dní',
+ 'day' => ':count deň|:count dni|:count dní',
+ 'a_day' => 'deň|:count dni|:count dní',
'd' => ':count d',
- 'hour' => 'hodinu|:count hodiny|:count hodín',
+ 'hour' => ':count hodina|:count hodiny|:count hodín',
+ 'a_hour' => 'hodina|:count hodiny|:count hodín',
'h' => ':count h',
- 'minute' => 'minútu|:count minúty|:count minút',
+ 'minute' => ':count minúta|:count minúty|:count minút',
+ 'a_minute' => 'minúta|:count minúty|:count minút',
'min' => ':count min',
- 'second' => 'sekundu|:count sekundy|:count sekúnd',
- 'a_second' => 'pár sekúnd|:count sekundy|:count sekúnd',
+ 'second' => ':count sekunda|:count sekundy|:count sekúnd',
+ 'a_second' => 'sekunda|:count sekundy|:count sekúnd',
's' => ':count s',
- 'ago' => 'pred :time',
- 'from_now' => 'o :time',
- 'after' => ':time po',
+ 'millisecond' => ':count milisekunda|:count milisekundy|:count milisekúnd',
+ 'a_millisecond' => 'milisekunda|:count milisekundy|:count milisekúnd',
+ 'ms' => ':count ms',
+ 'microsecond' => ':count mikrosekunda|:count mikrosekundy|:count mikrosekúnd',
+ 'a_microsecond' => 'mikrosekunda|:count mikrosekundy|:count mikrosekúnd',
+ 'µs' => ':count µs',
+
+ 'ago' => $ago,
+ 'from_now' => $fromNow,
'before' => ':time pred',
- 'year_ago' => 'rokom|:count rokmi|:count rokmi',
- 'month_ago' => 'mesiacom|:count mesiacmi|:count mesiacmi',
- 'week_ago' => 'týždňom|:count týždňami|:count týždňami',
- 'day_ago' => 'dňom|:count dňami|:count dňami',
- 'hour_ago' => 'hodinou|:count hodinami|:count hodinami',
- 'minute_ago' => 'minútou|:count minútami|:count minútami',
- 'second_ago' => 'sekundou|:count sekundami|:count sekundami',
+ 'after' => ':time po',
+
+ 'hour_after' => ':count hodinu|:count hodiny|:count hodín',
+ 'minute_after' => ':count minútu|:count minúty|:count minút',
+ 'second_after' => ':count sekundu|:count sekundy|:count sekúnd',
+
+ 'hour_before' => ':count hodinu|:count hodiny|:count hodín',
+ 'minute_before' => ':count minútu|:count minúty|:count minút',
+ 'second_before' => ':count sekundu|:count sekundy|:count sekúnd',
+
'first_day_of_week' => 1,
'day_of_first_week_of_year' => 4,
'list' => [', ', ' a '],
@@ -74,8 +128,26 @@
'LLL' => 'D. M. HH:mm',
'LLLL' => 'dddd D. MMMM YYYY HH:mm',
],
+ 'calendar' => [
+ 'sameDay' => '[dnes o] LT',
+ 'nextDay' => '[zajtra o] LT',
+ 'lastDay' => '[včera o] LT',
+ 'nextWeek' => 'dddd [o] LT',
+ 'lastWeek' => static function (CarbonInterface $date) {
+ switch ($date->dayOfWeek) {
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[minulý] dddd [o] LT'; //pondelok/utorok/štvrtok/piatok
+ default:
+ return '[minulá] dddd [o] LT';
+ }
+ },
+ 'sameElse' => 'L',
+ ],
'weekdays' => ['nedeľa', 'pondelok', 'utorok', 'streda', 'štvrtok', 'piatok', 'sobota'],
- 'weekdays_short' => ['ned', 'pod', 'uto', 'str', 'štv', 'pia', 'sob'],
+ 'weekdays_short' => ['ned', 'pon', 'uto', 'str', 'štv', 'pia', 'sob'],
'weekdays_min' => ['ne', 'po', 'ut', 'st', 'št', 'pi', 'so'],
'months' => ['január', 'február', 'marec', 'apríl', 'máj', 'jún', 'júl', 'august', 'september', 'október', 'november', 'december'],
'months_short' => ['jan', 'feb', 'mar', 'apr', 'máj', 'jún', 'júl', 'aug', 'sep', 'okt', 'nov', 'dec'],
diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/sl.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/sl.php
index b000e30e3d..1f1d1b3381 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/Lang/sl.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/sl.php
@@ -51,7 +51,7 @@
'year_ago' => ':count letom|:count letoma|:count leti|:count leti',
'y_ago' => ':count letom|:count letoma|:count leti|:count leti',
- 'month_ago' => ':count mesecem|:count meseci|:count meseci|:count meseci',
+ 'month_ago' => ':count mesecem|:count mesecema|:count meseci|:count meseci',
'week_ago' => ':count tednom|:count tednoma|:count tedni|:count tedni',
'day_ago' => ':count dnem|:count dnevoma|:count dnevi|:count dnevi',
'd_ago' => ':count dnem|:count dnevoma|:count dnevi|:count dnevi',
diff --git a/api/vendor/nesbot/carbon/src/Carbon/Lang/uk.php b/api/vendor/nesbot/carbon/src/Carbon/Lang/uk.php
index 1d5ba703f1..4217d16edb 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/Lang/uk.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/Lang/uk.php
@@ -55,7 +55,7 @@
*/
return [
'year' => ':count рік|:count роки|:count років',
- 'y' => ':countр',
+ 'y' => ':countр|:countрр|:countрр',
'a_year' => '{1}рік|:count рік|:count роки|:count років',
'month' => ':count місяць|:count місяці|:count місяців',
'm' => ':countм',
diff --git a/api/vendor/nesbot/carbon/src/Carbon/MessageFormatter/MessageFormatterMapper.php b/api/vendor/nesbot/carbon/src/Carbon/MessageFormatter/MessageFormatterMapper.php
index a230b06315..c054808764 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/MessageFormatter/MessageFormatterMapper.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/MessageFormatter/MessageFormatterMapper.php
@@ -15,11 +15,13 @@
use Symfony\Component\Translation\Formatter\MessageFormatter;
use Symfony\Component\Translation\Formatter\MessageFormatterInterface;
+// @codeCoverageIgnoreStart
$transMethod = new ReflectionMethod(MessageFormatterInterface::class, 'format');
require $transMethod->getParameters()[0]->hasType()
? __DIR__.'/../../../lazy/Carbon/MessageFormatter/MessageFormatterMapperStrongType.php'
: __DIR__.'/../../../lazy/Carbon/MessageFormatter/MessageFormatterMapperWeakType.php';
+// @codeCoverageIgnoreEnd
final class MessageFormatterMapper extends LazyMessageFormatter
{
diff --git a/api/vendor/nesbot/carbon/src/Carbon/PHPStan/AbstractMacro.php b/api/vendor/nesbot/carbon/src/Carbon/PHPStan/AbstractMacro.php
index 5123d1e745..fde67b36aa 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/PHPStan/AbstractMacro.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/PHPStan/AbstractMacro.php
@@ -70,11 +70,9 @@ abstract class AbstractMacro implements BuiltinMethodReflection
/**
* Macro constructor.
*
- * @param string $className
- * @phpstan-param class-string $className
- *
- * @param string $methodName
- * @param callable $macro
+ * @param class-string $className
+ * @param string $methodName
+ * @param callable $macro
*/
public function __construct(string $className, string $methodName, $macro)
{
diff --git a/api/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroScanner.php b/api/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroScanner.php
index c88e49e578..eb8957d4d0 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroScanner.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroScanner.php
@@ -36,10 +36,8 @@ public function __construct(ReflectionProvider $reflectionProvider)
/**
* Return true if the given pair class-method is a Carbon macro.
*
- * @param string $className
- * @phpstan-param class-string $className
- *
- * @param string $methodName
+ * @param class-string $className
+ * @param string $methodName
*
* @return bool
*/
@@ -61,10 +59,8 @@ public function hasMethod(string $className, string $methodName): bool
/**
* Return the Macro for a given pair class-method.
*
- * @param string $className
- * @phpstan-param class-string $className
- *
- * @param string $methodName
+ * @param class-string $className
+ * @param string $methodName
*
* @throws ReflectionException
*
diff --git a/api/vendor/nesbot/carbon/src/Carbon/Traits/Comparison.php b/api/vendor/nesbot/carbon/src/Carbon/Traits/Comparison.php
index f6261d882d..daee19cc9f 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/Traits/Comparison.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/Traits/Comparison.php
@@ -994,6 +994,10 @@ public function is(string $tester)
return $this->year === (int) $tester;
}
+ if (preg_match('/^(?:Jan|January|Feb|February|Mar|March|Apr|April|May|Jun|June|Jul|July|Aug|August|Sep|September|Oct|October|Nov|November|Dec|December)$/i', $tester)) {
+ return $this->isSameMonth(static::parse($tester), false);
+ }
+
if (preg_match('/^\d{3,}-\d{1,2}$/', $tester)) {
return $this->isSameMonth(static::parse($tester));
}
diff --git a/api/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php b/api/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php
index d73dad54da..0d611ea22e 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php
@@ -19,6 +19,8 @@
use Carbon\Exceptions\OutOfRangeException;
use Carbon\Translator;
use Closure;
+use DateMalformedStringException;
+use DateTimeImmutable;
use DateTimeInterface;
use DateTimeZone;
use Exception;
@@ -112,7 +114,7 @@ private function constructTimezoneFromDateTime(DateTimeInterface $date, &$tz)
$safeTz = static::safeCreateDateTimeZone($tz);
if ($safeTz) {
- return $date->setTimezone($safeTz);
+ return ($date instanceof DateTimeImmutable ? $date : clone $date)->setTimezone($safeTz);
}
return $date;
@@ -184,7 +186,13 @@ public static function rawParse($time = null, $tz = null)
try {
return new static($time, $tz);
} catch (Exception $exception) {
- $date = @static::now($tz)->change($time);
+ // @codeCoverageIgnoreStart
+ try {
+ $date = @static::now($tz)->change($time);
+ } catch (DateMalformedStringException $ignoredException) {
+ $date = null;
+ }
+ // @codeCoverageIgnoreEnd
if (!$date) {
throw new InvalidFormatException("Could not parse '$time': ".$exception->getMessage(), 0, $exception);
@@ -634,6 +642,10 @@ public static function rawCreateFromFormat($format, $time, $tz = null)
$time = preg_replace('/^(.*)(am|pm|AM|PM)(.*)$/U', '$1$3 $2', $time);
}
+ if ($tz === false) {
+ $tz = null;
+ }
+
// First attempt to create an instance, so that error messages are based on the unmodified format.
$date = self::createFromFormatAndTimezone($format, $time, $tz);
$lastErrors = parent::getLastErrors();
@@ -651,12 +663,14 @@ public static function rawCreateFromFormat($format, $time, $tz = null)
$tz = clone $mock->getTimezone();
}
- // Set microseconds to zero to match behavior of DateTime::createFromFormat()
- // See https://bugs.php.net/bug.php?id=74332
- $mock = $mock->copy()->microsecond(0);
+ $mock = $mock->copy();
// Prepend mock datetime only if the format does not contain non escaped unix epoch reset flag.
if (!preg_match("/{$nonEscaped}[!|]/", $format)) {
+ if (preg_match('/[HhGgisvuB]/', $format)) {
+ $mock = $mock->setTime(0, 0);
+ }
+
$format = static::MOCK_DATETIME_FORMAT.' '.$format;
$time = ($mock instanceof self ? $mock->rawFormat(static::MOCK_DATETIME_FORMAT) : $mock->format(static::MOCK_DATETIME_FORMAT)).' '.$time;
}
diff --git a/api/vendor/nesbot/carbon/src/Carbon/Traits/Date.php b/api/vendor/nesbot/carbon/src/Carbon/Traits/Date.php
index da3775c21a..8ae5c17819 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/Traits/Date.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/Traits/Date.php
@@ -2310,6 +2310,7 @@ public static function getFormatsToIsoReplacements()
'c' => true,
'r' => true,
'U' => true,
+ 'T' => true,
];
}
diff --git a/api/vendor/nesbot/carbon/src/Carbon/Traits/Difference.php b/api/vendor/nesbot/carbon/src/Carbon/Traits/Difference.php
index a9868ebf82..ab5b65d234 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/Traits/Difference.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/Traits/Difference.php
@@ -298,9 +298,9 @@ public function diffFiltered(CarbonInterval $ci, Closure $callback, $date = null
*/
public function diffInWeekdays($date = null, $absolute = true)
{
- return $this->diffInDaysFiltered(function (CarbonInterface $date) {
+ return $this->diffInDaysFiltered(static function (CarbonInterface $date) {
return $date->isWeekday();
- }, $date, $absolute);
+ }, $this->resolveCarbon($date)->avoidMutation()->modify($this->format('H:i:s.u')), $absolute);
}
/**
@@ -313,9 +313,9 @@ public function diffInWeekdays($date = null, $absolute = true)
*/
public function diffInWeekendDays($date = null, $absolute = true)
{
- return $this->diffInDaysFiltered(function (CarbonInterface $date) {
+ return $this->diffInDaysFiltered(static function (CarbonInterface $date) {
return $date->isWeekend();
- }, $date, $absolute);
+ }, $this->resolveCarbon($date)->avoidMutation()->modify($this->format('H:i:s.u')), $absolute);
}
/**
diff --git a/api/vendor/nesbot/carbon/src/Carbon/Traits/IntervalRounding.php b/api/vendor/nesbot/carbon/src/Carbon/Traits/IntervalRounding.php
index 4cd66b676f..f069c280d7 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/Traits/IntervalRounding.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/Traits/IntervalRounding.php
@@ -40,7 +40,7 @@ protected function roundWith($precision, $function)
$unit = 'second';
if ($precision instanceof DateInterval) {
- $precision = (string) CarbonInterval::instance($precision);
+ $precision = (string) CarbonInterval::instance($precision, [], true);
}
if (\is_string($precision) && preg_match('/^\s*(?\d+)?\s*(?\w+)(?\W.*)?$/', $precision, $match)) {
diff --git a/api/vendor/nesbot/carbon/src/Carbon/Traits/Localization.php b/api/vendor/nesbot/carbon/src/Carbon/Traits/Localization.php
index ff249566f2..46aff113e5 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/Traits/Localization.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/Traits/Localization.php
@@ -23,6 +23,7 @@
use Symfony\Contracts\Translation\LocaleAwareInterface;
use Symfony\Contracts\Translation\TranslatorInterface as ContractsTranslatorInterface;
+// @codeCoverageIgnoreStart
if (interface_exists('Symfony\\Contracts\\Translation\\TranslatorInterface') &&
!interface_exists('Symfony\\Component\\Translation\\TranslatorInterface')
) {
@@ -31,6 +32,7 @@ class_alias(
'Symfony\\Component\\Translation\\TranslatorInterface'
);
}
+// @codeCoverageIgnoreEnd
/**
* Trait Localization.
diff --git a/api/vendor/nesbot/carbon/src/Carbon/Traits/Mixin.php b/api/vendor/nesbot/carbon/src/Carbon/Traits/Mixin.php
index 595c287b37..5822454564 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/Traits/Mixin.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/Traits/Mixin.php
@@ -11,6 +11,9 @@
namespace Carbon\Traits;
+use Carbon\CarbonInterface;
+use Carbon\CarbonInterval;
+use Carbon\CarbonPeriod;
use Closure;
use Generator;
use ReflectionClass;
@@ -99,12 +102,13 @@ private static function loadMixinTrait($trait)
{
$context = eval(self::getAnonymousClassCodeForTrait($trait));
$className = \get_class($context);
+ $baseClass = static::class;
foreach (self::getMixableMethods($context) as $name) {
$closureBase = Closure::fromCallable([$context, $name]);
- static::macro($name, function () use ($closureBase, $className) {
- /** @phpstan-ignore-next-line */
+ static::macro($name, function (...$parameters) use ($closureBase, $className, $baseClass) {
+ $downContext = isset($this) ? ($this) : new $baseClass();
$context = isset($this) ? $this->cast($className) : new $className();
try {
@@ -117,7 +121,48 @@ private static function loadMixinTrait($trait)
// in case of errors not converted into exceptions
$closure = $closure ?: $closureBase;
- return $closure(...\func_get_args());
+ $result = $closure(...$parameters);
+
+ if (!($result instanceof $className)) {
+ return $result;
+ }
+
+ if ($downContext instanceof CarbonInterface && $result instanceof CarbonInterface) {
+ if ($context !== $result) {
+ $downContext = $downContext->copy();
+ }
+
+ return $downContext
+ ->setTimezone($result->getTimezone())
+ ->modify($result->format('Y-m-d H:i:s.u'))
+ ->settings($result->getSettings());
+ }
+
+ if ($downContext instanceof CarbonInterval && $result instanceof CarbonInterval) {
+ if ($context !== $result) {
+ $downContext = $downContext->copy();
+ }
+
+ $downContext->copyProperties($result);
+ self::copyStep($downContext, $result);
+ self::copyNegativeUnits($downContext, $result);
+
+ return $downContext->settings($result->getSettings());
+ }
+
+ if ($downContext instanceof CarbonPeriod && $result instanceof CarbonPeriod) {
+ if ($context !== $result) {
+ $downContext = $downContext->copy();
+ }
+
+ return $downContext
+ ->setDates($result->getStartDate(), $result->getEndDate())
+ ->setRecurrences($result->getRecurrences())
+ ->setOptions($result->getOptions())
+ ->settings($result->getSettings());
+ }
+
+ return $result;
});
}
}
diff --git a/api/vendor/nesbot/carbon/src/Carbon/Traits/Options.php b/api/vendor/nesbot/carbon/src/Carbon/Traits/Options.php
index 9bb3071f57..ffad4f14b2 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/Traits/Options.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/Traits/Options.php
@@ -22,7 +22,7 @@
*
* Depends on the following methods:
*
- * @method \Carbon\Carbon|\Carbon\CarbonImmutable shiftTimezone($timezone) Set the timezone
+ * @method static shiftTimezone($timezone) Set the timezone
*/
trait Options
{
@@ -96,9 +96,9 @@ trait Options
'v' => '([0-9]{1,3})',
'e' => '([a-zA-Z]{1,5})|([a-zA-Z]*\\/[a-zA-Z]*)',
'I' => '(0|1)',
- 'O' => '([+-](1[012]|0[0-9])[0134][05])',
- 'P' => '([+-](1[012]|0[0-9]):[0134][05])',
- 'p' => '(Z|[+-](1[012]|0[0-9]):[0134][05])',
+ 'O' => '([+-](1[0123]|0[0-9])[0134][05])',
+ 'P' => '([+-](1[0123]|0[0-9]):[0134][05])',
+ 'p' => '(Z|[+-](1[0123]|0[0-9]):[0134][05])',
'T' => '([a-zA-Z]{1,5})',
'Z' => '(-?[1-5]?[0-9]{1,4})',
'U' => '([0-9]*)',
@@ -422,7 +422,7 @@ public function getSettings()
foreach ($map as $property => $key) {
$value = $this->$property ?? null;
- if ($value !== null) {
+ if ($value !== null && ($key !== 'locale' || $value !== 'en' || $this->localTranslator)) {
$settings[$key] = $value;
}
}
@@ -437,7 +437,7 @@ public function getSettings()
*/
public function __debugInfo()
{
- $infos = array_filter(get_object_vars($this), function ($var) {
+ $infos = array_filter(get_object_vars($this), static function ($var) {
return $var;
});
diff --git a/api/vendor/nesbot/carbon/src/Carbon/Traits/Rounding.php b/api/vendor/nesbot/carbon/src/Carbon/Traits/Rounding.php
index f98c2a32b5..85ff5a711f 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/Traits/Rounding.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/Traits/Rounding.php
@@ -57,7 +57,6 @@ public function roundUnit($unit, $precision = 1, $function = 'round')
'microsecond' => [0, 999999],
]);
$factor = 1;
- $initialMonth = $this->month;
if ($normalizedUnit === 'week') {
$normalizedUnit = 'day';
@@ -130,16 +129,13 @@ public function roundUnit($unit, $precision = 1, $function = 'round')
$normalizedValue = floor($function(($value - $minimum) / $precision) * $precision + $minimum);
/** @var CarbonInterface $result */
- $result = $this->$normalizedUnit($normalizedValue);
+ $result = $this;
foreach ($changes as $unit => $value) {
$result = $result->$unit($value);
}
- return $normalizedUnit === 'month' && $precision <= 1 && abs($result->month - $initialMonth) === 2
- // Re-run the change in case an overflow occurred
- ? $result->$normalizedUnit($normalizedValue)
- : $result;
+ return $result->$normalizedUnit($normalizedValue);
}
/**
diff --git a/api/vendor/nesbot/carbon/src/Carbon/Traits/Serialization.php b/api/vendor/nesbot/carbon/src/Carbon/Traits/Serialization.php
index 53fead69ea..c1d5c5e139 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/Traits/Serialization.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/Traits/Serialization.php
@@ -146,7 +146,7 @@ public function __sleep()
public function __serialize(): array
{
// @codeCoverageIgnoreStart
- if (isset($this->timezone_type)) {
+ if (isset($this->timezone_type, $this->timezone, $this->date)) {
return [
'date' => $this->date ?? null,
'timezone_type' => $this->timezone_type,
diff --git a/api/vendor/nesbot/carbon/src/Carbon/Traits/Test.php b/api/vendor/nesbot/carbon/src/Carbon/Traits/Test.php
index e0c9e80683..f23c72e8fd 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/Traits/Test.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/Traits/Test.php
@@ -119,12 +119,14 @@ public static function setTestNowAndTimezone($testNow = null, $tz = null)
*
* /!\ Use this method for unit tests only.
*
+ * @template T
+ *
* @param DateTimeInterface|Closure|static|string|false|null $testNow real or mock Carbon instance
- * @param Closure|null $callback
+ * @param Closure(): T $callback
*
- * @return mixed
+ * @return T
*/
- public static function withTestNow($testNow = null, $callback = null)
+ public static function withTestNow($testNow, $callback)
{
static::setTestNow($testNow);
diff --git a/api/vendor/nesbot/carbon/src/Carbon/Traits/Units.php b/api/vendor/nesbot/carbon/src/Carbon/Traits/Units.php
index f4f797d9b3..5be14ec7ef 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/Traits/Units.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/Traits/Units.php
@@ -17,6 +17,7 @@
use Carbon\Exceptions\UnitException;
use Closure;
use DateInterval;
+use DateMalformedStringException;
use ReturnTypeWillChange;
/**
@@ -197,7 +198,7 @@ public function rawAdd(DateInterval $interval)
public function add($unit, $value = 1, $overflow = null)
{
if (\is_string($unit) && \func_num_args() === 1) {
- $unit = CarbonInterval::make($unit);
+ $unit = CarbonInterval::make($unit, [], true);
}
if ($unit instanceof CarbonConverterInterface) {
@@ -304,12 +305,17 @@ public function addUnit($unit, $value = 1, $overflow = null)
$unit = 'second';
$value = $second;
}
- $date = $date->modify("$value $unit");
- if (isset($timeString)) {
- $date = $date->setTimeFromTimeString($timeString);
- } elseif (isset($canOverflow, $day) && $canOverflow && $day !== $date->day) {
- $date = $date->modify('last day of previous month');
+ try {
+ $date = $date->modify("$value $unit");
+
+ if (isset($timeString)) {
+ $date = $date->setTimeFromTimeString($timeString);
+ } elseif (isset($canOverflow, $day) && $canOverflow && $day !== $date->day) {
+ $date = $date->modify('last day of previous month');
+ }
+ } catch (DateMalformedStringException $ignoredException) { // @codeCoverageIgnore
+ $date = null; // @codeCoverageIgnore
}
if (!$date) {
@@ -362,7 +368,7 @@ public function rawSub(DateInterval $interval)
public function sub($unit, $value = 1, $overflow = null)
{
if (\is_string($unit) && \func_num_args() === 1) {
- $unit = CarbonInterval::make($unit);
+ $unit = CarbonInterval::make($unit, [], true);
}
if ($unit instanceof CarbonConverterInterface) {
@@ -398,7 +404,7 @@ public function sub($unit, $value = 1, $overflow = null)
public function subtract($unit, $value = 1, $overflow = null)
{
if (\is_string($unit) && \func_num_args() === 1) {
- $unit = CarbonInterval::make($unit);
+ $unit = CarbonInterval::make($unit, [], true);
}
return $this->sub($unit, $value, $overflow);
diff --git a/api/vendor/nesbot/carbon/src/Carbon/TranslatorImmutable.php b/api/vendor/nesbot/carbon/src/Carbon/TranslatorImmutable.php
index ad36c6704f..ce6b2f90ac 100644
--- a/api/vendor/nesbot/carbon/src/Carbon/TranslatorImmutable.php
+++ b/api/vendor/nesbot/carbon/src/Carbon/TranslatorImmutable.php
@@ -66,7 +66,7 @@ public function setTranslations($messages)
/**
* @codeCoverageIgnore
*/
- public function setConfigCacheFactory(ConfigCacheFactoryInterface $configCacheFactory)
+ public function setConfigCacheFactory(ConfigCacheFactoryInterface $configCacheFactory): void
{
$this->disallowMutation(__METHOD__);
diff --git a/api/vendor/nikic/php-parser/README.md b/api/vendor/nikic/php-parser/README.md
index 36de23cde1..edb3ed32f3 100644
--- a/api/vendor/nikic/php-parser/README.md
+++ b/api/vendor/nikic/php-parser/README.md
@@ -3,24 +3,24 @@ PHP Parser
[![Coverage Status](https://coveralls.io/repos/github/nikic/PHP-Parser/badge.svg?branch=master)](https://coveralls.io/github/nikic/PHP-Parser?branch=master)
-This is a PHP 5.2 to PHP 8.2 parser written in PHP. Its purpose is to simplify static code analysis and
+This is a PHP parser written in PHP. Its purpose is to simplify static code analysis and
manipulation.
-[**Documentation for version 4.x**][doc_4_x] (stable; for running on PHP >= 7.0; for parsing PHP 5.2 to PHP 8.2).
+[**Documentation for version 5.x**][doc_master] (current; for running on PHP >= 7.4; for parsing PHP 7.0 to PHP 8.4, with limited support for parsing PHP 5.x).
-[Documentation for version 3.x][doc_3_x] (unsupported; for running on PHP >= 5.5; for parsing PHP 5.2 to PHP 7.2).
+[Documentation for version 4.x][doc_4_x] (supported; for running on PHP >= 7.0; for parsing PHP 5.2 to PHP 8.3).
Features
--------
The main features provided by this library are:
- * Parsing PHP 5, PHP 7, and PHP 8 code into an abstract syntax tree (AST).
+ * Parsing PHP 7, and PHP 8 code into an abstract syntax tree (AST).
* Invalid code can be parsed into a partial AST.
* The AST contains accurate location information.
* Dumping the AST in human-readable form.
* Converting an AST back to PHP code.
- * Experimental: Formatting can be preserved for partially changed ASTs.
+ * Formatting can be preserved for partially changed ASTs.
* Infrastructure to traverse and modify ASTs.
* Resolution of namespaced names.
* Evaluation of constant expressions.
@@ -51,7 +51,7 @@ function test($foo)
}
CODE;
-$parser = (new ParserFactory)->create(ParserFactory::PREFER_PHP7);
+$parser = (new ParserFactory())->createForNewestSupportedVersion();
try {
$ast = $parser->parse($code);
} catch (Error $error) {
@@ -68,12 +68,17 @@ This dumps an AST looking something like this:
```
array(
0: Stmt_Function(
+ attrGroups: array(
+ )
byRef: false
name: Identifier(
name: test
)
params: array(
0: Param(
+ attrGroups: array(
+ )
+ flags: 0
type: null
byRef: false
variadic: false
@@ -88,12 +93,11 @@ array(
0: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
- parts: array(
- 0: var_dump
- )
+ name: var_dump
)
args: array(
0: Arg(
+ name: null
value: Expr_Variable(
name: foo
)
@@ -135,12 +139,16 @@ This gives us an AST where the `Function_::$stmts` are empty:
```
array(
0: Stmt_Function(
+ attrGroups: array(
+ )
byRef: false
name: Identifier(
name: test
)
params: array(
0: Param(
+ attrGroups: array(
+ )
type: null
byRef: false
variadic: false
@@ -203,9 +211,8 @@ Component documentation:
* [AST builders](doc/component/AST_builders.markdown)
* Fluent builders for AST nodes
* [Lexer](doc/component/Lexer.markdown)
- * Lexer options
- * Token and file positions for nodes
- * Custom attributes
+ * Emulation
+ * Tokens, positions and attributes
* [Error handling](doc/component/Error_handling.markdown)
* Column information for errors
* Error recovery (parsing of syntactically incorrect code)
@@ -223,3 +230,4 @@ Component documentation:
[doc_3_x]: https://github.com/nikic/PHP-Parser/tree/3.x/doc
[doc_4_x]: https://github.com/nikic/PHP-Parser/tree/4.x/doc
+ [doc_master]: https://github.com/nikic/PHP-Parser/tree/master/doc
diff --git a/api/vendor/nikic/php-parser/bin/php-parse b/api/vendor/nikic/php-parser/bin/php-parse
index bb3e46df4b..fc44f234c5 100644
--- a/api/vendor/nikic/php-parser/bin/php-parse
+++ b/api/vendor/nikic/php-parser/bin/php-parse
@@ -26,13 +26,7 @@ if (empty($files)) {
showHelp("Must specify at least one file.");
}
-$lexer = new PhpParser\Lexer\Emulative(['usedAttributes' => [
- 'startLine', 'endLine', 'startFilePos', 'endFilePos', 'comments'
-]]);
-$parser = (new PhpParser\ParserFactory)->create(
- PhpParser\ParserFactory::PREFER_PHP7,
- $lexer
-);
+$parser = (new PhpParser\ParserFactory())->createForVersion($attributes['version']);
$dumper = new PhpParser\NodeDumper([
'dumpComments' => true,
'dumpPositions' => $attributes['with-positions'],
@@ -43,7 +37,10 @@ $traverser = new PhpParser\NodeTraverser();
$traverser->addVisitor(new PhpParser\NodeVisitor\NameResolver);
foreach ($files as $file) {
- if (strpos($file, ' Stdin:\n");
+ } else if (strpos($file, ' Code $code\n");
} else {
@@ -108,7 +105,7 @@ function showHelp($error = '') {
if ($error) {
fwrite(STDERR, $error . "\n\n");
}
- fwrite($error ? STDERR : STDOUT, <<