From 41803fec5e8cf8f86d65a21e6aa67c2abf9cb329 Mon Sep 17 00:00:00 2001 From: Cees-Jan Kiewiet Date: Sun, 16 Jun 2024 19:07:34 +0200 Subject: [PATCH] Add AddOns --- composer.json | 6 +- composer.lock | 1265 +++++++++++------ .../AbstractList_.php.twig | 3 +- src/App.php | 7 +- src/Composer/Collector.php | 36 + src/Composer/Installer.php | 251 +--- src/Composer/Item.php | 30 + src/Composer/Plugin.php | 76 + src/Kubernetes/Helm/QueueConsumersValues.php | 3 + src/Worker.php | 6 +- 10 files changed, 969 insertions(+), 714 deletions(-) create mode 100644 src/Composer/Collector.php create mode 100644 src/Composer/Item.php create mode 100644 src/Composer/Plugin.php diff --git a/composer.json b/composer.json index c53a593..6e85d97 100644 --- a/composer.json +++ b/composer.json @@ -6,10 +6,11 @@ "require": { "php": "^8.2", "composer-plugin-api": "^2.0", - "illuminate/collections": "^8.54 || ^9 || ^10", "mammatus/app": "dev-master", "mammatus/kubernetes-attributes": "dev-main", + "mammatus/kubernetes-contracts": "dev-main", "mammatus/kubernetes-events": "dev-main", + "mammatus/kubernetes-keda": "dev-main", "mammatus/life-cycle-events": "^2", "mammatus/queue-attributes": "dev-main", "mammatus/queue-contracts": "dev-main", @@ -19,11 +20,10 @@ "react/async": "^4.2", "roave/better-reflection": "^6.26", "wyrihaximus/broadcast-contracts": "^1.3", - "wyrihaximus/list-classes-in-directory": "^1.6", + "wyrihaximus/generative-composer-plugin-tooling": "dev-nih-package-discovery", "wyrihaximus/monolog-factory": "^2", "wyrihaximus/psr-3-context-logger": "^2.0", "wyrihaximus/simple-twig": "^2.1", - "wyrihaximus/string-get-in": "^1.1", "wyrihaximus/ticking-promise": "^3.1" }, "require-dev": { diff --git a/composer.lock b/composer.lock index 7c90455..46b9e6c 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": "ae1b00a38d823d04b62e7f68a63f8abc", + "content-hash": "89d17c63d6ce87d798fdf720125fe399", "packages": [ { "name": "bramus/ansi-php", @@ -104,16 +104,16 @@ }, { "name": "composer/ca-bundle", - "version": "1.5.0", + "version": "1.5.1", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "0c5ccfcfea312b5c5a190a21ac5cef93f74baf99" + "reference": "063d9aa8696582f5a41dffbbaf3c81024f0a604a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/0c5ccfcfea312b5c5a190a21ac5cef93f74baf99", - "reference": "0c5ccfcfea312b5c5a190a21ac5cef93f74baf99", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/063d9aa8696582f5a41dffbbaf3c81024f0a604a", + "reference": "063d9aa8696582f5a41dffbbaf3c81024f0a604a", "shasum": "" }, "require": { @@ -123,7 +123,7 @@ }, "require-dev": { "phpstan/phpstan": "^1.10", - "psr/log": "^1.0", + "psr/log": "^1.0 || ^2.0 || ^3.0", "symfony/phpunit-bridge": "^4.2 || ^5", "symfony/process": "^4.0 || ^5.0 || ^6.0 || ^7.0" }, @@ -160,7 +160,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.5.0" + "source": "https://github.com/composer/ca-bundle/tree/1.5.1" }, "funding": [ { @@ -176,20 +176,20 @@ "type": "tidelift" } ], - "time": "2024-03-15T14:00:32+00:00" + "time": "2024-07-08T15:28:20+00:00" }, { "name": "composer/class-map-generator", - "version": "1.1.1", + "version": "1.3.4", "source": { "type": "git", "url": "https://github.com/composer/class-map-generator.git", - "reference": "8286a62d243312ed99b3eee20d5005c961adb311" + "reference": "b1b3fd0b4eaf3ddf3ee230bc340bf3fff454a1a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/class-map-generator/zipball/8286a62d243312ed99b3eee20d5005c961adb311", - "reference": "8286a62d243312ed99b3eee20d5005c961adb311", + "url": "https://api.github.com/repos/composer/class-map-generator/zipball/b1b3fd0b4eaf3ddf3ee230bc340bf3fff454a1a3", + "reference": "b1b3fd0b4eaf3ddf3ee230bc340bf3fff454a1a3", "shasum": "" }, "require": { @@ -233,7 +233,7 @@ ], "support": { "issues": "https://github.com/composer/class-map-generator/issues", - "source": "https://github.com/composer/class-map-generator/tree/1.1.1" + "source": "https://github.com/composer/class-map-generator/tree/1.3.4" }, "funding": [ { @@ -249,28 +249,28 @@ "type": "tidelift" } ], - "time": "2024-03-15T12:53:41+00:00" + "time": "2024-06-12T14:13:04+00:00" }, { "name": "composer/composer", - "version": "2.7.6", + "version": "2.7.7", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "fabd995783b633829fd4280e272284b39b6ae702" + "reference": "291942978f39435cf904d33739f98d7d4eca7b23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/fabd995783b633829fd4280e272284b39b6ae702", - "reference": "fabd995783b633829fd4280e272284b39b6ae702", + "url": "https://api.github.com/repos/composer/composer/zipball/291942978f39435cf904d33739f98d7d4eca7b23", + "reference": "291942978f39435cf904d33739f98d7d4eca7b23", "shasum": "" }, "require": { "composer/ca-bundle": "^1.0", - "composer/class-map-generator": "^1.0", + "composer/class-map-generator": "^1.3.3", "composer/metadata-minifier": "^1.0", "composer/pcre": "^2.1 || ^3.1", - "composer/semver": "^3.2.5", + "composer/semver": "^3.3", "composer/spdx-licenses": "^1.5.7", "composer/xdebug-handler": "^2.0.2 || ^3.0.3", "justinrainbow/json-schema": "^5.2.11", @@ -289,11 +289,11 @@ "symfony/process": "^5.4 || ^6.0 || ^7" }, "require-dev": { - "phpstan/phpstan": "^1.9.3", - "phpstan/phpstan-deprecation-rules": "^1", - "phpstan/phpstan-phpunit": "^1.0", - "phpstan/phpstan-strict-rules": "^1", - "phpstan/phpstan-symfony": "^1.2.10", + "phpstan/phpstan": "^1.11.0", + "phpstan/phpstan-deprecation-rules": "^1.2.0", + "phpstan/phpstan-phpunit": "^1.4.0", + "phpstan/phpstan-strict-rules": "^1.6.0", + "phpstan/phpstan-symfony": "^1.4.0", "symfony/phpunit-bridge": "^6.4.1 || ^7.0.1" }, "suggest": { @@ -347,7 +347,7 @@ "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/composer/issues", "security": "https://github.com/composer/composer/security/policy", - "source": "https://github.com/composer/composer/tree/2.7.6" + "source": "https://github.com/composer/composer/tree/2.7.7" }, "funding": [ { @@ -363,7 +363,7 @@ "type": "tidelift" } ], - "time": "2024-05-04T21:03:15+00:00" + "time": "2024-06-10T20:11:12+00:00" }, { "name": "composer/metadata-minifier", @@ -436,30 +436,38 @@ }, { "name": "composer/pcre", - "version": "3.1.3", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8" + "reference": "ea4ab6f9580a4fd221e0418f2c357cdd39102a90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/5b16e25a5355f1f3afdfc2f954a0a80aec4826a8", - "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8", + "url": "https://api.github.com/repos/composer/pcre/zipball/ea4ab6f9580a4fd221e0418f2c357cdd39102a90", + "reference": "ea4ab6f9580a4fd221e0418f2c357cdd39102a90", "shasum": "" }, "require": { "php": "^7.4 || ^8.0" }, + "conflict": { + "phpstan/phpstan": "<1.11.8" + }, "require-dev": { - "phpstan/phpstan": "^1.3", + "phpstan/phpstan": "^1.11.8", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^5" + "phpunit/phpunit": "^8 || ^9" }, "type": "library", "extra": { "branch-alias": { "dev-main": "3.x-dev" + }, + "phpstan": { + "includes": [ + "extension.neon" + ] } }, "autoload": { @@ -487,7 +495,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.3" + "source": "https://github.com/composer/pcre/tree/3.2.0" }, "funding": [ { @@ -503,20 +511,20 @@ "type": "tidelift" } ], - "time": "2024-03-19T10:26:25+00:00" + "time": "2024-07-25T09:36:02+00:00" }, { "name": "composer/semver", - "version": "3.4.0", + "version": "3.3.2", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" + "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", - "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", + "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", + "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", "shasum": "" }, "require": { @@ -566,9 +574,9 @@ "versioning" ], "support": { - "irc": "ircs://irc.libera.chat:6697/composer", + "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.4.0" + "source": "https://github.com/composer/semver/tree/3.3.2" }, "funding": [ { @@ -584,7 +592,7 @@ "type": "tidelift" } ], - "time": "2023-08-31T09:50:34+00:00" + "time": "2022-04-01T19:23:25+00:00" }, { "name": "composer/spdx-licenses", @@ -894,16 +902,16 @@ }, { "name": "illuminate/collections", - "version": "v10.48.10", + "version": "v10.48.18", "source": { "type": "git", "url": "https://github.com/illuminate/collections.git", - "reference": "f9589f1063a449111dcaa1d68285b507d9483a95" + "reference": "37c863cffb345869dd134eff8e646bc82a19cc96" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/collections/zipball/f9589f1063a449111dcaa1d68285b507d9483a95", - "reference": "f9589f1063a449111dcaa1d68285b507d9483a95", + "url": "https://api.github.com/repos/illuminate/collections/zipball/37c863cffb345869dd134eff8e646bc82a19cc96", + "reference": "37c863cffb345869dd134eff8e646bc82a19cc96", "shasum": "" }, "require": { @@ -945,11 +953,11 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2024-03-20T20:09:13+00:00" + "time": "2024-06-19T14:25:05+00:00" }, { "name": "illuminate/conditionable", - "version": "v10.48.10", + "version": "v10.48.18", "source": { "type": "git", "url": "https://github.com/illuminate/conditionable.git", @@ -995,7 +1003,7 @@ }, { "name": "illuminate/contracts", - "version": "v10.48.10", + "version": "v10.48.18", "source": { "type": "git", "url": "https://github.com/illuminate/contracts.git", @@ -1043,7 +1051,7 @@ }, { "name": "illuminate/macroable", - "version": "v10.48.10", + "version": "v10.48.18", "source": { "type": "git", "url": "https://github.com/illuminate/macroable.git", @@ -1137,20 +1145,20 @@ }, { "name": "justinrainbow/json-schema", - "version": "v5.2.13", + "version": "5.3.0", "source": { "type": "git", - "url": "https://github.com/justinrainbow/json-schema.git", - "reference": "fbbe7e5d79f618997bc3332a6f49246036c45793" + "url": "https://github.com/jsonrainbow/json-schema.git", + "reference": "feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/fbbe7e5d79f618997bc3332a6f49246036c45793", - "reference": "fbbe7e5d79f618997bc3332a6f49246036c45793", + "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8", + "reference": "feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "require-dev": { "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", @@ -1161,11 +1169,6 @@ "bin/validate-json" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0.x-dev" - } - }, "autoload": { "psr-4": { "JsonSchema\\": "src/JsonSchema/" @@ -1200,10 +1203,10 @@ "schema" ], "support": { - "issues": "https://github.com/justinrainbow/json-schema/issues", - "source": "https://github.com/justinrainbow/json-schema/tree/v5.2.13" + "issues": "https://github.com/jsonrainbow/json-schema/issues", + "source": "https://github.com/jsonrainbow/json-schema/tree/5.3.0" }, - "time": "2023-09-26T02:20:38+00:00" + "time": "2024-07-06T21:00:26+00:00" }, { "name": "laravel/serializable-closure", @@ -1492,15 +1495,16 @@ "source": { "type": "git", "url": "https://github.com/MammatusPHP/kubernetes-attributes.git", - "reference": "e4470b218b8a4333b13944bbad2a3722b8f4e897" + "reference": "daf403b5323c7b67c1df39b85f6719f9ef80a165" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/MammatusPHP/kubernetes-attributes/zipball/e4470b218b8a4333b13944bbad2a3722b8f4e897", - "reference": "e4470b218b8a4333b13944bbad2a3722b8f4e897", + "url": "https://api.github.com/repos/MammatusPHP/kubernetes-attributes/zipball/daf403b5323c7b67c1df39b85f6719f9ef80a165", + "reference": "daf403b5323c7b67c1df39b85f6719f9ef80a165", "shasum": "" }, "require": { + "mammatus/kubernetes-contracts": "dev-main", "php": "^8.2" }, "require-dev": { @@ -1534,7 +1538,51 @@ "issues": "https://github.com/MammatusPHP/kubernetes-attributes/issues", "source": "https://github.com/MammatusPHP/kubernetes-attributes/tree/main" }, - "time": "2024-04-20T12:19:17+00:00" + "time": "2024-07-01T12:44:36+00:00" + }, + { + "name": "mammatus/kubernetes-contracts", + "version": "dev-main", + "source": { + "type": "git", + "url": "https://github.com/MammatusPHP/kubernetes-contracts.git", + "reference": "224e0244fe4893f48c3fe310b903295dfc94f14a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/MammatusPHP/kubernetes-contracts/zipball/224e0244fe4893f48c3fe310b903295dfc94f14a", + "reference": "224e0244fe4893f48c3fe310b903295dfc94f14a", + "shasum": "" + }, + "require": { + "php": "^8.2" + }, + "require-dev": { + "wyrihaximus/test-utilities": "^5.6" + }, + "default-branch": true, + "type": "library", + "autoload": { + "psr-4": { + "Mammatus\\Kubernetes\\Contracts\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Kubernetes contracts", + "support": { + "issues": "https://github.com/MammatusPHP/kubernetes-contracts/issues", + "source": "https://github.com/MammatusPHP/kubernetes-contracts/tree/main" + }, + "funding": [ + { + "url": "https://github.com/WyriHaximus", + "type": "github" + } + ], + "time": "2024-06-16T16:32:00+00:00" }, { "name": "mammatus/kubernetes-events", @@ -1586,6 +1634,57 @@ }, "time": "2024-04-20T08:45:32+00:00" }, + { + "name": "mammatus/kubernetes-keda", + "version": "dev-main", + "source": { + "type": "git", + "url": "https://github.com/MammatusPHP/kubernetes-keda.git", + "reference": "7c0cda6e6e9aae2a7ba96b95e13c975ecbbf2e4c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/MammatusPHP/kubernetes-keda/zipball/7c0cda6e6e9aae2a7ba96b95e13c975ecbbf2e4c", + "reference": "7c0cda6e6e9aae2a7ba96b95e13c975ecbbf2e4c", + "shasum": "" + }, + "require": { + "mammatus/kubernetes-contracts": "dev-main", + "php": "^8.2" + }, + "require-dev": { + "wyrihaximus/async-test-utilities": "^8.0.1" + }, + "default-branch": true, + "type": "library", + "extra": { + "php-di-definitions": { + "di": [ + "etc/di/*.php" + ] + }, + "wyrihaximus": { + "broadcast": { + "has-listeners": true + } + } + }, + "autoload": { + "psr-4": { + "Mammatus\\Kubernetes\\Keda\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "🐙 Kubernetes Keda related utilities", + "support": { + "issues": "https://github.com/MammatusPHP/kubernetes-keda/issues", + "source": "https://github.com/MammatusPHP/kubernetes-keda/tree/main" + }, + "time": "2024-06-17T13:06:21+00:00" + }, { "name": "mammatus/life-cycle-events", "version": "2.0.0", @@ -1635,15 +1734,16 @@ "source": { "type": "git", "url": "https://github.com/MammatusPHP/queue-attributes.git", - "reference": "8b8f38d859771d2dcf0924c9722d535f6da71d48" + "reference": "9bbfa7139562c5bfcb87a0f8a2d11c5378dc66a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/MammatusPHP/queue-attributes/zipball/8b8f38d859771d2dcf0924c9722d535f6da71d48", - "reference": "8b8f38d859771d2dcf0924c9722d535f6da71d48", + "url": "https://api.github.com/repos/MammatusPHP/queue-attributes/zipball/9bbfa7139562c5bfcb87a0f8a2d11c5378dc66a7", + "reference": "9bbfa7139562c5bfcb87a0f8a2d11c5378dc66a7", "shasum": "" }, "require": { + "mammatus/kubernetes-contracts": "dev-main", "php": "^8.2" }, "require-dev": { @@ -1671,7 +1771,7 @@ "type": "github" } ], - "time": "2024-05-08T01:04:01+00:00" + "time": "2024-06-16T17:05:23+00:00" }, { "name": "mammatus/queue-contracts", @@ -1766,16 +1866,16 @@ }, { "name": "monolog/monolog", - "version": "3.6.0", + "version": "3.7.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "4b18b21a5527a3d5ffdac2fd35d3ab25a9597654" + "reference": "f4393b648b78a5408747de94fca38beb5f7e9ef8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/4b18b21a5527a3d5ffdac2fd35d3ab25a9597654", - "reference": "4b18b21a5527a3d5ffdac2fd35d3ab25a9597654", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f4393b648b78a5408747de94fca38beb5f7e9ef8", + "reference": "f4393b648b78a5408747de94fca38beb5f7e9ef8", "shasum": "" }, "require": { @@ -1851,7 +1951,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.6.0" + "source": "https://github.com/Seldaek/monolog/tree/3.7.0" }, "funding": [ { @@ -1863,7 +1963,7 @@ "type": "tidelift" } ], - "time": "2024-04-12T21:02:21+00:00" + "time": "2024-06-28T09:40:51+00:00" }, { "name": "nikic/php-parser", @@ -2086,16 +2186,16 @@ }, { "name": "php-di/php-di", - "version": "7.0.6", + "version": "7.0.7", "source": { "type": "git", "url": "https://github.com/PHP-DI/PHP-DI.git", - "reference": "8097948a89f6ec782839b3e958432f427cac37fd" + "reference": "e87435e3c0e8f22977adc5af0d5cdcc467e15cf1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/8097948a89f6ec782839b3e958432f427cac37fd", - "reference": "8097948a89f6ec782839b3e958432f427cac37fd", + "url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/e87435e3c0e8f22977adc5af0d5cdcc467e15cf1", + "reference": "e87435e3c0e8f22977adc5af0d5cdcc467e15cf1", "shasum": "" }, "require": { @@ -2143,7 +2243,7 @@ ], "support": { "issues": "https://github.com/PHP-DI/PHP-DI/issues", - "source": "https://github.com/PHP-DI/PHP-DI/tree/7.0.6" + "source": "https://github.com/PHP-DI/PHP-DI/tree/7.0.7" }, "funding": [ { @@ -2155,7 +2255,7 @@ "type": "tidelift" } ], - "time": "2023-11-02T10:04:50+00:00" + "time": "2024-07-21T15:55:45+00:00" }, { "name": "psr/clock", @@ -2513,22 +2613,22 @@ }, { "name": "react/async", - "version": "v4.2.0", + "version": "v4.3.0", "source": { "type": "git", "url": "https://github.com/reactphp/async.git", - "reference": "7c3738e837b38c9513af44398b8c1b2b1be1fbbc" + "reference": "635d50e30844a484495713e8cb8d9e079c0008a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/async/zipball/7c3738e837b38c9513af44398b8c1b2b1be1fbbc", - "reference": "7c3738e837b38c9513af44398b8c1b2b1be1fbbc", + "url": "https://api.github.com/repos/reactphp/async/zipball/635d50e30844a484495713e8cb8d9e079c0008a5", + "reference": "635d50e30844a484495713e8cb8d9e079c0008a5", "shasum": "" }, "require": { "php": ">=8.1", "react/event-loop": "^1.2", - "react/promise": "^3.0 || ^2.8 || ^1.2.1" + "react/promise": "^3.2 || ^2.8 || ^1.2.1" }, "require-dev": { "phpstan/phpstan": "1.10.39", @@ -2576,7 +2676,7 @@ ], "support": { "issues": "https://github.com/reactphp/async/issues", - "source": "https://github.com/reactphp/async/tree/v4.2.0" + "source": "https://github.com/reactphp/async/tree/v4.3.0" }, "funding": [ { @@ -2584,7 +2684,7 @@ "type": "open_collective" } ], - "time": "2023-11-22T16:43:46+00:00" + "time": "2024-06-04T14:40:02+00:00" }, { "name": "react/event-loop", @@ -2660,16 +2760,16 @@ }, { "name": "react/promise", - "version": "v3.1.0", + "version": "v3.2.0", "source": { "type": "git", "url": "https://github.com/reactphp/promise.git", - "reference": "e563d55d1641de1dea9f5e84f3cccc66d2bfe02c" + "reference": "8a164643313c71354582dc850b42b33fa12a4b63" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/promise/zipball/e563d55d1641de1dea9f5e84f3cccc66d2bfe02c", - "reference": "e563d55d1641de1dea9f5e84f3cccc66d2bfe02c", + "url": "https://api.github.com/repos/reactphp/promise/zipball/8a164643313c71354582dc850b42b33fa12a4b63", + "reference": "8a164643313c71354582dc850b42b33fa12a4b63", "shasum": "" }, "require": { @@ -2721,7 +2821,7 @@ ], "support": { "issues": "https://github.com/reactphp/promise/issues", - "source": "https://github.com/reactphp/promise/tree/v3.1.0" + "source": "https://github.com/reactphp/promise/tree/v3.2.0" }, "funding": [ { @@ -2729,20 +2829,20 @@ "type": "open_collective" } ], - "time": "2023-11-16T16:21:57+00:00" + "time": "2024-05-24T10:39:05+00:00" }, { "name": "react/stream", - "version": "v1.3.0", + "version": "v1.4.0", "source": { "type": "git", "url": "https://github.com/reactphp/stream.git", - "reference": "6fbc9672905c7d5a885f2da2fc696f65840f4a66" + "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/stream/zipball/6fbc9672905c7d5a885f2da2fc696f65840f4a66", - "reference": "6fbc9672905c7d5a885f2da2fc696f65840f4a66", + "url": "https://api.github.com/repos/reactphp/stream/zipball/1e5b0acb8fe55143b5b426817155190eb6f5b18d", + "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d", "shasum": "" }, "require": { @@ -2752,7 +2852,7 @@ }, "require-dev": { "clue/stream-filter": "~1.2", - "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35" + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36" }, "type": "library", "autoload": { @@ -2799,7 +2899,7 @@ ], "support": { "issues": "https://github.com/reactphp/stream/issues", - "source": "https://github.com/reactphp/stream/tree/v1.3.0" + "source": "https://github.com/reactphp/stream/tree/v1.4.0" }, "funding": [ { @@ -2807,7 +2907,7 @@ "type": "open_collective" } ], - "time": "2023-06-16T10:52:11+00:00" + "time": "2024-06-11T12:45:25+00:00" }, { "name": "roave/better-reflection", @@ -2917,23 +3017,23 @@ }, { "name": "seld/jsonlint", - "version": "1.10.2", + "version": "1.11.0", "source": { "type": "git", "url": "https://github.com/Seldaek/jsonlint.git", - "reference": "9bb7db07b5d66d90f6ebf542f09fc67d800e5259" + "reference": "1748aaf847fc731cfad7725aec413ee46f0cc3a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/9bb7db07b5d66d90f6ebf542f09fc67d800e5259", - "reference": "9bb7db07b5d66d90f6ebf542f09fc67d800e5259", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/1748aaf847fc731cfad7725aec413ee46f0cc3a2", + "reference": "1748aaf847fc731cfad7725aec413ee46f0cc3a2", "shasum": "" }, "require": { "php": "^5.3 || ^7.0 || ^8.0" }, "require-dev": { - "phpstan/phpstan": "^1.5", + "phpstan/phpstan": "^1.11", "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^8.5.13" }, "bin": [ @@ -2965,7 +3065,7 @@ ], "support": { "issues": "https://github.com/Seldaek/jsonlint/issues", - "source": "https://github.com/Seldaek/jsonlint/tree/1.10.2" + "source": "https://github.com/Seldaek/jsonlint/tree/1.11.0" }, "funding": [ { @@ -2977,7 +3077,7 @@ "type": "tidelift" } ], - "time": "2024-02-07T12:57:50+00:00" + "time": "2024-07-11T14:55:45+00:00" }, { "name": "seld/phar-utils", @@ -3090,16 +3190,16 @@ }, { "name": "symfony/console", - "version": "v6.4.7", + "version": "v6.4.10", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "a170e64ae10d00ba89e2acbb590dc2e54da8ad8f" + "reference": "504974cbe43d05f83b201d6498c206f16fc0cdbc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/a170e64ae10d00ba89e2acbb590dc2e54da8ad8f", - "reference": "a170e64ae10d00ba89e2acbb590dc2e54da8ad8f", + "url": "https://api.github.com/repos/symfony/console/zipball/504974cbe43d05f83b201d6498c206f16fc0cdbc", + "reference": "504974cbe43d05f83b201d6498c206f16fc0cdbc", "shasum": "" }, "require": { @@ -3164,7 +3264,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.7" + "source": "https://github.com/symfony/console/tree/v6.4.10" }, "funding": [ { @@ -3180,7 +3280,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:22:46+00:00" + "time": "2024-07-26T12:30:32+00:00" }, { "name": "symfony/deprecation-contracts", @@ -3251,22 +3351,24 @@ }, { "name": "symfony/filesystem", - "version": "v7.0.7", + "version": "v7.1.2", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "cc168be6fbdcdf3401f50ae863ee3818ed4338f5" + "reference": "92a91985250c251de9b947a14bb2c9390b1a562c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/cc168be6fbdcdf3401f50ae863ee3818ed4338f5", - "reference": "cc168be6fbdcdf3401f50ae863ee3818ed4338f5", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/92a91985250c251de9b947a14bb2c9390b1a562c", + "reference": "92a91985250c251de9b947a14bb2c9390b1a562c", "shasum": "" }, "require": { "php": ">=8.2", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.8", + "symfony/polyfill-mbstring": "~1.8" + }, + "require-dev": { "symfony/process": "^6.4|^7.0" }, "type": "library", @@ -3295,7 +3397,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.0.7" + "source": "https://github.com/symfony/filesystem/tree/v7.1.2" }, "funding": [ { @@ -3311,20 +3413,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-06-28T10:03:55+00:00" }, { "name": "symfony/finder", - "version": "v7.0.7", + "version": "v7.1.3", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "4d58f0f4fe95a30d7b538d71197135483560b97c" + "reference": "717c6329886f32dc65e27461f80f2a465412fdca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/4d58f0f4fe95a30d7b538d71197135483560b97c", - "reference": "4d58f0f4fe95a30d7b538d71197135483560b97c", + "url": "https://api.github.com/repos/symfony/finder/zipball/717c6329886f32dc65e27461f80f2a465412fdca", + "reference": "717c6329886f32dc65e27461f80f2a465412fdca", "shasum": "" }, "require": { @@ -3359,7 +3461,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.0.7" + "source": "https://github.com/symfony/finder/tree/v7.1.3" }, "funding": [ { @@ -3375,20 +3477,20 @@ "type": "tidelift" } ], - "time": "2024-04-28T11:44:19+00:00" + "time": "2024-07-24T07:08:44+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.29.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4" + "reference": "0424dff1c58f028c451efff2045f5d92410bd540" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4", - "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/0424dff1c58f028c451efff2045f5d92410bd540", + "reference": "0424dff1c58f028c451efff2045f5d92410bd540", "shasum": "" }, "require": { @@ -3438,7 +3540,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.30.0" }, "funding": [ { @@ -3454,20 +3556,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-05-31T15:07:36+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.29.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f" + "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f", - "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/64647a7c30b2283f5d49b874d84a18fc22054b7a", + "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a", "shasum": "" }, "require": { @@ -3516,7 +3618,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.30.0" }, "funding": [ { @@ -3532,20 +3634,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-05-31T15:07:36+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.29.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "bc45c394692b948b4d383a08d7753968bed9a83d" + "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d", - "reference": "bc45c394692b948b4d383a08d7753968bed9a83d", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/a95281b0be0d9ab48050ebd988b967875cdb9fdb", + "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb", "shasum": "" }, "require": { @@ -3597,7 +3699,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.30.0" }, "funding": [ { @@ -3613,20 +3715,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-05-31T15:07:36+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.29.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec" + "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec", - "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fd22ab50000ef01661e2a31d850ebaa297f8e03c", + "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c", "shasum": "" }, "require": { @@ -3677,7 +3779,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.30.0" }, "funding": [ { @@ -3693,20 +3795,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-06-19T12:30:46+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.29.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "21bd091060673a1177ae842c0ef8fe30893114d2" + "reference": "ec444d3f3f6505bb28d11afa41e75faadebc10a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/21bd091060673a1177ae842c0ef8fe30893114d2", - "reference": "21bd091060673a1177ae842c0ef8fe30893114d2", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/ec444d3f3f6505bb28d11afa41e75faadebc10a1", + "reference": "ec444d3f3f6505bb28d11afa41e75faadebc10a1", "shasum": "" }, "require": { @@ -3753,7 +3855,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.30.0" }, "funding": [ { @@ -3769,20 +3871,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-05-31T15:07:36+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.29.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b" + "reference": "77fa7995ac1b21ab60769b7323d600a991a90433" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", - "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433", + "reference": "77fa7995ac1b21ab60769b7323d600a991a90433", "shasum": "" }, "require": { @@ -3833,7 +3935,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.30.0" }, "funding": [ { @@ -3849,20 +3951,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-05-31T15:07:36+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.29.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d" + "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/c565ad1e63f30e7477fc40738343c62b40bc672d", - "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/3fb075789fb91f9ad9af537c4012d523085bd5af", + "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af", "shasum": "" }, "require": { @@ -3909,7 +4011,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.30.0" }, "funding": [ { @@ -3925,20 +4027,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-06-19T12:30:46+00:00" }, { "name": "symfony/process", - "version": "v7.0.7", + "version": "v7.1.3", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "3839e56b94dd1dbd13235d27504e66baf23faba0" + "reference": "7f2f542c668ad6c313dc4a5e9c3321f733197eca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/3839e56b94dd1dbd13235d27504e66baf23faba0", - "reference": "3839e56b94dd1dbd13235d27504e66baf23faba0", + "url": "https://api.github.com/repos/symfony/process/zipball/7f2f542c668ad6c313dc4a5e9c3321f733197eca", + "reference": "7f2f542c668ad6c313dc4a5e9c3321f733197eca", "shasum": "" }, "require": { @@ -3970,7 +4072,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.0.7" + "source": "https://github.com/symfony/process/tree/v7.1.3" }, "funding": [ { @@ -3986,7 +4088,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-07-26T12:44:47+00:00" }, { "name": "symfony/service-contracts", @@ -4073,16 +4175,16 @@ }, { "name": "symfony/string", - "version": "v7.0.7", + "version": "v7.1.3", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "e405b5424dc2528e02e31ba26b83a79fd4eb8f63" + "reference": "ea272a882be7f20cad58d5d78c215001617b7f07" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/e405b5424dc2528e02e31ba26b83a79fd4eb8f63", - "reference": "e405b5424dc2528e02e31ba26b83a79fd4eb8f63", + "url": "https://api.github.com/repos/symfony/string/zipball/ea272a882be7f20cad58d5d78c215001617b7f07", + "reference": "ea272a882be7f20cad58d5d78c215001617b7f07", "shasum": "" }, "require": { @@ -4096,6 +4198,7 @@ "symfony/translation-contracts": "<2.5" }, "require-dev": { + "symfony/emoji": "^7.1", "symfony/error-handler": "^6.4|^7.0", "symfony/http-client": "^6.4|^7.0", "symfony/intl": "^6.4|^7.0", @@ -4139,7 +4242,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.0.7" + "source": "https://github.com/symfony/string/tree/v7.1.3" }, "funding": [ { @@ -4155,7 +4258,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-07-22T10:25:37+00:00" }, { "name": "thecodingmachine/safe", @@ -4537,6 +4640,57 @@ ], "time": "2020-11-28T12:04:43+00:00" }, + { + "name": "wyrihaximus/generative-composer-plugin-tooling", + "version": "dev-nih-package-discovery", + "source": { + "type": "git", + "url": "https://github.com/WyriHaximus/php-generative-composer-plugin-tooling.git", + "reference": "b3c234fa97424bd01f3392fe805299cc8dcf4255" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/WyriHaximus/php-generative-composer-plugin-tooling/zipball/b3c234fa97424bd01f3392fe805299cc8dcf4255", + "reference": "b3c234fa97424bd01f3392fe805299cc8dcf4255", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^2", + "php": "^8.2", + "wyrihaximus/list-classes-in-directory": "^1.7" + }, + "require-dev": { + "wyrihaximus/test-utilities": "^6.0.9" + }, + "type": "library", + "autoload": { + "psr-4": { + "WyriHaximus\\Composer\\GenerativePluginTooling\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Cees-Jan Kiewiet", + "email": "ceesjank@gmail.com" + } + ], + "description": "🐦‍🔥 Generative Composer Plugin Tooling", + "support": { + "issues": "https://github.com/WyriHaximus/php-generative-composer-plugin-tooling/issues", + "source": "https://github.com/WyriHaximus/php-generative-composer-plugin-tooling/tree/nih-package-discovery" + }, + "funding": [ + { + "url": "https://github.com/WyriHaximus", + "type": "github" + } + ], + "time": "2024-07-31T16:46:53+00:00" + }, { "name": "wyrihaximus/get-in-packages-composer.jason", "version": "2.0.0", @@ -4642,31 +4796,33 @@ }, { "name": "wyrihaximus/list-classes-in-directory", - "version": "1.6.0", + "version": "1.7.0", "source": { "type": "git", "url": "https://github.com/WyriHaximus/php-list-classes-in-directory.git", - "reference": "d11c870f495a013005af10babf5b20adc8abe5ab" + "reference": "3c9f96fe973a47a917830dd926a7153e5bb8338f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/WyriHaximus/php-list-classes-in-directory/zipball/d11c870f495a013005af10babf5b20adc8abe5ab", - "reference": "d11c870f495a013005af10babf5b20adc8abe5ab", + "url": "https://api.github.com/repos/WyriHaximus/php-list-classes-in-directory/zipball/3c9f96fe973a47a917830dd926a7153e5bb8338f", + "reference": "3c9f96fe973a47a917830dd926a7153e5bb8338f", "shasum": "" }, "require": { "php": "^8.2", - "roave/better-reflection": "^6", - "wyrihaximus/constants": "^1.6" + "roave/better-reflection": "^6.5" }, "require-dev": { - "wyrihaximus/async-test-utilities": "^6.0.0" + "wyrihaximus/test-utilities": "^6.0.9" }, "type": "library", "autoload": { "files": [ "src/functions_include.php" - ] + ], + "psr-4": { + "WyriHaximus\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4681,7 +4837,7 @@ "description": "Allows you to list full qualified class names in directories and files.", "support": { "issues": "https://github.com/WyriHaximus/php-list-classes-in-directory/issues", - "source": "https://github.com/WyriHaximus/php-list-classes-in-directory/tree/1.6.0" + "source": "https://github.com/WyriHaximus/php-list-classes-in-directory/tree/1.7.0" }, "funding": [ { @@ -4689,7 +4845,7 @@ "type": "github" } ], - "time": "2023-01-10T18:32:40+00:00" + "time": "2024-07-16T12:35:06+00:00" }, { "name": "wyrihaximus/metrics", @@ -5521,12 +5677,12 @@ "source": { "type": "git", "url": "https://github.com/BBQueue/php-bunny.git", - "reference": "13b7514d6e7d07e6527b5e45833fafdcb19cf04e" + "reference": "1afc01132259d8aae92f0bf45dce2e0e0cbd5afc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/BBQueue/php-bunny/zipball/13b7514d6e7d07e6527b5e45833fafdcb19cf04e", - "reference": "13b7514d6e7d07e6527b5e45833fafdcb19cf04e", + "url": "https://api.github.com/repos/BBQueue/php-bunny/zipball/1afc01132259d8aae92f0bf45dce2e0e0cbd5afc", + "reference": "1afc01132259d8aae92f0bf45dce2e0e0cbd5afc", "shasum": "" }, "require": { @@ -5559,7 +5715,7 @@ "type": "github" } ], - "time": "2024-05-18T08:18:30+00:00" + "time": "2024-05-20T12:45:30+00:00" }, { "name": "beberlei/assert", @@ -5741,12 +5897,12 @@ "source": { "type": "git", "url": "https://github.com/jakubkulhan/bunny.git", - "reference": "b4d6781ba6751a069e587ef7aaa971359be10653" + "reference": "ad5b979e58674048057e03024c56aeb705d9e1f2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jakubkulhan/bunny/zipball/b4d6781ba6751a069e587ef7aaa971359be10653", - "reference": "b4d6781ba6751a069e587ef7aaa971359be10653", + "url": "https://api.github.com/repos/jakubkulhan/bunny/zipball/ad5b979e58674048057e03024c56aeb705d9e1f2", + "reference": "ad5b979e58674048057e03024c56aeb705d9e1f2", "shasum": "" }, "require": { @@ -5767,6 +5923,7 @@ "react/child-process": "^0.6.5", "wyrihaximus/react-phpunit-run-tests-in-fiber": "^2 || ^1" }, + "default-branch": true, "type": "library", "autoload": { "psr-4": { @@ -5805,7 +5962,7 @@ "issues": "https://github.com/jakubkulhan/bunny/issues", "source": "https://github.com/jakubkulhan/bunny/tree/0.6.x" }, - "time": "2024-05-10T10:07:04+00:00" + "time": "2024-05-24T19:52:58+00:00" }, { "name": "colinodell/json5", @@ -6233,18 +6390,72 @@ }, "time": "2024-01-30T19:34:25+00:00" }, + { + "name": "ecoapm/libyear", + "version": "2.3.0", + "source": { + "type": "git", + "url": "https://github.com/ecoAPM/php-libyear.git", + "reference": "52cd81fcbfe1eab86efa45b6c3a57fa2556c4a51" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ecoAPM/php-libyear/zipball/52cd81fcbfe1eab86efa45b6c3a57fa2556c4a51", + "reference": "52cd81fcbfe1eab86efa45b6c3a57fa2556c4a51", + "shasum": "" + }, + "require": { + "composer/semver": "3.3.2", + "ext-json": ">=7.4", + "guzzlehttp/guzzle": "7.5.0", + "php": ">=7.4", + "wp-cli/php-cli-tools": "0.11.16" + }, + "require-dev": { + "mockery/mockery": "1.5.1", + "phpunit/phpunit": "9.5.27" + }, + "bin": [ + "libyear" + ], + "type": "library", + "autoload": { + "psr-4": { + "LibYear\\": "src/", + "LibYear\\Tests\\": "tests/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "ecoAPM", + "email": "steve@ecoAPM.com", + "homepage": "https://ecoAPM.com" + } + ], + "description": "A simple measure of software dependency freshness", + "homepage": "https://libyear.com", + "support": { + "issues": "https://github.com/ecoAPM/php-libyear/issues", + "source": "https://github.com/ecoAPM/php-libyear/tree/2.3.0" + }, + "time": "2022-12-15T21:07:09+00:00" + }, { "name": "ergebnis/composer-normalize", - "version": "2.42.0", + "version": "2.43.0", "source": { "type": "git", "url": "https://github.com/ergebnis/composer-normalize.git", - "reference": "02cf2b69ad2a74c6f11a8c3f5f054b8f949df910" + "reference": "4b46330c84bb8f43fac79f5c5a05162fc7c80d75" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/02cf2b69ad2a74c6f11a8c3f5f054b8f949df910", - "reference": "02cf2b69ad2a74c6f11a8c3f5f054b8f949df910", + "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/4b46330c84bb8f43fac79f5c5a05162fc7c80d75", + "reference": "4b46330c84bb8f43fac79f5c5a05162fc7c80d75", "shasum": "" }, "require": { @@ -6258,17 +6469,17 @@ "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0" }, "require-dev": { - "composer/composer": "^2.6.6", + "composer/composer": "^2.7.7", "ergebnis/license": "^2.4.0", - "ergebnis/php-cs-fixer-config": "^6.20.0", - "ergebnis/phpunit-slow-test-detector": "^2.9.0", + "ergebnis/php-cs-fixer-config": "^6.30.1", + "ergebnis/phpunit-slow-test-detector": "^2.14.0", "fakerphp/faker": "^1.23.1", "infection/infection": "~0.26.6", - "phpunit/phpunit": "^9.6.16", - "psalm/plugin-phpunit": "~0.18.4", - "rector/rector": "~0.19.2", - "symfony/filesystem": "^5.4.25", - "vimeo/psalm": "^5.20.0" + "phpunit/phpunit": "^9.6.19", + "psalm/plugin-phpunit": "~0.19.0", + "rector/rector": "^1.1.0", + "symfony/filesystem": "^5.4.40", + "vimeo/psalm": "^5.24.0" }, "type": "composer-plugin", "extra": { @@ -6308,7 +6519,7 @@ "security": "https://github.com/ergebnis/composer-normalize/blob/main/.github/SECURITY.md", "source": "https://github.com/ergebnis/composer-normalize" }, - "time": "2024-01-30T11:54:02+00:00" + "time": "2024-06-16T13:22:18+00:00" }, { "name": "ergebnis/json", @@ -6716,16 +6927,16 @@ }, { "name": "ergebnis/phpunit-slow-test-detector", - "version": "2.14.0", + "version": "2.15.0", "source": { "type": "git", "url": "https://github.com/ergebnis/phpunit-slow-test-detector.git", - "reference": "9138b0ebffdd2c579eb4b0567ef3bef8c714fdc2" + "reference": "d9e4ea11d0e7bf1e54df5385bfd94b5156ab0a29" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/phpunit-slow-test-detector/zipball/9138b0ebffdd2c579eb4b0567ef3bef8c714fdc2", - "reference": "9138b0ebffdd2c579eb4b0567ef3bef8c714fdc2", + "url": "https://api.github.com/repos/ergebnis/phpunit-slow-test-detector/zipball/d9e4ea11d0e7bf1e54df5385bfd94b5156ab0a29", + "reference": "d9e4ea11d0e7bf1e54df5385bfd94b5156ab0a29", "shasum": "" }, "require": { @@ -6733,14 +6944,14 @@ "phpunit/phpunit": "^6.5.0 || ^7.5.0 || ^8.5.19 || ^9.0.0 || ^10.0.0 || ^11.0.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.42.0", + "ergebnis/composer-normalize": "^2.43.0", "ergebnis/license": "^2.4.0", - "ergebnis/php-cs-fixer-config": "^6.25.1", + "ergebnis/php-cs-fixer-config": "^6.31.0", "fakerphp/faker": "~1.20.0", "psalm/plugin-phpunit": "~0.19.0", "psr/container": "~1.0.0", - "rector/rector": "^1.0.4", - "vimeo/psalm": "^5.23.1" + "rector/rector": "^1.1.0", + "vimeo/psalm": "^5.24.0" }, "type": "library", "extra": { @@ -6779,7 +6990,7 @@ "security": "https://github.com/ergebnis/phpunit-slow-test-detector/blob/main/.github/SECURITY.md", "source": "https://github.com/ergebnis/phpunit-slow-test-detector" }, - "time": "2024-04-08T06:35:34+00:00" + "time": "2024-06-16T18:21:35+00:00" }, { "name": "felixfbecker/advanced-json-rpc", @@ -7016,22 +7227,22 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.8.1", + "version": "7.5.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "41042bc7ab002487b876a0683fc8dce04ddce104" + "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104", - "reference": "41042bc7ab002487b876a0683fc8dce04ddce104", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b50a2a1251152e43f6a37f0fa053e730a67d25ba", + "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.5.3 || ^2.0.1", - "guzzlehttp/psr7": "^1.9.1 || ^2.5.1", + "guzzlehttp/promises": "^1.5", + "guzzlehttp/psr7": "^1.9 || ^2.4", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", "symfony/deprecation-contracts": "^2.2 || ^3.0" @@ -7040,11 +7251,10 @@ "psr/http-client-implementation": "1.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.2", + "bamarni/composer-bin-plugin": "^1.8.1", "ext-curl": "*", - "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", - "php-http/message-factory": "^1.1", - "phpunit/phpunit": "^8.5.36 || ^9.6.15", + "php-http/client-integration-tests": "^3.0", + "phpunit/phpunit": "^8.5.29 || ^9.5.23", "psr/log": "^1.1 || ^2.0 || ^3.0" }, "suggest": { @@ -7057,6 +7267,9 @@ "bamarni-bin": { "bin-links": true, "forward-command": false + }, + "branch-alias": { + "dev-master": "7.5-dev" } }, "autoload": { @@ -7122,7 +7335,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.8.1" + "source": "https://github.com/guzzle/guzzle/tree/7.5.0" }, "funding": [ { @@ -7138,37 +7351,33 @@ "type": "tidelift" } ], - "time": "2023-12-03T20:35:24+00:00" + "time": "2022-08-28T15:39:27+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.0.2", + "version": "1.5.3", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223" + "reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/bbff78d96034045e58e13dedd6ad91b5d1253223", - "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223", + "url": "https://api.github.com/repos/guzzle/promises/zipball/67ab6e18aaa14d753cc148911d273f6e6cb6721e", + "reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e", "shasum": "" }, "require": { - "php": "^7.2.5 || ^8.0" + "php": ">=5.5" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.36 || ^9.6.15" + "symfony/phpunit-bridge": "^4.4 || ^5.1" }, "type": "library", - "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": false - } - }, "autoload": { + "files": [ + "src/functions_include.php" + ], "psr-4": { "GuzzleHttp\\Promise\\": "src/" } @@ -7205,7 +7414,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.2" + "source": "https://github.com/guzzle/promises/tree/1.5.3" }, "funding": [ { @@ -7221,20 +7430,20 @@ "type": "tidelift" } ], - "time": "2023-12-03T20:19:20+00:00" + "time": "2023-05-21T12:31:43+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.6.2", + "version": "2.7.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221" + "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221", - "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201", + "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201", "shasum": "" }, "require": { @@ -7249,8 +7458,8 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "http-interop/http-factory-tests": "^0.9", - "phpunit/phpunit": "^8.5.36 || ^9.6.15" + "http-interop/http-factory-tests": "0.9.0", + "phpunit/phpunit": "^8.5.39 || ^9.6.20" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" @@ -7321,7 +7530,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.6.2" + "source": "https://github.com/guzzle/psr7/tree/2.7.0" }, "funding": [ { @@ -7337,7 +7546,7 @@ "type": "tidelift" } ], - "time": "2023-12-03T20:05:35+00:00" + "time": "2024-07-18T11:15:46+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -8097,16 +8306,16 @@ }, { "name": "myclabs/deep-copy", - "version": "1.11.1", + "version": "1.12.0", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" + "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", + "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", "shasum": "" }, "require": { @@ -8114,11 +8323,12 @@ }, "conflict": { "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3,<3.2.2" + "doctrine/common": "<2.13.3 || >=3 <3.2.2" }, "require-dev": { "doctrine/collections": "^1.6.8", "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", @@ -8144,7 +8354,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" + "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0" }, "funding": [ { @@ -8152,7 +8362,7 @@ "type": "tidelift" } ], - "time": "2023-03-08T13:26:56+00:00" + "time": "2024-06-12T14:39:25+00:00" }, { "name": "netresearch/jsonmapper", @@ -8346,16 +8556,16 @@ }, { "name": "nette/neon", - "version": "v3.4.1", + "version": "v3.4.3", "source": { "type": "git", "url": "https://github.com/nette/neon.git", - "reference": "457bfbf0560f600b30d9df4233af382a478bb44d" + "reference": "c8481c104431c8d94cc88424a1e21f47f8c93280" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/neon/zipball/457bfbf0560f600b30d9df4233af382a478bb44d", - "reference": "457bfbf0560f600b30d9df4233af382a478bb44d", + "url": "https://api.github.com/repos/nette/neon/zipball/c8481c104431c8d94cc88424a1e21f47f8c93280", + "reference": "c8481c104431c8d94cc88424a1e21f47f8c93280", "shasum": "" }, "require": { @@ -8408,9 +8618,9 @@ ], "support": { "issues": "https://github.com/nette/neon/issues", - "source": "https://github.com/nette/neon/tree/v3.4.1" + "source": "https://github.com/nette/neon/tree/v3.4.3" }, - "time": "2023-09-27T08:59:11+00:00" + "time": "2024-06-26T14:53:59+00:00" }, { "name": "nette/php-generator", @@ -9605,16 +9815,16 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.4.0", + "version": "5.4.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "298d2febfe79d03fe714eb871d5538da55205b1a" + "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/298d2febfe79d03fe714eb871d5538da55205b1a", - "reference": "298d2febfe79d03fe714eb871d5538da55205b1a", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c", + "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c", "shasum": "" }, "require": { @@ -9663,9 +9873,9 @@ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "support": { "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.4.0" + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.4.1" }, - "time": "2024-04-09T21:13:58+00:00" + "time": "2024-05-21T05:55:05+00:00" }, { "name": "phpdocumentor/type-resolver", @@ -9727,16 +9937,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.29.0", + "version": "1.29.1", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "536889f2b340489d328f5ffb7b02bb6b183ddedc" + "reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/536889f2b340489d328f5ffb7b02bb6b183ddedc", - "reference": "536889f2b340489d328f5ffb7b02bb6b183ddedc", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fcaefacf2d5c417e928405b71b400d4ce10daaf4", + "reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4", "shasum": "" }, "require": { @@ -9768,22 +9978,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.29.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.29.1" }, - "time": "2024-05-06T12:04:23+00:00" + "time": "2024-05-31T08:52:43+00:00" }, { "name": "phpstan/phpstan", - "version": "1.11.1", + "version": "1.11.8", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "e524358f930e41a2b4cca1320e3b04fc26b39e0b" + "reference": "6adbd118e6c0515dd2f36b06cde1d6da40f1b8ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e524358f930e41a2b4cca1320e3b04fc26b39e0b", - "reference": "e524358f930e41a2b4cca1320e3b04fc26b39e0b", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/6adbd118e6c0515dd2f36b06cde1d6da40f1b8ec", + "reference": "6adbd118e6c0515dd2f36b06cde1d6da40f1b8ec", "shasum": "" }, "require": { @@ -9828,7 +10038,7 @@ "type": "github" } ], - "time": "2024-05-15T08:00:59+00:00" + "time": "2024-07-24T07:01:22+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", @@ -10030,16 +10240,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "10.1.14", + "version": "10.1.15", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b" + "reference": "5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/e3f51450ebffe8e0efdf7346ae966a656f7d5e5b", - "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae", + "reference": "5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae", "shasum": "" }, "require": { @@ -10096,7 +10306,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.14" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.15" }, "funding": [ { @@ -10104,7 +10314,7 @@ "type": "github" } ], - "time": "2024-03-12T15:33:41+00:00" + "time": "2024-06-29T08:25:15+00:00" }, { "name": "phpunit/php-file-iterator", @@ -10351,16 +10561,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.5.20", + "version": "10.5.29", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3" + "reference": "8e9e80872b4e8064401788ee8a32d40b4455318f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/547d314dc24ec1e177720d45c6263fb226cc2ae3", - "reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/8e9e80872b4e8064401788ee8a32d40b4455318f", + "reference": "8e9e80872b4e8064401788ee8a32d40b4455318f", "shasum": "" }, "require": { @@ -10370,26 +10580,26 @@ "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.3", - "phar-io/version": "^3.0.2", + "myclabs/deep-copy": "^1.12.0", + "phar-io/manifest": "^2.0.4", + "phar-io/version": "^3.2.1", "php": ">=8.1", - "phpunit/php-code-coverage": "^10.1.5", - "phpunit/php-file-iterator": "^4.0", - "phpunit/php-invoker": "^4.0", - "phpunit/php-text-template": "^3.0", - "phpunit/php-timer": "^6.0", - "sebastian/cli-parser": "^2.0", - "sebastian/code-unit": "^2.0", - "sebastian/comparator": "^5.0", - "sebastian/diff": "^5.0", - "sebastian/environment": "^6.0", - "sebastian/exporter": "^5.1", - "sebastian/global-state": "^6.0.1", - "sebastian/object-enumerator": "^5.0", - "sebastian/recursion-context": "^5.0", - "sebastian/type": "^4.0", - "sebastian/version": "^4.0" + "phpunit/php-code-coverage": "^10.1.15", + "phpunit/php-file-iterator": "^4.1.0", + "phpunit/php-invoker": "^4.0.0", + "phpunit/php-text-template": "^3.0.1", + "phpunit/php-timer": "^6.0.0", + "sebastian/cli-parser": "^2.0.1", + "sebastian/code-unit": "^2.0.0", + "sebastian/comparator": "^5.0.1", + "sebastian/diff": "^5.1.1", + "sebastian/environment": "^6.1.0", + "sebastian/exporter": "^5.1.2", + "sebastian/global-state": "^6.0.2", + "sebastian/object-enumerator": "^5.0.0", + "sebastian/recursion-context": "^5.0.0", + "sebastian/type": "^4.0.0", + "sebastian/version": "^4.0.1" }, "suggest": { "ext-soap": "To be able to generate mocks based on WSDL files" @@ -10432,7 +10642,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.20" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.29" }, "funding": [ { @@ -10448,7 +10658,7 @@ "type": "tidelift" } ], - "time": "2024-04-24T06:32:35+00:00" + "time": "2024-07-30T11:08:00+00:00" }, { "name": "psalm/plugin-mockery", @@ -11026,28 +11236,28 @@ }, { "name": "react/dns", - "version": "v1.12.0", + "version": "v1.13.0", "source": { "type": "git", "url": "https://github.com/reactphp/dns.git", - "reference": "c134600642fa615b46b41237ef243daa65bb64ec" + "reference": "eb8ae001b5a455665c89c1df97f6fb682f8fb0f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/dns/zipball/c134600642fa615b46b41237ef243daa65bb64ec", - "reference": "c134600642fa615b46b41237ef243daa65bb64ec", + "url": "https://api.github.com/repos/reactphp/dns/zipball/eb8ae001b5a455665c89c1df97f6fb682f8fb0f5", + "reference": "eb8ae001b5a455665c89c1df97f6fb682f8fb0f5", "shasum": "" }, "require": { "php": ">=5.3.0", "react/cache": "^1.0 || ^0.6 || ^0.5", "react/event-loop": "^1.2", - "react/promise": "^3.0 || ^2.7 || ^1.2.1" + "react/promise": "^3.2 || ^2.7 || ^1.2.1" }, "require-dev": { "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36", - "react/async": "^4 || ^3 || ^2", - "react/promise-timer": "^1.9" + "react/async": "^4.3 || ^3 || ^2", + "react/promise-timer": "^1.11" }, "type": "library", "autoload": { @@ -11090,7 +11300,7 @@ ], "support": { "issues": "https://github.com/reactphp/dns/issues", - "source": "https://github.com/reactphp/dns/tree/v1.12.0" + "source": "https://github.com/reactphp/dns/tree/v1.13.0" }, "funding": [ { @@ -11098,7 +11308,7 @@ "type": "open_collective" } ], - "time": "2023-11-29T12:41:06+00:00" + "time": "2024-06-13T14:18:03+00:00" }, { "name": "react/promise-stream", @@ -11181,25 +11391,25 @@ }, { "name": "react/promise-timer", - "version": "v1.10.0", + "version": "v1.11.0", "source": { "type": "git", "url": "https://github.com/reactphp/promise-timer.git", - "reference": "4cb85c1c2125390748e3908120bb82feb99fe766" + "reference": "4f70306ed66b8b44768941ca7f142092600fafc1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/promise-timer/zipball/4cb85c1c2125390748e3908120bb82feb99fe766", - "reference": "4cb85c1c2125390748e3908120bb82feb99fe766", + "url": "https://api.github.com/repos/reactphp/promise-timer/zipball/4f70306ed66b8b44768941ca7f142092600fafc1", + "reference": "4f70306ed66b8b44768941ca7f142092600fafc1", "shasum": "" }, "require": { "php": ">=5.3", "react/event-loop": "^1.2", - "react/promise": "^3.0 || ^2.7.0 || ^1.2.1" + "react/promise": "^3.2 || ^2.7.0 || ^1.2.1" }, "require-dev": { - "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35" + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36" }, "type": "library", "autoload": { @@ -11248,7 +11458,7 @@ ], "support": { "issues": "https://github.com/reactphp/promise-timer/issues", - "source": "https://github.com/reactphp/promise-timer/tree/v1.10.0" + "source": "https://github.com/reactphp/promise-timer/tree/v1.11.0" }, "funding": [ { @@ -11256,35 +11466,35 @@ "type": "open_collective" } ], - "time": "2023-07-20T15:40:28+00:00" + "time": "2024-06-04T14:27:45+00:00" }, { "name": "react/socket", - "version": "v1.15.0", + "version": "v1.16.0", "source": { "type": "git", "url": "https://github.com/reactphp/socket.git", - "reference": "216d3aec0b87f04a40ca04f481e6af01bdd1d038" + "reference": "23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/socket/zipball/216d3aec0b87f04a40ca04f481e6af01bdd1d038", - "reference": "216d3aec0b87f04a40ca04f481e6af01bdd1d038", + "url": "https://api.github.com/repos/reactphp/socket/zipball/23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1", + "reference": "23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1", "shasum": "" }, "require": { "evenement/evenement": "^3.0 || ^2.0 || ^1.0", "php": ">=5.3.0", - "react/dns": "^1.11", + "react/dns": "^1.13", "react/event-loop": "^1.2", - "react/promise": "^3 || ^2.6 || ^1.2.1", - "react/stream": "^1.2" + "react/promise": "^3.2 || ^2.6 || ^1.2.1", + "react/stream": "^1.4" }, "require-dev": { "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36", - "react/async": "^4 || ^3 || ^2", + "react/async": "^4.3 || ^3.3 || ^2", "react/promise-stream": "^1.4", - "react/promise-timer": "^1.10" + "react/promise-timer": "^1.11" }, "type": "library", "autoload": { @@ -11328,7 +11538,7 @@ ], "support": { "issues": "https://github.com/reactphp/socket/issues", - "source": "https://github.com/reactphp/socket/tree/v1.15.0" + "source": "https://github.com/reactphp/socket/tree/v1.16.0" }, "funding": [ { @@ -11336,7 +11546,7 @@ "type": "open_collective" } ], - "time": "2023-12-15T11:02:10+00:00" + "time": "2024-07-26T10:38:09+00:00" }, { "name": "revolt/event-loop", @@ -11595,16 +11805,16 @@ }, { "name": "sanmai/pipeline", - "version": "v6.10", + "version": "v6.11", "source": { "type": "git", "url": "https://github.com/sanmai/pipeline.git", - "reference": "cbd2ea30ba8bef596b8dad1adb9c92fb2987e430" + "reference": "a5fa2a6c6ca93efa37e7c24aab72f47448a6b110" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sanmai/pipeline/zipball/cbd2ea30ba8bef596b8dad1adb9c92fb2987e430", - "reference": "cbd2ea30ba8bef596b8dad1adb9c92fb2987e430", + "url": "https://api.github.com/repos/sanmai/pipeline/zipball/a5fa2a6c6ca93efa37e7c24aab72f47448a6b110", + "reference": "a5fa2a6c6ca93efa37e7c24aab72f47448a6b110", "shasum": "" }, "require": { @@ -11648,7 +11858,7 @@ "description": "General-purpose collections pipeline", "support": { "issues": "https://github.com/sanmai/pipeline/issues", - "source": "https://github.com/sanmai/pipeline/tree/v6.10" + "source": "https://github.com/sanmai/pipeline/tree/v6.11" }, "funding": [ { @@ -11656,7 +11866,7 @@ "type": "github" } ], - "time": "2024-03-16T01:33:30+00:00" + "time": "2024-06-15T03:11:19+00:00" }, { "name": "sebastian/cli-parser", @@ -12786,16 +12996,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.9.2", + "version": "3.10.2", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "aac1f6f347a5c5ac6bc98ad395007df00990f480" + "reference": "86e5f5dd9a840c46810ebe5ff1885581c42a3017" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/aac1f6f347a5c5ac6bc98ad395007df00990f480", - "reference": "aac1f6f347a5c5ac6bc98ad395007df00990f480", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/86e5f5dd9a840c46810ebe5ff1885581c42a3017", + "reference": "86e5f5dd9a840c46810ebe5ff1885581c42a3017", "shasum": "" }, "require": { @@ -12862,26 +13072,26 @@ "type": "open_collective" } ], - "time": "2024-04-23T20:25:34+00:00" + "time": "2024-07-21T23:26:44+00:00" }, { "name": "symfony/config", - "version": "v7.0.7", + "version": "v7.1.1", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "f66f908a975500aa4594258bf454dc66e3939eac" + "reference": "2210fc99fa42a259eb6c89d1f724ce0c4d62d5d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/f66f908a975500aa4594258bf454dc66e3939eac", - "reference": "f66f908a975500aa4594258bf454dc66e3939eac", + "url": "https://api.github.com/repos/symfony/config/zipball/2210fc99fa42a259eb6c89d1f724ce0c4d62d5d2", + "reference": "2210fc99fa42a259eb6c89d1f724ce0c4d62d5d2", "shasum": "" }, "require": { "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/filesystem": "^6.4|^7.0", + "symfony/filesystem": "^7.1", "symfony/polyfill-ctype": "~1.8" }, "conflict": { @@ -12921,7 +13131,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v7.0.7" + "source": "https://github.com/symfony/config/tree/v7.1.1" }, "funding": [ { @@ -12937,27 +13147,27 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-05-31T14:57:53+00:00" }, { "name": "symfony/dependency-injection", - "version": "v7.0.7", + "version": "v7.1.3", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "4db1314337f4dd864113f88e08c9a7f98b1c1324" + "reference": "8126f0be4ff984e4db0140e60917900a53facb49" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/4db1314337f4dd864113f88e08c9a7f98b1c1324", - "reference": "4db1314337f4dd864113f88e08c9a7f98b1c1324", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/8126f0be4ff984e4db0140e60917900a53facb49", + "reference": "8126f0be4ff984e4db0140e60917900a53facb49", "shasum": "" }, "require": { "php": ">=8.2", "psr/container": "^1.1|^2.0", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/service-contracts": "^3.3", + "symfony/service-contracts": "^3.5", "symfony/var-exporter": "^6.4|^7.0" }, "conflict": { @@ -13001,7 +13211,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/v7.0.7" + "source": "https://github.com/symfony/dependency-injection/tree/v7.1.3" }, "funding": [ { @@ -13017,25 +13227,24 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-07-26T07:35:39+00:00" }, { "name": "symfony/polyfill-php83", - "version": "v1.29.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "86fcae159633351e5fd145d1c47de6c528f8caff" + "reference": "dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/86fcae159633351e5fd145d1c47de6c528f8caff", - "reference": "86fcae159633351e5fd145d1c47de6c528f8caff", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9", + "reference": "dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9", "shasum": "" }, "require": { - "php": ">=7.1", - "symfony/polyfill-php80": "^1.14" + "php": ">=7.1" }, "type": "library", "extra": { @@ -13078,7 +13287,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.30.0" }, "funding": [ { @@ -13094,20 +13303,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-06-19T12:35:24+00:00" }, { "name": "symfony/property-access", - "version": "v7.0.7", + "version": "v7.1.1", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "8661b861480d2807eb2789ff99d034c0c71ab955" + "reference": "74e39e6a6276b8e384f34c6ddbc10a6c9a60193a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/8661b861480d2807eb2789ff99d034c0c71ab955", - "reference": "8661b861480d2807eb2789ff99d034c0c71ab955", + "url": "https://api.github.com/repos/symfony/property-access/zipball/74e39e6a6276b8e384f34c6ddbc10a6c9a60193a", + "reference": "74e39e6a6276b8e384f34c6ddbc10a6c9a60193a", "shasum": "" }, "require": { @@ -13154,7 +13363,7 @@ "reflection" ], "support": { - "source": "https://github.com/symfony/property-access/tree/v7.0.7" + "source": "https://github.com/symfony/property-access/tree/v7.1.1" }, "funding": [ { @@ -13170,25 +13379,26 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-05-31T14:57:53+00:00" }, { "name": "symfony/property-info", - "version": "v7.0.7", + "version": "v7.1.3", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "f0bdb46e19ab308527b324b7ec36161f6880a532" + "reference": "88a279df2db5b7919cac6f35d6a5d1d7147e6a9b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/f0bdb46e19ab308527b324b7ec36161f6880a532", - "reference": "f0bdb46e19ab308527b324b7ec36161f6880a532", + "url": "https://api.github.com/repos/symfony/property-info/zipball/88a279df2db5b7919cac6f35d6a5d1d7147e6a9b", + "reference": "88a279df2db5b7919cac6f35d6a5d1d7147e6a9b", "shasum": "" }, "require": { "php": ">=8.2", - "symfony/string": "^6.4|^7.0" + "symfony/string": "^6.4|^7.0", + "symfony/type-info": "^7.1" }, "conflict": { "phpdocumentor/reflection-docblock": "<5.2", @@ -13237,7 +13447,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v7.0.7" + "source": "https://github.com/symfony/property-info/tree/v7.1.3" }, "funding": [ { @@ -13253,24 +13463,25 @@ "type": "tidelift" } ], - "time": "2024-04-28T11:44:19+00:00" + "time": "2024-07-26T07:36:36+00:00" }, { "name": "symfony/serializer", - "version": "v7.0.7", + "version": "v7.1.3", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "08f0c517acf4b12dfc0d3963cd12f7b8023aea31" + "reference": "0d5ddac365fbfffc30ca9bc944ad3eb9b3763c09" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/08f0c517acf4b12dfc0d3963cd12f7b8023aea31", - "reference": "08f0c517acf4b12dfc0d3963cd12f7b8023aea31", + "url": "https://api.github.com/repos/symfony/serializer/zipball/0d5ddac365fbfffc30ca9bc944ad3eb9b3763c09", + "reference": "0d5ddac365fbfffc30ca9bc944ad3eb9b3763c09", "shasum": "" }, "require": { "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-ctype": "~1.8" }, "conflict": { @@ -13300,6 +13511,7 @@ "symfony/property-access": "^6.4|^7.0", "symfony/property-info": "^6.4|^7.0", "symfony/translation-contracts": "^2.5|^3", + "symfony/type-info": "^7.1", "symfony/uid": "^6.4|^7.0", "symfony/validator": "^6.4|^7.0", "symfony/var-dumper": "^6.4|^7.0", @@ -13332,7 +13544,7 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/serializer/tree/v7.0.7" + "source": "https://github.com/symfony/serializer/tree/v7.1.3" }, "funding": [ { @@ -13348,20 +13560,20 @@ "type": "tidelift" } ], - "time": "2024-04-28T11:44:19+00:00" + "time": "2024-07-17T06:10:24+00:00" }, { "name": "symfony/stopwatch", - "version": "v7.0.7", + "version": "v7.1.1", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "41a7a24aa1dc82adf46a06bc292d1923acfe6b84" + "reference": "5b75bb1ac2ba1b9d05c47fc4b3046a625377d23d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/41a7a24aa1dc82adf46a06bc292d1923acfe6b84", - "reference": "41a7a24aa1dc82adf46a06bc292d1923acfe6b84", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/5b75bb1ac2ba1b9d05c47fc4b3046a625377d23d", + "reference": "5b75bb1ac2ba1b9d05c47fc4b3046a625377d23d", "shasum": "" }, "require": { @@ -13394,7 +13606,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v7.0.7" + "source": "https://github.com/symfony/stopwatch/tree/v7.1.1" }, "funding": [ { @@ -13410,7 +13622,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-05-31T14:57:53+00:00" }, { "name": "symfony/translation-contracts", @@ -13490,22 +13702,105 @@ ], "time": "2024-04-18T09:32:20+00:00" }, + { + "name": "symfony/type-info", + "version": "v7.1.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/type-info.git", + "reference": "60b28eb733f1453287f1263ed305b96091e0d1dc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/type-info/zipball/60b28eb733f1453287f1263ed305b96091e0d1dc", + "reference": "60b28eb733f1453287f1263ed305b96091e0d1dc", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "psr/container": "^1.1|^2.0" + }, + "conflict": { + "phpstan/phpdoc-parser": "<1.0", + "symfony/dependency-injection": "<6.4", + "symfony/property-info": "<6.4" + }, + "require-dev": { + "phpstan/phpdoc-parser": "^1.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/property-info": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\TypeInfo\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mathias Arlaud", + "email": "mathias.arlaud@gmail.com" + }, + { + "name": "Baptiste LEDUC", + "email": "baptiste.leduc@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Extracts PHP types information.", + "homepage": "https://symfony.com", + "keywords": [ + "PHPStan", + "phpdoc", + "symfony", + "type" + ], + "support": { + "source": "https://github.com/symfony/type-info/tree/v7.1.1" + }, + "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": "2024-05-31T14:59:31+00:00" + }, { "name": "symfony/validator", - "version": "v7.0.7", + "version": "v7.1.3", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "ab4e75b9d23ba70e78480aecbe4d8da15adf10eb" + "reference": "ba711a6cfc008544dad059abb3c1d997f1472237" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/ab4e75b9d23ba70e78480aecbe4d8da15adf10eb", - "reference": "ab4e75b9d23ba70e78480aecbe4d8da15adf10eb", + "url": "https://api.github.com/repos/symfony/validator/zipball/ba711a6cfc008544dad059abb3c1d997f1472237", + "reference": "ba711a6cfc008544dad059abb3c1d997f1472237", "shasum": "" }, "require": { "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php83": "^1.27", @@ -13538,6 +13833,7 @@ "symfony/property-access": "^6.4|^7.0", "symfony/property-info": "^6.4|^7.0", "symfony/translation": "^6.4.3|^7.0.3", + "symfony/type-info": "^7.1", "symfony/yaml": "^6.4|^7.0" }, "type": "library", @@ -13546,7 +13842,8 @@ "Symfony\\Component\\Validator\\": "" }, "exclude-from-classmap": [ - "/Tests/" + "/Tests/", + "/Resources/bin/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -13566,7 +13863,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v7.0.7" + "source": "https://github.com/symfony/validator/tree/v7.1.3" }, "funding": [ { @@ -13582,20 +13879,20 @@ "type": "tidelift" } ], - "time": "2024-04-28T11:44:19+00:00" + "time": "2024-07-26T12:41:01+00:00" }, { "name": "symfony/var-exporter", - "version": "v7.0.7", + "version": "v7.1.2", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "cdecc0022e40e90340ba1a59a3d5ccf069777078" + "reference": "b80a669a2264609f07f1667f891dbfca25eba44c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/cdecc0022e40e90340ba1a59a3d5ccf069777078", - "reference": "cdecc0022e40e90340ba1a59a3d5ccf069777078", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/b80a669a2264609f07f1667f891dbfca25eba44c", + "reference": "b80a669a2264609f07f1667f891dbfca25eba44c", "shasum": "" }, "require": { @@ -13642,7 +13939,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v7.0.7" + "source": "https://github.com/symfony/var-exporter/tree/v7.1.2" }, "funding": [ { @@ -13658,20 +13955,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-06-28T08:00:31+00:00" }, { "name": "symfony/yaml", - "version": "v7.0.7", + "version": "v7.1.1", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "0d3916ae69ea28b59d94b60c4f2b50f4e25adb5c" + "reference": "fa34c77015aa6720469db7003567b9f772492bf2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/0d3916ae69ea28b59d94b60c4f2b50f4e25adb5c", - "reference": "0d3916ae69ea28b59d94b60c4f2b50f4e25adb5c", + "url": "https://api.github.com/repos/symfony/yaml/zipball/fa34c77015aa6720469db7003567b9f772492bf2", + "reference": "fa34c77015aa6720469db7003567b9f772492bf2", "shasum": "" }, "require": { @@ -13713,7 +14010,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.0.7" + "source": "https://github.com/symfony/yaml/tree/v7.1.1" }, "funding": [ { @@ -13729,7 +14026,7 @@ "type": "tidelift" } ], - "time": "2024-04-28T11:44:19+00:00" + "time": "2024-05-31T14:57:53+00:00" }, { "name": "thecodingmachine/phpstan-safe-rule", @@ -13895,16 +14192,16 @@ }, { "name": "vimeo/psalm", - "version": "5.24.0", + "version": "5.25.0", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "462c80e31c34e58cc4f750c656be3927e80e550e" + "reference": "01a8eb06b9e9cc6cfb6a320bf9fb14331919d505" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/462c80e31c34e58cc4f750c656be3927e80e550e", - "reference": "462c80e31c34e58cc4f750c656be3927e80e550e", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/01a8eb06b9e9cc6cfb6a320bf9fb14331919d505", + "reference": "01a8eb06b9e9cc6cfb6a320bf9fb14331919d505", "shasum": "" }, "require": { @@ -14001,7 +14298,7 @@ "issues": "https://github.com/vimeo/psalm/issues", "source": "https://github.com/vimeo/psalm" }, - "time": "2024-05-01T19:32:08+00:00" + "time": "2024-06-16T15:08:35+00:00" }, { "name": "webmozart/assert", @@ -14110,35 +14407,89 @@ }, "time": "2024-03-07T20:33:40+00:00" }, + { + "name": "wp-cli/php-cli-tools", + "version": "v0.11.16", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/php-cli-tools.git", + "reference": "c32e51a5c9993ad40591bc426b21f5422a5ed293" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/php-cli-tools/zipball/c32e51a5c9993ad40591bc426b21f5422a5ed293", + "reference": "c32e51a5c9993ad40591bc426b21f5422a5ed293", + "shasum": "" + }, + "require": { + "php": ">= 5.3.0" + }, + "type": "library", + "autoload": { + "files": [ + "lib/cli/cli.php" + ], + "psr-0": { + "cli": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Bachhuber", + "email": "daniel@handbuilt.co", + "role": "Maintainer" + }, + { + "name": "James Logsdon", + "email": "jlogsdon@php.net", + "role": "Developer" + } + ], + "description": "Console utilities for PHP", + "homepage": "http://github.com/wp-cli/php-cli-tools", + "keywords": [ + "cli", + "console" + ], + "support": { + "issues": "https://github.com/wp-cli/php-cli-tools/issues", + "source": "https://github.com/wp-cli/php-cli-tools/tree/v0.11.16" + }, + "time": "2022-11-03T15:19:26+00:00" + }, { "name": "wyrihaximus/async-test-utilities", - "version": "8.0.4", + "version": "8.0.5", "source": { "type": "git", "url": "https://github.com/WyriHaximus/php-async-test-utilities.git", - "reference": "f179b79170ea6e5ac6aa2374c32d5c5df6ff6452" + "reference": "7eda448d86f64eafafcd0eb1dad76be37b6b48ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/WyriHaximus/php-async-test-utilities/zipball/f179b79170ea6e5ac6aa2374c32d5c5df6ff6452", - "reference": "f179b79170ea6e5ac6aa2374c32d5c5df6ff6452", + "url": "https://api.github.com/repos/WyriHaximus/php-async-test-utilities/zipball/7eda448d86f64eafafcd0eb1dad76be37b6b48ea", + "reference": "7eda448d86f64eafafcd0eb1dad76be37b6b48ea", "shasum": "" }, "require": { "php": "^8.2", - "phpunit/phpunit": "^10.5.19", - "react/async": "^4.2.0", + "phpunit/phpunit": "^10.5.25", + "react/async": "^4.3.0", "react/event-loop": "^1.5.0", - "react/promise": "^3.1", + "react/promise": "^3.2.0", "wyrihaximus/phpstan-react": "^1", "wyrihaximus/react-phpunit-run-tests-in-fiber": "^2.0.0", - "wyrihaximus/test-utilities": "^6.0.6" + "wyrihaximus/test-utilities": "^6.0.9" }, "conflict": { "composer/compoer": "<2.6.0" }, "require-dev": { - "react/promise-timer": "^1.10.0" + "react/promise-timer": "^1.11.0" }, "type": "library", "autoload": { @@ -14159,7 +14510,7 @@ "description": "Test utilities for api-clients packages", "support": { "issues": "https://github.com/WyriHaximus/php-async-test-utilities/issues", - "source": "https://github.com/WyriHaximus/php-async-test-utilities/tree/8.0.4" + "source": "https://github.com/WyriHaximus/php-async-test-utilities/tree/8.0.5" }, "funding": [ { @@ -14167,7 +14518,7 @@ "type": "github" } ], - "time": "2024-04-22T15:57:59+00:00" + "time": "2024-07-03T20:07:57+00:00" }, { "name": "wyrihaximus/coding-standard", @@ -14360,26 +14711,27 @@ }, { "name": "wyrihaximus/test-utilities", - "version": "6.0.7", + "version": "6.0.9", "source": { "type": "git", "url": "https://github.com/WyriHaximus/php-test-utilities.git", - "reference": "701bdbd994a56e6bd151098ba9219895bac994c7" + "reference": "40ad942e07360fd6167784c31c9b5a259bc96862" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/WyriHaximus/php-test-utilities/zipball/701bdbd994a56e6bd151098ba9219895bac994c7", - "reference": "701bdbd994a56e6bd151098ba9219895bac994c7", + "url": "https://api.github.com/repos/WyriHaximus/php-test-utilities/zipball/40ad942e07360fd6167784c31c9b5a259bc96862", + "reference": "40ad942e07360fd6167784c31c9b5a259bc96862", "shasum": "" }, "require": { "brandembassy/mockery-tools": "^4.1.3", - "ergebnis/composer-normalize": "^2.42.0", - "ergebnis/phpunit-slow-test-detector": "^2.14.0", + "ecoapm/libyear": "^2.3", + "ergebnis/composer-normalize": "^2.43.0", + "ergebnis/phpunit-slow-test-detector": "^2.15.0", "icanhazstring/composer-unused": "^0.8.11", "infection/infection": "^0.27.0", "maglnet/composer-require-checker": "^4.11.0", - "mockery/mockery": "^1.6.11", + "mockery/mockery": "^1.6.12", "nunomaduro/collision": "^7.10.0", "orklah/psalm-insane-comparison": "^2.3.0", "php": "^8.2", @@ -14387,17 +14739,17 @@ "php-parallel-lint/php-console-highlighter": "^1.0", "php-parallel-lint/php-parallel-lint": "^1.4.0", "php-standard-library/psalm-plugin": "^1.1.5 || ^2.2.1", - "phpstan/phpstan": "^1.10.67", - "phpunit/phpunit": "^10.5.20", + "phpstan/phpstan": "^1.11.6", + "phpunit/phpunit": "^10.5.25", "psalm/plugin-mockery": "^1.1", "psalm/plugin-phpunit": "^0.19.0", "roave/backward-compatibility-check": "^8.6.0", "roave/infection-static-analysis-plugin": "^1.33.0", - "squizlabs/php_codesniffer": "^3.9.2", + "squizlabs/php_codesniffer": "^3.10.1", "thecodingmachine/safe": "^2.5.0", - "vimeo/psalm": "^5.23.1", + "vimeo/psalm": "^5.25.0", "wyrihaximus/coding-standard": "^2.14.0", - "wyrihaximus/phpstan-rules-wrapper": "^6.0.1" + "wyrihaximus/phpstan-rules-wrapper": "^6.1.0" }, "conflict": { "composer/compoer": "<2.6.0", @@ -14422,7 +14774,7 @@ "description": "🛠️ Test utilities for api-clients packages", "support": { "issues": "https://github.com/WyriHaximus/php-test-utilities/issues", - "source": "https://github.com/WyriHaximus/php-test-utilities/tree/6.0.7" + "source": "https://github.com/WyriHaximus/php-test-utilities/tree/6.0.9" }, "funding": [ { @@ -14430,7 +14782,7 @@ "type": "github" } ], - "time": "2024-04-25T11:09:56+00:00" + "time": "2024-07-03T12:15:35+00:00" } ], "aliases": [], @@ -14438,9 +14790,12 @@ "stability-flags": { "mammatus/app": 20, "mammatus/kubernetes-attributes": 20, + "mammatus/kubernetes-contracts": 20, "mammatus/kubernetes-events": 20, + "mammatus/kubernetes-keda": 20, "mammatus/queue-attributes": 20, "mammatus/queue-contracts": 20, + "wyrihaximus/generative-composer-plugin-tooling": 20, "bbqueue/bunny": 20, "bunny/bunny": 20 }, diff --git a/etc/generated_templates/AbstractList_.php.twig b/etc/generated_templates/AbstractList_.php.twig index 3b8ad4e..07d9b0d 100644 --- a/etc/generated_templates/AbstractList_.php.twig +++ b/etc/generated_templates/AbstractList_.php.twig @@ -20,7 +20,7 @@ abstract class AbstractList_ {% for worker in workers %} /** @see \{{ worker.class }} */ yield new Worker( -{% if worker.split_out == true %} +{% if worker.splitOut == true %} 'kubernetes', {% else %} 'internal', @@ -28,6 +28,7 @@ abstract class AbstractList_ '{{ worker.consumer.queue }}', {{ worker.consumer.concurrency }}, \{{ worker.class }}::class, + \json_decode('{{ worker.consumer.addOns|json_encode()|raw }}', true), /** @phpstan-ignore-line */ ); {% endfor %} } diff --git a/src/App.php b/src/App.php index 917f28b..aab67e5 100644 --- a/src/App.php +++ b/src/App.php @@ -7,17 +7,14 @@ use Interop\Queue\Consumer; use Interop\Queue\Context; use Mammatus\LifeCycleEvents\Shutdown; -use Mammatus\Queue\Contracts\Worker; use Mammatus\Queue\Contracts\Worker as WorkerContract; use Mammatus\Queue\Generated\AbstractList_; use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; -use React\EventLoop\Loop; -use RuntimeException; use Throwable; use WyriHaximus\Broadcast\Contracts\Listener; -use WyriHaximus\PSR3\ContextLogger\ContextLogger; +use function assert; use function React\Async\async; use function React\Async\await; use function React\Promise\all; @@ -57,7 +54,7 @@ public function run(string $className): int return 0; } - private function setupConsumer(\Mammatus\Queue\Worker $worker): int + private function setupConsumer(Worker $worker): int { $consumer = $this->context->createConsumer(new Queue($worker->queue)); $workerInstance = $this->container->get($worker->class); diff --git a/src/Composer/Collector.php b/src/Composer/Collector.php new file mode 100644 index 0000000..9b02f16 --- /dev/null +++ b/src/Composer/Collector.php @@ -0,0 +1,36 @@ + */ + public function collect(ReflectionClass $class): iterable + { + $attributes = []; + foreach ((new \ReflectionClass($class->getName()))->getAttributes() as $attributeReflection) { + $attribute = $attributeReflection->newInstance(); + $attributes[$attribute::class] = $attribute; + } + + if (! array_key_exists(Consumer::class, $attributes)) { + return; + } + + yield new Item( + $class->getName(), + $attributes[Consumer::class], + array_key_exists(SplitOut::class, $attributes), + ); + } +} diff --git a/src/Composer/Installer.php b/src/Composer/Installer.php index ad45482..1a08a78 100644 --- a/src/Composer/Installer.php +++ b/src/Composer/Installer.php @@ -5,51 +5,12 @@ namespace Mammatus\Queue\Composer; use Composer\Composer; -use Composer\Config; use Composer\EventDispatcher\EventSubscriberInterface; use Composer\IO\IOInterface; -use Composer\Package\PackageInterface; -use Composer\Package\RootPackageInterface; use Composer\Plugin\PluginInterface; use Composer\Script\Event; use Composer\Script\ScriptEvents; -use Illuminate\Support\Collection; -use Mammatus\Kubernetes\Attributes\SplitOut; -use Mammatus\Queue\Attributes\Consumer; -use Mammatus\Queue\Contracts\Worker; -use Roave\BetterReflection\BetterReflection; -use Roave\BetterReflection\Reflection\ReflectionClass; -use Roave\BetterReflection\Reflector\DefaultReflector; -use Roave\BetterReflection\Reflector\Exception\IdentifierNotFound; -use Roave\BetterReflection\SourceLocator\Type\Composer\Factory\MakeLocatorForComposerJsonAndInstalledJson; -use Roave\BetterReflection\SourceLocator\Type\Composer\Psr\Exception\InvalidPrefixMapping; -use RuntimeException; - -use function array_key_exists; -use function count; -use function dirname; -use function explode; -use function file_exists; -use function is_array; -use function is_string; -use function microtime; -use function round; -use function rtrim; -use function Safe\chmod; -use function Safe\file_get_contents; -use function Safe\file_put_contents; -use function Safe\mkdir; -use function Safe\spl_autoload_register; -use function sprintf; -use function str_replace; -use function strlen; -use function strpos; -use function substr; -use function WyriHaximus\getIn; -use function WyriHaximus\listClassesInDirectories; -use function WyriHaximus\Twig\render; - -use const DIRECTORY_SEPARATOR; +use WyriHaximus\Composer\GenerativePluginTooling\GenerativePluginExecutioner; final class Installer implements PluginInterface, EventSubscriberInterface { @@ -79,214 +40,6 @@ public function uninstall(Composer $composer, IOInterface $io): void */ public static function findActions(Event $event): void { - $start = microtime(true); - $io = $event->getIO(); - $composer = $event->getComposer(); - $vendorDir = $composer->getConfig()->get('vendor-dir'); - if (! is_string($vendorDir)) { - throw new RuntimeException('Vendor dir must be a string'); - } - - // Composer is bugged and doesn't handle root package autoloading properly yet - if (array_key_exists('psr-4', $composer->getPackage()->getAutoload())) { - foreach ($composer->getPackage()->getAutoload()['psr-4'] as $ns => $p) { - /** @phpstan-ignore-next-line */ - $p = dirname($vendorDir) . '/' . $p; - spl_autoload_register(static function ($class) use ($ns, $p): void { - if (strpos($class, $ns) !== 0) { - return; - } - - $fileName = $p . str_replace('\\', DIRECTORY_SEPARATOR, substr($class, strlen($ns))) . '.php'; - /** @phpstan-ignore-next-line */ - if (! file_exists($fileName)) { - return; - } - - include $fileName; - }); - } - } - - /** @psalm-suppress UnresolvableInclude */ - require_once $composer->getConfig()->get('vendor-dir') . '/wyrihaximus/list-classes-in-directory/src/functions_include.php'; - /** @psalm-suppress UnresolvableInclude */ - require_once $composer->getConfig()->get('vendor-dir') . '/wyrihaximus/string-get-in/src/functions_include.php'; - /** @psalm-suppress UnresolvableInclude */ - require_once $composer->getConfig()->get('vendor-dir') . '/wyrihaximus/constants/src/Numeric/constants_include.php'; - /** @psalm-suppress UnresolvableInclude */ - require_once $composer->getConfig()->get('vendor-dir') . '/igorw/get-in/src/get_in.php'; - /** @psalm-suppress UnresolvableInclude */ - require_once $composer->getConfig()->get('vendor-dir') . '/jetbrains/phpstorm-stubs/PhpStormStubsMap.php'; - /** @psalm-suppress UnresolvableInclude */ - require_once $composer->getConfig()->get('vendor-dir') . '/thecodingmachine/safe/generated/filesystem.php'; - /** @psalm-suppress UnresolvableInclude */ - require_once $composer->getConfig()->get('vendor-dir') . '/thecodingmachine/safe/generated/strings.php'; - /** @psalm-suppress UnresolvableInclude */ - require_once $composer->getConfig()->get('vendor-dir') . '/wyrihaximus/simple-twig/src/functions_include.php'; - /** @psalm-suppress UnresolvableInclude */ - - $io->write('mammatus/queue: Locating actions'); - - $actions = self::findAllActions($composer, $io); - - $io->write(sprintf('mammatus/queue: Found %s action(s)', count($actions))); - - $classContentsList = render( - file_get_contents( - self::locateRootPackageInstallPath($composer->getConfig(), $composer->getPackage()) . '/etc/generated_templates/AbstractList_.php.twig', - ), - ['workers' => $actions], - ); - - $installPathList = self::locateRootPackageInstallPath($composer->getConfig(), $composer->getPackage()) - . '/src/Generated/AbstractList_.php'; - - file_put_contents($installPathList, $classContentsList); - chmod($installPathList, 0664); - - $io->write(sprintf( - 'mammatus/queue: Generated static abstract queue manager and queue list in %s second(s)', - round(microtime(true) - $start, 2), - )); - } - - /** - * Find the location where to put the generate PHP class in. - */ - private static function locateRootPackageInstallPath( - Config $composerConfig, - RootPackageInterface $rootPackage, - ): string { - $vendorDir = $composerConfig->get('vendor-dir'); - if (! is_string($vendorDir)) { - throw new RuntimeException('Vendor dir must be a string'); - } - - // You're on your own - if ($rootPackage->getName() === 'mammatus/queue') { - return dirname($vendorDir); - } - - return $vendorDir . '/mammatus/queue'; - } - - /** @return array */ - private static function findAllActions(Composer $composer, IOInterface $io): array - { - $vendorDir = $composer->getConfig()->get('vendor-dir'); - if (! is_string($vendorDir)) { - throw new RuntimeException('Vendor dir must be a string'); - } - - retry: - try { - $classReflector = new DefaultReflector( - (new MakeLocatorForComposerJsonAndInstalledJson())(dirname($vendorDir), (new BetterReflection())->astLocator()), - ); - } catch (InvalidPrefixMapping $invalidPrefixMapping) { - mkdir(explode('" is not a', explode('" for prefix "', $invalidPrefixMapping->getMessage())[1])[0]); - goto retry; - } - - $packages = $composer->getRepositoryManager()->getLocalRepository()->getCanonicalPackages(); - $packages[] = $composer->getPackage(); - - return (new Collection($packages))->filter(static function (PackageInterface $package): bool { - return count($package->getAutoload()) > 0; - })->filter(static function (PackageInterface $package): bool { - /** @phpstan-ignore-next-line */ - return getIn($package->getExtra(), 'mammatus.queue.has-workers', false); - })->filter(static function (PackageInterface $package): bool { - return array_key_exists('classmap', $package->getAutoload()) || array_key_exists('psr-4', $package->getAutoload()); - })->flatMap(static function (PackageInterface $package) use ($vendorDir): array { - $packageName = $package->getName(); - $autoload = $package->getAutoload(); - $paths = []; - foreach (['classmap', 'psr-4'] as $item) { - if (! array_key_exists($item, $autoload)) { - continue; - } - - foreach ($autoload[$item] as $path) { - if (is_string($path)) { - if ($package instanceof RootPackageInterface) { - $paths[] = dirname($vendorDir) . DIRECTORY_SEPARATOR . $path; - } else { - $paths[] = $vendorDir . DIRECTORY_SEPARATOR . $packageName . DIRECTORY_SEPARATOR . $path; - } - } - - if (! is_array($path)) { - continue; - } - - foreach ($path as $p) { - if ($package instanceof RootPackageInterface) { - $paths[] = dirname($vendorDir) . DIRECTORY_SEPARATOR . $p; - } else { - $paths[] = $vendorDir . DIRECTORY_SEPARATOR . $packageName . DIRECTORY_SEPARATOR . $p; - } - } - } - } - - return $paths; - })->map(static function (string $path): string { - return rtrim($path, '/'); - })->filter(static function (string $path): bool { - /** @phpstan-ignore-next-line */ - return file_exists($path); - })->flatMap(static function (string $path): array { - return [...listClassesInDirectories($path)]; - /** @phpstan-ignore-next-line */ - })->flatMap(static function (string $class) use ($classReflector, $io): array { - try { - /** @psalm-suppress PossiblyUndefinedVariable */ - return [ - (static function (ReflectionClass $reflectionClass): ReflectionClass { - $reflectionClass->getInterfaces(); - $reflectionClass->getMethods(); - - return $reflectionClass; - })($classReflector->reflectClass($class)), - ]; - } catch (IdentifierNotFound $identifierNotFound) { - $io->write(sprintf( - 'mammatus/queue: Error while reflecting "%s": %s', - $class, - $identifierNotFound->getMessage(), - )); - } - - return []; - })->filter(static function (ReflectionClass $class): bool { - return $class->isInstantiable(); - })->filter(static function (ReflectionClass $class): bool { - return $class->implementsInterface(Worker::class); - })->flatMap(static function (ReflectionClass $class): array { - $attributes = []; - foreach ((new \ReflectionClass($class->getName()))->getAttributes() as $attributeReflection) { - $attribute = $attributeReflection->newInstance(); - $attributes[$attribute::class] = $attribute; - } - - return [ - [ - 'class' => $class->getName(), - 'attributes' => $attributes, - ], - ]; - })->filter(static function (array $classNattributes): bool { - return array_key_exists(Consumer::class, $classNattributes['attributes']); - })->flatMap(static function (array $classNattributes): array { - return [ - [ - 'class' => $classNattributes['class'], - 'consumer' => $classNattributes['attributes'][Consumer::class], - 'split_out' => array_key_exists(SplitOut::class, $classNattributes['attributes']), - ], - ]; - })->toArray(); + GenerativePluginExecutioner::execute($event->getComposer(), $event->getIO(), new Plugin()); } } diff --git a/src/Composer/Item.php b/src/Composer/Item.php new file mode 100644 index 0000000..e3891df --- /dev/null +++ b/src/Composer/Item.php @@ -0,0 +1,30 @@ + $this->class, + 'consumer' => $this->consumer, + 'split_out' => $this->splitOut, + ]; + } +} diff --git a/src/Composer/Plugin.php b/src/Composer/Plugin.php new file mode 100644 index 0000000..cfe0917 --- /dev/null +++ b/src/Composer/Plugin.php @@ -0,0 +1,76 @@ + 'Locating actions', + LogStages::Error => 'An error occurred: %s', + LogStages::Collected => 'Found %d action(s)', + LogStages::Completion => 'Generated static abstract queue manager and queue list in %s second(s)', + }; + } + + /** @inheritDoc */ + public function filters(): iterable + { + yield new ComposerJsonHasItemWithSpecificValue('mammatus.queue.has-workers', true); + yield new IsInstantiable(); + yield new ImplementsInterface(Worker::class); + } + + /** @inheritDoc */ + public function collectors(): iterable + { + yield new Collector(); + } + + public function compile(string $rootPath, ItemContract ...$items): void + { + $environment = new Environment( + new ArrayLoader(['swporugifhapwergpfoawepoifjawpejfopiajwepoijfaeipwjfpoiawjeiopfaw' => '{{ include(template_from_string(swporugifhapwergpfoawepoifjawpejfopiajwepoijfaeipwjfpoiawjeiopfaw)) }}']), + ); + $environment->addExtension(new StringLoaderExtension()); + $environment->addExtension(new SandboxExtension(new SecurityPolicy())); + + $classContentsList = $environment->render( + 'swporugifhapwergpfoawepoifjawpejfopiajwepoijfaeipwjfpoiawjeiopfaw', + [ + 'swporugifhapwergpfoawepoifjawpejfopiajwepoijfaeipwjfpoiawjeiopfaw' => file_get_contents($rootPath . '/etc/generated_templates/AbstractList_.php.twig'), + 'workers' => $items, + ], + ); + + $installPathList = $rootPath . '/src/Generated/AbstractList_.php'; + + file_put_contents($installPathList, $classContentsList); /** @phpstan-ignore-line */ + chmod($installPathList, 0664); /** @phpstan-ignore-line */ + } +} diff --git a/src/Kubernetes/Helm/QueueConsumersValues.php b/src/Kubernetes/Helm/QueueConsumersValues.php index 4bfde75..b660483 100644 --- a/src/Kubernetes/Helm/QueueConsumersValues.php +++ b/src/Kubernetes/Helm/QueueConsumersValues.php @@ -10,6 +10,8 @@ use WyriHaximus\Broadcast\Contracts\Listener; use function array_filter; +use function array_map; +use function str_replace; final class QueueConsumersValues extends AbstractList_ implements Listener { @@ -22,6 +24,7 @@ public function values(Values $values): void 'name' => 'queue-worker-' . str_replace('.', '-', $worker->queue), 'command' => 'mammatus-queue', 'arguments' => [$worker->class], + 'addOns' => $worker->addOns, ], array_filter( [...$this->workers()], diff --git a/src/Worker.php b/src/Worker.php index 8028900..3197bb3 100644 --- a/src/Worker.php +++ b/src/Worker.php @@ -8,12 +8,16 @@ final readonly class Worker { - /** @param class-string $class */ + /** + * @param class-string $class + * @param array $addOns + */ public function __construct( public string $type, public string $queue, public int $concurrency, public string $class, + public array $addOns, ) { } }