diff --git a/baseline.xml b/baseline.xml index b574d9da..8d6b6607 100644 --- a/baseline.xml +++ b/baseline.xml @@ -443,6 +443,17 @@ class implements VersionedProjector { + + + $eventBus->dispatch(...$messages); + $parentEventBus = $this->prophesize(EventBus::class); + $parentEventBus->dispatch(...$messages)->shouldBeCalledOnce(); + $parentEventBus->reveal(); + $projectionist = $this->prophesize(Projectionist::class); + $projectionist->reveal(); + $projectionist->run()->shouldBeCalledOnce(); + + class implements Projector { diff --git a/composer.json b/composer.json index 26e4f0c5..8eb0b168 100644 --- a/composer.json +++ b/composer.json @@ -27,7 +27,8 @@ "psr/simple-cache": "^2.0.0|^3.0.0", "symfony/console": "^5.4.1|^6.0.1", "symfony/event-dispatcher": "^4.4.34|^5.4.0|^6.0.1", - "symfony/finder": "^4.4.34|^5.4.0|^6.0.1" + "symfony/finder": "^4.4.34|^5.4.0|^6.0.1", + "symfony/lock": "^4.4.34|^5.4.0|^6.0.1" }, "require-dev": { "ext-pdo_sqlite": "~8.1.0 || ~8.2.0", @@ -45,7 +46,7 @@ "roave/infection-static-analysis-plugin": "^1.22.0", "symfony/messenger": "^4.4.34|^5.4.0|^6.0.1", "symfony/var-dumper": "^5.4.1|^6.0.1", - "vimeo/psalm": "^4.26.0" + "vimeo/psalm": "^5.0.0" }, "suggest": { "doctrine/migrations": "for schema migration support", diff --git a/composer.lock b/composer.lock index 18b592b7..1ca54561 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": "b212ef2a284bc85a783e1c66383eb38b", + "content-hash": "77bf6735c72ced9b6e4bc21b76384d90", "packages": [ { "name": "doctrine/cache", @@ -101,16 +101,16 @@ }, { "name": "doctrine/dbal", - "version": "3.5.1", + "version": "3.5.3", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "f38ee8aaca2d58ee88653cb34a6a3880c23f38a5" + "reference": "88fa7e5189fd5ec6682477044264dc0ed4e3aa1e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/f38ee8aaca2d58ee88653cb34a6a3880c23f38a5", - "reference": "f38ee8aaca2d58ee88653cb34a6a3880c23f38a5", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/88fa7e5189fd5ec6682477044264dc0ed4e3aa1e", + "reference": "88fa7e5189fd5ec6682477044264dc0ed4e3aa1e", "shasum": "" }, "require": { @@ -123,16 +123,16 @@ "psr/log": "^1|^2|^3" }, "require-dev": { - "doctrine/coding-standard": "10.0.0", - "jetbrains/phpstorm-stubs": "2022.2", - "phpstan/phpstan": "1.8.10", + "doctrine/coding-standard": "11.0.0", + "jetbrains/phpstorm-stubs": "2022.3", + "phpstan/phpstan": "1.9.4", "phpstan/phpstan-strict-rules": "^1.4", - "phpunit/phpunit": "9.5.25", - "psalm/plugin-phpunit": "0.17.0", + "phpunit/phpunit": "9.5.27", + "psalm/plugin-phpunit": "0.18.4", "squizlabs/php_codesniffer": "3.7.1", "symfony/cache": "^5.4|^6.0", "symfony/console": "^4.4|^5.4|^6.0", - "vimeo/psalm": "4.29.0" + "vimeo/psalm": "4.30.0" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." @@ -192,7 +192,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.5.1" + "source": "https://github.com/doctrine/dbal/tree/3.5.3" }, "funding": [ { @@ -208,7 +208,7 @@ "type": "tidelift" } ], - "time": "2022-10-24T07:26:18+00:00" + "time": "2023-01-12T10:21:44+00:00" }, { "name": "doctrine/deprecations", @@ -255,30 +255,29 @@ }, { "name": "doctrine/event-manager", - "version": "1.2.0", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/doctrine/event-manager.git", - "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520" + "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/event-manager/zipball/95aa4cb529f1e96576f3fda9f5705ada4056a520", - "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/750671534e0241a7c50ea5b43f67e23eb5c96f32", + "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32", "shasum": "" }, "require": { - "doctrine/deprecations": "^0.5.3 || ^1", - "php": "^7.1 || ^8.0" + "php": "^8.1" }, "conflict": { "doctrine/common": "<2.9" }, "require-dev": { - "doctrine/coding-standard": "^9 || ^10", - "phpstan/phpstan": "~1.4.10 || ^1.8.8", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.24" + "doctrine/coding-standard": "^10", + "phpstan/phpstan": "^1.8.8", + "phpunit/phpunit": "^9.5", + "vimeo/psalm": "^4.28" }, "type": "library", "autoload": { @@ -327,7 +326,7 @@ ], "support": { "issues": "https://github.com/doctrine/event-manager/issues", - "source": "https://github.com/doctrine/event-manager/tree/1.2.0" + "source": "https://github.com/doctrine/event-manager/tree/2.0.0" }, "funding": [ { @@ -343,7 +342,7 @@ "type": "tidelift" } ], - "time": "2022-10-12T20:51:15+00:00" + "time": "2022-10-12T20:59:15+00:00" }, { "name": "psr/cache", @@ -648,16 +647,16 @@ }, { "name": "symfony/console", - "version": "v6.2.1", + "version": "v6.2.5", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "58f6cef5dc5f641b7bbdbf8b32b44cc926c35f3f" + "reference": "3e294254f2191762c1d137aed4b94e966965e985" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/58f6cef5dc5f641b7bbdbf8b32b44cc926c35f3f", - "reference": "58f6cef5dc5f641b7bbdbf8b32b44cc926c35f3f", + "url": "https://api.github.com/repos/symfony/console/zipball/3e294254f2191762c1d137aed4b94e966965e985", + "reference": "3e294254f2191762c1d137aed4b94e966965e985", "shasum": "" }, "require": { @@ -724,7 +723,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.2.1" + "source": "https://github.com/symfony/console/tree/v6.2.5" }, "funding": [ { @@ -740,7 +739,7 @@ "type": "tidelift" } ], - "time": "2022-12-01T13:44:20+00:00" + "time": "2023-01-01T08:38:09+00:00" }, { "name": "symfony/deprecation-contracts", @@ -811,16 +810,16 @@ }, { "name": "symfony/event-dispatcher", - "version": "v6.2.0", + "version": "v6.2.5", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "9efb1618fabee89515fe031314e8ed5625f85a53" + "reference": "f02d108b5e9fd4a6245aa73a9d2df2ec060c3e68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9efb1618fabee89515fe031314e8ed5625f85a53", - "reference": "9efb1618fabee89515fe031314e8ed5625f85a53", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/f02d108b5e9fd4a6245aa73a9d2df2ec060c3e68", + "reference": "f02d108b5e9fd4a6245aa73a9d2df2ec060c3e68", "shasum": "" }, "require": { @@ -874,7 +873,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v6.2.0" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.2.5" }, "funding": [ { @@ -890,7 +889,7 @@ "type": "tidelift" } ], - "time": "2022-11-02T09:08:04+00:00" + "time": "2023-01-01T08:38:09+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -973,16 +972,16 @@ }, { "name": "symfony/finder", - "version": "v6.2.0", + "version": "v6.2.5", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "eb2355f69519e4ef33f1835bca4c935f5d42e570" + "reference": "c90dc446976a612e3312a97a6ec0069ab0c2099c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/eb2355f69519e4ef33f1835bca4c935f5d42e570", - "reference": "eb2355f69519e4ef33f1835bca4c935f5d42e570", + "url": "https://api.github.com/repos/symfony/finder/zipball/c90dc446976a612e3312a97a6ec0069ab0c2099c", + "reference": "c90dc446976a612e3312a97a6ec0069ab0c2099c", "shasum": "" }, "require": { @@ -1017,7 +1016,85 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.2.0" + "source": "https://github.com/symfony/finder/tree/v6.2.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-01-20T17:45:48+00:00" + }, + { + "name": "symfony/lock", + "version": "v6.2.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/lock.git", + "reference": "39ccc73e575f20d4d10b24ad366aa1a7a6d7447d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/lock/zipball/39ccc73e575f20d4d10b24ad366aa1a7a6d7447d", + "reference": "39ccc73e575f20d4d10b24ad366aa1a7a6d7447d", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^1|^2|^3" + }, + "conflict": { + "doctrine/dbal": "<2.13", + "symfony/cache": "<6.2" + }, + "require-dev": { + "doctrine/dbal": "^2.13|^3.0", + "predis/predis": "~1.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Lock\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jérémy Derussé", + "email": "jeremy@derusse.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Creates and manages locks, a mechanism to provide exclusive access to a shared resource", + "homepage": "https://symfony.com", + "keywords": [ + "cas", + "flock", + "locking", + "mutex", + "redlock", + "semaphore" + ], + "support": { + "source": "https://github.com/symfony/lock/tree/v6.2.5" }, "funding": [ { @@ -1033,7 +1110,7 @@ "type": "tidelift" } ], - "time": "2022-10-09T08:55:40+00:00" + "time": "2023-01-01T08:38:09+00:00" }, { "name": "symfony/polyfill-ctype", @@ -1367,16 +1444,16 @@ }, { "name": "symfony/service-contracts", - "version": "v3.1.1", + "version": "v3.2.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "925e713fe8fcacf6bc05e936edd8dd5441a21239" + "reference": "aac98028c69df04ee77eb69b96b86ee51fbf4b75" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/925e713fe8fcacf6bc05e936edd8dd5441a21239", - "reference": "925e713fe8fcacf6bc05e936edd8dd5441a21239", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/aac98028c69df04ee77eb69b96b86ee51fbf4b75", + "reference": "aac98028c69df04ee77eb69b96b86ee51fbf4b75", "shasum": "" }, "require": { @@ -1392,7 +1469,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.1-dev" + "dev-main": "3.3-dev" }, "thanks": { "name": "symfony/contracts", @@ -1432,7 +1509,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.1.1" + "source": "https://github.com/symfony/service-contracts/tree/v3.2.0" }, "funding": [ { @@ -1448,20 +1525,20 @@ "type": "tidelift" } ], - "time": "2022-05-30T19:18:58+00:00" + "time": "2022-11-25T10:21:52+00:00" }, { "name": "symfony/string", - "version": "v6.2.0", + "version": "v6.2.5", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "145702685e0d12f81d755c71127bfff7582fdd36" + "reference": "b2dac0fa27b1ac0f9c0c0b23b43977f12308d0b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/145702685e0d12f81d755c71127bfff7582fdd36", - "reference": "145702685e0d12f81d755c71127bfff7582fdd36", + "url": "https://api.github.com/repos/symfony/string/zipball/b2dac0fa27b1ac0f9c0c0b23b43977f12308d0b0", + "reference": "b2dac0fa27b1ac0f9c0c0b23b43977f12308d0b0", "shasum": "" }, "require": { @@ -1518,7 +1595,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.2.0" + "source": "https://github.com/symfony/string/tree/v6.2.5" }, "funding": [ { @@ -1534,7 +1611,7 @@ "type": "tidelift" } ], - "time": "2022-11-30T17:13:47+00:00" + "time": "2023-01-01T08:38:09+00:00" } ], "packages-dev": [ @@ -1706,16 +1783,16 @@ }, { "name": "colinodell/json5", - "version": "v2.2.2", + "version": "v2.3.0", "source": { "type": "git", "url": "https://github.com/colinodell/json5.git", - "reference": "2b0fabd1ba71fe8079a832d6097ec5c6fd92361d" + "reference": "15b063f8cb5e6deb15f0cd39123264ec0d19c710" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/colinodell/json5/zipball/2b0fabd1ba71fe8079a832d6097ec5c6fd92361d", - "reference": "2b0fabd1ba71fe8079a832d6097ec5c6fd92361d", + "url": "https://api.github.com/repos/colinodell/json5/zipball/15b063f8cb5e6deb15f0cd39123264ec0d19c710", + "reference": "15b063f8cb5e6deb15f0cd39123264ec0d19c710", "shasum": "" }, "require": { @@ -1728,11 +1805,11 @@ }, "require-dev": { "mikehaertl/php-shellcommand": "^1.2.5", - "phpstan/phpstan": "^0.12.58", + "phpstan/phpstan": "^1.4", "scrutinizer/ocular": "^1.6", - "squizlabs/php_codesniffer": "^2.3", - "symfony/finder": "^4.4|^5.2", - "symfony/phpunit-bridge": "^5.1" + "squizlabs/php_codesniffer": "^2.3 || ^3.0", + "symfony/finder": "^4.4|^5.4|^6.0", + "symfony/phpunit-bridge": "^5.4|^6.0" }, "bin": [ "bin/json5" @@ -1773,7 +1850,7 @@ ], "support": { "issues": "https://github.com/colinodell/json5/issues", - "source": "https://github.com/colinodell/json5/tree/v2.2.2" + "source": "https://github.com/colinodell/json5/tree/v2.3.0" }, "funding": [ { @@ -1793,7 +1870,7 @@ "type": "patreon" } ], - "time": "2022-02-22T14:42:16+00:00" + "time": "2022-12-27T16:44:40+00:00" }, { "name": "composer/pcre", @@ -2179,32 +2256,35 @@ }, { "name": "doctrine/annotations", - "version": "1.13.3", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "648b0343343565c4a056bfc8392201385e8d89f0" + "reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/648b0343343565c4a056bfc8392201385e8d89f0", - "reference": "648b0343343565c4a056bfc8392201385e8d89f0", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f", + "reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f", "shasum": "" }, "require": { - "doctrine/lexer": "1.*", + "doctrine/lexer": "^2 || ^3", "ext-tokenizer": "*", - "php": "^7.1 || ^8.0", + "php": "^7.2 || ^8.0", "psr/cache": "^1 || ^2 || ^3" }, "require-dev": { - "doctrine/cache": "^1.11 || ^2.0", - "doctrine/coding-standard": "^6.0 || ^8.1", - "phpstan/phpstan": "^1.4.10 || ^1.8.0", - "phpunit/phpunit": "^7.5 || ^8.0 || ^9.1.5", - "symfony/cache": "^4.4 || ^5.2", + "doctrine/cache": "^2.0", + "doctrine/coding-standard": "^10", + "phpstan/phpstan": "^1.8.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "symfony/cache": "^5.4 || ^6", "vimeo/psalm": "^4.10" }, + "suggest": { + "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations" + }, "type": "library", "autoload": { "psr-4": { @@ -2246,38 +2326,40 @@ ], "support": { "issues": "https://github.com/doctrine/annotations/issues", - "source": "https://github.com/doctrine/annotations/tree/1.13.3" + "source": "https://github.com/doctrine/annotations/tree/2.0.1" }, - "time": "2022-07-02T10:48:51+00:00" + "time": "2023-02-02T22:02:53+00:00" }, { "name": "doctrine/collections", - "version": "1.8.0", + "version": "2.1.2", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e" + "reference": "db8cda536a034337f7dd63febecc713d4957f9ee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/2b44dd4cbca8b5744327de78bafef5945c7e7b5e", - "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e", + "url": "https://api.github.com/repos/doctrine/collections/zipball/db8cda536a034337f7dd63febecc713d4957f9ee", + "reference": "db8cda536a034337f7dd63febecc713d4957f9ee", "shasum": "" }, "require": { - "doctrine/deprecations": "^0.5.3 || ^1", - "php": "^7.1.3 || ^8.0" + "doctrine/deprecations": "^1", + "php": "^8.1" }, "require-dev": { - "doctrine/coding-standard": "^9.0 || ^10.0", - "phpstan/phpstan": "^1.4.8", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.1.5", + "doctrine/coding-standard": "^10.0", + "ext-json": "*", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^9.5", "vimeo/psalm": "^4.22" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections" + "Doctrine\\Common\\Collections\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -2316,9 +2398,23 @@ ], "support": { "issues": "https://github.com/doctrine/collections/issues", - "source": "https://github.com/doctrine/collections/tree/1.8.0" + "source": "https://github.com/doctrine/collections/tree/2.1.2" }, - "time": "2022-09-01T20:12:10+00:00" + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcollections", + "type": "tidelift" + } + ], + "time": "2022-12-27T23:41:38+00:00" }, { "name": "doctrine/common", @@ -2504,30 +2600,30 @@ }, { "name": "doctrine/instantiator", - "version": "1.4.1", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", - "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^9", + "doctrine/coding-standard": "^9 || ^11", "ext-pdo": "*", "ext-phar": "*", "phpbench/phpbench": "^0.16 || ^1", "phpstan/phpstan": "^1.4", "phpstan/phpstan-phpunit": "^1", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.22" + "vimeo/psalm": "^4.30 || ^5.4" }, "type": "library", "autoload": { @@ -2554,7 +2650,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.4.1" + "source": "https://github.com/doctrine/instantiator/tree/1.5.0" }, "funding": [ { @@ -2570,35 +2666,37 @@ "type": "tidelift" } ], - "time": "2022-03-03T08:28:38+00:00" + "time": "2022-12-30T00:15:36+00:00" }, { "name": "doctrine/lexer", - "version": "1.2.3", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" + "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", - "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/39ab8fcf5a51ce4b85ca97c7a7d033eb12831124", + "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124", "shasum": "" }, "require": { + "doctrine/deprecations": "^1.0", "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^9.0", + "doctrine/coding-standard": "^9 || ^10", "phpstan/phpstan": "^1.3", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.11" + "psalm/plugin-phpunit": "^0.18.3", + "vimeo/psalm": "^4.11 || ^5.0" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" + "Doctrine\\Common\\Lexer\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -2630,7 +2728,7 @@ ], "support": { "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/1.2.3" + "source": "https://github.com/doctrine/lexer/tree/2.1.0" }, "funding": [ { @@ -2646,27 +2744,27 @@ "type": "tidelift" } ], - "time": "2022-02-28T11:07:21+00:00" + "time": "2022-12-14T08:49:07+00:00" }, { "name": "doctrine/migrations", - "version": "3.5.2", + "version": "3.5.5", "source": { "type": "git", "url": "https://github.com/doctrine/migrations.git", - "reference": "61c6ef3a10b7df43c3b6388a184754f26e58700a" + "reference": "4b1e2b6ba71d21d0c5be22ed03b6fc954d20b204" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/migrations/zipball/61c6ef3a10b7df43c3b6388a184754f26e58700a", - "reference": "61c6ef3a10b7df43c3b6388a184754f26e58700a", + "url": "https://api.github.com/repos/doctrine/migrations/zipball/4b1e2b6ba71d21d0c5be22ed03b6fc954d20b204", + "reference": "4b1e2b6ba71d21d0c5be22ed03b6fc954d20b204", "shasum": "" }, "require": { "composer-runtime-api": "^2", - "doctrine/dbal": "^3.3", + "doctrine/dbal": "^3.5.1", "doctrine/deprecations": "^0.5.3 || ^1", - "doctrine/event-manager": "^1.0", + "doctrine/event-manager": "^1.2 || ^2.0", "friendsofphp/proxy-manager-lts": "^1.0", "php": "^7.4 || ^8.0", "psr/log": "^1.1.3 || ^2 || ^3", @@ -2678,10 +2776,9 @@ }, "require-dev": { "doctrine/coding-standard": "^9", - "doctrine/orm": "^2.12", + "doctrine/orm": "^2.13", "doctrine/persistence": "^2 || ^3", "doctrine/sql-formatter": "^1.0", - "ergebnis/composer-normalize": "^2.9", "ext-pdo_sqlite": "*", "phpstan/phpstan": "^1.5", "phpstan/phpstan-deprecation-rules": "^1", @@ -2701,12 +2798,6 @@ "bin/doctrine-migrations" ], "type": "library", - "extra": { - "composer-normalize": { - "indent-size": 4, - "indent-style": "space" - } - }, "autoload": { "psr-4": { "Doctrine\\Migrations\\": "lib/Doctrine/Migrations" @@ -2739,7 +2830,7 @@ ], "support": { "issues": "https://github.com/doctrine/migrations/issues", - "source": "https://github.com/doctrine/migrations/tree/3.5.2" + "source": "https://github.com/doctrine/migrations/tree/3.5.5" }, "funding": [ { @@ -2755,55 +2846,56 @@ "type": "tidelift" } ], - "time": "2022-08-04T14:29:49+00:00" + "time": "2023-01-18T12:44:30+00:00" }, { "name": "doctrine/orm", - "version": "2.13.4", + "version": "2.14.1", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "a5a6cc6630ce497290396d5f206887227820a634" + "reference": "de7eee5ed7b1b35c99b118f26f210a8281e6db8e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/a5a6cc6630ce497290396d5f206887227820a634", - "reference": "a5a6cc6630ce497290396d5f206887227820a634", + "url": "https://api.github.com/repos/doctrine/orm/zipball/de7eee5ed7b1b35c99b118f26f210a8281e6db8e", + "reference": "de7eee5ed7b1b35c99b118f26f210a8281e6db8e", "shasum": "" }, "require": { "composer-runtime-api": "^2", "doctrine/cache": "^1.12.1 || ^2.1.1", - "doctrine/collections": "^1.5", + "doctrine/collections": "^1.5 || ^2.0", "doctrine/common": "^3.0.3", "doctrine/dbal": "^2.13.1 || ^3.2", "doctrine/deprecations": "^0.5.3 || ^1", - "doctrine/event-manager": "^1.1", + "doctrine/event-manager": "^1.2 || ^2", "doctrine/inflector": "^1.4 || ^2.0", "doctrine/instantiator": "^1.3", - "doctrine/lexer": "^1.2.3", + "doctrine/lexer": "^1.2.3 || ^2", "doctrine/persistence": "^2.4 || ^3", "ext-ctype": "*", "php": "^7.1 || ^8.0", "psr/cache": "^1 || ^2 || ^3", - "symfony/console": "^3.0 || ^4.0 || ^5.0 || ^6.0", + "symfony/console": "^4.2 || ^5.0 || ^6.0", "symfony/polyfill-php72": "^1.23", "symfony/polyfill-php80": "^1.16" }, "conflict": { - "doctrine/annotations": "<1.13 || >= 2.0" + "doctrine/annotations": "<1.13 || >= 3.0" }, "require-dev": { - "doctrine/annotations": "^1.13", - "doctrine/coding-standard": "^9.0.2 || ^10.0", + "doctrine/annotations": "^1.13 || ^2", + "doctrine/coding-standard": "^9.0.2 || ^11.0", "phpbench/phpbench": "^0.16.10 || ^1.0", - "phpstan/phpstan": "~1.4.10 || 1.9.2", + "phpstan/phpstan": "~1.4.10 || 1.9.8", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", "psr/log": "^1 || ^2 || ^3", "squizlabs/php_codesniffer": "3.7.1", "symfony/cache": "^4.4 || ^5.4 || ^6.0", + "symfony/var-exporter": "^4.4 || ^5.4 || ^6.2", "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0", - "vimeo/psalm": "4.30.0" + "vimeo/psalm": "4.30.0 || 5.4.0" }, "suggest": { "ext-dom": "Provides support for XSD validation for XML mapping files", @@ -2853,22 +2945,22 @@ ], "support": { "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/2.13.4" + "source": "https://github.com/doctrine/orm/tree/2.14.1" }, - "time": "2022-11-20T18:53:31+00:00" + "time": "2023-01-16T18:36:59+00:00" }, { "name": "doctrine/persistence", - "version": "3.1.0", + "version": "3.1.3", "source": { "type": "git", "url": "https://github.com/doctrine/persistence.git", - "reference": "2a9c70a5e21f8968c5a46b79f819ea52f322080b" + "reference": "920da294b4bb0bb527f2a91ed60c18213435880f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/persistence/zipball/2a9c70a5e21f8968c5a46b79f819ea52f322080b", - "reference": "2a9c70a5e21f8968c5a46b79f819ea52f322080b", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/920da294b4bb0bb527f2a91ed60c18213435880f", + "reference": "920da294b4bb0bb527f2a91ed60c18213435880f", "shasum": "" }, "require": { @@ -2877,20 +2969,18 @@ "psr/cache": "^1.0 || ^2.0 || ^3.0" }, "conflict": { - "doctrine/annotations": "<1.7 || >=2.0", "doctrine/common": "<2.10" }, "require-dev": { "composer/package-versions-deprecated": "^1.11", - "doctrine/annotations": "^1.7", - "doctrine/coding-standard": "^10", + "doctrine/coding-standard": "^11", "doctrine/common": "^3.0", - "phpstan/phpstan": "1.8.8", + "phpstan/phpstan": "1.9.4", "phpstan/phpstan-phpunit": "^1", "phpstan/phpstan-strict-rules": "^1.1", "phpunit/phpunit": "^8.5 || ^9.5", "symfony/cache": "^4.4 || ^5.4 || ^6.0", - "vimeo/psalm": "4.29.0" + "vimeo/psalm": "4.30.0 || 5.3.0" }, "type": "library", "autoload": { @@ -2939,7 +3029,7 @@ ], "support": { "issues": "https://github.com/doctrine/persistence/issues", - "source": "https://github.com/doctrine/persistence/tree/3.1.0" + "source": "https://github.com/doctrine/persistence/tree/3.1.3" }, "funding": [ { @@ -2955,7 +3045,7 @@ "type": "tidelift" } ], - "time": "2022-11-18T14:10:19+00:00" + "time": "2023-01-19T13:39:42+00:00" }, { "name": "felixfbecker/advanced-json-rpc", @@ -3060,16 +3150,16 @@ }, { "name": "friendsofphp/proxy-manager-lts", - "version": "v1.0.13", + "version": "v1.0.14", "source": { "type": "git", "url": "https://github.com/FriendsOfPHP/proxy-manager-lts.git", - "reference": "88354616f4cf4f6620910fd035e282173ba453e8" + "reference": "a527c9d9d5348e012bd24482d83a5cd643bcbc9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/proxy-manager-lts/zipball/88354616f4cf4f6620910fd035e282173ba453e8", - "reference": "88354616f4cf4f6620910fd035e282173ba453e8", + "url": "https://api.github.com/repos/FriendsOfPHP/proxy-manager-lts/zipball/a527c9d9d5348e012bd24482d83a5cd643bcbc9e", + "reference": "a527c9d9d5348e012bd24482d83a5cd643bcbc9e", "shasum": "" }, "require": { @@ -3126,7 +3216,7 @@ ], "support": { "issues": "https://github.com/FriendsOfPHP/proxy-manager-lts/issues", - "source": "https://github.com/FriendsOfPHP/proxy-manager-lts/tree/v1.0.13" + "source": "https://github.com/FriendsOfPHP/proxy-manager-lts/tree/v1.0.14" }, "funding": [ { @@ -3138,7 +3228,7 @@ "type": "tidelift" } ], - "time": "2022-10-17T19:48:16+00:00" + "time": "2023-01-30T10:40:19+00:00" }, { "name": "infection/abstract-testframework-adapter", @@ -3688,16 +3778,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.15.2", + "version": "v4.15.3", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc" + "reference": "570e980a201d8ed0236b0a62ddf2c9cbb2034039" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc", - "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/570e980a201d8ed0236b0a62ddf2c9cbb2034039", + "reference": "570e980a201d8ed0236b0a62ddf2c9cbb2034039", "shasum": "" }, "require": { @@ -3738,9 +3828,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.2" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.3" }, - "time": "2022-11-12T15:38:23+00:00" + "time": "2023-01-16T22:05:37+00:00" }, { "name": "ocramius/package-versions", @@ -3992,25 +4082,25 @@ }, { "name": "patchlevel/event-sourcing-psalm-plugin", - "version": "2.0.1", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/patchlevel/event-sourcing-psalm-plugin.git", - "reference": "e658dd83ee0536a3fe8d130270bcfa5b60a728b1" + "reference": "348fc7d5c39557509767e769a39f194c6faa9cfe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/patchlevel/event-sourcing-psalm-plugin/zipball/e658dd83ee0536a3fe8d130270bcfa5b60a728b1", - "reference": "e658dd83ee0536a3fe8d130270bcfa5b60a728b1", + "url": "https://api.github.com/repos/patchlevel/event-sourcing-psalm-plugin/zipball/348fc7d5c39557509767e769a39f194c6faa9cfe", + "reference": "348fc7d5c39557509767e769a39f194c6faa9cfe", "shasum": "" }, "require": { "php": "^8.1", - "vimeo/psalm": "^4.23.0" + "vimeo/psalm": "^4.23.0 || ^5.0.0" }, "require-dev": { "patchlevel/coding-standard": "^1.1.1", - "patchlevel/event-sourcing": "^2.0.0", + "patchlevel/event-sourcing": "2.0.x-dev", "roave/security-advisories": "dev-master", "symfony/var-dumper": "^6.1.0" }, @@ -4042,9 +4132,9 @@ ], "support": { "issues": "https://github.com/patchlevel/event-sourcing-psalm-plugin/issues", - "source": "https://github.com/patchlevel/event-sourcing-psalm-plugin/tree/2.0.1" + "source": "https://github.com/patchlevel/event-sourcing-psalm-plugin/tree/2.1.0" }, - "time": "2022-06-29T11:01:14+00:00" + "time": "2023-01-25T10:32:23+00:00" }, { "name": "phar-io/manifest", @@ -4261,20 +4351,20 @@ }, { "name": "phpbench/phpbench", - "version": "1.2.7", + "version": "1.2.8", "source": { "type": "git", "url": "https://github.com/phpbench/phpbench.git", - "reference": "dce145304abbb16c8d9af69c19d96f47e9d0e670" + "reference": "3f7b3c200f86727de7a14bde94adb68a88e1bafc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpbench/phpbench/zipball/dce145304abbb16c8d9af69c19d96f47e9d0e670", - "reference": "dce145304abbb16c8d9af69c19d96f47e9d0e670", + "url": "https://api.github.com/repos/phpbench/phpbench/zipball/3f7b3c200f86727de7a14bde94adb68a88e1bafc", + "reference": "3f7b3c200f86727de7a14bde94adb68a88e1bafc", "shasum": "" }, "require": { - "doctrine/annotations": "^1.13", + "doctrine/annotations": "^1.13 || ^2.0", "ext-dom": "*", "ext-json": "*", "ext-pcre": "*", @@ -4339,7 +4429,7 @@ "description": "PHP Benchmarking Framework", "support": { "issues": "https://github.com/phpbench/phpbench/issues", - "source": "https://github.com/phpbench/phpbench/tree/1.2.7" + "source": "https://github.com/phpbench/phpbench/tree/1.2.8" }, "funding": [ { @@ -4347,7 +4437,7 @@ "type": "github" } ], - "time": "2022-10-15T09:57:51+00:00" + "time": "2023-01-14T13:08:42+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -4516,20 +4606,20 @@ }, { "name": "phpspec/prophecy", - "version": "v1.16.0", + "version": "v1.17.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "be8cac52a0827776ff9ccda8c381ac5b71aeb359" + "reference": "15873c65b207b07765dbc3c95d20fdf4a320cbe2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/be8cac52a0827776ff9ccda8c381ac5b71aeb359", - "reference": "be8cac52a0827776ff9ccda8c381ac5b71aeb359", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/15873c65b207b07765dbc3c95d20fdf4a320cbe2", + "reference": "15873c65b207b07765dbc3c95d20fdf4a320cbe2", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.2", + "doctrine/instantiator": "^1.2 || ^2.0", "php": "^7.2 || 8.0.* || 8.1.* || 8.2.*", "phpdocumentor/reflection-docblock": "^5.2", "sebastian/comparator": "^3.0 || ^4.0", @@ -4537,6 +4627,7 @@ }, "require-dev": { "phpspec/phpspec": "^6.0 || ^7.0", + "phpstan/phpstan": "^1.9", "phpunit/phpunit": "^8.0 || ^9.0" }, "type": "library", @@ -4577,9 +4668,9 @@ ], "support": { "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/v1.16.0" + "source": "https://github.com/phpspec/prophecy/tree/v1.17.0" }, - "time": "2022-11-29T15:06:56+00:00" + "time": "2023-02-02T15:41:36+00:00" }, { "name": "phpspec/prophecy-phpunit", @@ -4635,16 +4726,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.13.1", + "version": "1.15.3", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "aac44118344d197e6d5f7c6cee91885f0a89acdd" + "reference": "61800f71a5526081d1b5633766aa88341f1ade76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/aac44118344d197e6d5f7c6cee91885f0a89acdd", - "reference": "aac44118344d197e6d5f7c6cee91885f0a89acdd", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/61800f71a5526081d1b5633766aa88341f1ade76", + "reference": "61800f71a5526081d1b5633766aa88341f1ade76", "shasum": "" }, "require": { @@ -4674,22 +4765,22 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.13.1" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.15.3" }, - "time": "2022-11-20T08:52:26+00:00" + "time": "2022-12-20T20:56:55+00:00" }, { "name": "phpstan/phpstan", - "version": "1.9.2", + "version": "1.9.14", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "d6fdf01c53978b6429f1393ba4afeca39cc68afa" + "reference": "e5fcc96289cf737304286a9b505fbed091f02e58" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/d6fdf01c53978b6429f1393ba4afeca39cc68afa", - "reference": "d6fdf01c53978b6429f1393ba4afeca39cc68afa", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e5fcc96289cf737304286a9b505fbed091f02e58", + "reference": "e5fcc96289cf737304286a9b505fbed091f02e58", "shasum": "" }, "require": { @@ -4719,7 +4810,7 @@ ], "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.9.2" + "source": "https://github.com/phpstan/phpstan/tree/1.9.14" }, "funding": [ { @@ -4735,20 +4826,20 @@ "type": "tidelift" } ], - "time": "2022-11-10T09:56:11+00:00" + "time": "2023-01-19T10:47:09+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "9.2.19", + "version": "9.2.24", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "c77b56b63e3d2031bd8997fcec43c1925ae46559" + "reference": "2cf940ebc6355a9d430462811b5aaa308b174bed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c77b56b63e3d2031bd8997fcec43c1925ae46559", - "reference": "c77b56b63e3d2031bd8997fcec43c1925ae46559", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2cf940ebc6355a9d430462811b5aaa308b174bed", + "reference": "2cf940ebc6355a9d430462811b5aaa308b174bed", "shasum": "" }, "require": { @@ -4804,7 +4895,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.19" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.24" }, "funding": [ { @@ -4812,7 +4903,7 @@ "type": "github" } ], - "time": "2022-11-18T07:47:47+00:00" + "time": "2023-01-26T08:26:55+00:00" }, { "name": "phpunit/php-file-iterator", @@ -5057,20 +5148,20 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.27", + "version": "9.6.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "a2bc7ffdca99f92d959b3f2270529334030bba38" + "reference": "70fc8be1d0b9fad56a199a4df5f9cfabfc246f84" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a2bc7ffdca99f92d959b3f2270529334030bba38", - "reference": "a2bc7ffdca99f92d959b3f2270529334030bba38", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/70fc8be1d0b9fad56a199a4df5f9cfabfc246f84", + "reference": "70fc8be1d0b9fad56a199a4df5f9cfabfc246f84", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.3.1", + "doctrine/instantiator": "^1.3.1 || ^2", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", @@ -5108,7 +5199,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "9.5-dev" + "dev-master": "9.6-dev" } }, "autoload": { @@ -5139,7 +5230,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.27" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.0" }, "funding": [ { @@ -5155,7 +5246,7 @@ "type": "tidelift" } ], - "time": "2022-12-09T07:31:23+00:00" + "time": "2023-02-03T07:32:24+00:00" }, { "name": "psalm/plugin-phpunit", @@ -5219,16 +5310,16 @@ }, { "name": "roave/infection-static-analysis-plugin", - "version": "1.26.0", + "version": "1.28.0", "source": { "type": "git", "url": "https://github.com/Roave/infection-static-analysis-plugin.git", - "reference": "63f3fe01f0d29409501a9999f60ef0602ddfb4cb" + "reference": "3724bbe9afe0dc1eddb2fb2c425d4acd64cb9c10" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/infection-static-analysis-plugin/zipball/63f3fe01f0d29409501a9999f60ef0602ddfb4cb", - "reference": "63f3fe01f0d29409501a9999f60ef0602ddfb4cb", + "url": "https://api.github.com/repos/Roave/infection-static-analysis-plugin/zipball/3724bbe9afe0dc1eddb2fb2c425d4acd64cb9c10", + "reference": "3724bbe9afe0dc1eddb2fb2c425d4acd64cb9c10", "shasum": "" }, "require": { @@ -5239,8 +5330,8 @@ "vimeo/psalm": "^4.30.0 || ^5.0.0" }, "require-dev": { - "doctrine/coding-standard": "^10.0.0", - "phpunit/phpunit": "^9.5.26" + "doctrine/coding-standard": "^11.0.0", + "phpunit/phpunit": "^9.5.27" }, "bin": [ "bin/roave-infection-static-analysis-plugin" @@ -5264,9 +5355,9 @@ "description": "Static analysis on top of mutation testing - prevents escaped mutants from being invalid according to static analysis", "support": { "issues": "https://github.com/Roave/infection-static-analysis-plugin/issues", - "source": "https://github.com/Roave/infection-static-analysis-plugin/tree/1.26.0" + "source": "https://github.com/Roave/infection-static-analysis-plugin/tree/1.28.0" }, - "time": "2022-11-30T16:04:59+00:00" + "time": "2022-12-30T16:05:23+00:00" }, { "name": "sanmai/later", @@ -5757,16 +5848,16 @@ }, { "name": "sebastian/environment", - "version": "5.1.4", + "version": "5.1.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7" + "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7", - "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", "shasum": "" }, "require": { @@ -5808,7 +5899,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1.4" + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" }, "funding": [ { @@ -5816,7 +5907,7 @@ "type": "github" } ], - "time": "2022-04-03T09:37:03+00:00" + "time": "2023-02-03T06:03:51+00:00" }, { "name": "sebastian/exporter", @@ -6130,16 +6221,16 @@ }, { "name": "sebastian/recursion-context", - "version": "4.0.4", + "version": "4.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" + "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", - "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", "shasum": "" }, "require": { @@ -6178,10 +6269,10 @@ } ], "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "homepage": "https://github.com/sebastianbergmann/recursion-context", "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4" + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" }, "funding": [ { @@ -6189,7 +6280,7 @@ "type": "github" } ], - "time": "2020-10-26T13:17:30+00:00" + "time": "2023-02-03T06:07:39+00:00" }, { "name": "sebastian/resource-operations", @@ -6248,16 +6339,16 @@ }, { "name": "sebastian/type", - "version": "3.2.0", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e" + "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", - "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", "shasum": "" }, "require": { @@ -6292,7 +6383,7 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/3.2.0" + "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" }, "funding": [ { @@ -6300,7 +6391,7 @@ "type": "github" } ], - "time": "2022-09-12T14:47:03+00:00" + "time": "2023-02-03T06:13:03+00:00" }, { "name": "sebastian/version", @@ -6421,32 +6512,32 @@ }, { "name": "slevomat/coding-standard", - "version": "8.6.4", + "version": "8.8.0", "source": { "type": "git", "url": "https://github.com/slevomat/coding-standard.git", - "reference": "8a02c83e59c3230a2a4367b29956a2f2b56e3a24" + "reference": "59e25146a4ef0a7b194c5bc55b32dd414345db89" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/8a02c83e59c3230a2a4367b29956a2f2b56e3a24", - "reference": "8a02c83e59c3230a2a4367b29956a2f2b56e3a24", + "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/59e25146a4ef0a7b194c5bc55b32dd414345db89", + "reference": "59e25146a4ef0a7b194c5bc55b32dd414345db89", "shasum": "" }, "require": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7", + "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7 || ^1.0", "php": "^7.2 || ^8.0", - "phpstan/phpdoc-parser": ">=1.11.0 <1.14.0", + "phpstan/phpdoc-parser": ">=1.15.2 <1.16.0", "squizlabs/php_codesniffer": "^3.7.1" }, "require-dev": { "phing/phing": "2.17.4", "php-parallel-lint/php-parallel-lint": "1.3.2", - "phpstan/phpstan": "1.4.10|1.9.2", - "phpstan/phpstan-deprecation-rules": "1.0.0", - "phpstan/phpstan-phpunit": "1.0.0|1.2.2", + "phpstan/phpstan": "1.4.10|1.9.6", + "phpstan/phpstan-deprecation-rules": "1.1.1", + "phpstan/phpstan-phpunit": "1.0.0|1.3.3", "phpstan/phpstan-strict-rules": "1.4.4", - "phpunit/phpunit": "7.5.20|8.5.21|9.5.26" + "phpunit/phpunit": "7.5.20|8.5.21|9.5.27" }, "type": "phpcodesniffer-standard", "extra": { @@ -6470,7 +6561,7 @@ ], "support": { "issues": "https://github.com/slevomat/coding-standard/issues", - "source": "https://github.com/slevomat/coding-standard/tree/8.6.4" + "source": "https://github.com/slevomat/coding-standard/tree/8.8.0" }, "funding": [ { @@ -6482,7 +6573,7 @@ "type": "tidelift" } ], - "time": "2022-11-14T09:26:24+00:00" + "time": "2023-01-09T10:46:13+00:00" }, { "name": "squizlabs/php_codesniffer", @@ -6542,16 +6633,16 @@ }, { "name": "symfony/filesystem", - "version": "v6.2.0", + "version": "v6.2.5", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "50b2523c874605cf3d4acf7a9e2b30b6a440a016" + "reference": "e59e8a4006afd7f5654786a83b4fcb8da98f4593" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/50b2523c874605cf3d4acf7a9e2b30b6a440a016", - "reference": "50b2523c874605cf3d4acf7a9e2b30b6a440a016", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/e59e8a4006afd7f5654786a83b4fcb8da98f4593", + "reference": "e59e8a4006afd7f5654786a83b4fcb8da98f4593", "shasum": "" }, "require": { @@ -6585,7 +6676,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.2.0" + "source": "https://github.com/symfony/filesystem/tree/v6.2.5" }, "funding": [ { @@ -6601,20 +6692,20 @@ "type": "tidelift" } ], - "time": "2022-11-20T13:01:27+00:00" + "time": "2023-01-20T17:45:48+00:00" }, { "name": "symfony/messenger", - "version": "v6.2.0", + "version": "v6.2.5", "source": { "type": "git", "url": "https://github.com/symfony/messenger.git", - "reference": "c1609b6689b07890e94cf3016396f550c5feeee9" + "reference": "b0ee9d7d0cc375260d48aac097b9b025909c32a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/messenger/zipball/c1609b6689b07890e94cf3016396f550c5feeee9", - "reference": "c1609b6689b07890e94cf3016396f550c5feeee9", + "url": "https://api.github.com/repos/symfony/messenger/zipball/b0ee9d7d0cc375260d48aac097b9b025909c32a8", + "reference": "b0ee9d7d0cc375260d48aac097b9b025909c32a8", "shasum": "" }, "require": { @@ -6672,7 +6763,7 @@ "description": "Helps applications send and receive messages to/from other applications or via message queues", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/messenger/tree/v6.2.0" + "source": "https://github.com/symfony/messenger/tree/v6.2.5" }, "funding": [ { @@ -6688,20 +6779,20 @@ "type": "tidelift" } ], - "time": "2022-11-14T10:13:36+00:00" + "time": "2023-01-20T18:24:17+00:00" }, { "name": "symfony/options-resolver", - "version": "v6.2.0", + "version": "v6.2.5", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "d28f02acde71ff75e957082cd36e973df395f626" + "reference": "e8324d44f5af99ec2ccec849934a242f64458f86" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/d28f02acde71ff75e957082cd36e973df395f626", - "reference": "d28f02acde71ff75e957082cd36e973df395f626", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/e8324d44f5af99ec2ccec849934a242f64458f86", + "reference": "e8324d44f5af99ec2ccec849934a242f64458f86", "shasum": "" }, "require": { @@ -6739,7 +6830,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v6.2.0" + "source": "https://github.com/symfony/options-resolver/tree/v6.2.5" }, "funding": [ { @@ -6755,7 +6846,7 @@ "type": "tidelift" } ], - "time": "2022-11-02T09:08:04+00:00" + "time": "2023-01-01T08:38:09+00:00" }, { "name": "symfony/polyfill-php72", @@ -6918,16 +7009,16 @@ }, { "name": "symfony/process", - "version": "v6.2.0", + "version": "v6.2.5", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "ba6e55359f8f755fe996c58a81e00eaa67a35877" + "reference": "9ead139f63dfa38c4e4a9049cc64a8b2748c83b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/ba6e55359f8f755fe996c58a81e00eaa67a35877", - "reference": "ba6e55359f8f755fe996c58a81e00eaa67a35877", + "url": "https://api.github.com/repos/symfony/process/zipball/9ead139f63dfa38c4e4a9049cc64a8b2748c83b7", + "reference": "9ead139f63dfa38c4e4a9049cc64a8b2748c83b7", "shasum": "" }, "require": { @@ -6959,7 +7050,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.2.0" + "source": "https://github.com/symfony/process/tree/v6.2.5" }, "funding": [ { @@ -6975,20 +7066,20 @@ "type": "tidelift" } ], - "time": "2022-11-02T09:08:04+00:00" + "time": "2023-01-01T08:38:09+00:00" }, { "name": "symfony/stopwatch", - "version": "v6.2.0", + "version": "v6.2.5", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "266636bb8f3fbdccc302491df7b3a1b9a8c238a7" + "reference": "00b6ac156aacffc53487c930e0ab14587a6607f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/266636bb8f3fbdccc302491df7b3a1b9a8c238a7", - "reference": "266636bb8f3fbdccc302491df7b3a1b9a8c238a7", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/00b6ac156aacffc53487c930e0ab14587a6607f6", + "reference": "00b6ac156aacffc53487c930e0ab14587a6607f6", "shasum": "" }, "require": { @@ -7021,7 +7112,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v6.2.0" + "source": "https://github.com/symfony/stopwatch/tree/v6.2.5" }, "funding": [ { @@ -7037,20 +7128,20 @@ "type": "tidelift" } ], - "time": "2022-09-28T16:00:52+00:00" + "time": "2023-01-01T08:36:55+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.2.1", + "version": "v6.2.5", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "1e7544c8698627b908657e5276854d52ab70087a" + "reference": "44b7b81749fd20c1bdf4946c041050e22bc8da27" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1e7544c8698627b908657e5276854d52ab70087a", - "reference": "1e7544c8698627b908657e5276854d52ab70087a", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/44b7b81749fd20c1bdf4946c041050e22bc8da27", + "reference": "44b7b81749fd20c1bdf4946c041050e22bc8da27", "shasum": "" }, "require": { @@ -7109,7 +7200,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.2.1" + "source": "https://github.com/symfony/var-dumper/tree/v6.2.5" }, "funding": [ { @@ -7125,7 +7216,7 @@ "type": "tidelift" } ], - "time": "2022-12-03T22:32:58+00:00" + "time": "2023-01-20T17:45:48+00:00" }, { "name": "thecodingmachine/safe", diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 5687f2ea..9166a0bf 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -1,10 +1,5 @@ parameters: ignoreErrors: - - - message: "#^Cannot unset offset 'url' on array\\{charset\\?\\: string, dbname\\?\\: string, defaultTableOptions\\?\\: array\\, default_dbname\\?\\: string, driver\\?\\: 'ibm_db2'\\|'mysqli'\\|'oci8'\\|'pdo_mysql'\\|'pdo_oci'\\|'pdo_pgsql'\\|'pdo_sqlite'\\|'pdo_sqlsrv'\\|'sqlite3'\\|'sqlsrv', driverClass\\?\\: class\\-string\\, driverOptions\\?\\: array, host\\?\\: string, \\.\\.\\.\\}\\.$#" - count: 1 - path: src/Console/DoctrineHelper.php - - message: "#^If condition is always false\\.$#" count: 1 diff --git a/src/Lock/DoctrineDbalStoreSchemaAdapter.php b/src/Lock/DoctrineDbalStoreSchemaAdapter.php new file mode 100644 index 00000000..047a5e8f --- /dev/null +++ b/src/Lock/DoctrineDbalStoreSchemaAdapter.php @@ -0,0 +1,23 @@ +doctrineDbalStore->configureSchema($schema); + } +} diff --git a/src/Projection/Projectionist/RunProjectionistEventBusWrapper.php b/src/Projection/Projectionist/RunProjectionistEventBusWrapper.php new file mode 100644 index 00000000..f718b971 --- /dev/null +++ b/src/Projection/Projectionist/RunProjectionistEventBusWrapper.php @@ -0,0 +1,36 @@ +parentEventBus->dispatch(...$messages); + + $lock = $this->lockFactory->createLock('projectionist-run'); + + if (!$lock->acquire(true)) { + return; + } + + try { + $this->projectionist->run(); + } finally { + $lock->release(); + } + } +} diff --git a/tests/Integration/Projectionist/ProjectionistTest.php b/tests/Integration/Projectionist/ProjectionistTest.php index 19946cba..503cfdf2 100644 --- a/tests/Integration/Projectionist/ProjectionistTest.php +++ b/tests/Integration/Projectionist/ProjectionistTest.php @@ -6,10 +6,12 @@ use Doctrine\DBAL\Connection; use Patchlevel\EventSourcing\EventBus\DefaultEventBus; +use Patchlevel\EventSourcing\Lock\DoctrineDbalStoreSchemaAdapter; use Patchlevel\EventSourcing\Metadata\AggregateRoot\AggregateRootRegistry; use Patchlevel\EventSourcing\Metadata\AggregateRoot\AttributeAggregateRootRegistryFactory; use Patchlevel\EventSourcing\Projection\Projection\Store\DoctrineStore; use Patchlevel\EventSourcing\Projection\Projectionist\DefaultProjectionist; +use Patchlevel\EventSourcing\Projection\Projectionist\RunProjectionistEventBusWrapper; use Patchlevel\EventSourcing\Projection\Projector\InMemoryProjectorRepository; use Patchlevel\EventSourcing\Repository\DefaultRepositoryManager; use Patchlevel\EventSourcing\Schema\ChainSchemaConfigurator; @@ -20,6 +22,8 @@ use Patchlevel\EventSourcing\Tests\Integration\Projectionist\Aggregate\Profile; use Patchlevel\EventSourcing\Tests\Integration\Projectionist\Projection\ProfileProjection; use PHPUnit\Framework\TestCase; +use Symfony\Component\Lock\LockFactory; +use Symfony\Component\Lock\Store\DoctrineDbalStore; /** * @coversNothing @@ -38,7 +42,7 @@ public function tearDown(): void $this->connection->close(); } - public function testSuccessful(): void + public function testAsync(): void { $store = new SingleTableStore( $this->connection, @@ -90,4 +94,66 @@ public function testSuccessful(): void $projectionist->remove(); } + + public function testSync(): void + { + $aggregateRegistry = (new AttributeAggregateRootRegistryFactory())->create([__DIR__ . '/Aggregate']); + + $store = new SingleTableStore( + $this->connection, + DefaultEventSerializer::createFromPaths([__DIR__ . '/Events']), + $aggregateRegistry, + 'eventstore' + ); + + $lockStore = new DoctrineDbalStore($this->connection); + $projectionStore = new DoctrineStore($this->connection); + + $projectionist = new DefaultProjectionist( + $store, + $projectionStore, + new InMemoryProjectorRepository( + [new ProfileProjection($this->connection)] + ), + ); + + $manager = new DefaultRepositoryManager( + $aggregateRegistry, + $store, + new RunProjectionistEventBusWrapper( + new DefaultEventBus(), + $projectionist, + new LockFactory($lockStore) + ), + ); + + $repository = $manager->get(Profile::class); + + $schemaDirector = new DoctrineSchemaDirector( + $this->connection, + new ChainSchemaConfigurator([ + $store, + $projectionStore, + new DoctrineDbalStoreSchemaAdapter($lockStore), + ]) + ); + + $schemaDirector->drop(); + $schemaDirector->create(); + $projectionist->boot(); + + $profile = Profile::create(ProfileId::fromString('1'), 'John'); + $repository->save($profile); + + $projectionist->run(); + + $result = $this->connection->fetchAssociative('SELECT * FROM projection_profile_1 WHERE id = ?', ['1']); + + self::assertIsArray($result); + self::assertArrayHasKey('id', $result); + self::assertSame('1', $result['id']); + self::assertSame('John', $result['name']); + + $projectionist->remove(); + } } diff --git a/tests/Unit/Projection/Projectionist/RunProjectionistEventBusWrapperTest.php b/tests/Unit/Projection/Projectionist/RunProjectionistEventBusWrapperTest.php new file mode 100644 index 00000000..a4509b81 --- /dev/null +++ b/tests/Unit/Projection/Projectionist/RunProjectionistEventBusWrapperTest.php @@ -0,0 +1,45 @@ +markTestSkipped('skip until https://github.com/phpspec/prophecy/issues/568 is fixed'); + + $messages = [ + Message::create(new ProfileVisited(ProfileId::fromString('1'))), + Message::create(new ProfileVisited(ProfileId::fromString('2'))), + ]; + + $parentEventBus = $this->prophesize(EventBus::class); + $parentEventBus->dispatch(...$messages)->shouldBeCalledOnce(); + $parentEventBus->reveal(); + + $projectionist = $this->prophesize(Projectionist::class); + $projectionist->run()->shouldBeCalledOnce(); + $projectionist->reveal(); + + $eventBus = new RunProjectionistEventBusWrapper( + $parentEventBus->reveal(), + $projectionist->reveal() + ); + + $eventBus->dispatch(...$messages); + } +} diff --git a/tools/composer.json b/tools/composer.json index cf963b57..8331ddce 100644 --- a/tools/composer.json +++ b/tools/composer.json @@ -1,6 +1,6 @@ { "require": { "php": "~8.1.0 || ~8.2.0", - "roave/backward-compatibility-check": "^7.4.0" + "roave/backward-compatibility-check": "^8.3.0" } } diff --git a/tools/composer.lock b/tools/composer.lock index 34993c92..6b81689f 100644 --- a/tools/composer.lock +++ b/tools/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "d78f90f8b224af8b5f7bc5088dbec3da", + "content-hash": "6a20a14f00f5057c43da6cde2b450caa", "packages": [ { "name": "azjezz/psl", - "version": "2.3.0", + "version": "2.4.1", "source": { "type": "git", "url": "https://github.com/azjezz/psl.git", - "reference": "82f241ea8ad997701e2fdcd130e8a9433eeaeafa" + "reference": "eacc90cfdfd7eafffd630e81ab69b113309e594b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/azjezz/psl/zipball/82f241ea8ad997701e2fdcd130e8a9433eeaeafa", - "reference": "82f241ea8ad997701e2fdcd130e8a9433eeaeafa", + "url": "https://api.github.com/repos/azjezz/psl/zipball/eacc90cfdfd7eafffd630e81ab69b113309e594b", + "reference": "eacc90cfdfd7eafffd630e81ab69b113309e594b", "shasum": "" }, "require": { @@ -32,7 +32,7 @@ "require-dev": { "friendsofphp/php-cs-fixer": "^3.4.0", "php-coveralls/php-coveralls": "^2.5.2", - "php-standard-library/psalm-plugin": "^2.1.0", + "php-standard-library/psalm-plugin": "^2.2", "phpbench/phpbench": "^1.2.3", "phpunit/phpunit": "^9.5.16", "roave/infection-static-analysis-plugin": "^1.26.0", @@ -70,7 +70,7 @@ "description": "PHP Standard Library", "support": { "issues": "https://github.com/azjezz/psl/issues", - "source": "https://github.com/azjezz/psl/tree/2.3.0" + "source": "https://github.com/azjezz/psl/tree/2.4.1" }, "funding": [ { @@ -78,7 +78,7 @@ "type": "open_collective" } ], - "time": "2022-12-01T07:52:14+00:00" + "time": "2023-01-26T12:53:04+00:00" }, { "name": "beberlei/assert", @@ -149,16 +149,16 @@ }, { "name": "composer/ca-bundle", - "version": "1.3.4", + "version": "1.3.5", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "69098eca243998b53eed7a48d82dedd28b447cd5" + "reference": "74780ccf8c19d6acb8d65c5f39cd72110e132bbd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/69098eca243998b53eed7a48d82dedd28b447cd5", - "reference": "69098eca243998b53eed7a48d82dedd28b447cd5", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/74780ccf8c19d6acb8d65c5f39cd72110e132bbd", + "reference": "74780ccf8c19d6acb8d65c5f39cd72110e132bbd", "shasum": "" }, "require": { @@ -205,7 +205,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.3.4" + "source": "https://github.com/composer/ca-bundle/tree/1.3.5" }, "funding": [ { @@ -221,7 +221,7 @@ "type": "tidelift" } ], - "time": "2022-10-12T12:08:29+00:00" + "time": "2023-01-11T08:27:00+00:00" }, { "name": "composer/class-map-generator", @@ -298,23 +298,23 @@ }, { "name": "composer/composer", - "version": "2.4.4", + "version": "2.5.3", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "e8d9087229bcdbc5867594d3098091412f1130cf" + "reference": "607a4c04006ce1d2b6fdfd5467bae3d7ad9ce5ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/e8d9087229bcdbc5867594d3098091412f1130cf", - "reference": "e8d9087229bcdbc5867594d3098091412f1130cf", + "url": "https://api.github.com/repos/composer/composer/zipball/607a4c04006ce1d2b6fdfd5467bae3d7ad9ce5ab", + "reference": "607a4c04006ce1d2b6fdfd5467bae3d7ad9ce5ab", "shasum": "" }, "require": { "composer/ca-bundle": "^1.0", "composer/class-map-generator": "^1.0", "composer/metadata-minifier": "^1.0", - "composer/pcre": "^2 || ^3", + "composer/pcre": "^2.1 || ^3.1", "composer/semver": "^3.0", "composer/spdx-licenses": "^1.5.7", "composer/xdebug-handler": "^2.0.2 || ^3.0.3", @@ -330,10 +330,11 @@ "symfony/finder": "^5.4 || ^6.0", "symfony/polyfill-php73": "^1.24", "symfony/polyfill-php80": "^1.24", + "symfony/polyfill-php81": "^1.24", "symfony/process": "^5.4 || ^6.0" }, "require-dev": { - "phpstan/phpstan": "^1.4.1", + "phpstan/phpstan": "^1.9.3", "phpstan/phpstan-deprecation-rules": "^1", "phpstan/phpstan-phpunit": "^1.0", "phpstan/phpstan-strict-rules": "^1", @@ -351,7 +352,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.4-dev" + "dev-main": "2.5-dev" }, "phpstan": { "includes": [ @@ -390,7 +391,7 @@ "support": { "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/composer/issues", - "source": "https://github.com/composer/composer/tree/2.4.4" + "source": "https://github.com/composer/composer/tree/2.5.3" }, "funding": [ { @@ -406,7 +407,7 @@ "type": "tidelift" } ], - "time": "2022-10-27T12:39:29+00:00" + "time": "2023-02-10T12:23:52+00:00" }, { "name": "composer/metadata-minifier", @@ -777,16 +778,16 @@ }, { "name": "jetbrains/phpstorm-stubs", - "version": "v2022.2", + "version": "v2022.3", "source": { "type": "git", "url": "https://github.com/JetBrains/phpstorm-stubs.git", - "reference": "01006d9854679672fc8b85c6d5063ea6f25226ac" + "reference": "6b568c153cea002dc6fad96285c3063d07cab18d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/JetBrains/phpstorm-stubs/zipball/01006d9854679672fc8b85c6d5063ea6f25226ac", - "reference": "01006d9854679672fc8b85c6d5063ea6f25226ac", + "url": "https://api.github.com/repos/JetBrains/phpstorm-stubs/zipball/6b568c153cea002dc6fad96285c3063d07cab18d", + "reference": "6b568c153cea002dc6fad96285c3063d07cab18d", "shasum": "" }, "require-dev": { @@ -819,9 +820,9 @@ "type" ], "support": { - "source": "https://github.com/JetBrains/phpstorm-stubs/tree/v2022.2" + "source": "https://github.com/JetBrains/phpstorm-stubs/tree/v2022.3" }, - "time": "2022-07-25T13:18:36+00:00" + "time": "2022-10-17T09:21:37+00:00" }, { "name": "justinrainbow/json-schema", @@ -895,16 +896,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.15.2", + "version": "v4.15.3", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc" + "reference": "570e980a201d8ed0236b0a62ddf2c9cbb2034039" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc", - "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/570e980a201d8ed0236b0a62ddf2c9cbb2034039", + "reference": "570e980a201d8ed0236b0a62ddf2c9cbb2034039", "shasum": "" }, "require": { @@ -945,9 +946,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.2" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.3" }, - "time": "2022-11-12T15:38:23+00:00" + "time": "2023-01-16T22:05:37+00:00" }, { "name": "nikolaposa/version", @@ -1325,41 +1326,42 @@ }, { "name": "roave/backward-compatibility-check", - "version": "7.4.0", + "version": "8.3.0", "source": { "type": "git", "url": "https://github.com/Roave/BackwardCompatibilityCheck.git", - "reference": "670a5cdaa2d60bc07658a5605f57c2154a1ece76" + "reference": "40956d53832b80dd4025c87b4cf5e1756f42f43d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/BackwardCompatibilityCheck/zipball/670a5cdaa2d60bc07658a5605f57c2154a1ece76", - "reference": "670a5cdaa2d60bc07658a5605f57c2154a1ece76", + "url": "https://api.github.com/repos/Roave/BackwardCompatibilityCheck/zipball/40956d53832b80dd4025c87b4cf5e1756f42f43d", + "reference": "40956d53832b80dd4025c87b4cf5e1756f42f43d", "shasum": "" }, "require": { - "azjezz/psl": "^2.0.4", - "composer/composer": "^2.4.4", + "azjezz/psl": "^2.3.1", + "composer/composer": "^2.5.1", "ext-json": "*", + "nikic/php-parser": "^4.15.3", "nikolaposa/version": "^4.1.0", "ocramius/package-versions": "^2.7.0", "php": "~8.1.0 || ~8.2.0", - "roave/better-reflection": "^6.3.0", - "symfony/console": "^6.1.7" + "roave/better-reflection": "^6.5.0", + "symfony/console": "^6.2.3" }, "conflict": { "revolt/event-loop": "<0.2.5", "symfony/process": "<5.3.7" }, "require-dev": { - "doctrine/coding-standard": "^10.0.0", - "php-standard-library/psalm-plugin": "^2.0.2", - "phpunit/phpunit": "^9.5.26", - "psalm/plugin-phpunit": "^0.17.0", - "roave/infection-static-analysis-plugin": "^1.25", + "doctrine/coding-standard": "^11.0.0", + "php-standard-library/psalm-plugin": "^2.2.1", + "phpunit/phpunit": "^9.5.27", + "psalm/plugin-phpunit": "^0.18.4", + "roave/infection-static-analysis-plugin": "^1.27.0", "roave/security-advisories": "dev-master", "squizlabs/php_codesniffer": "^3.7.1", - "vimeo/psalm": "^4.29.0" + "vimeo/psalm": "^5.4.0" }, "bin": [ "bin/roave-backward-compatibility-check" @@ -1387,41 +1389,41 @@ "description": "Tool to compare two revisions of a public API to check for BC breaks", "support": { "issues": "https://github.com/Roave/BackwardCompatibilityCheck/issues", - "source": "https://github.com/Roave/BackwardCompatibilityCheck/tree/7.4.0" + "source": "https://github.com/Roave/BackwardCompatibilityCheck/tree/8.3.0" }, - "time": "2022-10-31T21:48:04+00:00" + "time": "2023-02-11T17:26:11+00:00" }, { "name": "roave/better-reflection", - "version": "6.4.1", + "version": "6.7.0", "source": { "type": "git", "url": "https://github.com/Roave/BetterReflection.git", - "reference": "f3f3565be6fea880b57d600d7b213dc09a7c8dde" + "reference": "eb41dec4e97d67a5718891a15b8ff4a0b65db3b2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/BetterReflection/zipball/f3f3565be6fea880b57d600d7b213dc09a7c8dde", - "reference": "f3f3565be6fea880b57d600d7b213dc09a7c8dde", + "url": "https://api.github.com/repos/Roave/BetterReflection/zipball/eb41dec4e97d67a5718891a15b8ff4a0b65db3b2", + "reference": "eb41dec4e97d67a5718891a15b8ff4a0b65db3b2", "shasum": "" }, "require": { "ext-json": "*", - "jetbrains/phpstorm-stubs": "2022.2", - "nikic/php-parser": "^4.15.1", - "php": "~8.0.12 || ~8.1.0 || ~8.2.0", + "jetbrains/phpstorm-stubs": "2022.3", + "nikic/php-parser": "^4.15.3", + "php": "~8.1.0 || ~8.2.0", "roave/signature": "^1.7" }, "conflict": { "thecodingmachine/safe": "<1.1.3" }, "require-dev": { - "doctrine/coding-standard": "^10.0.0", - "phpstan/phpstan": "^1.8.10", - "phpstan/phpstan-phpunit": "^1.2.2", - "phpunit/phpunit": "^9.5.25", - "roave/infection-static-analysis-plugin": "^1.25.0", - "vimeo/psalm": "^4.29" + "doctrine/coding-standard": "^11.1.0", + "phpstan/phpstan": "^1.9.16", + "phpstan/phpstan-phpunit": "^1.3.3", + "phpunit/phpunit": "10.0.5", + "roave/infection-static-analysis-plugin": "^1.28.0", + "vimeo/psalm": "5.6.0" }, "suggest": { "composer/composer": "Required to use the ComposerSourceLocator" @@ -1461,9 +1463,9 @@ "description": "Better Reflection - an improved code reflection API", "support": { "issues": "https://github.com/Roave/BetterReflection/issues", - "source": "https://github.com/Roave/BetterReflection/tree/6.4.1" + "source": "https://github.com/Roave/BetterReflection/tree/6.7.0" }, - "time": "2022-11-23T12:27:41+00:00" + "time": "2023-02-08T15:16:19+00:00" }, { "name": "roave/signature", @@ -1680,16 +1682,16 @@ }, { "name": "symfony/console", - "version": "v6.2.1", + "version": "v6.2.5", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "58f6cef5dc5f641b7bbdbf8b32b44cc926c35f3f" + "reference": "3e294254f2191762c1d137aed4b94e966965e985" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/58f6cef5dc5f641b7bbdbf8b32b44cc926c35f3f", - "reference": "58f6cef5dc5f641b7bbdbf8b32b44cc926c35f3f", + "url": "https://api.github.com/repos/symfony/console/zipball/3e294254f2191762c1d137aed4b94e966965e985", + "reference": "3e294254f2191762c1d137aed4b94e966965e985", "shasum": "" }, "require": { @@ -1756,7 +1758,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.2.1" + "source": "https://github.com/symfony/console/tree/v6.2.5" }, "funding": [ { @@ -1772,7 +1774,7 @@ "type": "tidelift" } ], - "time": "2022-12-01T13:44:20+00:00" + "time": "2023-01-01T08:38:09+00:00" }, { "name": "symfony/deprecation-contracts", @@ -1843,16 +1845,16 @@ }, { "name": "symfony/filesystem", - "version": "v6.2.0", + "version": "v6.2.5", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "50b2523c874605cf3d4acf7a9e2b30b6a440a016" + "reference": "e59e8a4006afd7f5654786a83b4fcb8da98f4593" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/50b2523c874605cf3d4acf7a9e2b30b6a440a016", - "reference": "50b2523c874605cf3d4acf7a9e2b30b6a440a016", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/e59e8a4006afd7f5654786a83b4fcb8da98f4593", + "reference": "e59e8a4006afd7f5654786a83b4fcb8da98f4593", "shasum": "" }, "require": { @@ -1886,7 +1888,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.2.0" + "source": "https://github.com/symfony/filesystem/tree/v6.2.5" }, "funding": [ { @@ -1902,20 +1904,20 @@ "type": "tidelift" } ], - "time": "2022-11-20T13:01:27+00:00" + "time": "2023-01-20T17:45:48+00:00" }, { "name": "symfony/finder", - "version": "v6.2.0", + "version": "v6.2.5", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "eb2355f69519e4ef33f1835bca4c935f5d42e570" + "reference": "c90dc446976a612e3312a97a6ec0069ab0c2099c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/eb2355f69519e4ef33f1835bca4c935f5d42e570", - "reference": "eb2355f69519e4ef33f1835bca4c935f5d42e570", + "url": "https://api.github.com/repos/symfony/finder/zipball/c90dc446976a612e3312a97a6ec0069ab0c2099c", + "reference": "c90dc446976a612e3312a97a6ec0069ab0c2099c", "shasum": "" }, "require": { @@ -1950,7 +1952,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.2.0" + "source": "https://github.com/symfony/finder/tree/v6.2.5" }, "funding": [ { @@ -1966,7 +1968,7 @@ "type": "tidelift" } ], - "time": "2022-10-09T08:55:40+00:00" + "time": "2023-01-20T17:45:48+00:00" }, { "name": "symfony/polyfill-ctype", @@ -2460,18 +2462,97 @@ ], "time": "2022-11-03T14:55:06+00:00" }, + { + "name": "symfony/polyfill-php81", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a", + "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, { "name": "symfony/process", - "version": "v6.2.0", + "version": "v6.2.5", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "ba6e55359f8f755fe996c58a81e00eaa67a35877" + "reference": "9ead139f63dfa38c4e4a9049cc64a8b2748c83b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/ba6e55359f8f755fe996c58a81e00eaa67a35877", - "reference": "ba6e55359f8f755fe996c58a81e00eaa67a35877", + "url": "https://api.github.com/repos/symfony/process/zipball/9ead139f63dfa38c4e4a9049cc64a8b2748c83b7", + "reference": "9ead139f63dfa38c4e4a9049cc64a8b2748c83b7", "shasum": "" }, "require": { @@ -2503,7 +2584,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.2.0" + "source": "https://github.com/symfony/process/tree/v6.2.5" }, "funding": [ { @@ -2519,20 +2600,20 @@ "type": "tidelift" } ], - "time": "2022-11-02T09:08:04+00:00" + "time": "2023-01-01T08:38:09+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.1.1", + "version": "v3.2.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "925e713fe8fcacf6bc05e936edd8dd5441a21239" + "reference": "aac98028c69df04ee77eb69b96b86ee51fbf4b75" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/925e713fe8fcacf6bc05e936edd8dd5441a21239", - "reference": "925e713fe8fcacf6bc05e936edd8dd5441a21239", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/aac98028c69df04ee77eb69b96b86ee51fbf4b75", + "reference": "aac98028c69df04ee77eb69b96b86ee51fbf4b75", "shasum": "" }, "require": { @@ -2548,7 +2629,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.1-dev" + "dev-main": "3.3-dev" }, "thanks": { "name": "symfony/contracts", @@ -2588,7 +2669,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.1.1" + "source": "https://github.com/symfony/service-contracts/tree/v3.2.0" }, "funding": [ { @@ -2604,20 +2685,20 @@ "type": "tidelift" } ], - "time": "2022-05-30T19:18:58+00:00" + "time": "2022-11-25T10:21:52+00:00" }, { "name": "symfony/string", - "version": "v6.2.0", + "version": "v6.2.5", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "145702685e0d12f81d755c71127bfff7582fdd36" + "reference": "b2dac0fa27b1ac0f9c0c0b23b43977f12308d0b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/145702685e0d12f81d755c71127bfff7582fdd36", - "reference": "145702685e0d12f81d755c71127bfff7582fdd36", + "url": "https://api.github.com/repos/symfony/string/zipball/b2dac0fa27b1ac0f9c0c0b23b43977f12308d0b0", + "reference": "b2dac0fa27b1ac0f9c0c0b23b43977f12308d0b0", "shasum": "" }, "require": { @@ -2674,7 +2755,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.2.0" + "source": "https://github.com/symfony/string/tree/v6.2.5" }, "funding": [ { @@ -2690,7 +2771,7 @@ "type": "tidelift" } ], - "time": "2022-11-30T17:13:47+00:00" + "time": "2023-01-01T08:38:09+00:00" } ], "packages-dev": [],