diff --git a/app/Import/Transformer/BaseTransformer.php b/app/Import/Transformer/BaseTransformer.php index 2f5c8d77ae..a9b7c69143 100644 --- a/app/Import/Transformer/BaseTransformer.php +++ b/app/Import/Transformer/BaseTransformer.php @@ -140,6 +140,10 @@ class BaseTransformer public function getFrequency($frequency = RecurringInvoice::FREQUENCY_MONTHLY): int { + // if(is_string($frequency)){ + // $frequency = strtolower(trim($frequency)); + // } + switch ($frequency) { case RecurringInvoice::FREQUENCY_DAILY: case 'daily': diff --git a/app/Utils/Traits/SavesDocuments.php b/app/Utils/Traits/SavesDocuments.php index d171cc6feb..19a0cdd705 100644 --- a/app/Utils/Traits/SavesDocuments.php +++ b/app/Utils/Traits/SavesDocuments.php @@ -55,6 +55,8 @@ trait SavesDocuments public function saveDocument($document, $entity, $force_save = false) { + $is_public = true; + if ($entity instanceof Company) { $account = $entity->account; $company = $entity; diff --git a/composer.json b/composer.json index 1780cd91be..121bad8ecf 100644 --- a/composer.json +++ b/composer.json @@ -127,7 +127,7 @@ "friendsofphp/php-cs-fixer": "^3.14", "laracasts/cypress": "^3.0", "larastan/larastan": "^2", - "laravel/boost": "^1.0", + "laravel/boost": "^1.8", "mockery/mockery": "^1.4.4", "nunomaduro/collision": "^8.1", "phpstan/phpstan": "^1.9", diff --git a/composer.lock b/composer.lock index 5f58100a4f..a8c36d422d 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "902a50920085147f8e62149497eb30ff", + "content-hash": "bbc9c82c8904f23fad218ab0485d2de5", "packages": [ { "name": "afosto/yaac", @@ -496,16 +496,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.360.0", + "version": "3.362.1", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "a21055795be59f3d7c5ca6e4d52a80930dcf8c20" + "reference": "f29a49b74d5ee771f13432e16d58651de91f7e79" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/a21055795be59f3d7c5ca6e4d52a80930dcf8c20", - "reference": "a21055795be59f3d7c5ca6e4d52a80930dcf8c20", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/f29a49b74d5ee771f13432e16d58651de91f7e79", + "reference": "f29a49b74d5ee771f13432e16d58651de91f7e79", "shasum": "" }, "require": { @@ -587,9 +587,9 @@ "support": { "forum": "https://github.com/aws/aws-sdk-php/discussions", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.360.0" + "source": "https://github.com/aws/aws-sdk-php/tree/3.362.1" }, - "time": "2025-11-17T19:46:19+00:00" + "time": "2025-11-20T19:10:40+00:00" }, { "name": "babenkoivan/elastic-adapter", @@ -4215,16 +4215,16 @@ }, { "name": "imdhemy/appstore-iap", - "version": "1.8.0", + "version": "1.9.1", "source": { "type": "git", "url": "https://github.com/imdhemy/appstore-iap.git", - "reference": "18ab9841b4bdfaf21d48ed57cf62ef26da43fe9c" + "reference": "ffa194aa6d238f3843d7ff81ef036f54ce9990a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/imdhemy/appstore-iap/zipball/18ab9841b4bdfaf21d48ed57cf62ef26da43fe9c", - "reference": "18ab9841b4bdfaf21d48ed57cf62ef26da43fe9c", + "url": "https://api.github.com/repos/imdhemy/appstore-iap/zipball/ffa194aa6d238f3843d7ff81ef036f54ce9990a3", + "reference": "ffa194aa6d238f3843d7ff81ef036f54ce9990a3", "shasum": "" }, "require": { @@ -4235,7 +4235,7 @@ "lcobucci/clock": "^3.0", "lcobucci/jwt": "^5.3", "nesbot/carbon": "^2.66|^3.8", - "php": ">=8.1" + "php": ">=8.3" }, "require-dev": { "fakerphp/faker": "^1.22", @@ -4264,37 +4264,40 @@ "description": "PHP Appstore In-App Purchase implementation", "support": { "issues": "https://github.com/imdhemy/appstore-iap/issues", - "source": "https://github.com/imdhemy/appstore-iap/tree/1.8.0" + "source": "https://github.com/imdhemy/appstore-iap/tree/1.9.1" }, - "time": "2025-05-25T18:05:17+00:00" + "time": "2025-07-02T08:50:41+00:00" }, { "name": "imdhemy/google-play-billing", - "version": "1.5.3", + "version": "1.11.0", "source": { "type": "git", "url": "https://github.com/imdhemy/google-play-billing.git", - "reference": "5528bdff8eff5c4711e157541caa29283b632ae4" + "reference": "b9dd17e933e04b76bda1c24e809bad5d61a091fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/imdhemy/google-play-billing/zipball/5528bdff8eff5c4711e157541caa29283b632ae4", - "reference": "5528bdff8eff5c4711e157541caa29283b632ae4", + "url": "https://api.github.com/repos/imdhemy/google-play-billing/zipball/b9dd17e933e04b76bda1c24e809bad5d61a091fd", + "reference": "b9dd17e933e04b76bda1c24e809bad5d61a091fd", "shasum": "" }, "require": { "ext-json": "*", - "google/auth": "^1.26", - "guzzlehttp/guzzle": "^7.5.1", - "nesbot/carbon": "^2.66|^3.0", - "php": ">=8.0" + "google/auth": "^1.48", + "guzzlehttp/guzzle": "^7.10", + "nesbot/carbon": "^3.10", + "php": ">=8.3", + "symfony/property-access": "^7.3", + "symfony/serializer": "^7.3" }, "require-dev": { "fakerphp/faker": "^1.21", - "friendsofphp/php-cs-fixer": "^3.16", + "friendsofphp/php-cs-fixer": "^3.89", "phpunit/phpunit": "^9.6.7", + "psalm/plugin-phpunit": "^0.19.0", "roave/security-advisories": "dev-latest", - "vimeo/psalm": "^5.9" + "vimeo/psalm": "^5.26" }, "type": "library", "autoload": { @@ -4315,38 +4318,37 @@ "description": "Google Play Billing", "support": { "issues": "https://github.com/imdhemy/google-play-billing/issues", - "source": "https://github.com/imdhemy/google-play-billing/tree/1.5.3" + "source": "https://github.com/imdhemy/google-play-billing/tree/1.11.0" }, - "time": "2024-11-09T11:08:22+00:00" + "time": "2025-10-28T19:19:40+00:00" }, { "name": "imdhemy/laravel-purchases", - "version": "1.17.0", + "version": "1.18.0", "source": { "type": "git", "url": "https://github.com/imdhemy/laravel-in-app-purchases.git", - "reference": "54a93cfad81e9c55b06f28a2d2492babf8070ec7" + "reference": "440a69766cce487cf28570462b190919ed9c4570" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/imdhemy/laravel-in-app-purchases/zipball/54a93cfad81e9c55b06f28a2d2492babf8070ec7", - "reference": "54a93cfad81e9c55b06f28a2d2492babf8070ec7", + "url": "https://api.github.com/repos/imdhemy/laravel-in-app-purchases/zipball/440a69766cce487cf28570462b190919ed9c4570", + "reference": "440a69766cce487cf28570462b190919ed9c4570", "shasum": "" }, "require": { "ext-json": "*", "ext-openssl": "*", - "imdhemy/appstore-iap": "^1.8", + "imdhemy/appstore-iap": "^1.9", "imdhemy/google-play-billing": "^1.5", - "laravel/framework": ">=8.0", - "php": ">=8.1" + "laravel/framework": ">=10", + "php": ">=8.3" }, "require-dev": { "friendsofphp/php-cs-fixer": "^3.14", - "orchestra/testbench": "^6.24", + "orchestra/testbench": "^8", "psalm/plugin-laravel": "^2.0", "psalm/plugin-phpunit": "^0.19.0", - "roave/security-advisories": "dev-latest", "vimeo/psalm": "^5.11" }, "type": "library", @@ -4387,7 +4389,7 @@ ], "support": { "issues": "https://github.com/imdhemy/laravel-in-app-purchases/issues", - "source": "https://github.com/imdhemy/laravel-in-app-purchases/tree/1.17.0" + "source": "https://github.com/imdhemy/laravel-in-app-purchases/tree/1.18.0" }, "funding": [ { @@ -4395,7 +4397,7 @@ "type": "github" } ], - "time": "2025-06-03T11:22:45+00:00" + "time": "2025-06-20T18:27:42+00:00" }, { "name": "intervention/image", @@ -5851,34 +5853,34 @@ }, { "name": "lcobucci/clock", - "version": "3.3.1", + "version": "3.5.0", "source": { "type": "git", "url": "https://github.com/lcobucci/clock.git", - "reference": "db3713a61addfffd615b79bf0bc22f0ccc61b86b" + "reference": "a3139d9e97d47826f27e6a17bb63f13621f86058" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/lcobucci/clock/zipball/db3713a61addfffd615b79bf0bc22f0ccc61b86b", - "reference": "db3713a61addfffd615b79bf0bc22f0ccc61b86b", + "url": "https://api.github.com/repos/lcobucci/clock/zipball/a3139d9e97d47826f27e6a17bb63f13621f86058", + "reference": "a3139d9e97d47826f27e6a17bb63f13621f86058", "shasum": "" }, "require": { - "php": "~8.2.0 || ~8.3.0 || ~8.4.0", + "php": "~8.3.0 || ~8.4.0 || ~8.5.0", "psr/clock": "^1.0" }, "provide": { "psr/clock-implementation": "1.0" }, "require-dev": { - "infection/infection": "^0.29", - "lcobucci/coding-standard": "^11.1.0", + "infection/infection": "^0.31", + "lcobucci/coding-standard": "^11.2.0", "phpstan/extension-installer": "^1.3.1", - "phpstan/phpstan": "^1.10.25", - "phpstan/phpstan-deprecation-rules": "^1.1.3", - "phpstan/phpstan-phpunit": "^1.3.13", - "phpstan/phpstan-strict-rules": "^1.5.1", - "phpunit/phpunit": "^11.3.6" + "phpstan/phpstan": "^2.0.0", + "phpstan/phpstan-deprecation-rules": "^2.0.0", + "phpstan/phpstan-phpunit": "^2.0.0", + "phpstan/phpstan-strict-rules": "^2.0.0", + "phpunit/phpunit": "^12.0.0" }, "type": "library", "autoload": { @@ -5899,7 +5901,7 @@ "description": "Yet another clock abstraction", "support": { "issues": "https://github.com/lcobucci/clock/issues", - "source": "https://github.com/lcobucci/clock/tree/3.3.1" + "source": "https://github.com/lcobucci/clock/tree/3.5.0" }, "funding": [ { @@ -5911,7 +5913,7 @@ "type": "patreon" } ], - "time": "2024-09-24T20:45:14+00:00" + "time": "2025-10-27T09:03:17+00:00" }, { "name": "lcobucci/jwt", @@ -6657,33 +6659,38 @@ }, { "name": "league/uri", - "version": "7.5.1", + "version": "7.6.0", "source": { "type": "git", "url": "https://github.com/thephpleague/uri.git", - "reference": "81fb5145d2644324614cc532b28efd0215bda430" + "reference": "f625804987a0a9112d954f9209d91fec52182344" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri/zipball/81fb5145d2644324614cc532b28efd0215bda430", - "reference": "81fb5145d2644324614cc532b28efd0215bda430", + "url": "https://api.github.com/repos/thephpleague/uri/zipball/f625804987a0a9112d954f9209d91fec52182344", + "reference": "f625804987a0a9112d954f9209d91fec52182344", "shasum": "" }, "require": { - "league/uri-interfaces": "^7.5", - "php": "^8.1" + "league/uri-interfaces": "^7.6", + "php": "^8.1", + "psr/http-factory": "^1" }, "conflict": { "league/uri-schemes": "^1.0" }, "suggest": { "ext-bcmath": "to improve IPV4 host parsing", + "ext-dom": "to convert the URI into an HTML anchor tag", "ext-fileinfo": "to create Data URI from file contennts", "ext-gmp": "to improve IPV4 host parsing", "ext-intl": "to handle IDN host with the best performance", + "ext-uri": "to use the PHP native URI class", "jeremykendall/php-domain-parser": "to resolve Public Suffix and Top Level Domain", "league/uri-components": "Needed to easily manipulate URI objects components", + "league/uri-polyfill": "Needed to backport the PHP URI extension for older versions of PHP", "php-64bit": "to improve IPV4 host parsing", + "rowbot/url": "to handle WHATWG URL", "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" }, "type": "library", @@ -6711,6 +6718,7 @@ "description": "URI manipulation library", "homepage": "https://uri.thephpleague.com", "keywords": [ + "URN", "data-uri", "file-uri", "ftp", @@ -6723,9 +6731,11 @@ "psr-7", "query-string", "querystring", + "rfc2141", "rfc3986", "rfc3987", "rfc6570", + "rfc8141", "uri", "uri-template", "url", @@ -6735,7 +6745,7 @@ "docs": "https://uri.thephpleague.com", "forum": "https://thephpleague.slack.com", "issues": "https://github.com/thephpleague/uri-src/issues", - "source": "https://github.com/thephpleague/uri/tree/7.5.1" + "source": "https://github.com/thephpleague/uri/tree/7.6.0" }, "funding": [ { @@ -6743,26 +6753,25 @@ "type": "github" } ], - "time": "2024-12-08T08:40:02+00:00" + "time": "2025-11-18T12:17:23+00:00" }, { "name": "league/uri-interfaces", - "version": "7.5.0", + "version": "7.6.0", "source": { "type": "git", "url": "https://github.com/thephpleague/uri-interfaces.git", - "reference": "08cfc6c4f3d811584fb09c37e2849e6a7f9b0742" + "reference": "ccbfb51c0445298e7e0b7f4481b942f589665368" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/08cfc6c4f3d811584fb09c37e2849e6a7f9b0742", - "reference": "08cfc6c4f3d811584fb09c37e2849e6a7f9b0742", + "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/ccbfb51c0445298e7e0b7f4481b942f589665368", + "reference": "ccbfb51c0445298e7e0b7f4481b942f589665368", "shasum": "" }, "require": { "ext-filter": "*", "php": "^8.1", - "psr/http-factory": "^1", "psr/http-message": "^1.1 || ^2.0" }, "suggest": { @@ -6770,6 +6779,7 @@ "ext-gmp": "to improve IPV4 host parsing", "ext-intl": "to handle IDN host with the best performance", "php-64bit": "to improve IPV4 host parsing", + "rowbot/url": "to handle WHATWG URL", "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" }, "type": "library", @@ -6794,7 +6804,7 @@ "homepage": "https://nyamsprod.com" } ], - "description": "Common interfaces and classes for URI representation and interaction", + "description": "Common tools for parsing and resolving RFC3987/RFC3986 URI", "homepage": "https://uri.thephpleague.com", "keywords": [ "data-uri", @@ -6819,7 +6829,7 @@ "docs": "https://uri.thephpleague.com", "forum": "https://thephpleague.slack.com", "issues": "https://github.com/thephpleague/uri-src/issues", - "source": "https://github.com/thephpleague/uri-interfaces/tree/7.5.0" + "source": "https://github.com/thephpleague/uri-interfaces/tree/7.6.0" }, "funding": [ { @@ -6827,7 +6837,7 @@ "type": "github" } ], - "time": "2024-12-08T08:18:47+00:00" + "time": "2025-11-18T12:17:23+00:00" }, { "name": "livewire/livewire", @@ -6907,22 +6917,22 @@ }, { "name": "maennchen/zipstream-php", - "version": "3.1.2", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/maennchen/ZipStream-PHP.git", - "reference": "aeadcf5c412332eb426c0f9b4485f6accba2a99f" + "reference": "9712d8fa4cdf9240380b01eb4be55ad8dcf71416" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/aeadcf5c412332eb426c0f9b4485f6accba2a99f", - "reference": "aeadcf5c412332eb426c0f9b4485f6accba2a99f", + "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/9712d8fa4cdf9240380b01eb4be55ad8dcf71416", + "reference": "9712d8fa4cdf9240380b01eb4be55ad8dcf71416", "shasum": "" }, "require": { "ext-mbstring": "*", "ext-zlib": "*", - "php-64bit": "^8.2" + "php-64bit": "^8.3" }, "require-dev": { "brianium/paratest": "^7.7", @@ -6931,7 +6941,7 @@ "guzzlehttp/guzzle": "^7.5", "mikey179/vfsstream": "^1.6", "php-coveralls/php-coveralls": "^2.5", - "phpunit/phpunit": "^11.0", + "phpunit/phpunit": "^12.0", "vimeo/psalm": "^6.0" }, "suggest": { @@ -6973,7 +6983,7 @@ ], "support": { "issues": "https://github.com/maennchen/ZipStream-PHP/issues", - "source": "https://github.com/maennchen/ZipStream-PHP/tree/3.1.2" + "source": "https://github.com/maennchen/ZipStream-PHP/tree/3.2.0" }, "funding": [ { @@ -6981,7 +6991,7 @@ "type": "github" } ], - "time": "2025-01-27T12:07:53+00:00" + "time": "2025-07-17T11:15:13+00:00" }, { "name": "mailgun/mailgun-php", @@ -8266,31 +8276,31 @@ }, { "name": "nunomaduro/termwind", - "version": "v2.3.2", + "version": "v2.3.3", "source": { "type": "git", "url": "https://github.com/nunomaduro/termwind.git", - "reference": "eb61920a53057a7debd718a5b89c2178032b52c0" + "reference": "6fb2a640ff502caace8e05fd7be3b503a7e1c017" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/eb61920a53057a7debd718a5b89c2178032b52c0", - "reference": "eb61920a53057a7debd718a5b89c2178032b52c0", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/6fb2a640ff502caace8e05fd7be3b503a7e1c017", + "reference": "6fb2a640ff502caace8e05fd7be3b503a7e1c017", "shasum": "" }, "require": { "ext-mbstring": "*", "php": "^8.2", - "symfony/console": "^7.3.4" + "symfony/console": "^7.3.6" }, "require-dev": { "illuminate/console": "^11.46.1", "laravel/pint": "^1.25.1", "mockery/mockery": "^1.6.12", - "pestphp/pest": "^2.36.0 || ^3.8.4", + "pestphp/pest": "^2.36.0 || ^3.8.4 || ^4.1.3", "phpstan/phpstan": "^1.12.32", "phpstan/phpstan-strict-rules": "^1.6.2", - "symfony/var-dumper": "^7.3.4", + "symfony/var-dumper": "^7.3.5", "thecodingmachine/phpstan-strict-rules": "^1.0.0" }, "type": "library", @@ -8333,7 +8343,7 @@ ], "support": { "issues": "https://github.com/nunomaduro/termwind/issues", - "source": "https://github.com/nunomaduro/termwind/tree/v2.3.2" + "source": "https://github.com/nunomaduro/termwind/tree/v2.3.3" }, "funding": [ { @@ -8349,7 +8359,7 @@ "type": "github" } ], - "time": "2025-10-18T11:10:27+00:00" + "time": "2025-11-20T02:34:59+00:00" }, { "name": "nwidart/laravel-modules", @@ -9408,16 +9418,16 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.6.3", + "version": "5.6.4", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "94f8051919d1b0369a6bcc7931d679a511c03fe9" + "reference": "90a04bcbf03784066f16038e87e23a0a83cee3c2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94f8051919d1b0369a6bcc7931d679a511c03fe9", - "reference": "94f8051919d1b0369a6bcc7931d679a511c03fe9", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/90a04bcbf03784066f16038e87e23a0a83cee3c2", + "reference": "90a04bcbf03784066f16038e87e23a0a83cee3c2", "shasum": "" }, "require": { @@ -9466,22 +9476,22 @@ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "support": { "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.3" + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.4" }, - "time": "2025-08-01T19:43:32+00:00" + "time": "2025-11-17T21:13:10+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "1.10.0", + "version": "1.11.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a" + "reference": "8cbe6100e8971efbf8e2e7da3a202ba83eafd5a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/679e3ce485b99e84c775d28e2e96fade9a7fb50a", - "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/8cbe6100e8971efbf8e2e7da3a202ba83eafd5a3", + "reference": "8cbe6100e8971efbf8e2e7da3a202ba83eafd5a3", "shasum": "" }, "require": { @@ -9524,9 +9534,9 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.10.0" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.11.0" }, - "time": "2024-11-09T15:12:26+00:00" + "time": "2025-11-19T20:28:58+00:00" }, { "name": "phpoffice/phpspreadsheet", @@ -17372,24 +17382,24 @@ "packages-dev": [ { "name": "barryvdh/laravel-debugbar", - "version": "v3.16.0", + "version": "v3.16.1", "source": { "type": "git", "url": "https://github.com/barryvdh/laravel-debugbar.git", - "reference": "f265cf5e38577d42311f1a90d619bcd3740bea23" + "reference": "21b2c6fce05453efd4bceb34f9fddaa1cdb44090" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/f265cf5e38577d42311f1a90d619bcd3740bea23", - "reference": "f265cf5e38577d42311f1a90d619bcd3740bea23", + "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/21b2c6fce05453efd4bceb34f9fddaa1cdb44090", + "reference": "21b2c6fce05453efd4bceb34f9fddaa1cdb44090", "shasum": "" }, "require": { - "illuminate/routing": "^9|^10|^11|^12", - "illuminate/session": "^9|^10|^11|^12", - "illuminate/support": "^9|^10|^11|^12", + "illuminate/routing": "^10|^11|^12", + "illuminate/session": "^10|^11|^12", + "illuminate/support": "^10|^11|^12", "php": "^8.1", - "php-debugbar/php-debugbar": "~2.2.0", + "php-debugbar/php-debugbar": "^2.2.4", "symfony/finder": "^6|^7" }, "require-dev": { @@ -17441,7 +17451,7 @@ ], "support": { "issues": "https://github.com/barryvdh/laravel-debugbar/issues", - "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.16.0" + "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.16.1" }, "funding": [ { @@ -17453,7 +17463,7 @@ "type": "github" } ], - "time": "2025-07-14T11:56:43+00:00" + "time": "2025-11-19T08:31:25+00:00" }, { "name": "barryvdh/laravel-ide-helper", @@ -17603,16 +17613,16 @@ }, { "name": "brianium/paratest", - "version": "v7.8.4", + "version": "v7.14.2", "source": { "type": "git", "url": "https://github.com/paratestphp/paratest.git", - "reference": "130a9bf0e269ee5f5b320108f794ad03e275cad4" + "reference": "de06de1ae1203b11976c6ca01d6a9081c8b33d45" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paratestphp/paratest/zipball/130a9bf0e269ee5f5b320108f794ad03e275cad4", - "reference": "130a9bf0e269ee5f5b320108f794ad03e275cad4", + "url": "https://api.github.com/repos/paratestphp/paratest/zipball/de06de1ae1203b11976c6ca01d6a9081c8b33d45", + "reference": "de06de1ae1203b11976c6ca01d6a9081c8b33d45", "shasum": "" }, "require": { @@ -17620,27 +17630,27 @@ "ext-pcre": "*", "ext-reflection": "*", "ext-simplexml": "*", - "fidry/cpu-core-counter": "^1.2.0", + "fidry/cpu-core-counter": "^1.3.0", "jean85/pretty-package-versions": "^2.1.1", - "php": "~8.2.0 || ~8.3.0 || ~8.4.0", - "phpunit/php-code-coverage": "^11.0.10", - "phpunit/php-file-iterator": "^5.1.0", - "phpunit/php-timer": "^7.0.1", - "phpunit/phpunit": "^11.5.24", - "sebastian/environment": "^7.2.1", - "symfony/console": "^6.4.22 || ^7.3.0", - "symfony/process": "^6.4.20 || ^7.3.0" + "php": "~8.3.0 || ~8.4.0 || ~8.5.0", + "phpunit/php-code-coverage": "^12.4.0", + "phpunit/php-file-iterator": "^6", + "phpunit/php-timer": "^8", + "phpunit/phpunit": "^12.4.1", + "sebastian/environment": "^8.0.3", + "symfony/console": "^6.4.20 || ^7.3.4", + "symfony/process": "^6.4.20 || ^7.3.4" }, "require-dev": { - "doctrine/coding-standard": "^12.0.0", + "doctrine/coding-standard": "^14.0.0", + "ext-pcntl": "*", "ext-pcov": "*", "ext-posix": "*", - "phpstan/phpstan": "^2.1.17", + "phpstan/phpstan": "^2.1.31", "phpstan/phpstan-deprecation-rules": "^2.0.3", - "phpstan/phpstan-phpunit": "^2.0.6", - "phpstan/phpstan-strict-rules": "^2.0.4", - "squizlabs/php_codesniffer": "^3.13.2", - "symfony/filesystem": "^6.4.13 || ^7.3.0" + "phpstan/phpstan-phpunit": "^2.0.7", + "phpstan/phpstan-strict-rules": "^2.0.7", + "symfony/filesystem": "^6.4.13 || ^7.3.2" }, "bin": [ "bin/paratest", @@ -17680,7 +17690,7 @@ ], "support": { "issues": "https://github.com/paratestphp/paratest/issues", - "source": "https://github.com/paratestphp/paratest/tree/v7.8.4" + "source": "https://github.com/paratestphp/paratest/tree/v7.14.2" }, "funding": [ { @@ -17692,7 +17702,7 @@ "type": "paypal" } ], - "time": "2025-06-23T06:07:21+00:00" + "time": "2025-10-24T07:20:53+00:00" }, { "name": "clue/ndjson-react", @@ -17760,22 +17770,22 @@ }, { "name": "composer/class-map-generator", - "version": "1.6.2", + "version": "1.7.0", "source": { "type": "git", "url": "https://github.com/composer/class-map-generator.git", - "reference": "ba9f089655d4cdd64e762a6044f411ccdaec0076" + "reference": "2373419b7709815ed323ebf18c3c72d03ff4a8a6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/class-map-generator/zipball/ba9f089655d4cdd64e762a6044f411ccdaec0076", - "reference": "ba9f089655d4cdd64e762a6044f411ccdaec0076", + "url": "https://api.github.com/repos/composer/class-map-generator/zipball/2373419b7709815ed323ebf18c3c72d03ff4a8a6", + "reference": "2373419b7709815ed323ebf18c3c72d03ff4a8a6", "shasum": "" }, "require": { "composer/pcre": "^2.1 || ^3.1", "php": "^7.2 || ^8.0", - "symfony/finder": "^4.4 || ^5.3 || ^6 || ^7" + "symfony/finder": "^4.4 || ^5.3 || ^6 || ^7 || ^8" }, "require-dev": { "phpstan/phpstan": "^1.12 || ^2", @@ -17783,7 +17793,7 @@ "phpstan/phpstan-phpunit": "^1 || ^2", "phpstan/phpstan-strict-rules": "^1.1 || ^2", "phpunit/phpunit": "^8", - "symfony/filesystem": "^5.4 || ^6" + "symfony/filesystem": "^5.4 || ^6 || ^7 || ^8" }, "type": "library", "extra": { @@ -17813,7 +17823,7 @@ ], "support": { "issues": "https://github.com/composer/class-map-generator/issues", - "source": "https://github.com/composer/class-map-generator/tree/1.6.2" + "source": "https://github.com/composer/class-map-generator/tree/1.7.0" }, "funding": [ { @@ -17825,7 +17835,7 @@ "type": "github" } ], - "time": "2025-08-20T18:52:43+00:00" + "time": "2025-11-19T10:41:15+00:00" }, { "name": "composer/semver", @@ -18151,16 +18161,16 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.89.1", + "version": "v3.90.0", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", - "reference": "f34967da2866ace090a2b447de1f357356474573" + "reference": "ad732c2e9299c9743f9c55ae53cc0e7642ab1155" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/f34967da2866ace090a2b447de1f357356474573", - "reference": "f34967da2866ace090a2b447de1f357356474573", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/ad732c2e9299c9743f9c55ae53cc0e7642ab1155", + "reference": "ad732c2e9299c9743f9c55ae53cc0e7642ab1155", "shasum": "" }, "require": { @@ -18178,17 +18188,17 @@ "react/socket": "^1.16", "react/stream": "^1.4", "sebastian/diff": "^4.0.6 || ^5.1.1 || ^6.0.2 || ^7.0", - "symfony/console": "^5.4.47 || ^6.4.24 || ^7.0", - "symfony/event-dispatcher": "^5.4.45 || ^6.4.24 || ^7.0", - "symfony/filesystem": "^5.4.45 || ^6.4.24 || ^7.0", - "symfony/finder": "^5.4.45 || ^6.4.24 || ^7.0", - "symfony/options-resolver": "^5.4.45 || ^6.4.24 || ^7.0", + "symfony/console": "^5.4.47 || ^6.4.24 || ^7.0 || ^8.0", + "symfony/event-dispatcher": "^5.4.45 || ^6.4.24 || ^7.0 || ^8.0", + "symfony/filesystem": "^5.4.45 || ^6.4.24 || ^7.0 || ^8.0", + "symfony/finder": "^5.4.45 || ^6.4.24 || ^7.0 || ^8.0", + "symfony/options-resolver": "^5.4.45 || ^6.4.24 || ^7.0 || ^8.0", "symfony/polyfill-mbstring": "^1.33", "symfony/polyfill-php80": "^1.33", "symfony/polyfill-php81": "^1.33", "symfony/polyfill-php84": "^1.33", - "symfony/process": "^5.4.47 || ^6.4.24 || ^7.2", - "symfony/stopwatch": "^5.4.45 || ^6.4.24 || ^7.0" + "symfony/process": "^5.4.47 || ^6.4.24 || ^7.2 || ^8.0", + "symfony/stopwatch": "^5.4.45 || ^6.4.24 || ^7.0 || ^8.0" }, "require-dev": { "facile-it/paraunit": "^1.3.1 || ^2.7", @@ -18196,12 +18206,12 @@ "justinrainbow/json-schema": "^6.5", "keradus/cli-executor": "^2.2", "mikey179/vfsstream": "^1.6.12", - "php-coveralls/php-coveralls": "^2.8", + "php-coveralls/php-coveralls": "^2.9", "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.6", "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.6", "phpunit/phpunit": "^9.6.25 || ^10.5.53 || ^11.5.34", - "symfony/var-dumper": "^5.4.48 || ^6.4.24 || ^7.3.2", - "symfony/yaml": "^5.4.45 || ^6.4.24 || ^7.3.2" + "symfony/var-dumper": "^5.4.48 || ^6.4.24 || ^7.3.2 || ^8.0", + "symfony/yaml": "^5.4.45 || ^6.4.24 || ^7.3.2 || ^8.0" }, "suggest": { "ext-dom": "For handling output formats in XML", @@ -18242,7 +18252,7 @@ ], "support": { "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", - "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.89.1" + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.90.0" }, "funding": [ { @@ -18250,7 +18260,7 @@ "type": "github" } ], - "time": "2025-10-24T12:05:10+00:00" + "time": "2025-11-20T15:15:16+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -18346,7 +18356,7 @@ }, { "name": "illuminate/json-schema", - "version": "v12.38.1", + "version": "v12.39.0", "source": { "type": "git", "url": "https://github.com/illuminate/json-schema.git", @@ -18540,16 +18550,16 @@ }, { "name": "laravel/boost", - "version": "v1.8.0", + "version": "v1.8.1", "source": { "type": "git", "url": "https://github.com/laravel/boost.git", - "reference": "3475be16be7552b11c57ce18a0c5e204d696da50" + "reference": "992cc774b2b2977312efe19860fd16b866db441e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/boost/zipball/3475be16be7552b11c57ce18a0c5e204d696da50", - "reference": "3475be16be7552b11c57ce18a0c5e204d696da50", + "url": "https://api.github.com/repos/laravel/boost/zipball/992cc774b2b2977312efe19860fd16b866db441e", + "reference": "992cc774b2b2977312efe19860fd16b866db441e", "shasum": "" }, "require": { @@ -18558,7 +18568,7 @@ "illuminate/contracts": "^10.49.0|^11.45.3|^12.28.1", "illuminate/routing": "^10.49.0|^11.45.3|^12.28.1", "illuminate/support": "^10.49.0|^11.45.3|^12.28.1", - "laravel/mcp": "^0.3.2", + "laravel/mcp": "^0.3.4", "laravel/prompts": "0.1.25|^0.3.6", "laravel/roster": "^0.2.9", "php": "^8.1" @@ -18602,20 +18612,20 @@ "issues": "https://github.com/laravel/boost/issues", "source": "https://github.com/laravel/boost" }, - "time": "2025-11-11T14:15:11+00:00" + "time": "2025-11-18T19:27:07+00:00" }, { "name": "laravel/mcp", - "version": "v0.3.3", + "version": "v0.3.4", "source": { "type": "git", "url": "https://github.com/laravel/mcp.git", - "reference": "feb475f819809e7db0a46e9f2cbcee6d77af2a14" + "reference": "0b86fb613a0df971cec89271c674a677c2cb4f77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/mcp/zipball/feb475f819809e7db0a46e9f2cbcee6d77af2a14", - "reference": "feb475f819809e7db0a46e9f2cbcee6d77af2a14", + "url": "https://api.github.com/repos/laravel/mcp/zipball/0b86fb613a0df971cec89271c674a677c2cb4f77", + "reference": "0b86fb613a0df971cec89271c674a677c2cb4f77", "shasum": "" }, "require": { @@ -18675,7 +18685,7 @@ "issues": "https://github.com/laravel/mcp/issues", "source": "https://github.com/laravel/mcp" }, - "time": "2025-11-11T22:50:25+00:00" + "time": "2025-11-18T14:41:05+00:00" }, { "name": "laravel/roster", @@ -18823,16 +18833,16 @@ }, { "name": "nunomaduro/collision", - "version": "v8.8.2", + "version": "v8.8.3", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "60207965f9b7b7a4ce15a0f75d57f9dadb105bdb" + "reference": "1dc9e88d105699d0fee8bb18890f41b274f6b4c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/60207965f9b7b7a4ce15a0f75d57f9dadb105bdb", - "reference": "60207965f9b7b7a4ce15a0f75d57f9dadb105bdb", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/1dc9e88d105699d0fee8bb18890f41b274f6b4c4", + "reference": "1dc9e88d105699d0fee8bb18890f41b274f6b4c4", "shasum": "" }, "require": { @@ -18854,7 +18864,7 @@ "laravel/sanctum": "^4.1.1", "laravel/tinker": "^2.10.1", "orchestra/testbench-core": "^9.12.0 || ^10.4", - "pestphp/pest": "^3.8.2", + "pestphp/pest": "^3.8.2 || ^4.0.0", "sebastian/environment": "^7.2.1 || ^8.0" }, "type": "library", @@ -18918,7 +18928,7 @@ "type": "patreon" } ], - "time": "2025-06-25T02:12:12+00:00" + "time": "2025-11-20T02:55:25+00:00" }, { "name": "phar-io/manifest", @@ -19166,35 +19176,34 @@ }, { "name": "phpunit/php-code-coverage", - "version": "11.0.11", + "version": "12.4.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "4f7722aa9a7b76aa775e2d9d4e95d1ea16eeeef4" + "reference": "67e8aed88f93d0e6e1cb7effe1a2dfc2fee6022c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/4f7722aa9a7b76aa775e2d9d4e95d1ea16eeeef4", - "reference": "4f7722aa9a7b76aa775e2d9d4e95d1ea16eeeef4", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/67e8aed88f93d0e6e1cb7effe1a2dfc2fee6022c", + "reference": "67e8aed88f93d0e6e1cb7effe1a2dfc2fee6022c", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^5.4.0", - "php": ">=8.2", - "phpunit/php-file-iterator": "^5.1.0", - "phpunit/php-text-template": "^4.0.1", - "sebastian/code-unit-reverse-lookup": "^4.0.1", - "sebastian/complexity": "^4.0.1", - "sebastian/environment": "^7.2.0", - "sebastian/lines-of-code": "^3.0.1", - "sebastian/version": "^5.0.2", + "nikic/php-parser": "^5.6.1", + "php": ">=8.3", + "phpunit/php-file-iterator": "^6.0", + "phpunit/php-text-template": "^5.0", + "sebastian/complexity": "^5.0", + "sebastian/environment": "^8.0.3", + "sebastian/lines-of-code": "^4.0", + "sebastian/version": "^6.0", "theseer/tokenizer": "^1.2.3" }, "require-dev": { - "phpunit/phpunit": "^11.5.2" + "phpunit/phpunit": "^12.3.7" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -19203,7 +19212,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "11.0.x-dev" + "dev-main": "12.4.x-dev" } }, "autoload": { @@ -19232,7 +19241,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.11" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.4.0" }, "funding": [ { @@ -19252,32 +19261,32 @@ "type": "tidelift" } ], - "time": "2025-08-27T14:37:49+00:00" + "time": "2025-09-24T13:44:41+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "5.1.0", + "version": "6.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6" + "reference": "961bc913d42fe24a257bfff826a5068079ac7782" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/118cfaaa8bc5aef3287bf315b6060b1174754af6", - "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/961bc913d42fe24a257bfff826a5068079ac7782", + "reference": "961bc913d42fe24a257bfff826a5068079ac7782", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -19305,7 +19314,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.0" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/6.0.0" }, "funding": [ { @@ -19313,28 +19322,28 @@ "type": "github" } ], - "time": "2024-08-27T05:02:59+00:00" + "time": "2025-02-07T04:58:37+00:00" }, { "name": "phpunit/php-invoker", - "version": "5.0.1", + "version": "6.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2" + "reference": "12b54e689b07a25a9b41e57736dfab6ec9ae5406" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/c1ca3814734c07492b3d4c5f794f4b0995333da2", - "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/12b54e689b07a25a9b41e57736dfab6ec9ae5406", + "reference": "12b54e689b07a25a9b41e57736dfab6ec9ae5406", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { "ext-pcntl": "*", - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "suggest": { "ext-pcntl": "*" @@ -19342,7 +19351,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -19369,7 +19378,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-invoker/issues", "security": "https://github.com/sebastianbergmann/php-invoker/security/policy", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/5.0.1" + "source": "https://github.com/sebastianbergmann/php-invoker/tree/6.0.0" }, "funding": [ { @@ -19377,32 +19386,32 @@ "type": "github" } ], - "time": "2024-07-03T05:07:44+00:00" + "time": "2025-02-07T04:58:58+00:00" }, { "name": "phpunit/php-text-template", - "version": "4.0.1", + "version": "5.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964" + "reference": "e1367a453f0eda562eedb4f659e13aa900d66c53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/3e0404dc6b300e6bf56415467ebcb3fe4f33e964", - "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/e1367a453f0eda562eedb4f659e13aa900d66c53", + "reference": "e1367a453f0eda562eedb4f659e13aa900d66c53", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -19429,7 +19438,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-text-template/issues", "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/4.0.1" + "source": "https://github.com/sebastianbergmann/php-text-template/tree/5.0.0" }, "funding": [ { @@ -19437,32 +19446,32 @@ "type": "github" } ], - "time": "2024-07-03T05:08:43+00:00" + "time": "2025-02-07T04:59:16+00:00" }, { "name": "phpunit/php-timer", - "version": "7.0.1", + "version": "8.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3" + "reference": "f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", - "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc", + "reference": "f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "7.0-dev" + "dev-main": "8.0-dev" } }, "autoload": { @@ -19489,7 +19498,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-timer/issues", "security": "https://github.com/sebastianbergmann/php-timer/security/policy", - "source": "https://github.com/sebastianbergmann/php-timer/tree/7.0.1" + "source": "https://github.com/sebastianbergmann/php-timer/tree/8.0.0" }, "funding": [ { @@ -19497,20 +19506,20 @@ "type": "github" } ], - "time": "2024-07-03T05:09:35+00:00" + "time": "2025-02-07T04:59:38+00:00" }, { "name": "phpunit/phpunit", - "version": "11.5.44", + "version": "12.4.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "c346885c95423eda3f65d85a194aaa24873cda82" + "reference": "d8f644d8d9bb904867f7a0aeb1bd306e0d966949" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c346885c95423eda3f65d85a194aaa24873cda82", - "reference": "c346885c95423eda3f65d85a194aaa24873cda82", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d8f644d8d9bb904867f7a0aeb1bd306e0d966949", + "reference": "d8f644d8d9bb904867f7a0aeb1bd306e0d966949", "shasum": "" }, "require": { @@ -19523,34 +19532,30 @@ "myclabs/deep-copy": "^1.13.4", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", - "php": ">=8.2", - "phpunit/php-code-coverage": "^11.0.11", - "phpunit/php-file-iterator": "^5.1.0", - "phpunit/php-invoker": "^5.0.1", - "phpunit/php-text-template": "^4.0.1", - "phpunit/php-timer": "^7.0.1", - "sebastian/cli-parser": "^3.0.2", - "sebastian/code-unit": "^3.0.3", - "sebastian/comparator": "^6.3.2", - "sebastian/diff": "^6.0.2", - "sebastian/environment": "^7.2.1", - "sebastian/exporter": "^6.3.2", - "sebastian/global-state": "^7.0.2", - "sebastian/object-enumerator": "^6.0.1", - "sebastian/type": "^5.1.3", - "sebastian/version": "^5.0.2", + "php": ">=8.3", + "phpunit/php-code-coverage": "^12.4.0", + "phpunit/php-file-iterator": "^6.0.0", + "phpunit/php-invoker": "^6.0.0", + "phpunit/php-text-template": "^5.0.0", + "phpunit/php-timer": "^8.0.0", + "sebastian/cli-parser": "^4.2.0", + "sebastian/comparator": "^7.1.3", + "sebastian/diff": "^7.0.0", + "sebastian/environment": "^8.0.3", + "sebastian/exporter": "^7.0.2", + "sebastian/global-state": "^8.0.2", + "sebastian/object-enumerator": "^7.0.0", + "sebastian/type": "^6.0.3", + "sebastian/version": "^6.0.0", "staabm/side-effects-detector": "^1.0.5" }, - "suggest": { - "ext-soap": "To be able to generate mocks based on WSDL files" - }, "bin": [ "phpunit" ], "type": "library", "extra": { "branch-alias": { - "dev-main": "11.5-dev" + "dev-main": "12.4-dev" } }, "autoload": { @@ -19582,7 +19587,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.44" + "source": "https://github.com/sebastianbergmann/phpunit/tree/12.4.3" }, "funding": [ { @@ -19606,7 +19611,7 @@ "type": "tidelift" } ], - "time": "2025-11-13T07:17:35+00:00" + "time": "2025-11-13T07:20:26+00:00" }, { "name": "react/cache", @@ -19757,16 +19762,16 @@ }, { "name": "react/dns", - "version": "v1.13.0", + "version": "v1.14.0", "source": { "type": "git", "url": "https://github.com/reactphp/dns.git", - "reference": "eb8ae001b5a455665c89c1df97f6fb682f8fb0f5" + "reference": "7562c05391f42701c1fccf189c8225fece1cd7c3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/dns/zipball/eb8ae001b5a455665c89c1df97f6fb682f8fb0f5", - "reference": "eb8ae001b5a455665c89c1df97f6fb682f8fb0f5", + "url": "https://api.github.com/repos/reactphp/dns/zipball/7562c05391f42701c1fccf189c8225fece1cd7c3", + "reference": "7562c05391f42701c1fccf189c8225fece1cd7c3", "shasum": "" }, "require": { @@ -19821,7 +19826,7 @@ ], "support": { "issues": "https://github.com/reactphp/dns/issues", - "source": "https://github.com/reactphp/dns/tree/v1.13.0" + "source": "https://github.com/reactphp/dns/tree/v1.14.0" }, "funding": [ { @@ -19829,7 +19834,7 @@ "type": "open_collective" } ], - "time": "2024-06-13T14:18:03+00:00" + "time": "2025-11-18T19:34:28+00:00" }, { "name": "react/event-loop", @@ -19978,16 +19983,16 @@ }, { "name": "react/socket", - "version": "v1.16.0", + "version": "v1.17.0", "source": { "type": "git", "url": "https://github.com/reactphp/socket.git", - "reference": "23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1" + "reference": "ef5b17b81f6f60504c539313f94f2d826c5faa08" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/socket/zipball/23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1", - "reference": "23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1", + "url": "https://api.github.com/repos/reactphp/socket/zipball/ef5b17b81f6f60504c539313f94f2d826c5faa08", + "reference": "ef5b17b81f6f60504c539313f94f2d826c5faa08", "shasum": "" }, "require": { @@ -20046,7 +20051,7 @@ ], "support": { "issues": "https://github.com/reactphp/socket/issues", - "source": "https://github.com/reactphp/socket/tree/v1.16.0" + "source": "https://github.com/reactphp/socket/tree/v1.17.0" }, "funding": [ { @@ -20054,7 +20059,7 @@ "type": "open_collective" } ], - "time": "2024-07-26T10:38:09+00:00" + "time": "2025-11-19T20:47:34+00:00" }, { "name": "react/stream", @@ -20136,28 +20141,28 @@ }, { "name": "sebastian/cli-parser", - "version": "3.0.2", + "version": "4.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180" + "reference": "90f41072d220e5c40df6e8635f5dafba2d9d4d04" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/15c5dd40dc4f38794d383bb95465193f5e0ae180", - "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/90f41072d220e5c40df6e8635f5dafba2d9d4d04", + "reference": "90f41072d220e5c40df6e8635f5dafba2d9d4d04", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "4.2-dev" } }, "autoload": { @@ -20181,152 +20186,51 @@ "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/3.0.2" + "source": "https://github.com/sebastianbergmann/cli-parser/tree/4.2.0" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" - } - ], - "time": "2024-07-03T04:41:36+00:00" - }, - { - "name": "sebastian/code-unit", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/54391c61e4af8078e5b276ab082b6d3c54c9ad64", - "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ + }, { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the PHP code units", - "homepage": "https://github.com/sebastianbergmann/code-unit", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "security": "https://github.com/sebastianbergmann/code-unit/security/policy", - "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.3" - }, - "funding": [ + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2025-03-19T07:56:08+00:00" - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "4.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "183a9b2632194febd219bb9246eee421dad8d45e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/183a9b2632194febd219bb9246eee421dad8d45e", - "reference": "183a9b2632194febd219bb9246eee421dad8d45e", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "url": "https://tidelift.com/funding/github/packagist/sebastian/cli-parser", + "type": "tidelift" } ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/4.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T04:45:54+00:00" + "time": "2025-09-14T09:36:45+00:00" }, { "name": "sebastian/comparator", - "version": "6.3.2", + "version": "7.1.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "85c77556683e6eee4323e4c5468641ca0237e2e8" + "reference": "dc904b4bb3ab070865fa4068cd84f3da8b945148" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/85c77556683e6eee4323e4c5468641ca0237e2e8", - "reference": "85c77556683e6eee4323e4c5468641ca0237e2e8", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/dc904b4bb3ab070865fa4068cd84f3da8b945148", + "reference": "dc904b4bb3ab070865fa4068cd84f3da8b945148", "shasum": "" }, "require": { "ext-dom": "*", "ext-mbstring": "*", - "php": ">=8.2", - "sebastian/diff": "^6.0", - "sebastian/exporter": "^6.0" + "php": ">=8.3", + "sebastian/diff": "^7.0", + "sebastian/exporter": "^7.0" }, "require-dev": { - "phpunit/phpunit": "^11.4" + "phpunit/phpunit": "^12.2" }, "suggest": { "ext-bcmath": "For comparing BcMath\\Number objects" @@ -20334,7 +20238,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "6.3-dev" + "dev-main": "7.1-dev" } }, "autoload": { @@ -20374,7 +20278,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.2" + "source": "https://github.com/sebastianbergmann/comparator/tree/7.1.3" }, "funding": [ { @@ -20394,33 +20298,33 @@ "type": "tidelift" } ], - "time": "2025-08-10T08:07:46+00:00" + "time": "2025-08-20T11:27:00+00:00" }, { "name": "sebastian/complexity", - "version": "4.0.1", + "version": "5.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "ee41d384ab1906c68852636b6de493846e13e5a0" + "reference": "bad4316aba5303d0221f43f8cee37eb58d384bbb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/ee41d384ab1906c68852636b6de493846e13e5a0", - "reference": "ee41d384ab1906c68852636b6de493846e13e5a0", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/bad4316aba5303d0221f43f8cee37eb58d384bbb", + "reference": "bad4316aba5303d0221f43f8cee37eb58d384bbb", "shasum": "" }, "require": { "nikic/php-parser": "^5.0", - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -20444,7 +20348,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", "security": "https://github.com/sebastianbergmann/complexity/security/policy", - "source": "https://github.com/sebastianbergmann/complexity/tree/4.0.1" + "source": "https://github.com/sebastianbergmann/complexity/tree/5.0.0" }, "funding": [ { @@ -20452,33 +20356,33 @@ "type": "github" } ], - "time": "2024-07-03T04:49:50+00:00" + "time": "2025-02-07T04:55:25+00:00" }, { "name": "sebastian/diff", - "version": "6.0.2", + "version": "7.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544" + "reference": "7ab1ea946c012266ca32390913653d844ecd085f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544", - "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7ab1ea946c012266ca32390913653d844ecd085f", + "reference": "7ab1ea946c012266ca32390913653d844ecd085f", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0", - "symfony/process": "^4.2 || ^5" + "phpunit/phpunit": "^12.0", + "symfony/process": "^7.2" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -20511,7 +20415,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2" + "source": "https://github.com/sebastianbergmann/diff/tree/7.0.0" }, "funding": [ { @@ -20519,27 +20423,27 @@ "type": "github" } ], - "time": "2024-07-03T04:53:05+00:00" + "time": "2025-02-07T04:55:46+00:00" }, { "name": "sebastian/environment", - "version": "7.2.1", + "version": "8.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4" + "reference": "24a711b5c916efc6d6e62aa65aa2ec98fef77f68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/a5c75038693ad2e8d4b6c15ba2403532647830c4", - "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/24a711b5c916efc6d6e62aa65aa2ec98fef77f68", + "reference": "24a711b5c916efc6d6e62aa65aa2ec98fef77f68", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^12.0" }, "suggest": { "ext-posix": "*" @@ -20547,7 +20451,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "7.2-dev" + "dev-main": "8.0-dev" } }, "autoload": { @@ -20575,7 +20479,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", "security": "https://github.com/sebastianbergmann/environment/security/policy", - "source": "https://github.com/sebastianbergmann/environment/tree/7.2.1" + "source": "https://github.com/sebastianbergmann/environment/tree/8.0.3" }, "funding": [ { @@ -20595,34 +20499,34 @@ "type": "tidelift" } ], - "time": "2025-05-21T11:55:47+00:00" + "time": "2025-08-12T14:11:56+00:00" }, { "name": "sebastian/exporter", - "version": "6.3.2", + "version": "7.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "70a298763b40b213ec087c51c739efcaa90bcd74" + "reference": "016951ae10980765e4e7aee491eb288c64e505b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/70a298763b40b213ec087c51c739efcaa90bcd74", - "reference": "70a298763b40b213ec087c51c739efcaa90bcd74", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/016951ae10980765e4e7aee491eb288c64e505b7", + "reference": "016951ae10980765e4e7aee491eb288c64e505b7", "shasum": "" }, "require": { "ext-mbstring": "*", - "php": ">=8.2", - "sebastian/recursion-context": "^6.0" + "php": ">=8.3", + "sebastian/recursion-context": "^7.0" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.3-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -20665,7 +20569,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", "security": "https://github.com/sebastianbergmann/exporter/security/policy", - "source": "https://github.com/sebastianbergmann/exporter/tree/6.3.2" + "source": "https://github.com/sebastianbergmann/exporter/tree/7.0.2" }, "funding": [ { @@ -20685,35 +20589,35 @@ "type": "tidelift" } ], - "time": "2025-09-24T06:12:51+00:00" + "time": "2025-09-24T06:16:11+00:00" }, { "name": "sebastian/global-state", - "version": "7.0.2", + "version": "8.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "3be331570a721f9a4b5917f4209773de17f747d7" + "reference": "ef1377171613d09edd25b7816f05be8313f9115d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/3be331570a721f9a4b5917f4209773de17f747d7", - "reference": "3be331570a721f9a4b5917f4209773de17f747d7", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/ef1377171613d09edd25b7816f05be8313f9115d", + "reference": "ef1377171613d09edd25b7816f05be8313f9115d", "shasum": "" }, "require": { - "php": ">=8.2", - "sebastian/object-reflector": "^4.0", - "sebastian/recursion-context": "^6.0" + "php": ">=8.3", + "sebastian/object-reflector": "^5.0", + "sebastian/recursion-context": "^7.0" }, "require-dev": { "ext-dom": "*", - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "7.0-dev" + "dev-main": "8.0-dev" } }, "autoload": { @@ -20739,41 +20643,53 @@ "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", "security": "https://github.com/sebastianbergmann/global-state/security/policy", - "source": "https://github.com/sebastianbergmann/global-state/tree/7.0.2" + "source": "https://github.com/sebastianbergmann/global-state/tree/8.0.2" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/global-state", + "type": "tidelift" } ], - "time": "2024-07-03T04:57:36+00:00" + "time": "2025-08-29T11:29:25+00:00" }, { "name": "sebastian/lines-of-code", - "version": "3.0.1", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a" + "reference": "97ffee3bcfb5805568d6af7f0f893678fc076d2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d36ad0d782e5756913e42ad87cb2890f4ffe467a", - "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/97ffee3bcfb5805568d6af7f0f893678fc076d2f", + "reference": "97ffee3bcfb5805568d6af7f0f893678fc076d2f", "shasum": "" }, "require": { "nikic/php-parser": "^5.0", - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -20797,7 +20713,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/3.0.1" + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/4.0.0" }, "funding": [ { @@ -20805,34 +20721,34 @@ "type": "github" } ], - "time": "2024-07-03T04:58:38+00:00" + "time": "2025-02-07T04:57:28+00:00" }, { "name": "sebastian/object-enumerator", - "version": "6.0.1", + "version": "7.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "f5b498e631a74204185071eb41f33f38d64608aa" + "reference": "1effe8e9b8e068e9ae228e542d5d11b5d16db894" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f5b498e631a74204185071eb41f33f38d64608aa", - "reference": "f5b498e631a74204185071eb41f33f38d64608aa", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1effe8e9b8e068e9ae228e542d5d11b5d16db894", + "reference": "1effe8e9b8e068e9ae228e542d5d11b5d16db894", "shasum": "" }, "require": { - "php": ">=8.2", - "sebastian/object-reflector": "^4.0", - "sebastian/recursion-context": "^6.0" + "php": ">=8.3", + "sebastian/object-reflector": "^5.0", + "sebastian/recursion-context": "^7.0" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -20855,7 +20771,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/6.0.1" + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/7.0.0" }, "funding": [ { @@ -20863,32 +20779,32 @@ "type": "github" } ], - "time": "2024-07-03T05:00:13+00:00" + "time": "2025-02-07T04:57:48+00:00" }, { "name": "sebastian/object-reflector", - "version": "4.0.1", + "version": "5.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9" + "reference": "4bfa827c969c98be1e527abd576533293c634f6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/6e1a43b411b2ad34146dee7524cb13a068bb35f9", - "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/4bfa827c969c98be1e527abd576533293c634f6a", + "reference": "4bfa827c969c98be1e527abd576533293c634f6a", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -20911,7 +20827,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/object-reflector/issues", "security": "https://github.com/sebastianbergmann/object-reflector/security/policy", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/4.0.1" + "source": "https://github.com/sebastianbergmann/object-reflector/tree/5.0.0" }, "funding": [ { @@ -20919,32 +20835,32 @@ "type": "github" } ], - "time": "2024-07-03T05:01:32+00:00" + "time": "2025-02-07T04:58:17+00:00" }, { "name": "sebastian/recursion-context", - "version": "6.0.3", + "version": "7.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc" + "reference": "0b01998a7d5b1f122911a66bebcb8d46f0c82d8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/f6458abbf32a6c8174f8f26261475dc133b3d9dc", - "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/0b01998a7d5b1f122911a66bebcb8d46f0c82d8c", + "reference": "0b01998a7d5b1f122911a66bebcb8d46f0c82d8c", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -20975,7 +20891,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.3" + "source": "https://github.com/sebastianbergmann/recursion-context/tree/7.0.1" }, "funding": [ { @@ -20995,32 +20911,32 @@ "type": "tidelift" } ], - "time": "2025-08-13T04:42:22+00:00" + "time": "2025-08-13T04:44:59+00:00" }, { "name": "sebastian/type", - "version": "5.1.3", + "version": "6.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449" + "reference": "e549163b9760b8f71f191651d22acf32d56d6d4d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/f77d2d4e78738c98d9a68d2596fe5e8fa380f449", - "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/e549163b9760b8f71f191651d22acf32d56d6d4d", + "reference": "e549163b9760b8f71f191651d22acf32d56d6d4d", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.1-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -21044,7 +20960,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/type/issues", "security": "https://github.com/sebastianbergmann/type/security/policy", - "source": "https://github.com/sebastianbergmann/type/tree/5.1.3" + "source": "https://github.com/sebastianbergmann/type/tree/6.0.3" }, "funding": [ { @@ -21064,29 +20980,29 @@ "type": "tidelift" } ], - "time": "2025-08-09T06:55:48+00:00" + "time": "2025-08-09T06:57:12+00:00" }, { "name": "sebastian/version", - "version": "5.0.2", + "version": "6.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874" + "reference": "3e6ccf7657d4f0a59200564b08cead899313b53c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c687e3387b99f5b03b6caa64c74b63e2936ff874", - "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/3e6ccf7657d4f0a59200564b08cead899313b53c", + "reference": "3e6ccf7657d4f0a59200564b08cead899313b53c", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -21110,7 +21026,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/version/issues", "security": "https://github.com/sebastianbergmann/version/security/policy", - "source": "https://github.com/sebastianbergmann/version/tree/5.0.2" + "source": "https://github.com/sebastianbergmann/version/tree/6.0.0" }, "funding": [ { @@ -21118,7 +21034,7 @@ "type": "github" } ], - "time": "2024-10-09T05:16:32+00:00" + "time": "2025-02-07T05:00:38+00:00" }, { "name": "spatie/backtrace", diff --git a/tests/Feature/ActivityApiTest.php b/tests/Feature/ActivityApiTest.php index 57ffd8d611..2dec9f6148 100644 --- a/tests/Feature/ActivityApiTest.php +++ b/tests/Feature/ActivityApiTest.php @@ -23,6 +23,8 @@ class ActivityApiTest extends TestCase use DatabaseTransactions; use MockAccountData; + public $faker; + protected function setUp(): void { parent::setUp(); diff --git a/tests/Feature/ApplePayDomainMerchantUrlTest.php b/tests/Feature/ApplePayDomainMerchantUrlTest.php index 0749ab6b56..26573b8114 100644 --- a/tests/Feature/ApplePayDomainMerchantUrlTest.php +++ b/tests/Feature/ApplePayDomainMerchantUrlTest.php @@ -23,6 +23,8 @@ class ApplePayDomainMerchantUrlTest extends TestCase use DatabaseTransactions; use MockAccountData; + public $faker; + protected function setUp(): void { parent::setUp(); diff --git a/tests/Feature/Bank/BankTransactionRuleTest.php b/tests/Feature/Bank/BankTransactionRuleTest.php index 8f90fc494b..ee8a28845a 100644 --- a/tests/Feature/Bank/BankTransactionRuleTest.php +++ b/tests/Feature/Bank/BankTransactionRuleTest.php @@ -30,6 +30,8 @@ class BankTransactionRuleTest extends TestCase use DatabaseTransactions; use MockAccountData; + public $faker; + protected function setUp(): void { parent::setUp(); diff --git a/tests/Feature/Bank/BankTransactionTest.php b/tests/Feature/Bank/BankTransactionTest.php index 4847e5ffa9..73d985ca9d 100644 --- a/tests/Feature/Bank/BankTransactionTest.php +++ b/tests/Feature/Bank/BankTransactionTest.php @@ -29,6 +29,8 @@ class BankTransactionTest extends TestCase use DatabaseTransactions; use MockAccountData; + public $faker; + protected function setUp(): void { parent::setUp(); diff --git a/tests/Feature/BankTransactionRuleApiTest.php b/tests/Feature/BankTransactionRuleApiTest.php index 776871146c..2c2c2d037b 100644 --- a/tests/Feature/BankTransactionRuleApiTest.php +++ b/tests/Feature/BankTransactionRuleApiTest.php @@ -25,6 +25,8 @@ class BankTransactionRuleApiTest extends TestCase use DatabaseTransactions; use MockAccountData; + public $faker; + protected function setUp(): void { parent::setUp(); diff --git a/tests/Feature/ClientModelTest.php b/tests/Feature/ClientModelTest.php index f9e58f359e..8981497a03 100644 --- a/tests/Feature/ClientModelTest.php +++ b/tests/Feature/ClientModelTest.php @@ -24,6 +24,8 @@ class ClientModelTest extends TestCase use MockAccountData; use DatabaseTransactions; + public $faker; + protected function setUp(): void { parent::setUp(); diff --git a/tests/Feature/ClientPresenterTest.php b/tests/Feature/ClientPresenterTest.php index 7dc0d2b3a2..eba33ec29a 100644 --- a/tests/Feature/ClientPresenterTest.php +++ b/tests/Feature/ClientPresenterTest.php @@ -25,6 +25,8 @@ class ClientPresenterTest extends TestCase use MockAccountData; use DatabaseTransactions; + public $faker; + protected function setUp(): void { parent::setUp(); diff --git a/tests/Feature/CompanyGatewayApiTest.php b/tests/Feature/CompanyGatewayApiTest.php index f77f6f384a..c0d4a0eb88 100644 --- a/tests/Feature/CompanyGatewayApiTest.php +++ b/tests/Feature/CompanyGatewayApiTest.php @@ -33,6 +33,8 @@ class CompanyGatewayApiTest extends TestCase use MakesHash; use DatabaseTransactions; use MockAccountData; + + public $faker; use CompanyGatewayFeesAndLimitsSaver; protected function setUp(): void diff --git a/tests/Feature/CompanyGatewayTest.php b/tests/Feature/CompanyGatewayTest.php index d194d4106a..4cabe56ac7 100644 --- a/tests/Feature/CompanyGatewayTest.php +++ b/tests/Feature/CompanyGatewayTest.php @@ -29,6 +29,8 @@ class CompanyGatewayTest extends TestCase { use MockAccountData; use DatabaseTransactions; + + public $faker; // use RefreshDatabase; protected function setUp(): void diff --git a/tests/Feature/CompanySettingsTest.php b/tests/Feature/CompanySettingsTest.php index 1ec719bdba..a18bfb2115 100644 --- a/tests/Feature/CompanySettingsTest.php +++ b/tests/Feature/CompanySettingsTest.php @@ -31,6 +31,8 @@ class CompanySettingsTest extends TestCase use MakesHash; use DatabaseTransactions; use MockAccountData; + + public $faker; // use RefreshDatabase; public function setUp(): void diff --git a/tests/Feature/CompanyTokenApiTest.php b/tests/Feature/CompanyTokenApiTest.php index 9cee0d36c4..ca3fd5152b 100644 --- a/tests/Feature/CompanyTokenApiTest.php +++ b/tests/Feature/CompanyTokenApiTest.php @@ -32,6 +32,8 @@ class CompanyTokenApiTest extends TestCase use DatabaseTransactions; use MockAccountData; + public $faker; + protected function setUp(): void { parent::setUp(); diff --git a/tests/Feature/DeleteInvoiceTest.php b/tests/Feature/DeleteInvoiceTest.php index a98d5893e2..79d8aa58d0 100644 --- a/tests/Feature/DeleteInvoiceTest.php +++ b/tests/Feature/DeleteInvoiceTest.php @@ -30,6 +30,8 @@ class DeleteInvoiceTest extends TestCase { use DatabaseTransactions; use MockAccountData; + + public $faker; use MakesHash; protected function setUp(): void diff --git a/tests/Feature/EInvoice/PeppolTest.php b/tests/Feature/EInvoice/PeppolTest.php index 4ea6c6360b..b5064bc39c 100644 --- a/tests/Feature/EInvoice/PeppolTest.php +++ b/tests/Feature/EInvoice/PeppolTest.php @@ -541,12 +541,16 @@ class PeppolTest extends TestCase [ 'cbc:StartDate' => $invoice->date, 'cbc:EndDate' => $invoice->due_date ?? $invoice->date, + 'StartDate' => $invoice->date, + 'EndDate' => $invoice->due_date ?? $invoice->date, ] ] ] ]; $invoice->save(); + $this->assertNotNull($invoice->e_invoice->Invoice->InvoicePeriod[0]->StartDate); //@phpstan-ignore-line + $repo = new InvoiceRepository(); $invoice = $repo->save([], $invoice); $invoice = $invoice->service()->markSent()->save(); @@ -676,6 +680,8 @@ class PeppolTest extends TestCase [ 'cbc:StartDate' => $invoice->date, 'cbc:EndDate' => $invoice->due_date ?? $invoice->date, + 'StartDate' => $invoice->date, + 'EndDate' => $invoice->due_date ?? $invoice->date, ] ] ] @@ -723,6 +729,8 @@ class PeppolTest extends TestCase [ 'cbc:StartDate' => $invoice->date, 'cbc:EndDate' => $invoice->due_date ?? $invoice->date, + 'StartDate' => $invoice->date, + 'EndDate' => $invoice->due_date ?? $invoice->date, ] ] ] diff --git a/tests/Feature/Import/CSV/CsvImportTest.php b/tests/Feature/Import/CSV/CsvImportTest.php index c2821176be..9885c67948 100644 --- a/tests/Feature/Import/CSV/CsvImportTest.php +++ b/tests/Feature/Import/CSV/CsvImportTest.php @@ -34,6 +34,8 @@ class CsvImportTest extends TestCase use MakesHash; use MockAccountData; + public $faker; + protected function setUp(): void { parent::setUp(); @@ -133,6 +135,11 @@ class CsvImportTest extends TestCase $this->assertTrue($base_transformer->hasRecurringInvoice('54')); + $this->assertTrue($base_transformer->hasRecurringInvoice('781')); + + $r = \App\Models\RecurringInvoice::where('number', '781')->first(); + $this->assertEquals(\App\Models\RecurringInvoice::FREQUENCY_ANNUALLY, $r->frequency_id); + } diff --git a/tests/Feature/Import/Quickbooks/QuickbooksMappingTest.php b/tests/Feature/Import/Quickbooks/QuickbooksMappingTest.php index ddce8e73fd..18a0bdd49d 100644 --- a/tests/Feature/Import/Quickbooks/QuickbooksMappingTest.php +++ b/tests/Feature/Import/Quickbooks/QuickbooksMappingTest.php @@ -41,7 +41,7 @@ class QuickbooksMappingTest extends TestCase parent::setUp(); - if (config('ninja.testvars.travis') !== false) { + if (config('ninja.testvars.travis') !== false || !config('services.quickbooks.client_id')) { $this->markTestSkipped('Skip test for GH Actions'); } diff --git a/tests/Feature/Import/recurring_invoice.csv b/tests/Feature/Import/recurring_invoice.csv index 40b3140712..c90e7ade06 100644 --- a/tests/Feature/Import/recurring_invoice.csv +++ b/tests/Feature/Import/recurring_invoice.csv @@ -403,3 +403,4 @@ Ms. Alena Cassin,golden.green@example.org,always,monthly,endless,777,$17.94,$12. Ms. Alena Cassin,golden.green@example.org,always,monthly,endless,778,$14.88,$7.97,,Partial,2020-02-27,2019-11-29,,$0.00,,,,sed,In nulla eos ipsam molestias. Perferendis sunt et consequuntur qui ex nesciunt et. Amet animi aut dicta qui facilis voluptatem.,4.96,3 Ms. Alena Cassin,golden.green@example.org,always,monthly,endless,779,$49.00,$28.77,,Partial,2019-10-25,2020-01-10,,$0.00,,,,facere,Reiciendis voluptas unde et ut. Omnis dolorum modi facere exercitationem fuga. Eum recusandae ut ea qui autem.,4.9,10 Ms. Alena Cassin,golden.green@example.org,always,monthly,endless,780,$51.03,$51.03,,Paid,2019-12-01,2020-01-14,,$0.00,,,,voluptas,Saepe eius placeat sit mollitia magni. Porro ipsam praesentium tempora iste. Suscipit dolorem omnis eligendi corrupti est nobis.,7.29,7 +Ms. Alena Cassin,golden.green@example.org,always,yearly,endless,781,$51.03,$51.03,,Paid,2019-12-01,2020-01-14,,$0.00,,,,voluptas,Saepe eius placeat sit mollitia magni. Porro ipsam praesentium tempora iste. Suscipit dolorem omnis eligendi corrupti est nobis.,7.29,7 diff --git a/tests/MockAccountData.php b/tests/MockAccountData.php index 3b562b9778..9ad6ddceaf 100644 --- a/tests/MockAccountData.php +++ b/tests/MockAccountData.php @@ -70,6 +70,8 @@ use App\Repositories\RecurringInvoiceRepository; use App\Factory\InvoiceToRecurringInvoiceFactory; use App\Repositories\CreditRepository; +use Faker\Generator; + /** * Class MockAccountData. */ @@ -78,126 +80,132 @@ trait MockAccountData use MakesHash; use GeneratesCounter; - public $credit_calc; + public mixed $credit_calc = null; + + public $invoice_calc; + + public $quote_calc; + + public $recurring_invoice_calc; /** - * @var + * @var Project|null */ public $project; /** - * @var + * @var Account|null */ public $account; /** - * @var + * @var Company|null */ public $company; /** - * @var + * @var User|null */ public $user; /** - * @var + * @var Client|null */ public $client; /** - * @var + * @var CompanyToken|string|null */ public $token; /** - * @var + * @var RecurringExpense|null */ public $recurring_expense; /** - * @var + * @var RecurringQuote|null */ public $recurring_quote; /** - * @var \App\Models\Credit + * @var Credit|null */ public $credit; /** - * @var \App\Models\Invoice + * @var \App\Models\Invoice|null */ public $invoice; /** - * @var + * @var Quote|null */ public $quote; /** - * @var + * @var Vendor|null */ public $vendor; /** - * @var + * @var Expense|null */ public $expense; /** - * @var + * @var Task|null */ public $task; /** - * @var + * @var TaskStatus|null */ public $task_status; /** - * @var + * @var ExpenseCategory|null */ public $expense_category; /** - * @var + * @var \App\Models\CompanyUser|null */ public $cu; /** - * @var + * @var BankIntegration|null */ public $bank_integration; /** - * @var + * @var BankTransaction|null */ public $bank_transaction; /** - * @var + * @var BankTransactionRule|null */ public $bank_transaction_rule; /** - * @var + * @var Payment|null */ public $payment; /** - * @var + * @var TaxRate|null */ public $tax_rate; /** - * @var + * @var Scheduler|null */ public $scheduler; /** - * @var + * @var \App\Models\PurchaseOrder|null */ public $purchase_order; diff --git a/tests/Unit/AutoBillInvoiceTest.php b/tests/Unit/AutoBillInvoiceTest.php index 56e63ea8bf..42635b1a16 100644 --- a/tests/Unit/AutoBillInvoiceTest.php +++ b/tests/Unit/AutoBillInvoiceTest.php @@ -26,6 +26,8 @@ class AutoBillInvoiceTest extends TestCase use DatabaseTransactions; use MockAccountData; + public $faker; + protected function setUp(): void { parent::setUp(); diff --git a/tests/Unit/Chart/ChartCurrencyTest.php b/tests/Unit/Chart/ChartCurrencyTest.php index b0a4c0472b..dd2fdea8b0 100644 --- a/tests/Unit/Chart/ChartCurrencyTest.php +++ b/tests/Unit/Chart/ChartCurrencyTest.php @@ -34,6 +34,8 @@ class ChartCurrencyTest extends TestCase use MockAccountData; use DatabaseTransactions; + public $faker; + protected function setUp(): void { parent::setUp(); diff --git a/tests/Unit/CloneQuoteToInvoiceFactoryTest.php b/tests/Unit/CloneQuoteToInvoiceFactoryTest.php index 91fb2e5543..e51fed6417 100644 --- a/tests/Unit/CloneQuoteToInvoiceFactoryTest.php +++ b/tests/Unit/CloneQuoteToInvoiceFactoryTest.php @@ -28,6 +28,8 @@ class CloneQuoteToInvoiceFactoryTest extends TestCase use MockAccountData; use DatabaseTransactions; + public $faker; + protected function setUp(): void { parent::setUp(); diff --git a/tests/Unit/CompanyDocumentsTest.php b/tests/Unit/CompanyDocumentsTest.php index d68f65aca4..970f45344f 100644 --- a/tests/Unit/CompanyDocumentsTest.php +++ b/tests/Unit/CompanyDocumentsTest.php @@ -26,6 +26,8 @@ class CompanyDocumentsTest extends TestCase use MockAccountData; use DatabaseTransactions; + public $faker; + protected function setUp(): void { parent::setUp(); diff --git a/tests/Unit/EInvoiceTest.php b/tests/Unit/EInvoiceTest.php index 35f128a994..f2779202dc 100644 --- a/tests/Unit/EInvoiceTest.php +++ b/tests/Unit/EInvoiceTest.php @@ -32,6 +32,8 @@ class EInvoiceTest extends TestCase use MockAccountData; use DatabaseTransactions; + public $faker; + protected function setUp(): void { parent::setUp(); diff --git a/tests/Unit/EntityTest.php b/tests/Unit/EntityTest.php index e430527f91..c1c2b68e99 100644 --- a/tests/Unit/EntityTest.php +++ b/tests/Unit/EntityTest.php @@ -37,6 +37,8 @@ class EntityTest extends TestCase use MockAccountData; use DatabaseTransactions; + public $faker; + public $invoice; public $invoice_calc; diff --git a/tests/Unit/GoogleAnalyticsTest.php b/tests/Unit/GoogleAnalyticsTest.php index b1c4cd10f3..cd1d271451 100644 --- a/tests/Unit/GoogleAnalyticsTest.php +++ b/tests/Unit/GoogleAnalyticsTest.php @@ -26,6 +26,8 @@ class GoogleAnalyticsTest extends TestCase use MockAccountData; use DatabaseTransactions; + public $faker; + protected function setUp(): void { parent::setUp(); diff --git a/tests/Unit/GroupSettingsTest.php b/tests/Unit/GroupSettingsTest.php index 506144f70e..7ba4147065 100644 --- a/tests/Unit/GroupSettingsTest.php +++ b/tests/Unit/GroupSettingsTest.php @@ -27,6 +27,8 @@ class GroupSettingsTest extends TestCase { use MockAccountData; use DatabaseTransactions; + + public $faker; use ClientGroupSettingsSaver; public $company_settings; diff --git a/tests/Unit/InvitationTest.php b/tests/Unit/InvitationTest.php index c024be18d9..f2a7606945 100644 --- a/tests/Unit/InvitationTest.php +++ b/tests/Unit/InvitationTest.php @@ -25,6 +25,8 @@ class InvitationTest extends TestCase { use MockAccountData; use DatabaseTransactions; + + public $faker; use MakesHash; protected function setUp(): void diff --git a/tests/Unit/InvoiceActionsTest.php b/tests/Unit/InvoiceActionsTest.php index c522e466d4..3bce12ffe6 100644 --- a/tests/Unit/InvoiceActionsTest.php +++ b/tests/Unit/InvoiceActionsTest.php @@ -26,6 +26,8 @@ class InvoiceActionsTest extends TestCase { use MockAccountData; use DatabaseTransactions; + + public $faker; use ActionsInvoice; protected function setUp(): void diff --git a/tests/Unit/InvoiceBalanceTest.php b/tests/Unit/InvoiceBalanceTest.php index f5e095cdee..bd3e057a21 100644 --- a/tests/Unit/InvoiceBalanceTest.php +++ b/tests/Unit/InvoiceBalanceTest.php @@ -27,6 +27,8 @@ class InvoiceBalanceTest extends TestCase { use MockAccountData; + public $faker; + protected function setUp(): void { parent::setUp(); diff --git a/tests/Unit/InvoiceInclusiveTest.php b/tests/Unit/InvoiceInclusiveTest.php index 5acce19e4b..a0bc4aa801 100644 --- a/tests/Unit/InvoiceInclusiveTest.php +++ b/tests/Unit/InvoiceInclusiveTest.php @@ -27,6 +27,8 @@ class InvoiceInclusiveTest extends TestCase use MockAccountData; use DatabaseTransactions; + public $faker; + public $invoice; public $invoice_calc; diff --git a/tests/Unit/InvoiceItemInclusiveTest.php b/tests/Unit/InvoiceItemInclusiveTest.php index 84f4b94d20..db22edcbda 100644 --- a/tests/Unit/InvoiceItemInclusiveTest.php +++ b/tests/Unit/InvoiceItemInclusiveTest.php @@ -27,6 +27,8 @@ class InvoiceItemInclusiveTest extends TestCase use MockAccountData; use DatabaseTransactions; + public $faker; + protected function setUp(): void { parent::setUp(); diff --git a/tests/Unit/InvoiceItemTest.php b/tests/Unit/InvoiceItemTest.php index e76f0d6f50..b0e439916d 100644 --- a/tests/Unit/InvoiceItemTest.php +++ b/tests/Unit/InvoiceItemTest.php @@ -29,6 +29,8 @@ class InvoiceItemTest extends TestCase use MockAccountData; use DatabaseTransactions; + public $faker; + protected function setUp(): void { parent::setUp(); diff --git a/tests/Unit/InvoiceItemV2Test.php b/tests/Unit/InvoiceItemV2Test.php index d45f1c45d0..c00ae8b0d7 100644 --- a/tests/Unit/InvoiceItemV2Test.php +++ b/tests/Unit/InvoiceItemV2Test.php @@ -27,6 +27,8 @@ class InvoiceItemV2Test extends TestCase use MockAccountData; use DatabaseTransactions; + public $faker; + protected function setUp(): void { parent::setUp(); diff --git a/tests/Unit/InvoiceStatusTest.php b/tests/Unit/InvoiceStatusTest.php index b825a1965d..c8351c4c05 100644 --- a/tests/Unit/InvoiceStatusTest.php +++ b/tests/Unit/InvoiceStatusTest.php @@ -26,6 +26,8 @@ class InvoiceStatusTest extends TestCase use MockAccountData; use DatabaseTransactions; + public $faker; + public $invoice; public $invoice_calc; diff --git a/tests/Unit/InvoiceTest.php b/tests/Unit/InvoiceTest.php index 8290be5f52..b0464a88fb 100644 --- a/tests/Unit/InvoiceTest.php +++ b/tests/Unit/InvoiceTest.php @@ -33,6 +33,8 @@ class InvoiceTest extends TestCase use MockAccountData; use DatabaseTransactions; + public $faker; + public $invoice; public $invoice_calc; @@ -455,6 +457,7 @@ class InvoiceTest extends TestCase 'settings' => $c_settings, ]); + $this->assertEquals(0, $c->balance); $item = InvoiceItemFactory::create(); diff --git a/tests/Unit/Migration/ImportTest.php b/tests/Unit/Migration/ImportTest.php index bb52583667..c52310ec1a 100644 --- a/tests/Unit/Migration/ImportTest.php +++ b/tests/Unit/Migration/ImportTest.php @@ -21,6 +21,8 @@ class ImportTest extends TestCase use MockAccountData; use DatabaseTransactions; + public $faker; + public $migration_array; protected function setUp(): void diff --git a/tests/Unit/MockAccountDataTest.php b/tests/Unit/MockAccountDataTest.php new file mode 100644 index 0000000000..9edf64daf6 --- /dev/null +++ b/tests/Unit/MockAccountDataTest.php @@ -0,0 +1,254 @@ +getProperties(ReflectionProperty::IS_PUBLIC); + + $expectedProperties = [ + 'credit_calc', + 'invoice_calc', + 'quote_calc', + 'recurring_invoice_calc', + 'project', + 'account', + 'company', + 'user', + 'client', + 'token', + 'recurring_expense', + 'recurring_quote', + 'credit', + 'invoice', + 'quote', + 'vendor', + 'expense', + 'task', + 'task_status', + 'expense_category', + 'cu', + 'bank_integration', + 'bank_transaction', + 'bank_transaction_rule', + 'payment', + 'tax_rate', + 'scheduler', + 'purchase_order', + 'contact', + 'product', + 'recurring_invoice', + ]; + + $foundProperties = []; + foreach ($properties as $property) { + if (in_array($property->getName(), $expectedProperties)) { + $foundProperties[] = $property->getName(); + } + } + + // Verify all expected properties were found + $missingProperties = array_diff($expectedProperties, $foundProperties); + $this->assertEmpty( + $missingProperties, + 'Missing property declarations: ' . implode(', ', $missingProperties) + ); + } + + /** + * Test that properties can be assigned without triggering deprecation warnings. + */ + public function testPropertiesCanBeAssignedWithoutWarnings(): void + { + // These assignments should not trigger any deprecation warnings + $this->credit_calc = 'test_value'; + $this->invoice_calc = null; + $this->quote_calc = null; + $this->recurring_invoice_calc = null; + + // Create mock objects for testing + $this->account = new Account(); + $this->company = new Company(); + $this->user = new User(); + $this->client = new Client(); + $this->project = new Project(); + $this->vendor = new Vendor(); + $this->expense = new Expense(); + $this->task = new Task(); + $this->quote = new Quote(); + $this->credit = new Credit(); + $this->payment = new Payment(); + $this->product = new Product(); + $this->tax_rate = new TaxRate(); + $this->scheduler = new Scheduler(); + $this->task_status = new TaskStatus(); + $this->token = new CompanyToken(); + $this->recurring_quote = new RecurringQuote(); + $this->recurring_expense = new RecurringExpense(); + $this->recurring_invoice = new RecurringInvoice(); + $this->expense_category = new ExpenseCategory(); + $this->bank_integration = new BankIntegration(); + $this->bank_transaction = new BankTransaction(); + $this->bank_transaction_rule = new BankTransactionRule(); + $this->contact = new ClientContact(); + + // Assert that the properties were set correctly + $this->assertNotNull($this->credit_calc); + $this->assertInstanceOf(Account::class, $this->account); + $this->assertInstanceOf(Company::class, $this->company); + $this->assertInstanceOf(User::class, $this->user); + $this->assertInstanceOf(Client::class, $this->client); + } + + /** + * Test that all properties have proper nullable type hints. + */ + public function testPropertiesHaveNullableTypeHints(): void + { + $reflection = new ReflectionClass($this); + + $nullableProperties = [ + 'invoice_calc', + 'quote_calc', + 'recurring_invoice_calc', + 'project', + 'account', + 'company', + 'user', + 'client', + 'token', + 'recurring_expense', + 'recurring_quote', + 'credit', + 'invoice', + 'quote', + 'vendor', + 'expense', + 'task', + 'task_status', + 'expense_category', + 'cu', + 'bank_integration', + 'bank_transaction', + 'bank_transaction_rule', + 'payment', + 'tax_rate', + 'scheduler', + 'purchase_order', + 'contact', + 'product', + 'recurring_invoice', + ]; + + foreach ($nullableProperties as $propertyName) { + if ($reflection->hasProperty($propertyName)) { + $property = $reflection->getProperty($propertyName); + + // Property should allow null or have a default value of null + $this->assertTrue( + $property->hasDefaultValue() && $property->getDefaultValue() === null, + "Property {$propertyName} should have a default value of null" + ); + } + } + } + + /** + * Test that properties don't trigger dynamic property creation warnings. + */ + public function testNoDynamicPropertyWarnings(): void + { + // Enable error reporting to catch any warnings + $previousErrorReporting = error_reporting(); + error_reporting(E_ALL); + + try { + // Set various properties - this should not trigger any warnings + $this->account = null; + $this->company = null; + $this->user = null; + $this->client = null; + + // If we got here without warnings/errors, the test passes + $this->assertTrue(true, 'No dynamic property warnings were triggered'); + } finally { + // Restore previous error reporting level + error_reporting($previousErrorReporting); + } + } + + /** + * Test that credit_calc property accepts mixed types. + */ + public function testCreditCalcAcceptsMixedTypes(): void + { + $this->credit_calc = 'string_value'; + $this->assertIsString($this->credit_calc); + + $this->credit_calc = 123; + $this->assertIsInt($this->credit_calc); + + $this->credit_calc = ['array' => 'value']; + $this->assertIsArray($this->credit_calc); + + $this->credit_calc = null; + $this->assertNull($this->credit_calc); + } +} diff --git a/tests/Unit/PasswordTimeoutTest.php b/tests/Unit/PasswordTimeoutTest.php index 715e620a04..d907476333 100644 --- a/tests/Unit/PasswordTimeoutTest.php +++ b/tests/Unit/PasswordTimeoutTest.php @@ -26,6 +26,8 @@ class PasswordTimeoutTest extends TestCase use DatabaseTransactions; use MockAccountData; + public $faker; + protected function setUp(): void { parent::setUp(); diff --git a/tests/Unit/RecurringDatesTest.php b/tests/Unit/RecurringDatesTest.php index f7ddda5ab2..9c112c8efc 100644 --- a/tests/Unit/RecurringDatesTest.php +++ b/tests/Unit/RecurringDatesTest.php @@ -37,6 +37,8 @@ class RecurringDatesTest extends TestCase use MockAccountData; use DatabaseTransactions; + public $faker; + protected function setUp(): void { parent::setUp(); diff --git a/tests/Unit/RelationExistsTest.php b/tests/Unit/RelationExistsTest.php index 1a6434abbd..354519c2fc 100644 --- a/tests/Unit/RelationExistsTest.php +++ b/tests/Unit/RelationExistsTest.php @@ -35,6 +35,8 @@ class RelationExistsTest extends TestCase use MockAccountData; use DatabaseTransactions; + public $faker; + private $models = [ Invoice::class, Client::class, diff --git a/tests/Unit/Shop/ShopProfileTest.php b/tests/Unit/Shop/ShopProfileTest.php index 4aff9470f4..a7a6cd3720 100644 --- a/tests/Unit/Shop/ShopProfileTest.php +++ b/tests/Unit/Shop/ShopProfileTest.php @@ -26,6 +26,8 @@ class ShopProfileTest extends TestCase use MockAccountData; use DatabaseTransactions; + public $faker; + protected function setUp(): void { parent::setUp(); diff --git a/tests/Unit/TaskRepositoryBulkUpdateTest.php b/tests/Unit/TaskRepositoryBulkUpdateTest.php index 6a721805c9..a0f107ade7 100644 --- a/tests/Unit/TaskRepositoryBulkUpdateTest.php +++ b/tests/Unit/TaskRepositoryBulkUpdateTest.php @@ -33,6 +33,8 @@ class TaskRepositoryBulkUpdateTest extends TestCase use DatabaseTransactions; use MockAccountData; + public $faker; + private TaskRepository $taskRepository; private Client $testClient; private Project $testProject; diff --git a/tests/Unit/Tax/EuTaxTest.php b/tests/Unit/Tax/EuTaxTest.php index 86dd66689f..83617aa951 100644 --- a/tests/Unit/Tax/EuTaxTest.php +++ b/tests/Unit/Tax/EuTaxTest.php @@ -34,6 +34,8 @@ class EuTaxTest extends TestCase use MockAccountData; use DatabaseTransactions; + public $faker; + protected function setUp(): void { parent::setUp(); diff --git a/tests/Unit/Tax/SumTaxTest.php b/tests/Unit/Tax/SumTaxTest.php index 9b4734c2b3..d1714f135f 100644 --- a/tests/Unit/Tax/SumTaxTest.php +++ b/tests/Unit/Tax/SumTaxTest.php @@ -35,6 +35,8 @@ class SumTaxTest extends TestCase use MockAccountData; use DatabaseTransactions; + public $faker; + public Response $response; public array $resp = [ diff --git a/tests/Unit/Tax/TaxConfigTest.php b/tests/Unit/Tax/TaxConfigTest.php index 15d6000902..ad66d62ad1 100644 --- a/tests/Unit/Tax/TaxConfigTest.php +++ b/tests/Unit/Tax/TaxConfigTest.php @@ -28,6 +28,8 @@ class TaxConfigTest extends TestCase use MockAccountData; use DatabaseTransactions; + public $faker; + protected function setUp(): void { parent::setUp(); diff --git a/tests/Unit/Tax/UsTaxTest.php b/tests/Unit/Tax/UsTaxTest.php index 4bae119161..4153e15f79 100644 --- a/tests/Unit/Tax/UsTaxTest.php +++ b/tests/Unit/Tax/UsTaxTest.php @@ -32,6 +32,8 @@ class UsTaxTest extends TestCase use MockAccountData; use DatabaseTransactions; + public $faker; + private array $mock_response = [ "geoPostalCode" => "92582", "geoCity" => "SAN JACINTO", diff --git a/tests/Unit/TimeZoneTest.php b/tests/Unit/TimeZoneTest.php index 22a0642b4f..22ec3fa252 100644 --- a/tests/Unit/TimeZoneTest.php +++ b/tests/Unit/TimeZoneTest.php @@ -44,7 +44,7 @@ class TimeZoneTest extends TestCase 'America/Santiago' => 'America/Santiago', 'Canada/Newfoundland' => 'America/St_Johns', 'America/Buenos_Aires' => 'America/Argentina/Buenos_Aires', - 'America/Godthab' => 'America/Godthab', + 'America/Godthab' => 'America/Nuuk', 'America/Sao_Paulo' => 'America/Sao_Paulo', 'Atlantic/Stanley' => 'Atlantic/Stanley', 'Atlantic/Azores' => 'Atlantic/Azores',