diff --git a/composer.lock b/composer.lock index b78fe4b..9779a8e 100644 --- a/composer.lock +++ b/composer.lock @@ -322,16 +322,16 @@ }, { "name": "laminas/laminas-diactoros", - "version": "2.23.0", + "version": "2.24.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-diactoros.git", - "reference": "a738cecb420e3bcff34c33177f1ce9f68902695c" + "reference": "6028af6c3b5ced4d063a680d2483cce67578b902" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/a738cecb420e3bcff34c33177f1ce9f68902695c", - "reference": "a738cecb420e3bcff34c33177f1ce9f68902695c", + "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/6028af6c3b5ced4d063a680d2483cce67578b902", + "reference": "6028af6c3b5ced4d063a680d2483cce67578b902", "shasum": "" }, "require": { @@ -354,9 +354,9 @@ "http-interop/http-factory-tests": "^0.9.0", "laminas/laminas-coding-standard": "^2.4.0", "php-http/psr7-integration-tests": "^1.2", - "phpunit/phpunit": "^9.5.26", - "psalm/plugin-phpunit": "^0.18.0", - "vimeo/psalm": "^5.0.0" + "phpunit/phpunit": "^9.5.27", + "psalm/plugin-phpunit": "^0.18.4", + "vimeo/psalm": "^5.4" }, "type": "library", "extra": { @@ -415,7 +415,7 @@ "type": "community_bridge" } ], - "time": "2022-12-14T22:31:50+00:00" + "time": "2022-12-20T12:22:40+00:00" }, { "name": "laminas/laminas-escaper", @@ -481,16 +481,16 @@ }, { "name": "laminas/laminas-httphandlerrunner", - "version": "2.4.0", + "version": "2.5.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-httphandlerrunner.git", - "reference": "d15af53895fd581b5a448a09fd9a4baebc4ae6e5" + "reference": "7a47834aaad7852816d2ec4fdbb0492163b039ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-httphandlerrunner/zipball/d15af53895fd581b5a448a09fd9a4baebc4ae6e5", - "reference": "d15af53895fd581b5a448a09fd9a4baebc4ae6e5", + "url": "https://api.github.com/repos/laminas/laminas-httphandlerrunner/zipball/7a47834aaad7852816d2ec4fdbb0492163b039ae", + "reference": "7a47834aaad7852816d2ec4fdbb0492163b039ae", "shasum": "" }, "require": { @@ -502,9 +502,9 @@ "require-dev": { "laminas/laminas-coding-standard": "~2.4.0", "laminas/laminas-diactoros": "^2.18", - "phpunit/phpunit": "^9.5.25", - "psalm/plugin-phpunit": "^0.17.0", - "vimeo/psalm": "^4.28" + "phpunit/phpunit": "^9.5.26", + "psalm/plugin-phpunit": "^0.18.0", + "vimeo/psalm": "^5.0.0" }, "type": "library", "extra": { @@ -544,7 +544,7 @@ "type": "community_bridge" } ], - "time": "2022-10-25T13:41:39+00:00" + "time": "2023-01-05T21:54:03+00:00" }, { "name": "laminas/laminas-stdlib", @@ -1901,23 +1901,23 @@ }, { "name": "composer/composer", - "version": "2.4.4", + "version": "2.5.1", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "e8d9087229bcdbc5867594d3098091412f1130cf" + "reference": "923278ad13e1621946eb76ab2882655d2cc396a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/e8d9087229bcdbc5867594d3098091412f1130cf", - "reference": "e8d9087229bcdbc5867594d3098091412f1130cf", + "url": "https://api.github.com/repos/composer/composer/zipball/923278ad13e1621946eb76ab2882655d2cc396a4", + "reference": "923278ad13e1621946eb76ab2882655d2cc396a4", "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", @@ -1933,10 +1933,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", @@ -1954,7 +1955,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.4-dev" + "dev-main": "2.5-dev" }, "phpstan": { "includes": [ @@ -1993,7 +1994,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.1" }, "funding": [ { @@ -2009,7 +2010,7 @@ "type": "tidelift" } ], - "time": "2022-10-27T12:39:29+00:00" + "time": "2022-12-22T14:33:54+00:00" }, { "name": "composer/metadata-minifier", @@ -2492,30 +2493,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": { @@ -2542,7 +2543,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": [ { @@ -2558,7 +2559,7 @@ "type": "tidelift" } ], - "time": "2022-03-03T08:28:38+00:00" + "time": "2022-12-30T00:15:36+00:00" }, { "name": "elie29/zend-phpdi-config", @@ -3234,16 +3235,16 @@ }, { "name": "laminas/laminas-eventmanager", - "version": "3.9.0", + "version": "3.9.2", "source": { "type": "git", "url": "https://github.com/laminas/laminas-eventmanager.git", - "reference": "74c091fb0da37744e7d215ef5bd3564c77f6385e" + "reference": "55f7c337f4e49baf6dca87220619d40d9518e6b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-eventmanager/zipball/74c091fb0da37744e7d215ef5bd3564c77f6385e", - "reference": "74c091fb0da37744e7d215ef5bd3564c77f6385e", + "url": "https://api.github.com/repos/laminas/laminas-eventmanager/zipball/55f7c337f4e49baf6dca87220619d40d9518e6b6", + "reference": "55f7c337f4e49baf6dca87220619d40d9518e6b6", "shasum": "" }, "require": { @@ -3298,7 +3299,7 @@ "type": "community_bridge" } ], - "time": "2022-12-10T16:36:52+00:00" + "time": "2022-12-20T19:45:38+00:00" }, { "name": "laminas/laminas-http", @@ -3484,16 +3485,16 @@ }, { "name": "laminas/laminas-pimple-config", - "version": "1.5.0", + "version": "1.6.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-pimple-config.git", - "reference": "0ca2a8860053f548ea34c654f5ac601718108683" + "reference": "515d31e408379a917bfc36df37d4d7769562ba3d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-pimple-config/zipball/0ca2a8860053f548ea34c654f5ac601718108683", - "reference": "0ca2a8860053f548ea34c654f5ac601718108683", + "url": "https://api.github.com/repos/laminas/laminas-pimple-config/zipball/515d31e408379a917bfc36df37d4d7769562ba3d", + "reference": "515d31e408379a917bfc36df37d4d7769562ba3d", "shasum": "" }, "require": { @@ -3508,7 +3509,7 @@ "laminas/laminas-container-config-test": "^0.8", "phpunit/phpunit": "^9.5.26", "psalm/plugin-phpunit": "^0.18.3", - "vimeo/psalm": "^4.30" + "vimeo/psalm": "^5.0" }, "type": "library", "autoload": { @@ -3542,25 +3543,25 @@ "type": "community_bridge" } ], - "time": "2022-11-16T12:12:17+00:00" + "time": "2022-12-21T08:01:03+00:00" }, { "name": "laminas/laminas-psr7bridge", - "version": "1.8.0", + "version": "1.9.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-psr7bridge.git", - "reference": "6a653713d0b08b0b2e3fc89b61e0516ebe1966f5" + "reference": "fa4bdcc88727e37d51dedb7ddd0c5e9803d792b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-psr7bridge/zipball/6a653713d0b08b0b2e3fc89b61e0516ebe1966f5", - "reference": "6a653713d0b08b0b2e3fc89b61e0516ebe1966f5", + "url": "https://api.github.com/repos/laminas/laminas-psr7bridge/zipball/fa4bdcc88727e37d51dedb7ddd0c5e9803d792b4", + "reference": "fa4bdcc88727e37d51dedb7ddd0c5e9803d792b4", "shasum": "" }, "require": { "laminas/laminas-diactoros": "^2.0", - "laminas/laminas-http": "^2.15", + "laminas/laminas-http": "^2.18", "php": "~8.0.0 || ~8.1.0 || ~8.2.0", "psr/http-message": "^1.0" }, @@ -3570,9 +3571,9 @@ }, "require-dev": { "laminas/laminas-coding-standard": "~2.4.0", - "phpunit/phpunit": "^9.5.25", - "psalm/plugin-phpunit": "^0.17.0", - "vimeo/psalm": "^4.28" + "phpunit/phpunit": "^9.5.27", + "psalm/plugin-phpunit": "^0.18.4", + "vimeo/psalm": "^5.4" }, "type": "library", "autoload": { @@ -3606,20 +3607,20 @@ "type": "community_bridge" } ], - "time": "2022-10-11T00:15:30+00:00" + "time": "2022-12-20T12:37:06+00:00" }, { "name": "laminas/laminas-router", - "version": "3.11.0", + "version": "3.11.1", "source": { "type": "git", "url": "https://github.com/laminas/laminas-router.git", - "reference": "48b6fccd63b9e04e67781c212bf3bedd75c9ca17" + "reference": "3512c28cb4ffd64a62bc9e8b685a50a6547b0a11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-router/zipball/48b6fccd63b9e04e67781c212bf3bedd75c9ca17", - "reference": "48b6fccd63b9e04e67781c212bf3bedd75c9ca17", + "url": "https://api.github.com/repos/laminas/laminas-router/zipball/3512c28cb4ffd64a62bc9e8b685a50a6547b0a11", + "reference": "3512c28cb4ffd64a62bc9e8b685a50a6547b0a11", "shasum": "" }, "require": { @@ -3677,7 +3678,7 @@ "type": "community_bridge" } ], - "time": "2022-12-02T17:45:59+00:00" + "time": "2022-12-29T14:47:23+00:00" }, { "name": "laminas/laminas-servicemanager", @@ -3914,16 +3915,16 @@ }, { "name": "laminas/laminas-view", - "version": "2.25.0", + "version": "2.25.2", "source": { "type": "git", "url": "https://github.com/laminas/laminas-view.git", - "reference": "77a4b6d78445ae2f30625c5af09a05ad4e4434eb" + "reference": "ab40dc844cb5d54739db021a9c819de115a710e9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-view/zipball/77a4b6d78445ae2f30625c5af09a05ad4e4434eb", - "reference": "77a4b6d78445ae2f30625c5af09a05ad4e4434eb", + "url": "https://api.github.com/repos/laminas/laminas-view/zipball/ab40dc844cb5d54739db021a9c819de115a710e9", + "reference": "ab40dc844cb5d54739db021a9c819de115a710e9", "shasum": "" }, "require": { @@ -4011,7 +4012,7 @@ "type": "community_bridge" } ], - "time": "2022-11-07T08:01:13+00:00" + "time": "2022-12-21T11:35:32+00:00" }, { "name": "laravel/serializable-closure", @@ -4802,59 +4803,6 @@ }, "time": "2018-02-13T20:26:39+00:00" }, - { - "name": "openlss/lib-array2xml", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/nullivex/lib-array2xml.git", - "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nullivex/lib-array2xml/zipball/a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", - "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "type": "library", - "autoload": { - "psr-0": { - "LSS": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Bryan Tong", - "email": "bryan@nullivex.com", - "homepage": "https://www.nullivex.com" - }, - { - "name": "Tony Butler", - "email": "spudz76@gmail.com", - "homepage": "https://www.nullivex.com" - } - ], - "description": "Array2XML conversion library credit to lalit.org", - "homepage": "https://www.nullivex.com", - "keywords": [ - "array", - "array conversion", - "xml", - "xml conversion" - ], - "support": { - "issues": "https://github.com/nullivex/lib-array2xml/issues", - "source": "https://github.com/nullivex/lib-array2xml/tree/master" - }, - "time": "2019-03-29T20:06:56+00:00" - }, { "name": "phar-io/manifest", "version": "2.0.3", @@ -5350,16 +5298,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.21", + "version": "9.2.23", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "3f893e19712bb0c8bc86665d1562e9fd509c4ef0" + "reference": "9f1f0f9a2fbb680b26d1cf9b61b6eac43a6e4e9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/3f893e19712bb0c8bc86665d1562e9fd509c4ef0", - "reference": "3f893e19712bb0c8bc86665d1562e9fd509c4ef0", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/9f1f0f9a2fbb680b26d1cf9b61b6eac43a6e4e9c", + "reference": "9f1f0f9a2fbb680b26d1cf9b61b6eac43a6e4e9c", "shasum": "" }, "require": { @@ -5415,7 +5363,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.21" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.23" }, "funding": [ { @@ -5423,7 +5371,7 @@ "type": "github" } ], - "time": "2022-12-14T13:26:54+00:00" + "time": "2022-12-28T12:41:10+00:00" }, { "name": "phpunit/php-file-iterator", @@ -6063,12 +6011,12 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "648a1a2e7bb5d18dfaefe5f93da438127cebc5b2" + "reference": "ef9dca6c49faa06e7203bbed30411e26e474a8fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/648a1a2e7bb5d18dfaefe5f93da438127cebc5b2", - "reference": "648a1a2e7bb5d18dfaefe5f93da438127cebc5b2", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/ef9dca6c49faa06e7203bbed30411e26e474a8fb", + "reference": "ef9dca6c49faa06e7203bbed30411e26e474a8fb", "shasum": "" }, "conflict": { @@ -6123,7 +6071,7 @@ "cesnet/simplesamlphp-module-proxystatistics": "<3.1", "codeception/codeception": "<3.1.3|>=4,<4.1.22", "codeigniter/framework": "<=3.0.6", - "codeigniter4/framework": "<4.2.7", + "codeigniter4/framework": "<4.2.11", "codeigniter4/shield": "= 1.0.0-beta", "codiad/codiad": "<=2.8.4", "composer/composer": "<1.10.26|>=2-alpha.1,<2.2.12|>=2.3,<2.3.5", @@ -6207,7 +6155,7 @@ "friendsofsymfony/user-bundle": ">=1.2,<1.3.5", "friendsoftypo3/mediace": ">=7.6.2,<7.6.5", "froala/wysiwyg-editor": "<3.2.7", - "froxlor/froxlor": "<0.10.39", + "froxlor/froxlor": "<0.10.39|>=2-beta.0,<2-beta.1", "fuel/core": "<1.8.1", "gaoming13/wechat-php-sdk": "<=1.10.2", "genix/cms": "<=1.1.11", @@ -6295,6 +6243,7 @@ "melisplatform/melis-cms": "<5.0.1", "melisplatform/melis-front": "<5.0.1", "mezzio/mezzio-swoole": "<3.7|>=4,<4.3", + "mgallegos/laravel-jqgrid": "<=1.3", "microweber/microweber": "<=1.3.1", "miniorange/miniorange-saml": "<1.4.3", "mittwald/typo3_forum": "<1.2.1", @@ -6415,7 +6364,7 @@ "silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1", "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4", "silverstripe/silverstripe-omnipay": "<2.5.2|>=3,<3.0.2|>=3.1,<3.1.4|>=3.2,<3.2.1", - "silverstripe/subsites": ">=2,<2.1.1", + "silverstripe/subsites": ">=2,<2.6.1", "silverstripe/taxonomy": ">=1.3,<1.3.1|>=2,<2.0.1", "silverstripe/userforms": "<3", "silverstripe/versioned-admin": ">=1,<1.11.1", @@ -6426,7 +6375,7 @@ "simplito/elliptic-php": "<1.0.6", "slim/slim": "<2.6", "smarty/smarty": "<3.1.47|>=4,<4.2.1", - "snipe/snipe-it": "<6.0.11|>= 6.0.0-RC-1, <= 6.0.0-RC-5", + "snipe/snipe-it": "<=6.0.14|>= 6.0.0-RC-1, <= 6.0.0-RC-5", "socalnick/scn-social-auth": "<1.15.2", "socialiteproviders/steam": "<1.1", "spatie/browsershot": "<3.57.4", @@ -6491,13 +6440,13 @@ "tinymce/tinymce": "<5.10.7|>=6,<6.3.1", "titon/framework": ">=0,<9.9.99", "tobiasbg/tablepress": "<= 2.0-RC1", - "topthink/framework": "<=6.0.13", + "topthink/framework": "<6.0.14", "topthink/think": "<=6.0.9", "topthink/thinkphp": "<=3.2.3", "tribalsystems/zenario": "<=9.3.57595", "truckersmp/phpwhois": "<=4.3.1", "twig/twig": "<1.44.7|>=2,<2.15.3|>=3,<3.4.3", - "typo3/cms": ">=6.2,<6.2.30|>=7,<7.6.32|>=8,<8.7.38|>=9,<9.5.29|>=10,<10.4.33|>=11,<11.5.20|>=12,<12.1.1", + "typo3/cms": "<2.0.5|>=3,<3.0.3|>=6.2,<6.2.30|>=7,<7.6.32|>=8,<8.7.38|>=9,<9.5.29|>=10,<10.4.33|>=11,<11.5.20|>=12,<12.1.1", "typo3/cms-backend": ">=7,<=7.6.50|>=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1", "typo3/cms-core": "<8.7.49|>=9,<9.5.38|>=10,<10.4.33|>=11,<11.5.20|>=12,<12.1.1", "typo3/cms-form": ">=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1", @@ -6535,7 +6484,7 @@ "yiisoft/yii2-bootstrap": "<2.0.4", "yiisoft/yii2-dev": "<2.0.43", "yiisoft/yii2-elasticsearch": "<2.0.5", - "yiisoft/yii2-gii": "<2.0.4", + "yiisoft/yii2-gii": "<=2.2.4", "yiisoft/yii2-jui": "<2.0.4", "yiisoft/yii2-redis": "<2.0.8", "yikesinc/yikes-inc-easy-mailchimp-extender": "<6.8.6", @@ -6601,7 +6550,7 @@ "type": "tidelift" } ], - "time": "2022-12-16T00:14:52+00:00" + "time": "2023-01-04T14:04:25+00:00" }, { "name": "sebastian/cli-parser", @@ -7801,6 +7750,70 @@ ], "time": "2022-05-25T10:58:12+00:00" }, + { + "name": "spatie/array-to-xml", + "version": "2.17.1", + "source": { + "type": "git", + "url": "https://github.com/spatie/array-to-xml.git", + "reference": "5cbec9c6ab17e320c58a259f0cebe88bde4a7c46" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/5cbec9c6ab17e320c58a259f0cebe88bde4a7c46", + "reference": "5cbec9c6ab17e320c58a259f0cebe88bde4a7c46", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": "^7.4|^8.0" + }, + "require-dev": { + "mockery/mockery": "^1.2", + "pestphp/pest": "^1.21", + "phpunit/phpunit": "^9.0", + "spatie/pest-plugin-snapshots": "^1.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\ArrayToXml\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://freek.dev", + "role": "Developer" + } + ], + "description": "Convert an array to xml", + "homepage": "https://github.com/spatie/array-to-xml", + "keywords": [ + "array", + "convert", + "xml" + ], + "support": { + "source": "https://github.com/spatie/array-to-xml/tree/2.17.1" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2022-12-26T08:22:07+00:00" + }, { "name": "squizlabs/php_codesniffer", "version": "3.7.1", @@ -7859,16 +7872,16 @@ }, { "name": "symfony/console", - "version": "v6.0.16", + "version": "v6.0.17", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "be294423f337dda97c810733138c0caec1bb0575" + "reference": "2ab307342a7233b9a260edd5ef94087aaca57d18" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/be294423f337dda97c810733138c0caec1bb0575", - "reference": "be294423f337dda97c810733138c0caec1bb0575", + "url": "https://api.github.com/repos/symfony/console/zipball/2ab307342a7233b9a260edd5ef94087aaca57d18", + "reference": "2ab307342a7233b9a260edd5ef94087aaca57d18", "shasum": "" }, "require": { @@ -7934,7 +7947,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.0.16" + "source": "https://github.com/symfony/console/tree/v6.0.17" }, "funding": [ { @@ -7950,20 +7963,20 @@ "type": "tidelift" } ], - "time": "2022-11-25T18:58:46+00:00" + "time": "2022-12-28T14:21:34+00:00" }, { "name": "symfony/dependency-injection", - "version": "v5.4.16", + "version": "v5.4.17", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "a93e1863500940780fc1235f52d54397be2d14b3" + "reference": "58f2988128d2d278280781db037677a32cf720db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/a93e1863500940780fc1235f52d54397be2d14b3", - "reference": "a93e1863500940780fc1235f52d54397be2d14b3", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/58f2988128d2d278280781db037677a32cf720db", + "reference": "58f2988128d2d278280781db037677a32cf720db", "shasum": "" }, "require": { @@ -8023,7 +8036,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v5.4.16" + "source": "https://github.com/symfony/dependency-injection/tree/v5.4.17" }, "funding": [ { @@ -8039,7 +8052,7 @@ "type": "tidelift" } ], - "time": "2022-11-25T07:33:13+00:00" + "time": "2022-12-28T13:55:51+00:00" }, { "name": "symfony/deprecation-contracts", @@ -8110,16 +8123,16 @@ }, { "name": "symfony/event-dispatcher", - "version": "v6.0.9", + "version": "v6.0.17", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "5c85b58422865d42c6eb46f7693339056db098a8" + "reference": "42b3985aa07837c9df36013ec5b965e9f2d480bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/5c85b58422865d42c6eb46f7693339056db098a8", - "reference": "5c85b58422865d42c6eb46f7693339056db098a8", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/42b3985aa07837c9df36013ec5b965e9f2d480bc", + "reference": "42b3985aa07837c9df36013ec5b965e9f2d480bc", "shasum": "" }, "require": { @@ -8173,7 +8186,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v6.0.9" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.0.17" }, "funding": [ { @@ -8189,7 +8202,7 @@ "type": "tidelift" } ], - "time": "2022-05-05T16:45:52+00:00" + "time": "2022-12-14T15:52:41+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -8335,16 +8348,16 @@ }, { "name": "symfony/finder", - "version": "v6.0.11", + "version": "v6.0.17", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "09cb683ba5720385ea6966e5e06be2a34f2568b1" + "reference": "d467d625fc88f7cebf96f495e588a7196a669db1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/09cb683ba5720385ea6966e5e06be2a34f2568b1", - "reference": "09cb683ba5720385ea6966e5e06be2a34f2568b1", + "url": "https://api.github.com/repos/symfony/finder/zipball/d467d625fc88f7cebf96f495e588a7196a669db1", + "reference": "d467d625fc88f7cebf96f495e588a7196a669db1", "shasum": "" }, "require": { @@ -8376,7 +8389,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.0.11" + "source": "https://github.com/symfony/finder/tree/v6.0.17" }, "funding": [ { @@ -8392,7 +8405,7 @@ "type": "tidelift" } ], - "time": "2022-07-29T07:39:48+00:00" + "time": "2022-12-22T17:53:58+00:00" }, { "name": "symfony/polyfill-ctype", @@ -9111,16 +9124,16 @@ }, { "name": "symfony/string", - "version": "v6.0.15", + "version": "v6.0.17", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "51ac0fa0ccf132a00519b87c97e8f775fa14e771" + "reference": "3f57003dd8a67ed76870cc03092f8501db7788d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/51ac0fa0ccf132a00519b87c97e8f775fa14e771", - "reference": "51ac0fa0ccf132a00519b87c97e8f775fa14e771", + "url": "https://api.github.com/repos/symfony/string/zipball/3f57003dd8a67ed76870cc03092f8501db7788d9", + "reference": "3f57003dd8a67ed76870cc03092f8501db7788d9", "shasum": "" }, "require": { @@ -9176,7 +9189,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.0.15" + "source": "https://github.com/symfony/string/tree/v6.0.17" }, "funding": [ { @@ -9192,7 +9205,7 @@ "type": "tidelift" } ], - "time": "2022-10-10T09:34:08+00:00" + "time": "2022-12-14T15:52:41+00:00" }, { "name": "theseer/tokenizer", @@ -9246,16 +9259,16 @@ }, { "name": "twig/twig", - "version": "v3.4.3", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "c38fd6b0b7f370c198db91ffd02e23b517426b58" + "reference": "3ffcf4b7d890770466da3b2666f82ac054e7ec72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/c38fd6b0b7f370c198db91ffd02e23b517426b58", - "reference": "c38fd6b0b7f370c198db91ffd02e23b517426b58", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/3ffcf4b7d890770466da3b2666f82ac054e7ec72", + "reference": "3ffcf4b7d890770466da3b2666f82ac054e7ec72", "shasum": "" }, "require": { @@ -9270,7 +9283,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "3.5-dev" } }, "autoload": { @@ -9306,7 +9319,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.4.3" + "source": "https://github.com/twigphp/Twig/tree/v3.5.0" }, "funding": [ { @@ -9318,20 +9331,20 @@ "type": "tidelift" } ], - "time": "2022-09-28T08:42:51+00:00" + "time": "2022-12-27T12:28:18+00:00" }, { "name": "vimeo/psalm", - "version": "5.2.0", + "version": "5.4.0", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "fb685a16df3050d4c18d8a4100fe83abe6458cba" + "reference": "62db5d4f6a7ae0a20f7cc5a4952d730272fc0863" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/fb685a16df3050d4c18d8a4100fe83abe6458cba", - "reference": "fb685a16df3050d4c18d8a4100fe83abe6458cba", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/62db5d4f6a7ae0a20f7cc5a4952d730272fc0863", + "reference": "62db5d4f6a7ae0a20f7cc5a4952d730272fc0863", "shasum": "" }, "require": { @@ -9353,9 +9366,9 @@ "fidry/cpu-core-counter": "^0.4.0", "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", "nikic/php-parser": "^4.13", - "openlss/lib-array2xml": "^1.0", "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0", "sebastian/diff": "^4.0", + "spatie/array-to-xml": "^2.17.0", "symfony/console": "^4.1.6 || ^5.0 || ^6.0", "symfony/filesystem": "^5.4 || ^6.0", "symfony/polyfill-php80": "^1.25" @@ -9421,9 +9434,9 @@ ], "support": { "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm/tree/5.2.0" + "source": "https://github.com/vimeo/psalm/tree/5.4.0" }, - "time": "2022-12-12T08:18:56+00:00" + "time": "2022-12-19T21:31:12+00:00" }, { "name": "webimpress/coding-standard", diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 7898888..ec345e7 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -1,5 +1,5 @@ - + $container @@ -25,108 +25,70 @@ $this->stabilityFlags - + + require __DIR__ . '/config.php' + + $answer $constraint - $defaultOption - $defaultText - $defaultText $filename $filename - $force - $key - $option['name'] $package - $package - $packageData['version'] - $packageData['whitelist'] ?? [] - $packageName - $question - $questionName - $question['custom-package-warning'] - $question['question'] - $resource - $resource - $target $target $this->composerDefinition['autoload'] $this->composerDefinition['autoload-dev'] - $this->composerDefinition['extra'] ?? [] - $this->composerDefinition['extra']['laminas']['component-whitelist'] - $this->config['require-dev'] $word - - $option['name'] - $option['name'] - $packageData['version'] - $packageData['whitelist'] - $question['options'][$answer][$this->installType] - $question['options'][$answer]['packages'] + + $package + + $this->composerDefinition['autoload']['psr-4'] $this->composerDefinition['autoload']['psr-4']['MezzioInstaller\\'] $this->composerDefinition['autoload-dev']['psr-4'] $this->composerDefinition['autoload-dev']['psr-4']['MezzioInstallerTest\\'] - $this->composerDefinition['extra']['branch-alias'] - $this->composerDefinition['extra']['laminas'] - $this->composerDefinition['extra']['laminas']['component-whitelist'] - $this->composerDefinition['extra']['optional-packages'] - $this->composerDefinition['require'][$packageName] - $this->composerDefinition['require-dev'][$devDependency] - $this->composerDefinition['require-dev'][$packageName] $this->composerDefinition['scripts']['pre-install-cmd'] $this->composerDefinition['scripts']['pre-update-cmd'] - $this->config['application'][$this->installType] - $this->config['application'][$this->installType] - $this->config['application'][$this->installType]['packages'] - $this->config['application'][$this->installType]['resources'] - $this->config['packages'][$packageName] - + $this->composerDefinition['autoload']['psr-4'] $this->composerDefinition['autoload']['psr-4']['App\\'] - $this->composerDefinition['extra']['laminas'] - $this->composerDefinition['extra']['laminas']['component-whitelist'] - $this->composerDefinition['extra']['optional-packages'] - $this->composerDefinition['extra']['optional-packages'][$questionName] $this->composerDefinition['require'][$packageName] $this->composerDefinition['require-dev'][$packageName] $this->composerDefinition['scripts']['cs-check'] $this->composerDefinition['scripts']['cs-fix'] - - $this->config['packages'][$packageName] - - + $answer $answer $constraint - $defaultOption - $defaultText $fileInfo $filename - $force - $key - $option $package - $package - $packageData - $packageName - $question - $questionName - $resource - $resource - $target $target $this->composerDefinition isDir + + $this->installType + + + $resource + + + $question['options'][$answer][$this->installType] + $content $phpunitConfig + + $this->composerDefinition + $this->composerDefinition + $this->composerDefinition + @@ -286,27 +248,13 @@ - - testPromptForOptionalPackage - testPromptForOptionalPackage - - - $package - $question['question'] + $written $written[] - - $package - $package - $target - $toWrite[] - $toWrite[] - $written[] - @@ -326,6 +274,7 @@ $config['dependencies'] $config['dependencies'][$dependencyKey] + $config['dependencies'][$dependencyKey][RouterInterface::class] $config['questions']['container'] $config['questions']['router'] @@ -345,6 +294,7 @@ $config['dependencies'] $config['dependencies']['factories'] + $config['dependencies']['factories'][ErrorHandler::class] $config['questions']['container'] $config['questions']['router'] $config['questions']['template-engine'] diff --git a/src/MezzioInstaller/OptionalPackages.php b/src/MezzioInstaller/OptionalPackages.php index 09ef974..66cb71f 100644 --- a/src/MezzioInstaller/OptionalPackages.php +++ b/src/MezzioInstaller/OptionalPackages.php @@ -52,6 +52,23 @@ * "pre-update-cmd": "MezzioInstaller\\OptionalPackages::install", * "pre-install-cmd": "MezzioInstaller\\OptionalPackages::install" * }, + * + * @psalm-type OptionalPackageSpec = array{ + * name: string, + * packages: list, + * flat: array, + * modular: array, + * minimal: array, + * } + * @psalm-type QuestionSpec = array{ + * question: string, + * default: int, + * required: bool, + * force?: bool, + * custom-package: bool, + * custom-package-warning?: string, + * options: array, + * } */ class OptionalPackages { @@ -90,7 +107,7 @@ class OptionalPackages /** * Assets to remove during cleanup. * - * @var string[] + * @var list */ private array $assetsToRemove = [ '.coveralls.yml', @@ -105,11 +122,36 @@ class OptionalPackages 'src/App/templates/.gitkeep', ]; - /** @var array */ - private $config = []; - - /** @var array */ - private $composerDefinition = []; + /** + * @var array{ + * packages: array, + * }>, + * questions: array, + * require-dev: list, + * application: array, + * }>, + * } + */ + private array $config; + /** + * @var array{ + * require: array, + * require-dev: array, + * extra: array{ + * optional-packages: array, + * branch-alias?: mixed, + * laminas: array{ + * component-whitelist: list, + * } + * }, + * ... + * } + */ + private array $composerDefinition; private JsonFile $composerJson; @@ -142,7 +184,7 @@ class OptionalPackages /** @var string Path to this file. */ private string $installerSource; - /** @var string Installation type selected. */ + /** @var self::INSTALL_* Installation type selected. */ private string $installType = self::INSTALL_FLAT; private string $projectRoot; @@ -231,7 +273,7 @@ public function removeDevDependencies(): void /** * Prompt for the installation type. * - * @return string One of the INSTALL_ constants. + * @return self::INSTALL_* One of the INSTALL_ constants. */ public function requestInstallType(): string { @@ -338,7 +380,7 @@ public function promptForOptionalPackages(): void * Prompt for a single optional installation package. * * @param string $questionName Name of question - * @param array $question Question details from configuration + * @param QuestionSpec $question Question details from configuration */ public function promptForOptionalPackage(string $questionName, array $question): void { @@ -420,6 +462,8 @@ public function finalizePackage(): void /** * Process the answer of a question + * + * @param QuestionSpec $question */ public function processAnswer(array $question, bool|int|string $answer): bool { @@ -588,6 +632,7 @@ private function preparePhpunitConfig(): void /** * Prepare and ask questions and return the answer * + * @param QuestionSpec $question * @codeCoverageIgnore */ private function askQuestion(array $question, int|string $defaultOption): string|int|bool diff --git a/test/MezzioInstallerTest/PromptForOptionalPackagesTest.php b/test/MezzioInstallerTest/PromptForOptionalPackagesTest.php index fac1b99..f2c5629 100644 --- a/test/MezzioInstallerTest/PromptForOptionalPackagesTest.php +++ b/test/MezzioInstallerTest/PromptForOptionalPackagesTest.php @@ -14,6 +14,10 @@ use function sprintf; use function str_contains; +/** + * @psalm-import-type QuestionSpec from OptionalPackages + * @psalm-import-type OptionalPackageSpec from OptionalPackages + */ class PromptForOptionalPackagesTest extends OptionalPackagesTestCase { use ProjectSandboxTrait; @@ -44,9 +48,9 @@ protected function tearDown(): void /** * @psalm-return Generator */ public function promptCombinations(): Generator @@ -62,6 +66,8 @@ public function promptCombinations(): Generator /** * @dataProvider promptCombinations + * @param QuestionSpec $question + * @param OptionalPackageSpec $expectedPackage */ public function testPromptForOptionalPackage( string $questionName,