From d2c449d6e0f0dc226e76b13d0a58bfffa549ca96 Mon Sep 17 00:00:00 2001 From: Romeo Manzur Date: Wed, 23 Sep 2026 16:48:56 -0600 Subject: [PATCH 01/15] Modernize model generation for Phalcon 6 Assisted-by: ChatGPT --- src/Builder/Component/Model.php | 87 +++++++-------- src/Generator/Snippet.php | 187 ++++++++++++++------------------ 2 files changed, 126 insertions(+), 148 deletions(-) diff --git a/src/Builder/Component/Model.php b/src/Builder/Component/Model.php index 0af3c470e..cba38afe3 100644 --- a/src/Builder/Component/Model.php +++ b/src/Builder/Component/Model.php @@ -1,4 +1,5 @@ modelOptions->hasOption('namespace') - ? $this->modelOptions->getOption('namespace')."\\" : ''; + ? $this->modelOptions->getOption('namespace') . "\\" : ''; $refColumns = $reference->getReferencedColumns(); $columns = $reference->getColumns(); @@ -202,8 +202,6 @@ public function build(): void $alreadyInitialized = false; $alreadyValidations = false; - $alreadyFind = false; - $alreadyFindFirst = false; $alreadyColumnMapped = false; $attributes = []; @@ -226,7 +224,7 @@ public function build(): void $linesCode = file($modelPath); $fullClassName = $this->modelOptions->getOption('className'); if ($this->modelOptions->hasOption('namespace')) { - $fullClassName = $this->modelOptions->getOption('namespace').'\\'.$fullClassName; + $fullClassName = $this->modelOptions->getOption('namespace') . '\\' . $fullClassName; } $reflection = new ReflectionClass($fullClassName); foreach ($reflection->getMethods() as $method) { @@ -266,12 +264,6 @@ public function build(): void case 'validation': $alreadyValidations = true; break; - case 'find': - $alreadyFind = true; - break; - case 'findFirst': - $alreadyFindFirst = true; - break; case 'columnMap': $alreadyColumnMapped = true; break; @@ -300,7 +292,8 @@ public function build(): void foreach ($reflection->getProperties() as $property) { $propertyName = $property->getName(); - if (!empty($possibleFieldsTransformed[$propertyName]) + if ( + !empty($possibleFieldsTransformed[$propertyName]) || $property->getDeclaringClass()->getName() !== $fullClassName ) { continue; @@ -361,11 +354,6 @@ public function build(): void $validations[] = $snippet->getValidateInclusion($fieldName, $varItems); } } - - if ($field->getName() === 'email') { - $validations[] = $snippet->getValidateEmail($fieldName); - $uses[] = $snippet->getUseAs(EmailValidator::class, 'EmailValidator'); - } } if (count($validations)) { @@ -393,8 +381,10 @@ public function build(): void continue; } - $type = $this->getPHPType($field->getType()); + $type = $this->getPHPType($field->getType()); + $docType = $field->isNotNull() ? $type : $type . '|null'; $fieldName = $this->getFieldName($field->getName()); + $attributes[] = $snippet->getAttributes( $type, $useSettersGetters ? 'protected' : 'public', @@ -405,12 +395,27 @@ public function build(): void if ($useSettersGetters) { $methodName = Utils::camelize($field->getName(), '_-'); - $setters[] = $snippet->getSetter($field->getName(), $fieldName, $type, $methodName); + + $setters[] = $snippet->getSetter( + $field->getName(), + $fieldName, + $docType, + $methodName + ); if (isset($this->typeMap[$type])) { - $getters[] = $snippet->getGetterMap($fieldName, $type, $methodName, $this->typeMap[$type]); + $getters[] = $snippet->getGetterMap( + $fieldName, + $docType, + $methodName, + $this->typeMap[$type] + ); } else { - $getters[] = $snippet->getGetter($fieldName, $type, $methodName); + $getters[] = $snippet->getGetter( + $fieldName, + $docType, + $methodName + ); } } } @@ -426,19 +431,6 @@ public function build(): void $initCode = $snippet->getInitialize($initialize); } - $license = ''; - if (file_exists('license.txt')) { - $license = trim(file_get_contents('license.txt')) . PHP_EOL . PHP_EOL; - } - - if (!$alreadyFind) { - $methodRawCode[] = $snippet->getModelFind($this->modelOptions->getOption('className')); - } - - if (!$alreadyFindFirst) { - $methodRawCode[] = $snippet->getModelFindFirst($this->modelOptions->getOption('className')); - } - $content = join('', $attributes); if ($useSettersGetters) { @@ -450,12 +442,15 @@ public function build(): void $content .= $methodCode; } - $classDoc = ''; - if ($genDocMethods) { - $classDoc = $snippet->getClassDoc($this->modelOptions->getOption('className'), $namespace); - } + $classDoc = $snippet->getClassDoc( + $this->modelOptions->getOption('className'), + $namespace, + $extends, + $genDocMethods + ); - if ($this->modelOptions->hasOption('mapColumn') && + if ( + $this->modelOptions->hasOption('mapColumn') && $this->modelOptions->getOption('mapColumn') && !$alreadyColumnMapped ) { @@ -480,8 +475,7 @@ public function build(): void $content, $classDoc, $abstract, - $extends, - $license + $extends ); if (file_exists($modelPath) && !is_writable($modelPath)) { @@ -595,7 +589,7 @@ protected function checkDataBaseParam(): void if (!isset($this->modelOptions->getOption('config')->database->adapter)) { throw new InvalidParameterException( "Adapter was not found in the config. " . - "Please specify a config variable [database][adapter]" + "Please specify a config variable [database][adapter]" ); } } @@ -671,13 +665,16 @@ protected function getPHPType(int $type): string case Column::TYPE_MEDIUMINTEGER: case Column::TYPE_BIGINTEGER: case Column::TYPE_BIT: - return 'integer'; + return 'int'; + case Column::TYPE_DECIMAL: case Column::TYPE_FLOAT: case Column::TYPE_DOUBLE: - return 'double'; + return 'float'; + case Column::TYPE_BOOLEAN: - return 'boolean'; + return 'bool'; + case Column::TYPE_DATE: case Column::TYPE_DATETIME: case Column::TYPE_TIME: diff --git a/src/Generator/Snippet.php b/src/Generator/Snippet.php index 435aa4db7..c841e5510 100644 --- a/src/Generator/Snippet.php +++ b/src/Generator/Snippet.php @@ -1,4 +1,5 @@ getOption('className'), $extends, - $content) - .PHP_EOL; + $content + ) . PHP_EOL; } - public function getClassDoc($className, $namespace = '') - { - if (!empty($namespace)) { - $namespace = str_replace('namespace ', '', $namespace); - $namespace = str_replace(';', '', $namespace); - $namespace = str_replace(["\r", "\n"], '', $namespace); + public function getClassDoc( + string $className, + string $namespace = '', + string $extends = '', + bool $includeDescription = true + ): string { + $isPhalconModel = ltrim($extends, '\\') === 'Phalcon\\Mvc\\Model'; - $namespace = PHP_EOL . ' * @package ' . $namespace; + if (!$includeDescription && !$isPhalconModel) { + return ''; } - $classDoc = <<add( - '%s', - new EmailValidator( - [ - 'model' => \$this, - 'message' => 'Please enter a correct email address', - ] - ) - ); -EOD; - return sprintf($templateValidateEmail, $fieldName).PHP_EOL.PHP_EOL; + if ($includeDescription) { + $lines[] = ' * ' . $className; + + if (!empty($namespace)) { + $package = str_replace('namespace ', '', $namespace); + $package = str_replace(';', '', $package); + $package = str_replace(["\r", "\n"], '', $package); + $package = trim($package); + + if ($package !== '') { + $lines[] = ' *'; + $lines[] = ' * @package ' . $package; + } + } + } + + if ($isPhalconModel) { + if ($includeDescription) { + $lines[] = ' *'; + } + + $lines[] = sprintf( + ' * @extends \Phalcon\Mvc\Model<%s>', + $className + ); + } + + $lines[] = ' */'; + + return implode(PHP_EOL, $lines) . PHP_EOL; } public function getValidationEnd() @@ -159,36 +166,43 @@ public function getValidationEnd() public function getAttributes($type, $visibility, \Phalcon\Db\ColumnInterface $field, $annotate = false, $customFieldName = null) { $fieldName = $customFieldName ?: $field->getName(); + $isNullable = $field->isAutoIncrement() || !$field->isNotNull(); + + $docType = $isNullable && !str_contains((string) $type, 'null') + ? $type . '|null' + : $type; if ($annotate) { $templateAttributes = <<isPrimary() ? PHP_EOL.' * @Primary' : '', - $field->isAutoIncrement() ? PHP_EOL.' * @Identity' : '', + return PHP_EOL . sprintf( + $templateAttributes, + $docType, + $field->isPrimary() ? PHP_EOL . ' * @Primary' : '', + $field->isAutoIncrement() ? PHP_EOL . ' * @Identity' : '', $field->getName(), $type, $field->getSize() ? ', length=' . $field->getSize() : '', - $field->isNotNull() ? 'false' : 'true', $visibility, $fieldName).PHP_EOL; - } else { - $templateAttributes = <<isNotNull() ? 'false' : 'true', + $visibility, + $fieldName + ) . PHP_EOL; + } + + $templateAttributes = <<%s; } EOD; - return PHP_EOL.sprintf($templateGetter, $fieldName, $type, $getterName, $fieldName).PHP_EOL; + return PHP_EOL . sprintf($templateGetter, $fieldName, $type, $getterName, $fieldName) . PHP_EOL; } public function getInitialize(array $pieces) { $templateInitialize = << $val) { if (is_bool($val)) { - $val = $val ? 'true':'false'; + $val = $val ? 'true' : 'false'; } elseif (!is_numeric($val)) { $val = "'{$val}'"; } @@ -298,7 +279,7 @@ public function getRelationOptions(?array $options = null) $values[] = sprintf('\'%s\' => %s', $name, $val); } - return '['. join(',', $values). ']'; + return '[' . join(',', $values) . ']'; } /** @@ -329,7 +310,7 @@ public function columnMap() $contents[] = sprintf('\'%s\' => \'%s\'', $name, $camelize ? Utils::lowerCamelize($name) : $name); } - return PHP_EOL.sprintf($template, join(",\n ", $contents)).PHP_EOL; + return PHP_EOL . sprintf($template, join(",\n ", $contents)) . PHP_EOL; } public function getMigrationMorph($className, $table, $tableDefinition) From 6004465343570b012f9e52fd47bdbde1e489ef68 Mon Sep 17 00:00:00 2001 From: Romeo Manzur Date: Wed, 23 Sep 2026 17:25:34 -0600 Subject: [PATCH 02/15] Add Phalcon 6 runtime support Assisted-by: ChatGPT --- bootstrap/autoload.php | 13 +- composer.json | 7 +- composer.lock | 1321 ++++++++++++++++-------------- docker-compose.yml | 55 +- docker/nginx/conf.d/default.conf | 2 +- docker/php/Dockerfile | 100 ++- src/Utils/SystemInfo.php | 17 +- src/Version.php | 2 +- 8 files changed, 812 insertions(+), 705 deletions(-) diff --git a/bootstrap/autoload.php b/bootstrap/autoload.php index ae52a5866..92d9416dd 100644 --- a/bootstrap/autoload.php +++ b/bootstrap/autoload.php @@ -11,13 +11,6 @@ declare(strict_types=1); -if (!extension_loaded('phalcon')) { - throw new Exception( - "Phalcon extension isn't installed, follow these instructions to install it: " . - 'https://docs.phalcon.io/en/latest/installation' - ); -} - /** * @const DEVTOOLS_START_TIME The start time of the Devtools. Used for profiling. */ @@ -108,6 +101,12 @@ throw new Exception('Please run composer install'); } +if (!class_exists(\Phalcon\Support\Version::class)) { + throw new RuntimeException( + 'Phalcon 6 is required. Install it with "composer require phalcon/phalcon:^6.0".' + ); +} + /** * Register the custom loader (if any) * diff --git a/composer.json b/composer.json index 6b7218ca6..e9174eb93 100644 --- a/composer.json +++ b/composer.json @@ -32,12 +32,11 @@ "sort-packages": true }, "require": { - "php": "^7.4||~8.0||~8.1||~8.2||~8.3", + "php": ">=8.2 <9.0", "ext-pdo": "*", - "ext-phalcon": "^5.0.0", - "psy/psysh": "~0.9", "nikic/php-parser": "^4.2.4", - "phalcon/migrations": "^3.0", + "phalcon/phalcon": "^6.0@RC", + "psy/psysh": "~0.9", "vlucas/phpdotenv": "^3.6|^4.0|^5.0" }, "require-dev": { diff --git a/composer.lock b/composer.lock index ebb817999..5b8dada12 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": "a1fd3ae348b341cfee13d399ab740635", + "content-hash": "fe52ec1a1565f218e480c78cac95dd8f", "packages": [ { "name": "composer/package-versions-deprecated", @@ -77,6 +77,7 @@ "type": "tidelift" } ], + "abandoned": true, "time": "2022-01-17T14:14:24+00:00" }, { @@ -165,24 +166,24 @@ }, { "name": "graham-campbell/result-type", - "version": "v1.1.3", + "version": "v1.2.0", "source": { "type": "git", "url": "https://github.com/GrahamCampbell/Result-Type.git", - "reference": "3ba905c11371512af9d9bdd27d99b782216b6945" + "reference": "adccca3324eece92ca35463648c12b9e6293c05b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/3ba905c11371512af9d9bdd27d99b782216b6945", - "reference": "3ba905c11371512af9d9bdd27d99b782216b6945", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/adccca3324eece92ca35463648c12b9e6293c05b", + "reference": "adccca3324eece92ca35463648c12b9e6293c05b", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.9.3" + "phpoption/phpoption": "^1.10" }, "require-dev": { - "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" + "phpunit/phpunit": "^8.5.52 || ^9.6.34 || ^10.5.63 || ^11.5.55 || ^12.5.14" }, "type": "library", "autoload": { @@ -211,7 +212,7 @@ ], "support": { "issues": "https://github.com/GrahamCampbell/Result-Type/issues", - "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.3" + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.2.0" }, "funding": [ { @@ -223,20 +224,20 @@ "type": "tidelift" } ], - "time": "2024-07-20T21:45:45+00:00" + "time": "2026-08-24T09:06:52+00:00" }, { "name": "humbug/php-scoper", - "version": "0.17.5", + "version": "0.17.7", "source": { "type": "git", "url": "https://github.com/humbug/php-scoper.git", - "reference": "f67ae1e5360259911d6c4be871e4aeb4e6661541" + "reference": "0760c02bd666e0dc4918e4e7fb1c4c53c47bcf54" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/humbug/php-scoper/zipball/f67ae1e5360259911d6c4be871e4aeb4e6661541", - "reference": "f67ae1e5360259911d6c4be871e4aeb4e6661541", + "url": "https://api.github.com/repos/humbug/php-scoper/zipball/0760c02bd666e0dc4918e4e7fb1c4c53c47bcf54", + "reference": "0760c02bd666e0dc4918e4e7fb1c4c53c47bcf54", "shasum": "" }, "require": { @@ -244,7 +245,7 @@ "fidry/console": "^0.5.0", "jetbrains/phpstorm-stubs": "^v2022.1", "nikic/php-parser": "^4.12", - "php": "^7.4 || ^8.0", + "php": "^8.1", "symfony/console": "^5.2 || ^6.0", "symfony/filesystem": "^5.2 || ^6.0", "symfony/finder": "^5.2 || ^6.0", @@ -257,7 +258,8 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.1", - "humbug/box": "^3.16.0 || ^4.0", + "ergebnis/composer-normalize": "^2.28", + "humbug/box": "^4.0", "phpspec/prophecy-phpunit": "^2.0", "phpunit/phpunit": "^9.0" }, @@ -302,9 +304,9 @@ "description": "Prefixes all PHP namespaces in a file or directory.", "support": { "issues": "https://github.com/humbug/php-scoper/issues", - "source": "https://github.com/humbug/php-scoper/tree/0.17.5" + "source": "https://github.com/humbug/php-scoper/tree/0.17.7" }, - "time": "2022-06-26T22:25:11+00:00" + "time": "2022-11-03T19:10:41+00:00" }, { "name": "jetbrains/phpstorm-stubs", @@ -355,171 +357,140 @@ "time": "2022-10-17T09:21:37+00:00" }, { - "name": "nette/php-generator", - "version": "v3.6.9", + "name": "matthiasmullie/minify", + "version": "1.3.75", "source": { "type": "git", - "url": "https://github.com/nette/php-generator.git", - "reference": "d31782f7bd2ae84ad06f863391ec3fb77ca4d0a6" + "url": "https://github.com/matthiasmullie/minify.git", + "reference": "76ba4a5f555fd7bf4aa408af608e991569076671" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/php-generator/zipball/d31782f7bd2ae84ad06f863391ec3fb77ca4d0a6", - "reference": "d31782f7bd2ae84ad06f863391ec3fb77ca4d0a6", + "url": "https://api.github.com/repos/matthiasmullie/minify/zipball/76ba4a5f555fd7bf4aa408af608e991569076671", + "reference": "76ba4a5f555fd7bf4aa408af608e991569076671", "shasum": "" }, "require": { - "nette/utils": "^3.1.2", - "php": ">=7.2 <8.3" + "ext-pcre": "*", + "matthiasmullie/path-converter": "~1.1", + "php": ">=5.3.0" }, "require-dev": { - "nette/tester": "^2.4", - "nikic/php-parser": "^4.13", - "phpstan/phpstan": "^0.12", - "tracy/tracy": "^2.8" + "friendsofphp/php-cs-fixer": ">=2.0", + "matthiasmullie/scrapbook": ">=1.3", + "phpunit/phpunit": ">=4.8" }, "suggest": { - "nikic/php-parser": "to use ClassType::withBodiesFrom() & GlobalFunction::withBodyFrom()" + "psr/cache-implementation": "Cache implementation to use with Minify::cache" }, + "bin": [ + "bin/minifycss", + "bin/minifyjs" + ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.6-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "MatthiasMullie\\Minify\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" + "MIT" ], "authors": [ { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" + "name": "Matthias Mullie", + "email": "minify@mullie.eu", + "homepage": "https://www.mullie.eu", + "role": "Developer" } ], - "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 8.1 features.", - "homepage": "https://nette.org", + "description": "CSS & JavaScript minifier, in PHP. Removes whitespace, strips comments, combines files (incl. @import statements and small assets in CSS files), and optimizes/shortens a few common programming patterns.", + "homepage": "https://github.com/matthiasmullie/minify", "keywords": [ - "code", - "nette", - "php", - "scaffolding" + "JS", + "css", + "javascript", + "minifier", + "minify" ], "support": { - "issues": "https://github.com/nette/php-generator/issues", - "source": "https://github.com/nette/php-generator/tree/v3.6.9" + "issues": "https://github.com/matthiasmullie/minify/issues", + "source": "https://github.com/matthiasmullie/minify/tree/1.3.75" }, - "time": "2022-10-04T11:49:47+00:00" + "funding": [ + { + "url": "https://github.com/matthiasmullie", + "type": "github" + } + ], + "time": "2025-06-25T09:56:19+00:00" }, { - "name": "nette/utils", - "version": "v3.2.10", + "name": "matthiasmullie/path-converter", + "version": "1.1.3", "source": { "type": "git", - "url": "https://github.com/nette/utils.git", - "reference": "a4175c62652f2300c8017fb7e640f9ccb11648d2" + "url": "https://github.com/matthiasmullie/path-converter.git", + "reference": "e7d13b2c7e2f2268e1424aaed02085518afa02d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/a4175c62652f2300c8017fb7e640f9ccb11648d2", - "reference": "a4175c62652f2300c8017fb7e640f9ccb11648d2", + "url": "https://api.github.com/repos/matthiasmullie/path-converter/zipball/e7d13b2c7e2f2268e1424aaed02085518afa02d9", + "reference": "e7d13b2c7e2f2268e1424aaed02085518afa02d9", "shasum": "" }, "require": { - "php": ">=7.2 <8.4" - }, - "conflict": { - "nette/di": "<3.0.6" + "ext-pcre": "*", + "php": ">=5.3.0" }, "require-dev": { - "jetbrains/phpstorm-attributes": "dev-master", - "nette/tester": "~2.0", - "phpstan/phpstan": "^1.0", - "tracy/tracy": "^2.3" - }, - "suggest": { - "ext-gd": "to use Image", - "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", - "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", - "ext-json": "to use Nette\\Utils\\Json", - "ext-mbstring": "to use Strings::lower() etc...", - "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", - "ext-xml": "to use Strings::length() etc. when mbstring is not available" + "phpunit/phpunit": "~4.8" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "MatthiasMullie\\PathConverter\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" + "MIT" ], "authors": [ { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" + "name": "Matthias Mullie", + "email": "pathconverter@mullie.eu", + "homepage": "http://www.mullie.eu", + "role": "Developer" } ], - "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", - "homepage": "https://nette.org", + "description": "Relative path converter", + "homepage": "http://github.com/matthiasmullie/path-converter", "keywords": [ - "array", - "core", - "datetime", - "images", - "json", - "nette", - "paginator", - "password", - "slugify", - "string", - "unicode", - "utf-8", - "utility", - "validation" + "converter", + "path", + "paths", + "relative" ], "support": { - "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v3.2.10" + "issues": "https://github.com/matthiasmullie/path-converter/issues", + "source": "https://github.com/matthiasmullie/path-converter/tree/1.1.3" }, - "time": "2023-07-30T15:38:18+00:00" + "time": "2019-02-05T23:41:09+00:00" }, { "name": "nikic/php-parser", - "version": "v4.19.4", + "version": "v4.19.5", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "715f4d25e225bc47b293a8b997fe6ce99bf987d2" + "reference": "51bd93cc741b7fc3d63d20b6bdcd99fdaa359837" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/715f4d25e225bc47b293a8b997fe6ce99bf987d2", - "reference": "715f4d25e225bc47b293a8b997fe6ce99bf987d2", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/51bd93cc741b7fc3d63d20b6bdcd99fdaa359837", + "reference": "51bd93cc741b7fc3d63d20b6bdcd99fdaa359837", "shasum": "" }, "require": { @@ -534,11 +505,6 @@ "bin/php-parse" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.9-dev" - } - }, "autoload": { "psr-4": { "PhpParser\\": "lib/PhpParser" @@ -560,75 +526,82 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.4" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.5" }, - "time": "2024-09-29T15:01:53+00:00" + "time": "2025-12-06T11:45:25+00:00" }, { - "name": "phalcon/cli-options-parser", - "version": "v1.3.0", + "name": "phalcon/phalcon", + "version": "v6.0.0RC2", "source": { "type": "git", - "url": "https://github.com/phalcon/cli-options-parser.git", - "reference": "1c5a7d0db23a88d8ba14646af75464cbbd115251" + "url": "https://github.com/phalcon/phalcon.git", + "reference": "e353b8a926cd022f06ac0f115bd5ddc1489ce311" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phalcon/cli-options-parser/zipball/1c5a7d0db23a88d8ba14646af75464cbbd115251", - "reference": "1c5a7d0db23a88d8ba14646af75464cbbd115251", + "url": "https://api.github.com/repos/phalcon/phalcon/zipball/e353b8a926cd022f06ac0f115bd5ddc1489ce311", + "reference": "e353b8a926cd022f06ac0f115bd5ddc1489ce311", "shasum": "" }, "require": { - "php": ">=7.3" + "ext-fileinfo": "*", + "ext-json": "*", + "ext-mbstring": "*", + "ext-pdo": "*", + "ext-xml": "*", + "matthiasmullie/minify": "^1.3", + "phalcon/traits": "^4.1", + "php": ">=8.1 <9.0" }, "require-dev": { - "phpunit/phpunit": "^9.5.8", - "squizlabs/php_codesniffer": "3.*" + "ext-gettext": "*", + "ext-yaml": "*", + "friendsofphp/php-cs-fixer": "^3.95", + "pds/composer-script-names": "^1.0", + "pds/skeleton": "^1.0", + "phalcon/annotations": "1.0.x-dev", + "phalcon/code-quality": "^1.0", + "phalcon/phql": "1.0.x-dev", + "phalcon/quill": "^0.5.0", + "phalcon/talon": "^1.0.0", + "phalcon/volt": "1.0.x-dev", + "phpbench/phpbench": "^1.4", + "phpstan/phpstan": "^2.2", + "phpunit/phpunit": "^10.5", + "predis/predis": "^3.4", + "squizlabs/php_codesniffer": "^4.0", + "vlucas/phpdotenv": "^5.6" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } + "suggest": { + "ext-apcu": "to use Cache\\Adapter\\Apcu, Storage\\Adapter\\Apcu", + "ext-gd": "to use Image\\Adapter\\Gd", + "ext-igbinary": "to use Storage\\Serializer\\Igbinary", + "ext-imagick": "to use Image\\Adapter\\Imagick", + "ext-memcached": "to use Cache\\Adapter\\Libmemcached, Session\\Adapter\\Libmemcached, Storage\\Adapter\\Libmemcached", + "ext-openssl": "to use Encryption\\Crypt", + "ext-pcntl": "to use signal-based graceful shutdown in Queue\\Consumer\\Worker", + "ext-redis": "to use Cache\\Adapter\\Redis, Session\\Adapter\\Redis, Storage\\Adapter\\Redis", + "ext-yaml": "to use Config\\Adapter\\Yaml" }, + "type": "library", "autoload": { "psr-4": { - "Phalcon\\Cop\\": "src/" + "Phalcon\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Phalcon Team", - "email": "team@phalconphp.com", - "homepage": "https://phalconphp.com/en/team" - }, - { - "name": "Contributors", - "homepage": "https://github.com/phalcon/cli-options-parser/graphs/contributors" - } + "MIT" ], - "description": "Command line arguments/options parser.", - "homepage": "https://phalconphp.com", + "description": "Phalcon Framework", "keywords": [ - "argparse", - "cli", - "command", - "command-line", - "getopt", - "line", - "option", - "optparse", - "parser", - "terminal" + "framework", + "php" ], "support": { - "forum": "https://forum.phalconphp.com/", - "issues": "https://github.com/phalcon/cli-options-parser/issues", - "source": "https://github.com/phalcon/cli-options-parser" + "issues": "https://github.com/phalcon/phalcon/issues", + "source": "https://github.com/phalcon/phalcon/tree/v6.0.0RC2" }, "funding": [ { @@ -640,53 +613,47 @@ "type": "open_collective" } ], - "time": "2021-08-03T02:44:01+00:00" + "time": "2026-09-22T20:11:19+00:00" }, { - "name": "phalcon/migrations", - "version": "v3.0.1", + "name": "phalcon/traits", + "version": "4.1.0", "source": { "type": "git", - "url": "https://github.com/phalcon/migrations.git", - "reference": "69c1ea982a94e13510201e642e408dea9d554539" + "url": "https://github.com/phalcon/traits.git", + "reference": "a686028ef39ccbb6bd90fd56dc7c7389e768693e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phalcon/migrations/zipball/69c1ea982a94e13510201e642e408dea9d554539", - "reference": "69c1ea982a94e13510201e642e408dea9d554539", + "url": "https://api.github.com/repos/phalcon/traits/zipball/a686028ef39ccbb6bd90fd56dc7c7389e768693e", + "reference": "a686028ef39ccbb6bd90fd56dc7c7389e768693e", "shasum": "" }, "require": { - "ext-phalcon": ">=5.0.1", - "nette/php-generator": "^3.5", - "phalcon/cli-options-parser": "^1.2", - "php": ">=7.4" + "ext-json": "*", + "ext-mbstring": "*", + "php": ">=8.1 <9.0" }, "require-dev": { - "codeception/codeception": "^4.1", - "codeception/module-asserts": "^1.0.0", - "codeception/module-cli": "^1.0", - "codeception/module-db": "^1.0", - "codeception/module-phpbrowser": "^1.0.0", - "ext-pdo": "*", - "fakerphp/faker": "^1.15", - "humbug/box": "^3.8", - "phalcon/ide-stubs": "^5.0.1", - "phpstan/phpstan": "^1.8", - "squizlabs/php_codesniffer": "^3.5", - "vimeo/psalm": "^4.6", - "vlucas/phpdotenv": "^4.1" + "friendsofphp/php-cs-fixer": "^3.75", + "pds/composer-script-names": "^1.0", + "pds/skeleton": "^1.0", + "phalcon/talon": "^1.0.0", + "phpstan/phpstan": "^2.2", + "phpunit/phpunit": "^10.5", + "squizlabs/php_codesniffer": "^4.0" }, "suggest": { - "robmorgan/phinx": "Phinx makes it ridiculously easy to manage the database migrations for your PHP app." + "ext-apcu": "For Php\\ApcuTrait", + "ext-gettext": "For the gettext-based translation helpers", + "ext-igbinary": "For Php\\IgbinaryTrait", + "ext-msgpack": "For Php\\MsgpackTrait", + "ext-yaml": "For Php\\YamlTrait" }, - "bin": [ - "phalcon-migrations" - ], "type": "library", "autoload": { "psr-4": { - "Phalcon\\Migrations\\": "src/" + "Phalcon\\Traits\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -701,21 +668,21 @@ }, { "name": "Contributors", - "homepage": "https://github.com/phalcon/migrations/graphs/contributors" + "homepage": "https://github.com/phalcon/traits/graphs/contributors" } ], - "description": "Run and Generate DB Migrations with Phalcon Framework", + "description": "Phalcon Framework reusable traits", "homepage": "https://phalcon.io", "keywords": [ "framework", - "migration", "phalcon", - "phar" + "php", + "traits" ], "support": { - "forum": "https://forum.phalcon.io", - "issues": "https://github.com/phalcon/migrations/issues", - "source": "https://github.com/phalcon/migrations" + "discord": "https://phalcon.io/discord/", + "issues": "https://github.com/phalcon/traits/issues", + "source": "https://github.com/phalcon/traits" }, "funding": [ { @@ -727,20 +694,20 @@ "type": "open_collective" } ], - "time": "2023-05-03T09:02:17+00:00" + "time": "2026-09-04T16:43:18+00:00" }, { "name": "phpoption/phpoption", - "version": "1.9.3", + "version": "1.10.0", "source": { "type": "git", "url": "https://github.com/schmittjoh/php-option.git", - "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54" + "reference": "67b192b6a42ec03944b972d6e633ddec78ad2c6d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/e3fac8b24f56113f7cb96af14958c0dd16330f54", - "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/67b192b6a42ec03944b972d6e633ddec78ad2c6d", + "reference": "67b192b6a42ec03944b972d6e633ddec78ad2c6d", "shasum": "" }, "require": { @@ -748,7 +715,7 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" + "phpunit/phpunit": "^8.5.54 || ^9.6.36 || ^10.5.64 || ^11.5.56 || ^12.5.33" }, "type": "library", "extra": { @@ -790,7 +757,7 @@ ], "support": { "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.9.3" + "source": "https://github.com/schmittjoh/php-option/tree/1.10.0" }, "funding": [ { @@ -802,26 +769,31 @@ "type": "tidelift" } ], - "time": "2024-07-20T21:41:07+00:00" + "time": "2026-08-24T00:54:40+00:00" }, { "name": "psr/container", - "version": "1.1.2", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", "shasum": "" }, "require": { "php": ">=7.4.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, "autoload": { "psr-4": { "Psr\\Container\\": "src/" @@ -848,9 +820,9 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.2" + "source": "https://github.com/php-fig/container/tree/2.0.2" }, - "time": "2021-11-05T16:50:12+00:00" + "time": "2021-11-05T16:47:00+00:00" }, { "name": "psr/event-dispatcher", @@ -904,16 +876,16 @@ }, { "name": "psy/psysh", - "version": "v0.12.7", + "version": "v0.12.24", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "d73fa3c74918ef4522bb8a3bf9cab39161c4b57c" + "reference": "ca0fdcf8a7617afa3adfdf1b5fef573dffb69ca1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/d73fa3c74918ef4522bb8a3bf9cab39161c4b57c", - "reference": "d73fa3c74918ef4522bb8a3bf9cab39161c4b57c", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/ca0fdcf8a7617afa3adfdf1b5fef573dffb69ca1", + "reference": "ca0fdcf8a7617afa3adfdf1b5fef573dffb69ca1", "shasum": "" }, "require": { @@ -921,18 +893,19 @@ "ext-tokenizer": "*", "nikic/php-parser": "^5.0 || ^4.0", "php": "^8.0 || ^7.4", - "symfony/console": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4", - "symfony/var-dumper": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4" + "symfony/console": "^8.0 || ^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4", + "symfony/var-dumper": "^8.0 || ^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4" }, "conflict": { "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.2" + "bamarni/composer-bin-plugin": "^1.2", + "composer/class-map-generator": "^1.6" }, "suggest": { + "composer/class-map-generator": "Improved tab completion performance with better class discovery.", "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", - "ext-pdo-sqlite": "The doc command requires SQLite to work.", "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well." }, "bin": [ @@ -963,12 +936,11 @@ "authors": [ { "name": "Justin Hileman", - "email": "justin@justinhileman.info", - "homepage": "http://justinhileman.com" + "email": "justin@justinhileman.info" } ], "description": "An interactive shell for modern PHP.", - "homepage": "http://psysh.org", + "homepage": "https://psysh.org", "keywords": [ "REPL", "console", @@ -977,9 +949,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.12.7" + "source": "https://github.com/bobthecow/psysh/tree/v0.12.24" }, - "time": "2024-12-10T01:58:33+00:00" + "time": "2026-06-29T15:41:09+00:00" }, { "name": "symfony/console", @@ -1082,20 +1054,20 @@ }, { "name": "symfony/deprecation-contracts", - "version": "v2.5.4", + "version": "v3.7.1", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "605389f2a7e5625f273b53960dc46aeaf9c62918" + "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/605389f2a7e5625f273b53960dc46aeaf9c62918", - "reference": "605389f2a7e5625f273b53960dc46aeaf9c62918", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/f3202fa1b5097b0af062dc978b32ecf63404e31d", + "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.1" }, "type": "library", "extra": { @@ -1104,7 +1076,7 @@ "name": "symfony/contracts" }, "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.7-dev" } }, "autoload": { @@ -1129,7 +1101,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.4" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.1" }, "funding": [ { @@ -1140,34 +1112,35 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:11:13+00:00" + "time": "2026-06-05T06:23:12+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v2.5.4", + "version": "v3.7.1", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "e0fe3d79b516eb75126ac6fa4cbf19b79b08c99f" + "reference": "c7de7a00ffb67842132da02ea92988a39ccd9f4e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/e0fe3d79b516eb75126ac6fa4cbf19b79b08c99f", - "reference": "e0fe3d79b516eb75126ac6fa4cbf19b79b08c99f", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c7de7a00ffb67842132da02ea92988a39ccd9f4e", + "reference": "c7de7a00ffb67842132da02ea92988a39ccd9f4e", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.1", "psr/event-dispatcher": "^1" }, - "suggest": { - "symfony/event-dispatcher-implementation": "" - }, "type": "library", "extra": { "thanks": { @@ -1175,7 +1148,7 @@ "name": "symfony/contracts" }, "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.7-dev" } }, "autoload": { @@ -1208,7 +1181,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.4" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.7.1" }, "funding": [ { @@ -1219,12 +1192,16 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:11:13+00:00" + "time": "2026-06-05T06:23:12+00:00" }, { "name": "symfony/filesystem", @@ -1358,16 +1335,16 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.31.0", + "version": "v1.37.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" + "reference": "141046a8f9477948ff284fa65be2095baafb94f2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", - "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/141046a8f9477948ff284fa65be2095baafb94f2", + "reference": "141046a8f9477948ff284fa65be2095baafb94f2", "shasum": "" }, "require": { @@ -1417,7 +1394,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.37.0" }, "funding": [ { @@ -1428,25 +1405,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2026-04-10T16:19:22+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.31.0", + "version": "v1.41.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe" + "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", - "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", + "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", "shasum": "" }, "require": { @@ -1495,7 +1476,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.41.0" }, "funding": [ { @@ -1506,25 +1487,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2026-07-28T08:25:59+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.31.0", + "version": "v1.42.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "3833d7255cc303546435cb650316bff708a1c75c" + "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c", - "reference": "3833d7255cc303546435cb650316bff708a1c75c", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/aa20edea75bd9c48cfecc8360922e5a6e5c44502", + "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502", "shasum": "" }, "require": { @@ -1576,7 +1561,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.42.0" }, "funding": [ { @@ -1587,28 +1572,33 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2026-08-07T06:33:24+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.31.0", + "version": "v1.38.2", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341" + "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341", - "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", + "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", "shasum": "" }, "require": { + "ext-iconv": "*", "php": ">=7.2" }, "provide": { @@ -1656,7 +1646,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.38.2" }, "funding": [ { @@ -1667,25 +1657,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2026-05-27T06:59:30+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.31.0", + "version": "v1.37.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8" + "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", - "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dfb55726c3a76ea3b6459fcfda1ec2d80a682411", + "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411", "shasum": "" }, "require": { @@ -1736,7 +1730,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.37.0" }, "funding": [ { @@ -1747,25 +1741,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2026-04-10T16:19:22+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.31.0", + "version": "v1.38.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c" + "reference": "6bfb9c766cacffbc8e118cb87217d08ed84e5cd7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", - "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/6bfb9c766cacffbc8e118cb87217d08ed84e5cd7", + "reference": "6bfb9c766cacffbc8e118cb87217d08ed84e5cd7", "shasum": "" }, "require": { @@ -1812,7 +1810,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.38.1" }, "funding": [ { @@ -1823,38 +1821,39 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2026-05-26T12:45:58+00:00" }, { "name": "symfony/service-contracts", - "version": "v2.5.4", + "version": "v3.7.3", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "f37b419f7aea2e9abf10abd261832cace12e3300" + "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f37b419f7aea2e9abf10abd261832cace12e3300", - "reference": "f37b419f7aea2e9abf10abd261832cace12e3300", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", + "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/container": "^1.1", - "symfony/deprecation-contracts": "^2.1|^3" + "php": ">=8.1", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" }, "conflict": { "ext-psr": "<1.1|>=2" }, - "suggest": { - "symfony/service-implementation": "" - }, "type": "library", "extra": { "thanks": { @@ -1862,13 +1861,16 @@ "name": "symfony/contracts" }, "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.7-dev" } }, "autoload": { "psr-4": { "Symfony\\Contracts\\Service\\": "" - } + }, + "exclude-from-classmap": [ + "/Test/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1895,7 +1897,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.5.4" + "source": "https://github.com/symfony/service-contracts/tree/v3.7.3" }, "funding": [ { @@ -1906,43 +1908,46 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:11:13+00:00" + "time": "2026-07-27T15:39:01+00:00" }, { "name": "symfony/string", - "version": "v5.4.47", + "version": "v6.4.46", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "136ca7d72f72b599f2631aca474a4f8e26719799" + "reference": "4513ab2b0ad2d7845a2f920e2f30b61633c9e606" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/136ca7d72f72b599f2631aca474a4f8e26719799", - "reference": "136ca7d72f72b599f2631aca474a4f8e26719799", + "url": "https://api.github.com/repos/symfony/string/zipball/4513ab2b0ad2d7845a2f920e2f30b61633c9e606", + "reference": "4513ab2b0ad2d7845a2f920e2f30b61633c9e606", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.1", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-intl-grapheme": "~1.0", "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "~1.15" + "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/translation-contracts": ">=3.0" + "symfony/translation-contracts": "<2.5" }, "require-dev": { - "symfony/error-handler": "^4.4|^5.0|^6.0", - "symfony/http-client": "^4.4|^5.0|^6.0", - "symfony/translation-contracts": "^1.1|^2", - "symfony/var-exporter": "^4.4|^5.0|^6.0" + "symfony/http-client": "^5.4|^6.0|^7.0", + "symfony/intl": "^6.2|^7.0", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -1981,7 +1986,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.47" + "source": "https://github.com/symfony/string/tree/v6.4.46" }, "funding": [ { @@ -1992,12 +1997,16 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-11-10T20:33:58+00:00" + "time": "2026-09-11T09:03:57+00:00" }, { "name": "symfony/var-dumper", @@ -2090,39 +2099,46 @@ }, { "name": "thecodingmachine/safe", - "version": "v1.3.3", + "version": "v2.5.0", "source": { "type": "git", "url": "https://github.com/thecodingmachine/safe.git", - "reference": "a8ab0876305a4cdaef31b2350fcb9811b5608dbc" + "reference": "3115ecd6b4391662b4931daac4eba6b07a2ac1f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/a8ab0876305a4cdaef31b2350fcb9811b5608dbc", - "reference": "a8ab0876305a4cdaef31b2350fcb9811b5608dbc", + "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/3115ecd6b4391662b4931daac4eba6b07a2ac1f0", + "reference": "3115ecd6b4391662b4931daac4eba6b07a2ac1f0", "shasum": "" }, "require": { - "php": ">=7.2" + "php": "^8.0" }, "require-dev": { - "phpstan/phpstan": "^0.12", + "phpstan/phpstan": "^1.5", + "phpunit/phpunit": "^9.5", "squizlabs/php_codesniffer": "^3.2", - "thecodingmachine/phpstan-strict-rules": "^0.12" + "thecodingmachine/phpstan-strict-rules": "^1.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "0.1-dev" + "dev-master": "2.2.x-dev" } }, "autoload": { "files": [ "deprecated/apc.php", + "deprecated/array.php", + "deprecated/datetime.php", "deprecated/libevent.php", + "deprecated/misc.php", + "deprecated/password.php", "deprecated/mssql.php", "deprecated/stats.php", + "deprecated/strings.php", "lib/special_cases.php", + "deprecated/mysqli.php", "generated/apache.php", "generated/apcu.php", "generated/array.php", @@ -2143,6 +2159,7 @@ "generated/fpm.php", "generated/ftp.php", "generated/funchand.php", + "generated/gettext.php", "generated/gmp.php", "generated/gnupg.php", "generated/hash.php", @@ -2152,7 +2169,6 @@ "generated/image.php", "generated/imap.php", "generated/info.php", - "generated/ingres-ii.php", "generated/inotify.php", "generated/json.php", "generated/ldap.php", @@ -2161,20 +2177,14 @@ "generated/mailparse.php", "generated/mbstring.php", "generated/misc.php", - "generated/msql.php", "generated/mysql.php", - "generated/mysqli.php", - "generated/mysqlndMs.php", - "generated/mysqlndQc.php", "generated/network.php", "generated/oci8.php", "generated/opcache.php", "generated/openssl.php", "generated/outcontrol.php", - "generated/password.php", "generated/pcntl.php", "generated/pcre.php", - "generated/pdf.php", "generated/pgsql.php", "generated/posix.php", "generated/ps.php", @@ -2185,7 +2195,6 @@ "generated/sem.php", "generated/session.php", "generated/shmop.php", - "generated/simplexml.php", "generated/sockets.php", "generated/sodium.php", "generated/solr.php", @@ -2208,13 +2217,13 @@ "generated/zip.php", "generated/zlib.php" ], - "psr-4": { - "Safe\\": [ - "lib/", - "deprecated/", - "generated/" - ] - } + "classmap": [ + "lib/DateTime.php", + "lib/DateTimeImmutable.php", + "lib/Exceptions/", + "deprecated/Exceptions/", + "generated/Exceptions/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2223,32 +2232,32 @@ "description": "PHP core functions that throw exceptions instead of returning FALSE on error", "support": { "issues": "https://github.com/thecodingmachine/safe/issues", - "source": "https://github.com/thecodingmachine/safe/tree/v1.3.3" + "source": "https://github.com/thecodingmachine/safe/tree/v2.5.0" }, - "time": "2020-10-28T17:51:34+00:00" + "time": "2023-04-05T11:54:14+00:00" }, { "name": "vlucas/phpdotenv", - "version": "v5.6.1", + "version": "v5.7.0", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2" + "reference": "301c07936b16d88628b126b01d082ba153cf4c40" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/a59a13791077fe3d44f90e7133eb68e7d22eaff2", - "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/301c07936b16d88628b126b01d082ba153cf4c40", + "reference": "301c07936b16d88628b126b01d082ba153cf4c40", "shasum": "" }, "require": { "ext-pcre": "*", - "graham-campbell/result-type": "^1.1.3", + "graham-campbell/result-type": "^1.2", "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.9.3", - "symfony/polyfill-ctype": "^1.24", - "symfony/polyfill-mbstring": "^1.24", - "symfony/polyfill-php80": "^1.24" + "phpoption/phpoption": "^1.10", + "symfony/polyfill-ctype": "^1.26", + "symfony/polyfill-mbstring": "^1.26", + "symfony/polyfill-php80": "^1.26" }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", @@ -2289,7 +2298,7 @@ "homepage": "https://github.com/vlucas" } ], - "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", + "description": "Loads environment variables from `.env` to `$_ENV` and `$_SERVER` automagically, and optionally to `getenv()`.", "keywords": [ "dotenv", "env", @@ -2297,7 +2306,7 @@ ], "support": { "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.1" + "source": "https://github.com/vlucas/phpdotenv/tree/v5.7.0" }, "funding": [ { @@ -2309,32 +2318,32 @@ "type": "tidelift" } ], - "time": "2024-07-20T21:52:34+00:00" + "time": "2026-08-24T18:07:49+00:00" }, { "name": "webmozart/assert", - "version": "1.11.0", + "version": "1.12.1", "source": { "type": "git", "url": "https://github.com/webmozarts/assert.git", - "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + "reference": "9be6926d8b485f55b9229203f962b51ed377ba68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", - "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/9be6926d8b485f55b9229203f962b51ed377ba68", + "reference": "9be6926d8b485f55b9229203f962b51ed377ba68", "shasum": "" }, "require": { "ext-ctype": "*", + "ext-date": "*", + "ext-filter": "*", "php": "^7.2 || ^8.0" }, - "conflict": { - "phpstan/phpstan": "<0.12.20", - "vimeo/psalm": "<4.6.1 || 4.6.2" - }, - "require-dev": { - "phpunit/phpunit": "^8.5.13" + "suggest": { + "ext-intl": "", + "ext-simplexml": "", + "ext-spl": "" }, "type": "library", "extra": { @@ -2365,24 +2374,24 @@ ], "support": { "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/1.11.0" + "source": "https://github.com/webmozarts/assert/tree/1.12.1" }, - "time": "2022-06-03T18:03:27+00:00" + "time": "2025-10-29T15:56:20+00:00" } ], "packages-dev": [ { "name": "amphp/amp", - "version": "v2.6.4", + "version": "v2.6.5", "source": { "type": "git", "url": "https://github.com/amphp/amp.git", - "reference": "ded3d9be08f526089eb7ee8d9f16a9768f9dec2d" + "reference": "d7dda98dae26e56f3f6fcfbf1c1f819c9a993207" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/amp/zipball/ded3d9be08f526089eb7ee8d9f16a9768f9dec2d", - "reference": "ded3d9be08f526089eb7ee8d9f16a9768f9dec2d", + "url": "https://api.github.com/repos/amphp/amp/zipball/d7dda98dae26e56f3f6fcfbf1c1f819c9a993207", + "reference": "d7dda98dae26e56f3f6fcfbf1c1f819c9a993207", "shasum": "" }, "require": { @@ -2398,11 +2407,6 @@ "vimeo/psalm": "^3.12" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, "autoload": { "files": [ "lib/functions.php", @@ -2450,7 +2454,7 @@ "support": { "irc": "irc://irc.freenode.org/amphp", "issues": "https://github.com/amphp/amp/issues", - "source": "https://github.com/amphp/amp/tree/v2.6.4" + "source": "https://github.com/amphp/amp/tree/v2.6.5" }, "funding": [ { @@ -2458,7 +2462,7 @@ "type": "github" } ], - "time": "2024-03-21T18:52:26+00:00" + "time": "2025-09-03T19:41:28+00:00" }, { "name": "amphp/byte-stream", @@ -2533,16 +2537,16 @@ }, { "name": "amphp/parallel", - "version": "v1.4.3", + "version": "v1.4.4", "source": { "type": "git", "url": "https://github.com/amphp/parallel.git", - "reference": "3aac213ba7858566fd83d38ccb85b91b2d652cb0" + "reference": "508ca221f2f47235327db5120f0a89d43435b69b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/parallel/zipball/3aac213ba7858566fd83d38ccb85b91b2d652cb0", - "reference": "3aac213ba7858566fd83d38ccb85b91b2d652cb0", + "url": "https://api.github.com/repos/amphp/parallel/zipball/508ca221f2f47235327db5120f0a89d43435b69b", + "reference": "508ca221f2f47235327db5120f0a89d43435b69b", "shasum": "" }, "require": { @@ -2555,9 +2559,9 @@ "php": ">=7.1" }, "require-dev": { - "amphp/php-cs-fixer-config": "dev-master", + "amphp/php-cs-fixer-config": "^2", "amphp/phpunit-util": "^1.1", - "phpunit/phpunit": "^8 || ^7" + "phpunit/phpunit": "^9 || ^8 || ^7" }, "type": "library", "autoload": { @@ -2595,7 +2599,7 @@ ], "support": { "issues": "https://github.com/amphp/parallel/issues", - "source": "https://github.com/amphp/parallel/tree/v1.4.3" + "source": "https://github.com/amphp/parallel/tree/v1.4.4" }, "funding": [ { @@ -2603,7 +2607,7 @@ "type": "github" } ], - "time": "2023-03-23T08:04:23+00:00" + "time": "2024-12-08T16:28:11+00:00" }, { "name": "amphp/parallel-functions", @@ -2792,24 +2796,27 @@ }, { "name": "amphp/serialization", - "version": "v1.0.0", + "version": "v1.1.0", "source": { "type": "git", "url": "https://github.com/amphp/serialization.git", - "reference": "693e77b2fb0b266c3c7d622317f881de44ae94a1" + "reference": "fdf2834d78cebb0205fb2672676c1b1eb84371f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/serialization/zipball/693e77b2fb0b266c3c7d622317f881de44ae94a1", - "reference": "693e77b2fb0b266c3c7d622317f881de44ae94a1", + "url": "https://api.github.com/repos/amphp/serialization/zipball/fdf2834d78cebb0205fb2672676c1b1eb84371f0", + "reference": "fdf2834d78cebb0205fb2672676c1b1eb84371f0", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.4" }, "require-dev": { - "amphp/php-cs-fixer-config": "dev-master", - "phpunit/phpunit": "^9 || ^8 || ^7" + "amphp/php-cs-fixer-config": "^2", + "ext-json": "*", + "ext-zlib": "*", + "phpunit/phpunit": "^9", + "psalm/phar": "6.16.1" }, "type": "library", "autoload": { @@ -2844,9 +2851,15 @@ ], "support": { "issues": "https://github.com/amphp/serialization/issues", - "source": "https://github.com/amphp/serialization/tree/master" + "source": "https://github.com/amphp/serialization/tree/v1.1.0" }, - "time": "2020-03-25T21:39:07+00:00" + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2026-04-05T15:59:53+00:00" }, { "name": "amphp/sync", @@ -2918,25 +2931,31 @@ }, { "name": "behat/gherkin", - "version": "v4.10.0", + "version": "v4.17.0", "source": { "type": "git", "url": "https://github.com/Behat/Gherkin.git", - "reference": "cbb83c4c435dd8d05a161f2a5ae322e61b2f4db6" + "reference": "5c8b3149fac39b5a79942b64eeec59a5ee4001c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Gherkin/zipball/cbb83c4c435dd8d05a161f2a5ae322e61b2f4db6", - "reference": "cbb83c4c435dd8d05a161f2a5ae322e61b2f4db6", + "url": "https://api.github.com/repos/Behat/Gherkin/zipball/5c8b3149fac39b5a79942b64eeec59a5ee4001c0", + "reference": "5c8b3149fac39b5a79942b64eeec59a5ee4001c0", "shasum": "" }, "require": { - "php": "~7.2|~8.0" + "composer-runtime-api": "^2.2", + "php": ">=8.1 <8.6" }, "require-dev": { - "cucumber/cucumber": "dev-gherkin-24.1.0", - "phpunit/phpunit": "~8|~9", - "symfony/yaml": "~3|~4|~5|~6|~7" + "cucumber/gherkin-monorepo": "dev-gherkin-v39.1.0", + "friendsofphp/php-cs-fixer": "^3.77", + "mikey179/vfsstream": "^1.6", + "phpstan/extension-installer": "^1", + "phpstan/phpstan": "^2", + "phpstan/phpstan-phpunit": "^2", + "phpunit/phpunit": "^10.5", + "symfony/yaml": "^5.4 || ^6.4 || ^7.0" }, "suggest": { "symfony/yaml": "If you want to parse features, represented in YAML files" @@ -2948,8 +2967,8 @@ } }, "autoload": { - "psr-0": { - "Behat\\Gherkin": "src/" + "psr-4": { + "Behat\\Gherkin\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -2960,11 +2979,11 @@ { "name": "Konstantin Kudryashov", "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" + "homepage": "https://everzet.com" } ], "description": "Gherkin DSL parser for PHP", - "homepage": "http://behat.org/", + "homepage": "https://behat.org/", "keywords": [ "BDD", "Behat", @@ -2975,9 +2994,23 @@ ], "support": { "issues": "https://github.com/Behat/Gherkin/issues", - "source": "https://github.com/Behat/Gherkin/tree/v4.10.0" + "source": "https://github.com/Behat/Gherkin/tree/v4.17.0" }, - "time": "2024-10-19T14:46:06+00:00" + "funding": [ + { + "url": "https://github.com/acoulton", + "type": "github" + }, + { + "url": "https://github.com/carlos-granados", + "type": "github" + }, + { + "url": "https://github.com/stof", + "type": "github" + } + ], + "time": "2026-05-18T09:33:47+00:00" }, { "name": "codeception/codeception", @@ -3454,6 +3487,7 @@ "issues": "https://github.com/Codeception/phpunit-wrapper/issues", "source": "https://github.com/Codeception/phpunit-wrapper/tree/9.0.9" }, + "abandoned": true, "time": "2022-05-23T06:24:11+00:00" }, { @@ -3592,28 +3626,29 @@ }, { "name": "composer/pcre", - "version": "3.3.2", + "version": "3.4.0", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e" + "reference": "d5a341b3fb61f3001970940afb1d332968a183ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e", - "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e", + "url": "https://api.github.com/repos/composer/pcre/zipball/d5a341b3fb61f3001970940afb1d332968a183ed", + "reference": "d5a341b3fb61f3001970940afb1d332968a183ed", "shasum": "" }, "require": { "php": "^7.4 || ^8.0" }, "conflict": { - "phpstan/phpstan": "<1.11.10" + "phpstan/phpstan": "<2.2.2" }, "require-dev": { - "phpstan/phpstan": "^1.12 || ^2", - "phpstan/phpstan-strict-rules": "^1 || ^2", - "phpunit/phpunit": "^8 || ^9" + "phpstan/phpstan": "^2", + "phpstan/phpstan-deprecation-rules": "^2", + "phpstan/phpstan-strict-rules": "^2", + "phpunit/phpunit": "^9" }, "type": "library", "extra": { @@ -3651,7 +3686,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.3.2" + "source": "https://github.com/composer/pcre/tree/3.4.0" }, "funding": [ { @@ -3661,26 +3696,22 @@ { "url": "https://github.com/composer", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" } ], - "time": "2024-11-12T16:29:46+00:00" + "time": "2026-06-07T11:47:49+00:00" }, { "name": "composer/semver", - "version": "3.4.3", + "version": "3.4.4", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12" + "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", - "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", + "url": "https://api.github.com/repos/composer/semver/zipball/198166618906cb2de69b95d7d47e5fa8aa1b2b95", + "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95", "shasum": "" }, "require": { @@ -3732,7 +3763,7 @@ "support": { "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.4.3" + "source": "https://github.com/composer/semver/tree/3.4.4" }, "funding": [ { @@ -3742,13 +3773,9 @@ { "url": "https://github.com/composer", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" } ], - "time": "2024-09-19T14:15:21+00:00" + "time": "2025-08-20T19:15:30+00:00" }, { "name": "composer/xdebug-handler", @@ -3855,26 +3882,29 @@ }, { "name": "doctrine/deprecations", - "version": "1.1.4", + "version": "1.1.6", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9" + "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/31610dbb31faa98e6b5447b62340826f54fbc4e9", - "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", + "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, + "conflict": { + "phpunit/phpunit": "<=7.5 || >=14" + }, "require-dev": { - "doctrine/coding-standard": "^9 || ^12", - "phpstan/phpstan": "1.4.10 || 2.0.3", + "doctrine/coding-standard": "^9 || ^12 || ^14", + "phpstan/phpstan": "1.4.10 || 2.1.30", "phpstan/phpstan-phpunit": "^1.0 || ^2", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12.4 || ^13.0", "psr/log": "^1 || ^2 || ^3" }, "suggest": { @@ -3894,36 +3924,35 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.4" + "source": "https://github.com/doctrine/deprecations/tree/1.1.6" }, - "time": "2024-12-07T21:18:45+00:00" + "time": "2026-02-07T07:09:04+00:00" }, { "name": "doctrine/instantiator", - "version": "1.5.0", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" + "reference": "23da848e1a2308728fe5fdddabf4be17ff9720c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", - "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/23da848e1a2308728fe5fdddabf4be17ff9720c7", + "reference": "23da848e1a2308728fe5fdddabf4be17ff9720c7", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^8.4" }, "require-dev": { - "doctrine/coding-standard": "^9 || ^11", + "doctrine/coding-standard": "^14", "ext-pdo": "*", "ext-phar": "*", - "phpbench/phpbench": "^0.16 || ^1", - "phpstan/phpstan": "^1.4", - "phpstan/phpstan-phpunit": "^1", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.30 || ^5.4" + "phpbench/phpbench": "^1.2", + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^10.5.58" }, "type": "library", "autoload": { @@ -3950,7 +3979,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.5.0" + "source": "https://github.com/doctrine/instantiator/tree/2.1.0" }, "funding": [ { @@ -3966,7 +3995,7 @@ "type": "tidelift" } ], - "time": "2022-12-30T00:15:36+00:00" + "time": "2026-01-05T06:47:08+00:00" }, { "name": "felixfbecker/advanced-json-rpc", @@ -4071,25 +4100,26 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.9.2", + "version": "7.15.5", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "d281ed313b989f213357e3be1a179f02196ac99b" + "reference": "ee80339fd9177ba44c49cdb653ff02a4d1106b9a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d281ed313b989f213357e3be1a179f02196ac99b", - "reference": "d281ed313b989f213357e3be1a179f02196ac99b", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ee80339fd9177ba44c49cdb653ff02a4d1106b9a", + "reference": "ee80339fd9177ba44c49cdb653ff02a4d1106b9a", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.5.3 || ^2.0.3", - "guzzlehttp/psr7": "^2.7.0", + "guzzlehttp/promises": "^2.5.3", + "guzzlehttp/psr7": "^2.13.1", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", - "symfony/deprecation-contracts": "^2.2 || ^3.0" + "symfony/deprecation-contracts": "^2.5 || ^3.0", + "symfony/polyfill-php80": "^1.25" }, "provide": { "psr/http-client-implementation": "1.0" @@ -4097,9 +4127,10 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", "ext-curl": "*", - "guzzle/client-integration-tests": "3.0.2", + "guzzle/client-integration-tests": "3.0.3", + "guzzlehttp/test-server": "^0.7", "php-http/message-factory": "^1.1", - "phpunit/phpunit": "^8.5.39 || ^9.6.20", + "phpunit/phpunit": "^8.5.52 || ^9.6.34", "psr/log": "^1.1 || ^2.0 || ^3.0" }, "suggest": { @@ -4177,7 +4208,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.9.2" + "source": "https://github.com/guzzle/guzzle/tree/7.15.5" }, "funding": [ { @@ -4193,28 +4224,29 @@ "type": "tidelift" } ], - "time": "2024-07-24T11:22:20+00:00" + "time": "2026-08-24T09:21:06+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.0.4", + "version": "2.5.3", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455" + "reference": "cde49999552d185d64715fe9c1f77a2aadd2f9f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/f9c436286ab2892c7db7be8c8da4ef61ccf7b455", - "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455", + "url": "https://api.github.com/repos/guzzle/promises/zipball/cde49999552d185d64715fe9c1f77a2aadd2f9f1", + "reference": "cde49999552d185d64715fe9c1f77a2aadd2f9f1", "shasum": "" }, "require": { - "php": "^7.2.5 || ^8.0" + "php": "^7.2.5 || ^8.0", + "symfony/deprecation-contracts": "^2.5 || ^3.0" }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.39 || ^9.6.20" + "phpunit/phpunit": "^8.5.52 || ^9.6.34" }, "type": "library", "extra": { @@ -4260,7 +4292,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.4" + "source": "https://github.com/guzzle/promises/tree/2.5.3" }, "funding": [ { @@ -4276,27 +4308,29 @@ "type": "tidelift" } ], - "time": "2024-10-17T10:06:22+00:00" + "time": "2026-08-24T09:11:28+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.7.0", + "version": "2.13.1", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201" + "reference": "95e7828100de18b4e269fb1703be530082d5166d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201", - "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/95e7828100de18b4e269fb1703be530082d5166d", + "reference": "95e7828100de18b4e269fb1703be530082d5166d", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", "psr/http-factory": "^1.0", "psr/http-message": "^1.1 || ^2.0", - "ralouphie/getallheaders": "^3.0" + "ralouphie/getallheaders": "^3.0", + "symfony/deprecation-contracts": "^2.5 || ^3.0", + "symfony/polyfill-php80": "^1.25" }, "provide": { "psr/http-factory-implementation": "1.0", @@ -4304,8 +4338,9 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "http-interop/http-factory-tests": "0.9.0", - "phpunit/phpunit": "^8.5.39 || ^9.6.20" + "http-interop/http-factory-tests": "1.1.0", + "jshttp/mime-db": "1.54.0.1", + "phpunit/phpunit": "^8.5.52 || ^9.6.34" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" @@ -4376,7 +4411,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.7.0" + "source": "https://github.com/guzzle/psr7/tree/2.13.1" }, "funding": [ { @@ -4392,7 +4427,7 @@ "type": "tidelift" } ], - "time": "2024-07-18T11:15:46+00:00" + "time": "2026-08-24T09:13:11+00:00" }, { "name": "humbug/box", @@ -4494,16 +4529,16 @@ }, { "name": "justinrainbow/json-schema", - "version": "5.3.0", + "version": "5.3.4", "source": { "type": "git", "url": "https://github.com/jsonrainbow/json-schema.git", - "reference": "feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8" + "reference": "7df70ffaf31d98726801b4bc099e1fbdbe2e5e54" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8", - "reference": "feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8", + "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/7df70ffaf31d98726801b4bc099e1fbdbe2e5e54", + "reference": "7df70ffaf31d98726801b4bc099e1fbdbe2e5e54", "shasum": "" }, "require": { @@ -4553,9 +4588,9 @@ ], "support": { "issues": "https://github.com/jsonrainbow/json-schema/issues", - "source": "https://github.com/jsonrainbow/json-schema/tree/5.3.0" + "source": "https://github.com/jsonrainbow/json-schema/tree/5.3.4" }, - "time": "2024-07-06T21:00:26+00:00" + "time": "2026-05-04T18:54:58+00:00" }, { "name": "laravel/serializable-closure", @@ -4620,20 +4655,20 @@ }, { "name": "myclabs/deep-copy", - "version": "1.13.0", + "version": "1.14.0", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "024473a478be9df5fdaca2c793f2232fe788e414" + "reference": "8680aa248f8e07bc8fb43f56f0f5fc77a0c96aae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/024473a478be9df5fdaca2c793f2232fe788e414", - "reference": "024473a478be9df5fdaca2c793f2232fe788e414", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/8680aa248f8e07bc8fb43f56f0f5fc77a0c96aae", + "reference": "8680aa248f8e07bc8fb43f56f0f5fc77a0c96aae", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^8.0" }, "conflict": { "doctrine/collections": "<1.6.8", @@ -4668,15 +4703,15 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.13.0" + "source": "https://github.com/myclabs/DeepCopy/tree/1.14.0" }, "funding": [ { - "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", - "type": "tidelift" + "url": "https://github.com/mnapoli", + "type": "github" } ], - "time": "2025-02-12T12:17:51+00:00" + "time": "2026-08-11T10:17:44+00:00" }, { "name": "netresearch/jsonmapper", @@ -4836,24 +4871,26 @@ }, { "name": "paragonie/constant_time_encoding", - "version": "v2.7.0", + "version": "v3.1.3", "source": { "type": "git", "url": "https://github.com/paragonie/constant_time_encoding.git", - "reference": "52a0d99e69f56b9ec27ace92ba56897fe6993105" + "reference": "d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/52a0d99e69f56b9ec27ace92ba56897fe6993105", - "reference": "52a0d99e69f56b9ec27ace92ba56897fe6993105", + "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77", + "reference": "d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77", "shasum": "" }, "require": { - "php": "^7|^8" + "php": "^8" }, "require-dev": { - "phpunit/phpunit": "^6|^7|^8|^9", - "vimeo/psalm": "^1|^2|^3|^4" + "infection/infection": "^0", + "nikic/php-fuzzer": "^0", + "phpunit/phpunit": "^9|^10|^11", + "vimeo/psalm": "^4|^5|^6" }, "type": "library", "autoload": { @@ -4899,7 +4936,7 @@ "issues": "https://github.com/paragonie/constant_time_encoding/issues", "source": "https://github.com/paragonie/constant_time_encoding" }, - "time": "2024-05-08T12:18:48+00:00" + "time": "2025-09-24T15:06:41+00:00" }, { "name": "paragonie/pharaoh", @@ -5014,16 +5051,16 @@ }, { "name": "paragonie/sodium_compat", - "version": "v1.21.1", + "version": "v1.24.2", "source": { "type": "git", "url": "https://github.com/paragonie/sodium_compat.git", - "reference": "bb312875dcdd20680419564fe42ba1d9564b9e37" + "reference": "4524c98a826776c9a32d6ce06932563cb10f3995" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/bb312875dcdd20680419564fe42ba1d9564b9e37", - "reference": "bb312875dcdd20680419564fe42ba1d9564b9e37", + "url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/4524c98a826776c9a32d6ce06932563cb10f3995", + "reference": "4524c98a826776c9a32d6ce06932563cb10f3995", "shasum": "" }, "require": { @@ -5094,9 +5131,9 @@ ], "support": { "issues": "https://github.com/paragonie/sodium_compat/issues", - "source": "https://github.com/paragonie/sodium_compat/tree/v1.21.1" + "source": "https://github.com/paragonie/sodium_compat/tree/v1.24.2" }, - "time": "2024-04-22T22:05:04+00:00" + "time": "2026-08-18T23:44:07+00:00" }, { "name": "phar-io/manifest", @@ -5271,16 +5308,16 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.6.1", + "version": "5.6.7", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8" + "reference": "31a105931bc8ffa3a123383829772e832fd8d903" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8", - "reference": "e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/31a105931bc8ffa3a123383829772e832fd8d903", + "reference": "31a105931bc8ffa3a123383829772e832fd8d903", "shasum": "" }, "require": { @@ -5290,7 +5327,7 @@ "phpdocumentor/reflection-common": "^2.2", "phpdocumentor/type-resolver": "^1.7", "phpstan/phpdoc-parser": "^1.7|^2.0", - "webmozart/assert": "^1.9.1" + "webmozart/assert": "^1.9.1 || ^2" }, "require-dev": { "mockery/mockery": "~1.3.5 || ~1.6.0", @@ -5329,22 +5366,22 @@ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "support": { "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.1" + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.7" }, - "time": "2024-12-07T09:39:29+00:00" + "time": "2026-03-18T20:47:46+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "1.10.0", + "version": "1.12.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a" + "reference": "92a98ada2b93d9b201a613cb5a33584dde25f195" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/679e3ce485b99e84c775d28e2e96fade9a7fb50a", - "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/92a98ada2b93d9b201a613cb5a33584dde25f195", + "reference": "92a98ada2b93d9b201a613cb5a33584dde25f195", "shasum": "" }, "require": { @@ -5387,22 +5424,22 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.10.0" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.12.0" }, - "time": "2024-11-09T15:12:26+00:00" + "time": "2025-11-21T15:09:14+00:00" }, { "name": "phpstan/phpdoc-parser", - "version": "2.1.0", + "version": "2.3.5", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "9b30d6fd026b2c132b3985ce6b23bec09ab3aa68" + "reference": "148cefffaf0233e4c08cc13db8a195a56dd6dfe9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/9b30d6fd026b2c132b3985ce6b23bec09ab3aa68", - "reference": "9b30d6fd026b2c132b3985ce6b23bec09ab3aa68", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/148cefffaf0233e4c08cc13db8a195a56dd6dfe9", + "reference": "148cefffaf0233e4c08cc13db8a195a56dd6dfe9", "shasum": "" }, "require": { @@ -5434,9 +5471,9 @@ "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/2.1.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.5" }, - "time": "2025-02-19T13:28:12+00:00" + "time": "2026-08-31T16:05:28+00:00" }, { "name": "phpunit/php-code-coverage", @@ -5759,27 +5796,27 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.22", + "version": "9.6.37", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "f80235cb4d3caa59ae09be3adf1ded27521d1a9c" + "reference": "aceaa623912caf8e80bffea22fc4103a0a01565f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f80235cb4d3caa59ae09be3adf1ded27521d1a9c", - "reference": "f80235cb4d3caa59ae09be3adf1ded27521d1a9c", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/aceaa623912caf8e80bffea22fc4103a0a01565f", + "reference": "aceaa623912caf8e80bffea22fc4103a0a01565f", "shasum": "" }, "require": { "doctrine/instantiator": "^1.5.0 || ^2", "ext-dom": "*", + "ext-filter": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", - "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.12.1", + "myclabs/deep-copy": "^1.13.4", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=7.3", @@ -5790,11 +5827,11 @@ "phpunit/php-timer": "^5.0.3", "sebastian/cli-parser": "^1.0.2", "sebastian/code-unit": "^1.0.8", - "sebastian/comparator": "^4.0.8", + "sebastian/comparator": "^4.0.10", "sebastian/diff": "^4.0.6", "sebastian/environment": "^5.1.5", - "sebastian/exporter": "^4.0.6", - "sebastian/global-state": "^5.0.7", + "sebastian/exporter": "^4.0.9", + "sebastian/global-state": "^5.0.8", "sebastian/object-enumerator": "^4.0.4", "sebastian/resource-operations": "^3.0.4", "sebastian/type": "^3.2.1", @@ -5842,23 +5879,15 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.22" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.37" }, "funding": [ { - "url": "https://phpunit.de/sponsors.html", - "type": "custom" - }, - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", - "type": "tidelift" + "url": "https://phpunit.de/sponsoring.html", + "type": "other" } ], - "time": "2024-12-05T13:48:26+00:00" + "time": "2026-09-23T09:59:59+00:00" }, { "name": "psr/http-client", @@ -6283,16 +6312,16 @@ }, { "name": "sebastian/comparator", - "version": "4.0.8", + "version": "4.0.10", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a" + "reference": "e4df00b9b3571187db2831ae9aada2c6efbd715d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/e4df00b9b3571187db2831ae9aada2c6efbd715d", + "reference": "e4df00b9b3571187db2831ae9aada2c6efbd715d", "shasum": "" }, "require": { @@ -6345,15 +6374,27 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.10" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/comparator", + "type": "tidelift" } ], - "time": "2022-09-14T12:41:17+00:00" + "time": "2026-01-24T09:22:56+00:00" }, { "name": "sebastian/complexity", @@ -6543,16 +6584,16 @@ }, { "name": "sebastian/exporter", - "version": "4.0.6", + "version": "4.0.9", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72" + "reference": "4352c1a3df741a7ba9e61af6fed51d1fee41cbf7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72", - "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/4352c1a3df741a7ba9e61af6fed51d1fee41cbf7", + "reference": "4352c1a3df741a7ba9e61af6fed51d1fee41cbf7", "shasum": "" }, "require": { @@ -6608,28 +6649,40 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6" + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.9" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter", + "type": "tidelift" } ], - "time": "2024-03-02T06:33:00+00:00" + "time": "2026-08-11T04:55:59+00:00" }, { "name": "sebastian/global-state", - "version": "5.0.7", + "version": "5.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9" + "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", - "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/b6781316bdcd28260904e7cc18ec983d0d2ef4f6", + "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6", "shasum": "" }, "require": { @@ -6672,15 +6725,27 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.7" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.8" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/global-state", + "type": "tidelift" } ], - "time": "2024-03-02T06:35:11+00:00" + "time": "2025-08-10T07:10:35+00:00" }, { "name": "sebastian/lines-of-code", @@ -6853,16 +6918,16 @@ }, { "name": "sebastian/recursion-context", - "version": "4.0.5", + "version": "4.0.7", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" + "reference": "c85be6922b7fd365942b986b9a50397d65407611" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/c85be6922b7fd365942b986b9a50397d65407611", + "reference": "c85be6922b7fd365942b986b9a50397d65407611", "shasum": "" }, "require": { @@ -6904,15 +6969,27 @@ "homepage": "https://github.com/sebastianbergmann/recursion-context", "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.7" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context", + "type": "tidelift" } ], - "time": "2023-02-03T06:07:39+00:00" + "time": "2026-08-11T05:25:24+00:00" }, { "name": "sebastian/resource-operations", @@ -7079,16 +7156,16 @@ }, { "name": "seld/jsonlint", - "version": "1.11.0", + "version": "1.12.1", "source": { "type": "git", "url": "https://github.com/Seldaek/jsonlint.git", - "reference": "1748aaf847fc731cfad7725aec413ee46f0cc3a2" + "reference": "9a90eb5d32d5a500296bf43f946d60246444d5f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/1748aaf847fc731cfad7725aec413ee46f0cc3a2", - "reference": "1748aaf847fc731cfad7725aec413ee46f0cc3a2", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/9a90eb5d32d5a500296bf43f946d60246444d5f7", + "reference": "9a90eb5d32d5a500296bf43f946d60246444d5f7", "shasum": "" }, "require": { @@ -7127,7 +7204,7 @@ ], "support": { "issues": "https://github.com/Seldaek/jsonlint/issues", - "source": "https://github.com/Seldaek/jsonlint/tree/1.11.0" + "source": "https://github.com/Seldaek/jsonlint/tree/1.12.1" }, "funding": [ { @@ -7139,20 +7216,20 @@ "type": "tidelift" } ], - "time": "2024-07-11T14:55:45+00:00" + "time": "2026-06-12T11:32:29+00:00" }, { "name": "squizlabs/php_codesniffer", - "version": "3.11.3", + "version": "3.13.6", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "ba05f990e79cbe69b9f35c8c1ac8dca7eecc3a10" + "reference": "4c378e1a528ea066890fc2397cbdd2f94eb2fc91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/ba05f990e79cbe69b9f35c8c1ac8dca7eecc3a10", - "reference": "ba05f990e79cbe69b9f35c8c1ac8dca7eecc3a10", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/4c378e1a528ea066890fc2397cbdd2f94eb2fc91", + "reference": "4c378e1a528ea066890fc2397cbdd2f94eb2fc91", "shasum": "" }, "require": { @@ -7169,11 +7246,6 @@ "bin/phpcs" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" @@ -7219,11 +7291,11 @@ "type": "open_collective" }, { - "url": "https://thanks.dev/phpcsstandards", + "url": "https://thanks.dev/u/gh/phpcsstandards", "type": "thanks_dev" } ], - "time": "2025-01-23T17:04:15+00:00" + "time": "2026-08-06T00:17:32+00:00" }, { "name": "symfony/browser-kit", @@ -7365,16 +7437,16 @@ }, { "name": "symfony/dom-crawler", - "version": "v5.4.48", + "version": "v5.4.52", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "b57df76f4757a9a8dfbb57ba48d7780cc20776c6" + "reference": "b4cf17ff405a77341ad86e81e06ff09298f5aa8f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/b57df76f4757a9a8dfbb57ba48d7780cc20776c6", - "reference": "b57df76f4757a9a8dfbb57ba48d7780cc20776c6", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/b4cf17ff405a77341ad86e81e06ff09298f5aa8f", + "reference": "b4cf17ff405a77341ad86e81e06ff09298f5aa8f", "shasum": "" }, "require": { @@ -7420,7 +7492,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v5.4.48" + "source": "https://github.com/symfony/dom-crawler/tree/v5.4.52" }, "funding": [ { @@ -7431,12 +7503,16 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-11-13T14:36:38+00:00" + "time": "2026-04-17T07:30:55+00:00" }, { "name": "symfony/event-dispatcher", @@ -7525,16 +7601,16 @@ }, { "name": "symfony/process", - "version": "v5.4.47", + "version": "v5.4.51", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "5d1662fb32ebc94f17ddb8d635454a776066733d" + "reference": "467bfc56f18f5ef6d5ccb09324d7e988c1c0a98f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/5d1662fb32ebc94f17ddb8d635454a776066733d", - "reference": "5d1662fb32ebc94f17ddb8d635454a776066733d", + "url": "https://api.github.com/repos/symfony/process/zipball/467bfc56f18f5ef6d5ccb09324d7e988c1c0a98f", + "reference": "467bfc56f18f5ef6d5ccb09324d7e988c1c0a98f", "shasum": "" }, "require": { @@ -7567,7 +7643,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.4.47" + "source": "https://github.com/symfony/process/tree/v5.4.51" }, "funding": [ { @@ -7578,25 +7654,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-11-06T11:36:42+00:00" + "time": "2026-01-26T15:53:37+00:00" }, { "name": "symfony/yaml", - "version": "v5.4.45", + "version": "v5.4.53", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "a454d47278cc16a5db371fe73ae66a78a633371e" + "reference": "ae0bbb46f77ff56591d0a0259c7f458f4b3e1f77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/a454d47278cc16a5db371fe73ae66a78a633371e", - "reference": "a454d47278cc16a5db371fe73ae66a78a633371e", + "url": "https://api.github.com/repos/symfony/yaml/zipball/ae0bbb46f77ff56591d0a0259c7f458f4b3e1f77", + "reference": "ae0bbb46f77ff56591d0a0259c7f458f4b3e1f77", "shasum": "" }, "require": { @@ -7642,7 +7722,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v5.4.45" + "source": "https://github.com/symfony/yaml/tree/v5.4.53" }, "funding": [ { @@ -7653,25 +7733,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:11:13+00:00" + "time": "2026-05-20T17:13:41+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.3", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", - "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c", + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c", "shasum": "" }, "require": { @@ -7700,7 +7784,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.3" + "source": "https://github.com/theseer/tokenizer/tree/1.3.1" }, "funding": [ { @@ -7708,7 +7792,7 @@ "type": "github" } ], - "time": "2024-03-03T12:36:25+00:00" + "time": "2025-11-17T20:03:58+00:00" }, { "name": "ulrichsg/getopt-php", @@ -7922,14 +8006,15 @@ ], "aliases": [], "minimum-stability": "stable", - "stability-flags": {}, + "stability-flags": { + "phalcon/phalcon": 5 + }, "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "^7.4||~8.0||~8.1||~8.2||~8.3", - "ext-pdo": "*", - "ext-phalcon": "^5.0.0" + "php": ">=8.2 <9.0", + "ext-pdo": "*" }, "platform-dev": {}, - "plugin-api-version": "2.6.0" + "plugin-api-version": "2.9.0" } diff --git a/docker-compose.yml b/docker-compose.yml index 2b411a420..41b00b21a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,57 +1,70 @@ -version: "3.6" +name: phalcon-devtools + services: - service_php: + phalcon-devtools: build: context: ./docker/php + args: + PHP_VERSION: ${PHP_VERSION:-8.4} + working_dir: /app restart: unless-stopped + volumes: - ./:/app + depends_on: - - service_mysql - - service_postgres - links: - - service_mysql - - service_postgres + - mysql + - postgres - service_nginx: + nginx: image: nginx:alpine restart: unless-stopped + ports: - - 8081:80 + - "8081:80" + volumes: - ./:/app - ./docker/nginx/conf.d:/etc/nginx/conf.d - ./docker/nginx/fastcgi.conf:/etc/nginx/fastcgi.conf - ./docker/nginx/fastcgi-php.conf:/etc/nginx/fastcgi-php.conf + depends_on: - - service_php + - phalcon-devtools - service_mysql: + mysql: image: mariadb restart: unless-stopped + environment: - - MYSQL_DATABASE=devtools - - MYSQL_USER=devtools - - MYSQL_PASSWORD=password - - MYSQL_ROOT_PASSWORD=password + MYSQL_DATABASE: devtools + MYSQL_USER: devtools + MYSQL_PASSWORD: password + MYSQL_ROOT_PASSWORD: password + volumes: - db_mysql_data:/var/lib/mysql/ - ./docker/mysql/config:/etc/mysql/conf.d/ - service_postgres: + postgres: image: postgis/postgis:13-master restart: unless-stopped + environment: - - POSTGRES_USER=devtools - - POSTGRES_PASSWORD=password - - POSTGRES_DB=devtools + POSTGRES_USER: devtools + POSTGRES_PASSWORD: password + POSTGRES_DB: devtools + volumes: - db_postgres_data:/var/lib/postgresql/data + healthcheck: - test: pg_isready -q -d devtools -U devtools + test: + - CMD-SHELL + - pg_isready -q -d devtools -U devtools timeout: 5s volumes: db_mysql_data: - db_postgres_data: + db_postgres_data: \ No newline at end of file diff --git a/docker/nginx/conf.d/default.conf b/docker/nginx/conf.d/default.conf index 0c150662f..1b39e8872 100644 --- a/docker/nginx/conf.d/default.conf +++ b/docker/nginx/conf.d/default.conf @@ -16,7 +16,7 @@ server { } location ~ \.php$ { - fastcgi_pass service_php:8000; + fastcgi_pass phalcon-devtools:8000; include fastcgi-php.conf; fastcgi_buffers 16 32k; diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile index 9413daa58..caa87f2b0 100644 --- a/docker/php/Dockerfile +++ b/docker/php/Dockerfile @@ -1,60 +1,58 @@ -FROM debian:bookworm-slim +ARG PHP_VERSION=8.4 -ARG PHP_VERSION=${PHP_VERSION:-7.4} +FROM php:${PHP_VERSION}-fpm-bookworm -ENV PATH=/root/composer/vendor/bin:/app/vendor/bin:/app/bin:/app:${PATH} \ +ARG PHP_VERSION + +ENV PATH=/root/.composer/vendor/bin:/app/vendor/bin:/app/bin:/app:${PATH} \ PHP_VERSION=${PHP_VERSION} -LABEL description="Docker image to build Phalcon on Debian Bookworm" \ - maintainer="Phalcon Team " \ - vendor=Phalcon \ - name="com.phalconphp.images.build.bookworm-${PHP_VERSION}" - -# Installing php and extentions -RUN set -eux \ - && apt-get update \ - && apt-get install --no-install-recommends -yq \ - mc nano git wget curl zip unzip htop re2c ca-certificates lsb-release \ - && curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb \ - && dpkg -i /tmp/debsuryorg-archive-keyring.deb \ - && echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list \ - && apt-get update \ - && apt-get install --no-install-recommends -yq \ - php${PHP_VERSION}-cli \ - php${PHP_VERSION}-fpm \ - php${PHP_VERSION}-dev \ - php${PHP_VERSION}-common \ - php${PHP_VERSION}-curl \ - php${PHP_VERSION}-gettext \ - php${PHP_VERSION}-intl \ - php${PHP_VERSION}-mbstring \ - php${PHP_VERSION}-mysqli \ - php${PHP_VERSION}-opcache \ - php${PHP_VERSION}-pdo_* \ - php${PHP_VERSION}-pgsql \ - php${PHP_VERSION}-shmop \ - php${PHP_VERSION}-xml \ - php${PHP_VERSION}-xml \ - php${PHP_VERSION}-zip \ - php${PHP_VERSION}-psr \ - php${PHP_VERSION}-phalcon5 \ - && apt-get autoremove --purge -y \ - && apt-get autoclean -y \ - && apt-get clean -y \ - && rm -rf /tmp/* /var/tmp/* \ - && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ - && find /var/cache -type f -delete \ - && find /var/log -type f | while read f; do echo -n '' > ${f}; done - -# Editing www.conf -RUN echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d \ - && sed -i -e "s/^;clear_env = no$/clear_env = no/" /etc/php/${PHP_VERSION}/fpm/pool.d/www.conf \ - && sed -i -e "/listen = .*/c\listen = [::]:8000" /etc/php/${PHP_VERSION}/fpm/pool.d/www.conf - -COPY --from=composer /usr/bin/composer /usr/bin/composer +LABEL description="Docker image for Phalcon DevTools 6 development" \ + maintainer="Phalcon Team team@phalcon.io" \ + vendor="Phalcon" \ + name="com.phalconphp.devtools.php-${PHP_VERSION}" + +# System packages and PHP extensions required by DevTools/tests. +RUN set -eux; \ + apt-get update; \ + apt-get install --no-install-recommends -y \ + ca-certificates \ + curl \ + git \ + htop \ + libicu-dev \ + libonig-dev \ + libpq-dev \ + libxml2-dev \ + libzip-dev \ + mc \ + nano \ + unzip \ + zip; \ + \ + docker-php-ext-install -j"$(nproc)" \ + gettext \ + intl \ + mbstring \ + mysqli \ + opcache \ + pdo_mysql \ + pdo_pgsql \ + shmop \ + xml \ + zip; \ + \ + rm -rf /var/lib/apt/lists/* + +# Keep the port expected by the existing Nginx configuration. +RUN set -eux; \ + sed -ri 's!^listen = .*!listen = 8000!' /usr/local/etc/php-fpm.d/www.conf; \ + sed -ri 's!^;?clear_env = .*!clear_env = no!' /usr/local/etc/php-fpm.d/www.conf + +COPY --from=composer:2 /usr/bin/composer /usr/bin/composer WORKDIR /app EXPOSE 8000 -ENTRYPOINT ["/bin/bash", "-c", "/usr/sbin/php-fpm${PHP_VERSION} --nodaemonize --fpm-config=/etc/php/${PHP_VERSION}/fpm/pool.d/www.conf"] +CMD ["php-fpm"] \ No newline at end of file diff --git a/src/Utils/SystemInfo.php b/src/Utils/SystemInfo.php index 9d2611543..ab7707eba 100644 --- a/src/Utils/SystemInfo.php +++ b/src/Utils/SystemInfo.php @@ -1,4 +1,5 @@ (new Version())->get(), - 'Phalcon Version' => (new PhVersion())->get(), + 'Phalcon Version' => $this->getPhalconVersion(), 'AdminLTE Version' => '3.0.1', ]; } + private function getPhalconVersion(): string + { + $version = InstalledVersions::getPrettyVersion('phalcon/phalcon'); + + if (null !== $version) { + return ltrim($version, 'v'); + } + + return (new PhVersion())->get(); + } + public function getEnvironment(): array { return [ diff --git a/src/Version.php b/src/Version.php index d25f5f3bf..a60488602 100644 --- a/src/Version.php +++ b/src/Version.php @@ -27,7 +27,7 @@ class Version extends PhVersion // phpcs:disable protected function getVersion(): array { - return [5, 0, 0, 0, 0]; + return [6, 0, 0, 1, 1]; } // phpcs:enable } From 23d3251954face77ad773523a900787bdeebe26c Mon Sep 17 00:00:00 2001 From: Romeo Manzur Date: Wed, 23 Sep 2026 18:06:57 -0600 Subject: [PATCH 03/15] Add model generator test fixture Assisted-by: ChatGPT --- .gitignore | 5 +++++ tests/_data/model-project/.phalcon/.gitkeep | 0 .../_data/model-project/app/config/config.php | 21 +++++++++++++++++++ .../_data/model-project/app/models/.gitignore | 2 ++ 4 files changed, 28 insertions(+) create mode 100644 tests/_data/model-project/.phalcon/.gitkeep create mode 100644 tests/_data/model-project/app/config/config.php create mode 100644 tests/_data/model-project/app/models/.gitignore diff --git a/.gitignore b/.gitignore index 8e19f72a6..28e1b4050 100644 --- a/.gitignore +++ b/.gitignore @@ -10,10 +10,15 @@ *.iml # local tests + .local/ .phalcon/ dummy/ default/ +# DevTools model generator test fixture +!tests/_data/model-project/.phalcon/ +!tests/_data/model-project/.phalcon/.gitkeep + # composer vendor/ diff --git a/tests/_data/model-project/.phalcon/.gitkeep b/tests/_data/model-project/.phalcon/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/tests/_data/model-project/app/config/config.php b/tests/_data/model-project/app/config/config.php new file mode 100644 index 000000000..3e7a6aece --- /dev/null +++ b/tests/_data/model-project/app/config/config.php @@ -0,0 +1,21 @@ + [ + 'adapter' => 'Mysql', + 'host' => 'mysql', + 'port' => 3306, + 'username' => 'devtools', + 'password' => 'password', + 'dbname' => 'devtools', + 'charset' => 'utf8mb4', + ], + + 'application' => [ + 'modelsDir' => __DIR__ . '/../models/', + ], +]); \ No newline at end of file diff --git a/tests/_data/model-project/app/models/.gitignore b/tests/_data/model-project/app/models/.gitignore new file mode 100644 index 000000000..c96a04f00 --- /dev/null +++ b/tests/_data/model-project/app/models/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file From 9f793c8e81fc3182d7265cbdf994e977f018c7cb Mon Sep 17 00:00:00 2001 From: Romeo Manzur Date: Wed, 23 Sep 2026 19:09:18 -0600 Subject: [PATCH 04/15] Generate unique aliases for duplicate model relations Assisted-by: ChatGPT --- src/Builder/Component/Model.php | 388 ++++++++++++++++++++++++++++++-- 1 file changed, 371 insertions(+), 17 deletions(-) diff --git a/src/Builder/Component/Model.php b/src/Builder/Component/Model.php index cba38afe3..20ee9edec 100644 --- a/src/Builder/Component/Model.php +++ b/src/Builder/Component/Model.php @@ -163,7 +163,11 @@ public function build(): void $fields = $db->describeColumns($table, $schema); $referenceList = $this->getReferenceList($schema, $db); + $relations = []; + /** + * Reverse relations: other tables reference this model. + */ foreach ($referenceList as $tableName => $references) { foreach ($references as $reference) { if ($reference->getReferencedTable() !== $this->modelOptions->getOption('name')) { @@ -171,32 +175,83 @@ public function build(): void } $entityNamespace = $this->modelOptions->hasOption('namespace') - ? $this->modelOptions->getOption('namespace') . "\\" : ''; + ? $this->modelOptions->getOption('namespace') . '\\' + : ''; $refColumns = $reference->getReferencedColumns(); - $columns = $reference->getColumns(); - $initialize[] = $snippet->getRelation( - 'hasMany', - $this->getFieldName($refColumns[0]), - $entityNamespace . $helper->camelize($tableName, '_-'), - $this->getFieldName($columns[0]), - "['alias' => '" . $helper->camelize($tableName, '_-') . "']" - ); + $columns = $reference->getColumns(); + + $baseAlias = $helper->camelize($tableName, '_-'); + + $relations[] = [ + 'type' => 'hasMany', + 'field' => $this->getFieldName($refColumns[0]), + 'entity' => $entityNamespace . $helper->camelize($tableName, '_-'), + 'relatedField' => $this->getFieldName($columns[0]), + 'baseAlias' => $baseAlias, + + // FK from the referencing table. + // Example: games.away_team_id + 'roleField' => $columns[0], + + // The FK points to the current table. + // Example: teams + 'roleTable' => $this->modelOptions->getOption('name'), + ]; } } - foreach ($db->describeReferences($this->modelOptions->getOption('name'), $schema) as $reference) { + /** + * Direct relations: this model references other tables. + */ + foreach ( + $db->describeReferences( + $this->modelOptions->getOption('name'), + $schema + ) as $reference + ) { $entityNamespace = $this->modelOptions->hasOption('namespace') - ? $this->modelOptions->getOption('namespace') : ''; + ? $this->modelOptions->getOption('namespace') + : ''; $refColumns = $reference->getReferencedColumns(); - $columns = $reference->getColumns(); + $columns = $reference->getColumns(); + + $referencedTable = $reference->getReferencedTable(); + $baseAlias = $helper->camelize($referencedTable, '_-'); + + $relations[] = [ + 'type' => 'belongsTo', + 'field' => $this->getFieldName($columns[0]), + 'entity' => $this->getEntityClassName( + $reference, + $entityNamespace + ), + 'relatedField' => $this->getFieldName($refColumns[0]), + 'baseAlias' => $baseAlias, + + // FK from the current table. + // Example: games.home_team_id + 'roleField' => $columns[0], + + // The FK points to this table. + // Example: teams + 'roleTable' => $referencedTable, + ]; + } + + /** + * Resolve duplicate aliases before generating initialize(). + */ + $relations = $this->resolveRelationAliases($relations); + + foreach ($relations as $relation) { $initialize[] = $snippet->getRelation( - 'belongsTo', - $this->getFieldName($columns[0]), - $this->getEntityClassName($reference, $entityNamespace), - $this->getFieldName($refColumns[0]), - "['alias' => '" . $helper->camelize($reference->getReferencedTable(), '_-') . "']" + $relation['type'], + $relation['field'], + $relation['entity'], + $relation['relatedField'], + "['alias' => '" . $relation['alias'] . "']" ); } @@ -594,6 +649,92 @@ protected function checkDataBaseParam(): void } } + /** + * Resolve relation aliases while preserving the historical DevTools alias + * whenever a canonical relation exists. + * + * Examples: + * + * team_id + * => Teams + * + * home_team_id + * away_team_id + * => TeamsHome + * => TeamsAway + * + * user_id + * user_id_updated + * => Users + * => UsersUpdated + * + * @param array $relations + * + * @return array + */ + protected function resolveRelationAliases(array $relations): array + { + $counts = []; + + foreach ($relations as $relation) { + $baseAlias = $relation['baseAlias']; + + $counts[$baseAlias] = ($counts[$baseAlias] ?? 0) + 1; + } + + $usedAliases = []; + + foreach ($relations as $index => $relation) { + $baseAlias = $relation['baseAlias']; + + /** + * No collision: preserve the historical DevTools alias. + */ + if ($counts[$baseAlias] === 1) { + $alias = $baseAlias; + } else { + $role = $this->getRelationRole( + $relation['roleField'], + $relation['roleTable'] + ); + + /** + * A relation without a semantic role is considered the + * canonical relation and keeps the original alias. + * + * user_id => Users + * + * Additional relations receive a semantic suffix: + * + * user_id_updated => UsersUpdated + */ + $alias = $role !== '' + ? $baseAlias . $role + : $baseAlias; + } + + /** + * Last-resort protection against collisions. + * + * This should normally only happen when the database schema + * does not provide enough semantic information to distinguish + * two relations. + */ + $originalAlias = $alias; + $suffix = 2; + + while (isset($usedAliases[$alias])) { + $alias = $originalAlias . $suffix; + $suffix++; + } + + $usedAliases[$alias] = true; + $relations[$index]['alias'] = $alias; + } + + return $relations; + } + /** * @param ReferenceInterface $reference * @param string $namespace @@ -690,4 +831,217 @@ protected function getPHPType(int $type): string return 'string'; } } + + /** + * Extract a semantic role from a foreign-key field. + * + * Examples: + * + * team_id + teams => '' + * home_team_id + teams => Home + * team_home_id + teams => Home + * team_id_home + teams => Home + * + * user_id + users => '' + * user_id_updated + users => Updated + * updated_user_id + users => Updated + * + * created_by_user_id + users => CreatedBy + * + * @param string $field + * @param string $referencedTable + * + * @return string + */ + protected function getRelationRole( + string $field, + string $referencedTable + ): string { + /** + * Normalize camelCase/PascalCase before splitting. + * + * userIdUpdated => user_Id_Updated + */ + $normalizedField = preg_replace( + '/([a-z0-9])([A-Z])/', + '$1_$2', + $field + ); + + $fieldParts = preg_split( + '/[_-]+/', + strtolower((string) $normalizedField), + -1, + PREG_SPLIT_NO_EMPTY + ); + + if (!$fieldParts) { + return ''; + } + + /** + * "id" describes the FK implementation, not its semantic role. + * + * user_id_updated + * => user, updated + * + * updated_user_id + * => updated, user + */ + $fieldParts = array_values( + array_filter( + $fieldParts, + static fn(string $part): bool => $part !== 'id' + ) + ); + + if (!$fieldParts) { + return ''; + } + + $normalizedTable = preg_replace( + '/([a-z0-9])([A-Z])/', + '$1_$2', + $referencedTable + ); + + $tableParts = preg_split( + '/[_-]+/', + strtolower((string) $normalizedTable), + -1, + PREG_SPLIT_NO_EMPTY + ); + + if (!$tableParts) { + return Utils::camelize( + implode('_', $fieldParts), + '_-' + ); + } + + /** + * Convert the final table token to its probable singular form. + * + * teams => team + * users => user + * categories => category + * statuses => status + */ + $lastIndex = count($tableParts) - 1; + + $tableParts[$lastIndex] = $this->singularizeRelationToken( + $tableParts[$lastIndex] + ); + + /** + * Remove the referenced entity wherever it appears in the FK. + * + * home_team - team => home + * team_home - team => home + * user_updated - user => updated + * updated_user - user => updated + */ + $fieldParts = $this->removeRelationEntityParts( + $fieldParts, + $tableParts + ); + + if (!$fieldParts) { + /** + * No remaining parts means this is the canonical FK. + * + * team_id => '' + * user_id => '' + */ + return ''; + } + + return Utils::camelize( + implode('_', $fieldParts), + '_-' + ); + } + + /** + * Singularize the last token of a table name only for relation-role + * detection. This is deliberately conservative and is not intended + * to be a general-purpose inflector. + */ + protected function singularizeRelationToken(string $token): string + { + $length = strlen($token); + + if ($length <= 1) { + return $token; + } + + if ($length > 3 && str_ends_with($token, 'ies')) { + return substr($token, 0, -3) . 'y'; + } + + if ( + $length > 3 && + ( + str_ends_with($token, 'sses') || + str_ends_with($token, 'xes') || + str_ends_with($token, 'zes') || + str_ends_with($token, 'ches') || + str_ends_with($token, 'shes') || + str_ends_with($token, 'ses') + ) + ) { + return substr($token, 0, -2); + } + + if ( + $length > 2 && + str_ends_with($token, 's') && + !str_ends_with($token, 'ss') + ) { + return substr($token, 0, -1); + } + + return $token; + } + + /** + * Remove the referenced entity tokens from the FK tokens. + * + * @param array $fieldParts + * @param array $entityParts + * + * @return array + */ + protected function removeRelationEntityParts( + array $fieldParts, + array $entityParts + ): array { + $fieldCount = count($fieldParts); + $entityCount = count($entityParts); + + if ($entityCount === 0 || $entityCount > $fieldCount) { + return $fieldParts; + } + + for ($i = 0; $i <= $fieldCount - $entityCount; $i++) { + $matches = true; + + for ($j = 0; $j < $entityCount; $j++) { + if ($fieldParts[$i + $j] !== $entityParts[$j]) { + $matches = false; + break; + } + } + + if (!$matches) { + continue; + } + + array_splice($fieldParts, $i, $entityCount); + + return array_values($fieldParts); + } + + return $fieldParts; + } } From 16ee8a43a47060a5ec6efa4d0780808837472032 Mon Sep 17 00:00:00 2001 From: Romeo Manzur Date: Thu, 24 Sep 2026 11:18:00 -0600 Subject: [PATCH 05/15] Modernize dependencies and Phalcon 6 runtime support Assisted-by: ChatGPT --- composer.json | 44 +- composer.lock | 9060 +++++++++-------- src/Builder/Project/Simple.php | 18 +- src/Error/ErrorHandler.php | 22 +- src/Mvc/Controller/Base.php | 6 +- src/Mvc/Controller/CodemirrorTrait.php | 4 +- src/Web/Tools/Controllers/ErrorController.php | 4 +- templates/project/simple/composer.json | 11 + templates/project/simple/index.php | 2 + 9 files changed, 5098 insertions(+), 4073 deletions(-) create mode 100644 templates/project/simple/composer.json diff --git a/composer.json b/composer.json index e9174eb93..398dfed7a 100644 --- a/composer.json +++ b/composer.json @@ -29,29 +29,34 @@ }, "config": { "optimize-autoloader": true, - "sort-packages": true + "sort-packages": true, + "platform": { + "php": "8.2.27" + } }, "require": { "php": ">=8.2 <9.0", "ext-pdo": "*", - "nikic/php-parser": "^4.2.4", + "nikic/php-parser": "^5.9", + "phalcon/annotations": "1.0.x-dev", + "phalcon/migrations": "dev-master", "phalcon/phalcon": "^6.0@RC", - "psy/psysh": "~0.9", - "vlucas/phpdotenv": "^3.6|^4.0|^5.0" + "phalcon/volt": "1.0.x-dev", + "psy/psysh": "^0.12.24", + "vlucas/phpdotenv": "^5.7" }, "require-dev": { - "humbug/box": "^3.11", - "codeception/codeception": "^4.1", - "phpdocumentor/reflection-docblock": "^5.2", - "phpunit/phpunit": "^9.0", - "codeception/specify": "^1.2", - "codeception/verify": "^1.2", - "squizlabs/php_codesniffer": "^3.7", - "vimeo/psalm": "^4.6", - "codeception/module-phpbrowser": "^1.0", - "codeception/module-filesystem": "^1.0", - "codeception/module-asserts": "^1.3", - "codeception/module-cli": "^1.0" + "codeception/codeception": "^5.3", + "codeception/module-asserts": "^3.3", + "codeception/module-cli": "^2.0", + "codeception/module-filesystem": "^3.0", + "codeception/module-phpbrowser": "^4.1", + "humbug/box": "^4.7", + "phpdocumentor/reflection-docblock": "^5.4", + "phpstan/phpstan": "^2.2", + "phpunit/phpunit": "^11.5", + "squizlabs/php_codesniffer": "^3.13", + "vimeo/psalm": "^6.16" }, "autoload": { "psr-4": { @@ -72,5 +77,10 @@ }, "bin": [ "phalcon" - ] + ], + "repositories": [{ + "name": "phalcon-migrations", + "type": "git", + "url": "https://github.com/phalcon/migrations.git" + }] } diff --git a/composer.lock b/composer.lock index 5b8dada12..e3d61ee20 100644 --- a/composer.lock +++ b/composer.lock @@ -4,44 +4,40 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "fe52ec1a1565f218e480c78cac95dd8f", + "content-hash": "da3940330d547a6dcdfe568431c0ee42", "packages": [ { - "name": "composer/package-versions-deprecated", - "version": "1.11.99.5", + "name": "amphp/amp", + "version": "v3.1.3", "source": { "type": "git", - "url": "https://github.com/composer/package-versions-deprecated.git", - "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d" + "url": "https://github.com/amphp/amp.git", + "reference": "73c38b323ff8d790abf0f76c56fcc892bda4111a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b4f54f74ef3453349c24a845d22392cd31e65f1d", - "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d", + "url": "https://api.github.com/repos/amphp/amp/zipball/73c38b323ff8d790abf0f76c56fcc892bda4111a", + "reference": "73c38b323ff8d790abf0f76c56fcc892bda4111a", "shasum": "" }, "require": { - "composer-plugin-api": "^1.1.0 || ^2.0", - "php": "^7 || ^8" - }, - "replace": { - "ocramius/package-versions": "1.11.99" + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2" }, "require-dev": { - "composer/composer": "^1.9.3 || ^2.0@dev", - "ext-zip": "^1.13", - "phpunit/phpunit": "^6.5 || ^7" - }, - "type": "composer-plugin", - "extra": { - "class": "PackageVersions\\Installer", - "branch-alias": { - "dev-master": "1.x-dev" - } + "amphp/php-cs-fixer-config": "^2", + "phpunit/phpunit": "^9", + "psalm/phar": "6.16.1" }, + "type": "library", "autoload": { + "files": [ + "src/functions.php", + "src/Future/functions.php", + "src/Internal/functions.php" + ], "psr-4": { - "PackageVersions\\": "src/PackageVersions" + "Amp\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -50,90 +46,84 @@ ], "authors": [ { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" }, { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be" + "name": "Bob Weinand", + "email": "bobwei9@hotmail.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + }, + { + "name": "Daniel Lowrey", + "email": "rdlowrey@php.net" } ], - "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "description": "A non-blocking concurrency framework for PHP applications.", + "homepage": "https://amphp.org/amp", + "keywords": [ + "async", + "asynchronous", + "awaitable", + "concurrency", + "event", + "event-loop", + "future", + "non-blocking", + "promise" + ], "support": { - "issues": "https://github.com/composer/package-versions-deprecated/issues", - "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.5" + "issues": "https://github.com/amphp/amp/issues", + "source": "https://github.com/amphp/amp/tree/v3.1.3" }, "funding": [ { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", + "url": "https://github.com/amphp", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" } ], - "abandoned": true, - "time": "2022-01-17T14:14:24+00:00" + "time": "2026-07-19T17:59:20+00:00" }, { - "name": "fidry/console", - "version": "0.5.5", + "name": "amphp/byte-stream", + "version": "v2.1.2", "source": { "type": "git", - "url": "https://github.com/theofidry/console.git", - "reference": "bc1fe03f600c63f12ec0a39c6b746c1a1fb77bf7" + "url": "https://github.com/amphp/byte-stream.git", + "reference": "55a6bd071aec26fa2a3e002618c20c35e3df1b46" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theofidry/console/zipball/bc1fe03f600c63f12ec0a39c6b746c1a1fb77bf7", - "reference": "bc1fe03f600c63f12ec0a39c6b746c1a1fb77bf7", + "url": "https://api.github.com/repos/amphp/byte-stream/zipball/55a6bd071aec26fa2a3e002618c20c35e3df1b46", + "reference": "55a6bd071aec26fa2a3e002618c20c35e3df1b46", "shasum": "" }, "require": { - "php": "^7.4.0 || ^8.0.0", - "symfony/console": "^4.4 || ^5.4 || ^6.1", - "symfony/event-dispatcher-contracts": "^1.0 || ^2.5 || ^3.0", - "symfony/service-contracts": "^1.0 || ^2.5 || ^3.0", - "thecodingmachine/safe": "^1.3 || ^2.0", - "webmozart/assert": "^1.11" - }, - "conflict": { - "symfony/dependency-injection": "<5.3.0", - "symfony/framework-bundle": "<5.3.0", - "symfony/http-kernel": "<5.3.0" + "amphp/amp": "^3", + "amphp/parser": "^1.1", + "amphp/pipeline": "^1", + "amphp/serialization": "^1", + "amphp/sync": "^2", + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2.3" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.4", - "composer/semver": "^3.3", - "ergebnis/composer-normalize": "^2.28", - "infection/infection": "^0.26", - "phpspec/prophecy-phpunit": "^2.0", - "phpunit/phpunit": "^9.4.3", - "symfony/dependency-injection": "^4.4 || ^5.4 || ^6.1", - "symfony/framework-bundle": "^4.4 || ^5.4 || ^6.1", - "symfony/http-kernel": "^4.4 || ^5.4 || ^6.1", - "symfony/phpunit-bridge": "^4.4.47 || ^5.4 || ^6.0", - "symfony/yaml": "^4.4 || ^5.4 || ^6.1", - "webmozarts/strict-phpunit": "^7.3" + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "5.22.1" }, "type": "library", - "extra": { - "bamarni-bin": { - "bin-links": false, - "forward-command": false - }, - "branch-alias": { - "dev-main": "1.0.x-dev" - } - }, "autoload": { + "files": [ + "src/functions.php", + "src/Internal/functions.php" + ], "psr-4": { - "Fidry\\Console\\": "src" + "Amp\\ByteStream\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -142,53 +132,67 @@ ], "authors": [ { - "name": "Théo Fidry", - "email": "theo.fidry@gmail.com" + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], - "description": "Library to create CLI applications", + "description": "A stream abstraction to make working with non-blocking I/O simple.", + "homepage": "https://amphp.org/byte-stream", "keywords": [ - "cli", - "console", - "symfony" + "amp", + "amphp", + "async", + "io", + "non-blocking", + "stream" ], "support": { - "issues": "https://github.com/theofidry/console/issues", - "source": "https://github.com/theofidry/console/tree/0.5.5" + "issues": "https://github.com/amphp/byte-stream/issues", + "source": "https://github.com/amphp/byte-stream/tree/v2.1.2" }, "funding": [ { - "url": "https://github.com/theofidry", + "url": "https://github.com/amphp", "type": "github" } ], - "time": "2022-12-18T10:49:34+00:00" + "time": "2025-03-16T17:10:27+00:00" }, { - "name": "graham-campbell/result-type", - "version": "v1.2.0", + "name": "amphp/cache", + "version": "v2.0.1", "source": { "type": "git", - "url": "https://github.com/GrahamCampbell/Result-Type.git", - "reference": "adccca3324eece92ca35463648c12b9e6293c05b" + "url": "https://github.com/amphp/cache.git", + "reference": "46912e387e6aa94933b61ea1ead9cf7540b7797c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/adccca3324eece92ca35463648c12b9e6293c05b", - "reference": "adccca3324eece92ca35463648c12b9e6293c05b", + "url": "https://api.github.com/repos/amphp/cache/zipball/46912e387e6aa94933b61ea1ead9cf7540b7797c", + "reference": "46912e387e6aa94933b61ea1ead9cf7540b7797c", "shasum": "" }, "require": { - "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.10" + "amphp/amp": "^3", + "amphp/serialization": "^1", + "amphp/sync": "^2", + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2" }, "require-dev": { - "phpunit/phpunit": "^8.5.52 || ^9.6.34 || ^10.5.63 || ^11.5.55 || ^12.5.14" + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "^5.4" }, "type": "library", "autoload": { "psr-4": { - "GrahamCampbell\\ResultType\\": "src/" + "Amp\\Cache\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -197,90 +201,71 @@ ], "authors": [ { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" + "name": "Niklas Keller", + "email": "me@kelunik.com" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Daniel Lowrey", + "email": "rdlowrey@php.net" } ], - "description": "An Implementation Of The Result Type", - "keywords": [ - "Graham Campbell", - "GrahamCampbell", - "Result Type", - "Result-Type", - "result" - ], + "description": "A fiber-aware cache API based on Amp and Revolt.", + "homepage": "https://amphp.org/cache", "support": { - "issues": "https://github.com/GrahamCampbell/Result-Type/issues", - "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.2.0" + "issues": "https://github.com/amphp/cache/issues", + "source": "https://github.com/amphp/cache/tree/v2.0.1" }, "funding": [ { - "url": "https://github.com/GrahamCampbell", + "url": "https://github.com/amphp", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type", - "type": "tidelift" } ], - "time": "2026-08-24T09:06:52+00:00" + "time": "2024-04-19T03:38:06+00:00" }, { - "name": "humbug/php-scoper", - "version": "0.17.7", + "name": "amphp/dns", + "version": "v2.4.1", "source": { "type": "git", - "url": "https://github.com/humbug/php-scoper.git", - "reference": "0760c02bd666e0dc4918e4e7fb1c4c53c47bcf54" + "url": "https://github.com/amphp/dns.git", + "reference": "ec5948bfafac808f410406e18bc7b52a2d4629b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/humbug/php-scoper/zipball/0760c02bd666e0dc4918e4e7fb1c4c53c47bcf54", - "reference": "0760c02bd666e0dc4918e4e7fb1c4c53c47bcf54", + "url": "https://api.github.com/repos/amphp/dns/zipball/ec5948bfafac808f410406e18bc7b52a2d4629b7", + "reference": "ec5948bfafac808f410406e18bc7b52a2d4629b7", "shasum": "" }, "require": { - "composer/package-versions-deprecated": "^1.8", - "fidry/console": "^0.5.0", - "jetbrains/phpstorm-stubs": "^v2022.1", - "nikic/php-parser": "^4.12", - "php": "^8.1", - "symfony/console": "^5.2 || ^6.0", - "symfony/filesystem": "^5.2 || ^6.0", - "symfony/finder": "^5.2 || ^6.0", - "symfony/polyfill-php80": "^1.23", - "symfony/polyfill-php81": "^1.24", - "thecodingmachine/safe": "^1.3 || ^2.0" - }, - "replace": { - "symfony/polyfill-php73": "*" + "amphp/amp": "^3", + "amphp/byte-stream": "^2", + "amphp/cache": "^2", + "amphp/parser": "^1", + "amphp/process": "^2", + "daverandom/libdns": "^2.0.2", + "ext-filter": "*", + "ext-json": "*", + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.1", - "ergebnis/composer-normalize": "^2.28", - "humbug/box": "^4.0", - "phpspec/prophecy-phpunit": "^2.0", - "phpunit/phpunit": "^9.0" + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "6.16.1" }, - "bin": [ - "bin/php-scoper" - ], "type": "library", - "extra": { - "bamarni-bin": { - "bin-links": false - }, - "branch-alias": { - "dev-master": "1.0-dev" - } - }, "autoload": { "files": [ "src/functions.php" ], "psr-4": { - "Humbug\\PhpScoper\\": "src/" + "Amp\\Dns\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -289,108 +274,158 @@ ], "authors": [ { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" + "name": "Chris Wright", + "email": "addr@daverandom.com" }, { - "name": "Théo Fidry", - "email": "theo.fidry@gmail.com" + "name": "Daniel Lowrey", + "email": "rdlowrey@php.net" }, { - "name": "Pádraic Brady", - "email": "padraic.brady@gmail.com" + "name": "Bob Weinand", + "email": "bobwei9@hotmail.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" } ], - "description": "Prefixes all PHP namespaces in a file or directory.", + "description": "Async DNS resolution for Amp.", + "homepage": "https://github.com/amphp/dns", + "keywords": [ + "amp", + "amphp", + "async", + "client", + "dns", + "resolve" + ], "support": { - "issues": "https://github.com/humbug/php-scoper/issues", - "source": "https://github.com/humbug/php-scoper/tree/0.17.7" + "issues": "https://github.com/amphp/dns/issues", + "source": "https://github.com/amphp/dns/tree/v2.4.1" }, - "time": "2022-11-03T19:10:41+00:00" + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2026-07-26T17:53:54+00:00" }, { - "name": "jetbrains/phpstorm-stubs", - "version": "v2022.3", + "name": "amphp/parallel", + "version": "v2.4.0", "source": { "type": "git", - "url": "https://github.com/JetBrains/phpstorm-stubs.git", - "reference": "6b568c153cea002dc6fad96285c3063d07cab18d" + "url": "https://github.com/amphp/parallel.git", + "reference": "37f5b2754fadc229c00f9416bd68fb8d04529a81" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/JetBrains/phpstorm-stubs/zipball/6b568c153cea002dc6fad96285c3063d07cab18d", - "reference": "6b568c153cea002dc6fad96285c3063d07cab18d", + "url": "https://api.github.com/repos/amphp/parallel/zipball/37f5b2754fadc229c00f9416bd68fb8d04529a81", + "reference": "37f5b2754fadc229c00f9416bd68fb8d04529a81", "shasum": "" }, + "require": { + "amphp/amp": "^3", + "amphp/byte-stream": "^2", + "amphp/cache": "^2", + "amphp/parser": "^1", + "amphp/pipeline": "^1", + "amphp/process": "^2", + "amphp/serialization": "^1", + "amphp/socket": "^2", + "amphp/sync": "^2", + "php": ">=8.1", + "revolt/event-loop": "^1" + }, "require-dev": { - "friendsofphp/php-cs-fixer": "@stable", - "nikic/php-parser": "@stable", - "php": "^8.0", - "phpdocumentor/reflection-docblock": "@stable", - "phpunit/phpunit": "@stable" + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "6.16.1" }, "type": "library", "autoload": { "files": [ - "PhpStormStubsMap.php" - ] + "src/Context/functions.php", + "src/Context/Internal/functions.php", + "src/Ipc/functions.php", + "src/Worker/functions.php" + ], + "psr-4": { + "Amp\\Parallel\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache-2.0" + "MIT" ], - "description": "PHP runtime & extensions header files for PhpStorm", - "homepage": "https://www.jetbrains.com/phpstorm", - "keywords": [ - "autocomplete", - "code", - "inference", - "inspection", - "jetbrains", - "phpstorm", - "stubs", - "type" + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + }, + { + "name": "Stephen Coakley", + "email": "me@stephencoakley.com" + } ], - "support": { - "source": "https://github.com/JetBrains/phpstorm-stubs/tree/v2022.3" + "description": "Parallel processing component for Amp.", + "homepage": "https://github.com/amphp/parallel", + "keywords": [ + "async", + "asynchronous", + "concurrent", + "multi-processing", + "multi-threading" + ], + "support": { + "issues": "https://github.com/amphp/parallel/issues", + "source": "https://github.com/amphp/parallel/tree/v2.4.0" }, - "time": "2022-10-17T09:21:37+00:00" + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2026-05-16T16:54:01+00:00" }, { - "name": "matthiasmullie/minify", - "version": "1.3.75", + "name": "amphp/parser", + "version": "v1.1.1", "source": { "type": "git", - "url": "https://github.com/matthiasmullie/minify.git", - "reference": "76ba4a5f555fd7bf4aa408af608e991569076671" + "url": "https://github.com/amphp/parser.git", + "reference": "3cf1f8b32a0171d4b1bed93d25617637a77cded7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/matthiasmullie/minify/zipball/76ba4a5f555fd7bf4aa408af608e991569076671", - "reference": "76ba4a5f555fd7bf4aa408af608e991569076671", + "url": "https://api.github.com/repos/amphp/parser/zipball/3cf1f8b32a0171d4b1bed93d25617637a77cded7", + "reference": "3cf1f8b32a0171d4b1bed93d25617637a77cded7", "shasum": "" }, "require": { - "ext-pcre": "*", - "matthiasmullie/path-converter": "~1.1", - "php": ">=5.3.0" + "php": ">=7.4" }, "require-dev": { - "friendsofphp/php-cs-fixer": ">=2.0", - "matthiasmullie/scrapbook": ">=1.3", - "phpunit/phpunit": ">=4.8" - }, - "suggest": { - "psr/cache-implementation": "Cache implementation to use with Minify::cache" + "amphp/php-cs-fixer-config": "^2", + "phpunit/phpunit": "^9", + "psalm/phar": "^5.4" }, - "bin": [ - "bin/minifycss", - "bin/minifyjs" - ], "type": "library", "autoload": { "psr-4": { - "MatthiasMullie\\Minify\\": "src/" + "Amp\\Parser\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -399,58 +434,63 @@ ], "authors": [ { - "name": "Matthias Mullie", - "email": "minify@mullie.eu", - "homepage": "https://www.mullie.eu", - "role": "Developer" + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], - "description": "CSS & JavaScript minifier, in PHP. Removes whitespace, strips comments, combines files (incl. @import statements and small assets in CSS files), and optimizes/shortens a few common programming patterns.", - "homepage": "https://github.com/matthiasmullie/minify", + "description": "A generator parser to make streaming parsers simple.", + "homepage": "https://github.com/amphp/parser", "keywords": [ - "JS", - "css", - "javascript", - "minifier", - "minify" + "async", + "non-blocking", + "parser", + "stream" ], "support": { - "issues": "https://github.com/matthiasmullie/minify/issues", - "source": "https://github.com/matthiasmullie/minify/tree/1.3.75" + "issues": "https://github.com/amphp/parser/issues", + "source": "https://github.com/amphp/parser/tree/v1.1.1" }, "funding": [ { - "url": "https://github.com/matthiasmullie", + "url": "https://github.com/amphp", "type": "github" } ], - "time": "2025-06-25T09:56:19+00:00" + "time": "2024-03-21T19:16:53+00:00" }, { - "name": "matthiasmullie/path-converter", - "version": "1.1.3", + "name": "amphp/pipeline", + "version": "v1.2.7", "source": { "type": "git", - "url": "https://github.com/matthiasmullie/path-converter.git", - "reference": "e7d13b2c7e2f2268e1424aaed02085518afa02d9" + "url": "https://github.com/amphp/pipeline.git", + "reference": "cf2d67696c2015ea7c7fd8f6ec5f8ed7c2d17c17" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/matthiasmullie/path-converter/zipball/e7d13b2c7e2f2268e1424aaed02085518afa02d9", - "reference": "e7d13b2c7e2f2268e1424aaed02085518afa02d9", + "url": "https://api.github.com/repos/amphp/pipeline/zipball/cf2d67696c2015ea7c7fd8f6ec5f8ed7c2d17c17", + "reference": "cf2d67696c2015ea7c7fd8f6ec5f8ed7c2d17c17", "shasum": "" }, "require": { - "ext-pcre": "*", - "php": ">=5.3.0" + "amphp/amp": "^3", + "php": ">=8.1", + "revolt/event-loop": "^1" }, "require-dev": { - "phpunit/phpunit": "~4.8" + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "6.16.1" }, "type": "library", "autoload": { "psr-4": { - "MatthiasMullie\\PathConverter\\": "src/" + "Amp\\Pipeline\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -459,344 +499,370 @@ ], "authors": [ { - "name": "Matthias Mullie", - "email": "pathconverter@mullie.eu", - "homepage": "http://www.mullie.eu", - "role": "Developer" + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], - "description": "Relative path converter", - "homepage": "http://github.com/matthiasmullie/path-converter", + "description": "Asynchronous iterators and operators.", + "homepage": "https://amphp.org/pipeline", "keywords": [ - "converter", - "path", - "paths", - "relative" + "amp", + "amphp", + "async", + "io", + "iterator", + "non-blocking" ], "support": { - "issues": "https://github.com/matthiasmullie/path-converter/issues", - "source": "https://github.com/matthiasmullie/path-converter/tree/1.1.3" + "issues": "https://github.com/amphp/pipeline/issues", + "source": "https://github.com/amphp/pipeline/tree/v1.2.7" }, - "time": "2019-02-05T23:41:09+00:00" + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2026-07-26T14:50:43+00:00" }, { - "name": "nikic/php-parser", - "version": "v4.19.5", + "name": "amphp/process", + "version": "v2.1.0", "source": { "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "51bd93cc741b7fc3d63d20b6bdcd99fdaa359837" + "url": "https://github.com/amphp/process.git", + "reference": "583959df17d00304ad7b0b32285373f985935643" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/51bd93cc741b7fc3d63d20b6bdcd99fdaa359837", - "reference": "51bd93cc741b7fc3d63d20b6bdcd99fdaa359837", + "url": "https://api.github.com/repos/amphp/process/zipball/583959df17d00304ad7b0b32285373f985935643", + "reference": "583959df17d00304ad7b0b32285373f985935643", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "php": ">=7.1" + "amphp/amp": "^3", + "amphp/byte-stream": "^2", + "amphp/sync": "^2", + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2" }, "require-dev": { - "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "6.16.1" }, - "bin": [ - "bin/php-parse" - ], "type": "library", "autoload": { + "files": [ + "src/functions.php" + ], "psr-4": { - "PhpParser\\": "lib/PhpParser" + "Amp\\Process\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Nikita Popov" + "name": "Bob Weinand", + "email": "bobwei9@hotmail.com" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], + "description": "A fiber-aware process manager based on Amp and Revolt.", + "homepage": "https://amphp.org/process", "support": { - "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.5" + "issues": "https://github.com/amphp/process/issues", + "source": "https://github.com/amphp/process/tree/v2.1.0" }, - "time": "2025-12-06T11:45:25+00:00" + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2026-05-31T15:11:55+00:00" }, { - "name": "phalcon/phalcon", - "version": "v6.0.0RC2", + "name": "amphp/serialization", + "version": "v1.1.0", "source": { "type": "git", - "url": "https://github.com/phalcon/phalcon.git", - "reference": "e353b8a926cd022f06ac0f115bd5ddc1489ce311" + "url": "https://github.com/amphp/serialization.git", + "reference": "fdf2834d78cebb0205fb2672676c1b1eb84371f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phalcon/phalcon/zipball/e353b8a926cd022f06ac0f115bd5ddc1489ce311", - "reference": "e353b8a926cd022f06ac0f115bd5ddc1489ce311", + "url": "https://api.github.com/repos/amphp/serialization/zipball/fdf2834d78cebb0205fb2672676c1b1eb84371f0", + "reference": "fdf2834d78cebb0205fb2672676c1b1eb84371f0", "shasum": "" }, "require": { - "ext-fileinfo": "*", - "ext-json": "*", - "ext-mbstring": "*", - "ext-pdo": "*", - "ext-xml": "*", - "matthiasmullie/minify": "^1.3", - "phalcon/traits": "^4.1", - "php": ">=8.1 <9.0" + "php": ">=7.4" }, "require-dev": { - "ext-gettext": "*", - "ext-yaml": "*", - "friendsofphp/php-cs-fixer": "^3.95", - "pds/composer-script-names": "^1.0", - "pds/skeleton": "^1.0", - "phalcon/annotations": "1.0.x-dev", - "phalcon/code-quality": "^1.0", - "phalcon/phql": "1.0.x-dev", - "phalcon/quill": "^0.5.0", - "phalcon/talon": "^1.0.0", - "phalcon/volt": "1.0.x-dev", - "phpbench/phpbench": "^1.4", - "phpstan/phpstan": "^2.2", - "phpunit/phpunit": "^10.5", - "predis/predis": "^3.4", - "squizlabs/php_codesniffer": "^4.0", - "vlucas/phpdotenv": "^5.6" - }, - "suggest": { - "ext-apcu": "to use Cache\\Adapter\\Apcu, Storage\\Adapter\\Apcu", - "ext-gd": "to use Image\\Adapter\\Gd", - "ext-igbinary": "to use Storage\\Serializer\\Igbinary", - "ext-imagick": "to use Image\\Adapter\\Imagick", - "ext-memcached": "to use Cache\\Adapter\\Libmemcached, Session\\Adapter\\Libmemcached, Storage\\Adapter\\Libmemcached", - "ext-openssl": "to use Encryption\\Crypt", - "ext-pcntl": "to use signal-based graceful shutdown in Queue\\Consumer\\Worker", - "ext-redis": "to use Cache\\Adapter\\Redis, Session\\Adapter\\Redis, Storage\\Adapter\\Redis", - "ext-yaml": "to use Config\\Adapter\\Yaml" + "amphp/php-cs-fixer-config": "^2", + "ext-json": "*", + "ext-zlib": "*", + "phpunit/phpunit": "^9", + "psalm/phar": "6.16.1" }, "type": "library", "autoload": { + "files": [ + "src/functions.php" + ], "psr-4": { - "Phalcon\\": "src/" + "Amp\\Serialization\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "Phalcon Framework", + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "Serialization tools for IPC and data storage in PHP.", + "homepage": "https://github.com/amphp/serialization", "keywords": [ - "framework", - "php" + "async", + "asynchronous", + "serialization", + "serialize" ], "support": { - "issues": "https://github.com/phalcon/phalcon/issues", - "source": "https://github.com/phalcon/phalcon/tree/v6.0.0RC2" + "issues": "https://github.com/amphp/serialization/issues", + "source": "https://github.com/amphp/serialization/tree/v1.1.0" }, "funding": [ { - "url": "https://github.com/phalcon", + "url": "https://github.com/amphp", "type": "github" - }, - { - "url": "https://opencollective.com/phalcon", - "type": "open_collective" } ], - "time": "2026-09-22T20:11:19+00:00" + "time": "2026-04-05T15:59:53+00:00" }, { - "name": "phalcon/traits", - "version": "4.1.0", + "name": "amphp/socket", + "version": "v2.4.1", "source": { "type": "git", - "url": "https://github.com/phalcon/traits.git", - "reference": "a686028ef39ccbb6bd90fd56dc7c7389e768693e" + "url": "https://github.com/amphp/socket.git", + "reference": "b347be5aff6b2cc025208bb4d896607eb470c018" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phalcon/traits/zipball/a686028ef39ccbb6bd90fd56dc7c7389e768693e", - "reference": "a686028ef39ccbb6bd90fd56dc7c7389e768693e", + "url": "https://api.github.com/repos/amphp/socket/zipball/b347be5aff6b2cc025208bb4d896607eb470c018", + "reference": "b347be5aff6b2cc025208bb4d896607eb470c018", "shasum": "" }, "require": { - "ext-json": "*", - "ext-mbstring": "*", - "php": ">=8.1 <9.0" + "amphp/amp": "^3", + "amphp/byte-stream": "^2", + "amphp/dns": "^2", + "ext-openssl": "*", + "kelunik/certificate": "^1.1", + "league/uri": "^7", + "league/uri-interfaces": "^7", + "php": ">=8.1", + "revolt/event-loop": "^1" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.75", - "pds/composer-script-names": "^1.0", - "pds/skeleton": "^1.0", - "phalcon/talon": "^1.0.0", - "phpstan/phpstan": "^2.2", - "phpunit/phpunit": "^10.5", - "squizlabs/php_codesniffer": "^4.0" - }, - "suggest": { - "ext-apcu": "For Php\\ApcuTrait", - "ext-gettext": "For the gettext-based translation helpers", - "ext-igbinary": "For Php\\IgbinaryTrait", - "ext-msgpack": "For Php\\MsgpackTrait", - "ext-yaml": "For Php\\YamlTrait" + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "amphp/process": "^2", + "phpunit/phpunit": "^9", + "psalm/phar": "6.16.1" }, "type": "library", "autoload": { + "files": [ + "src/functions.php", + "src/Internal/functions.php", + "src/SocketAddress/functions.php" + ], "psr-4": { - "Phalcon\\Traits\\": "src/" + "Amp\\Socket\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Phalcon Team", - "email": "team@phalcon.io", - "homepage": "https://phalcon.io/en/team" + "name": "Daniel Lowrey", + "email": "rdlowrey@gmail.com" }, { - "name": "Contributors", - "homepage": "https://github.com/phalcon/traits/graphs/contributors" + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], - "description": "Phalcon Framework reusable traits", - "homepage": "https://phalcon.io", + "description": "Non-blocking socket connection / server implementations based on Amp and Revolt.", + "homepage": "https://github.com/amphp/socket", "keywords": [ - "framework", - "phalcon", - "php", - "traits" + "amp", + "async", + "encryption", + "non-blocking", + "sockets", + "tcp", + "tls" ], "support": { - "discord": "https://phalcon.io/discord/", - "issues": "https://github.com/phalcon/traits/issues", - "source": "https://github.com/phalcon/traits" + "issues": "https://github.com/amphp/socket/issues", + "source": "https://github.com/amphp/socket/tree/v2.4.1" }, "funding": [ { - "url": "https://github.com/phalcon", + "url": "https://github.com/amphp", "type": "github" - }, - { - "url": "https://opencollective.com/phalcon", - "type": "open_collective" } ], - "time": "2026-09-04T16:43:18+00:00" + "time": "2026-08-22T18:13:20+00:00" }, { - "name": "phpoption/phpoption", - "version": "1.10.0", + "name": "amphp/sync", + "version": "v2.3.0", "source": { "type": "git", - "url": "https://github.com/schmittjoh/php-option.git", - "reference": "67b192b6a42ec03944b972d6e633ddec78ad2c6d" + "url": "https://github.com/amphp/sync.git", + "reference": "217097b785130d77cfcc58ff583cf26cd1770bf1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/67b192b6a42ec03944b972d6e633ddec78ad2c6d", - "reference": "67b192b6a42ec03944b972d6e633ddec78ad2c6d", + "url": "https://api.github.com/repos/amphp/sync/zipball/217097b785130d77cfcc58ff583cf26cd1770bf1", + "reference": "217097b785130d77cfcc58ff583cf26cd1770bf1", "shasum": "" }, "require": { - "php": "^7.2.5 || ^8.0" + "amphp/amp": "^3", + "amphp/pipeline": "^1", + "amphp/serialization": "^1", + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.54 || ^9.6.36 || ^10.5.64 || ^11.5.56 || ^12.5.33" + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "5.23" }, "type": "library", - "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": false - }, - "branch-alias": { - "dev-master": "1.9-dev" - } - }, "autoload": { + "files": [ + "src/functions.php" + ], "psr-4": { - "PhpOption\\": "src/PhpOption/" + "Amp\\Sync\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache-2.0" + "MIT" ], "authors": [ { - "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com", - "homepage": "https://github.com/schmittjoh" + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" }, { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" + "name": "Niklas Keller", + "email": "me@kelunik.com" + }, + { + "name": "Stephen Coakley", + "email": "me@stephencoakley.com" } ], - "description": "Option Type for PHP", + "description": "Non-blocking synchronization primitives for PHP based on Amp and Revolt.", + "homepage": "https://github.com/amphp/sync", "keywords": [ - "language", - "option", - "php", - "type" + "async", + "asynchronous", + "mutex", + "semaphore", + "synchronization" ], "support": { - "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.10.0" + "issues": "https://github.com/amphp/sync/issues", + "source": "https://github.com/amphp/sync/tree/v2.3.0" }, "funding": [ { - "url": "https://github.com/GrahamCampbell", + "url": "https://github.com/amphp", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption", - "type": "tidelift" } ], - "time": "2026-08-24T00:54:40+00:00" + "time": "2024-08-03T19:31:26+00:00" }, { - "name": "psr/container", - "version": "2.0.2", + "name": "composer/pcre", + "version": "3.4.0", "source": { "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + "url": "https://github.com/composer/pcre.git", + "reference": "d5a341b3fb61f3001970940afb1d332968a183ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "url": "https://api.github.com/repos/composer/pcre/zipball/d5a341b3fb61f3001970940afb1d332968a183ed", + "reference": "d5a341b3fb61f3001970940afb1d332968a183ed", "shasum": "" }, "require": { - "php": ">=7.4.0" + "php": "^7.4 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<2.2.2" + }, + "require-dev": { + "phpstan/phpstan": "^2", + "phpstan/phpstan-deprecation-rules": "^2", + "phpstan/phpstan-strict-rules": "^2", + "phpunit/phpunit": "^9" }, "type": "library", "extra": { + "phpstan": { + "includes": [ + "extension.neon" + ] + }, "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-main": "3.x-dev" } }, "autoload": { "psr-4": { - "Psr\\Container\\": "src/" + "Composer\\Pcre\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -805,51 +871,64 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" } ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", + "description": "PCRE wrapping library that offers type-safe preg_* replacements.", "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" + "PCRE", + "preg", + "regex", + "regular expression" ], "support": { - "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/2.0.2" + "issues": "https://github.com/composer/pcre/issues", + "source": "https://github.com/composer/pcre/tree/3.4.0" }, - "time": "2021-11-05T16:47:00+00:00" + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + } + ], + "time": "2026-06-07T11:47:49+00:00" }, { - "name": "psr/event-dispatcher", - "version": "1.0.0", + "name": "composer/semver", + "version": "3.4.4", "source": { "type": "git", - "url": "https://github.com/php-fig/event-dispatcher.git", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + "url": "https://github.com/composer/semver.git", + "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "url": "https://api.github.com/repos/composer/semver/zipball/198166618906cb2de69b95d7d47e5fa8aa1b2b95", + "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95", "shasum": "" }, "require": { - "php": ">=7.2.0" + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.11", + "symfony/phpunit-bridge": "^3 || ^7" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-main": "3.x-dev" } }, "autoload": { "psr-4": { - "Psr\\EventDispatcher\\": "src/" + "Composer\\Semver\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -858,231 +937,260 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" } ], - "description": "Standard interfaces for event handling.", + "description": "Semver library that offers utilities, version constraint parsing and validation.", "keywords": [ - "events", - "psr", - "psr-14" + "semantic", + "semver", + "validation", + "versioning" ], "support": { - "issues": "https://github.com/php-fig/event-dispatcher/issues", - "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/3.4.4" }, - "time": "2019-01-08T18:20:26+00:00" - }, - { - "name": "psy/psysh", - "version": "v0.12.24", - "source": { - "type": "git", - "url": "https://github.com/bobthecow/psysh.git", - "reference": "ca0fdcf8a7617afa3adfdf1b5fef573dffb69ca1" + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + } + ], + "time": "2025-08-20T19:15:30+00:00" + }, + { + "name": "composer/xdebug-handler", + "version": "3.0.5", + "source": { + "type": "git", + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/ca0fdcf8a7617afa3adfdf1b5fef573dffb69ca1", - "reference": "ca0fdcf8a7617afa3adfdf1b5fef573dffb69ca1", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef", "shasum": "" }, "require": { - "ext-json": "*", - "ext-tokenizer": "*", - "nikic/php-parser": "^5.0 || ^4.0", - "php": "^8.0 || ^7.4", - "symfony/console": "^8.0 || ^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4", - "symfony/var-dumper": "^8.0 || ^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4" - }, - "conflict": { - "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" + "composer/pcre": "^1 || ^2 || ^3", + "php": "^7.2.5 || ^8.0", + "psr/log": "^1 || ^2 || ^3" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.2", - "composer/class-map-generator": "^1.6" + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-strict-rules": "^1.1", + "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" }, - "suggest": { - "composer/class-map-generator": "Improved tab completion performance with better class discovery.", - "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", - "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well." + "type": "library", + "autoload": { + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } }, - "bin": [ - "bin/psysh" + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" ], - "type": "library", - "extra": { - "bamarni-bin": { - "bin-links": false, - "forward-command": false + "authors": [ + { + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without Xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "support": { + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/xdebug-handler/issues", + "source": "https://github.com/composer/xdebug-handler/tree/3.0.5" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" }, - "branch-alias": { - "dev-main": "0.12.x-dev" + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" } + ], + "time": "2024-05-06T16:37:16+00:00" + }, + { + "name": "daverandom/libdns", + "version": "v2.1.0", + "source": { + "type": "git", + "url": "https://github.com/DaveRandom/LibDNS.git", + "reference": "b84c94e8fe6b7ee4aecfe121bfe3b6177d303c8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/DaveRandom/LibDNS/zipball/b84c94e8fe6b7ee4aecfe121bfe3b6177d303c8a", + "reference": "b84c94e8fe6b7ee4aecfe121bfe3b6177d303c8a", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "Required for IDN support" }, + "type": "library", "autoload": { "files": [ "src/functions.php" ], "psr-4": { - "Psy\\": "src/" + "LibDNS\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Justin Hileman", - "email": "justin@justinhileman.info" - } - ], - "description": "An interactive shell for modern PHP.", - "homepage": "https://psysh.org", + "description": "DNS protocol implementation written in pure PHP", "keywords": [ - "REPL", - "console", - "interactive", - "shell" + "dns" ], "support": { - "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.12.24" + "issues": "https://github.com/DaveRandom/LibDNS/issues", + "source": "https://github.com/DaveRandom/LibDNS/tree/v2.1.0" }, - "time": "2026-06-29T15:41:09+00:00" + "time": "2024-04-12T12:12:48+00:00" }, { - "name": "symfony/console", - "version": "v5.4.47", + "name": "doctrine/deprecations", + "version": "1.1.6", "source": { "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "c4ba980ca61a9eb18ee6bcc73f28e475852bb1ed" + "url": "https://github.com/doctrine/deprecations.git", + "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/c4ba980ca61a9eb18ee6bcc73f28e475852bb1ed", - "reference": "c4ba980ca61a9eb18ee6bcc73f28e475852bb1ed", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", + "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php73": "^1.9", - "symfony/polyfill-php80": "^1.16", - "symfony/service-contracts": "^1.1|^2|^3", - "symfony/string": "^5.1|^6.0" + "php": "^7.1 || ^8.0" }, "conflict": { - "psr/log": ">=3", - "symfony/dependency-injection": "<4.4", - "symfony/dotenv": "<5.1", - "symfony/event-dispatcher": "<4.4", - "symfony/lock": "<4.4", - "symfony/process": "<4.4" - }, - "provide": { - "psr/log-implementation": "1.0|2.0" + "phpunit/phpunit": "<=7.5 || >=14" }, "require-dev": { - "psr/log": "^1|^2", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/event-dispatcher": "^4.4|^5.0|^6.0", - "symfony/lock": "^4.4|^5.0|^6.0", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/var-dumper": "^4.4|^5.0|^6.0" + "doctrine/coding-standard": "^9 || ^12 || ^14", + "phpstan/phpstan": "1.4.10 || 2.1.30", + "phpstan/phpstan-phpunit": "^1.0 || ^2", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12.4 || ^13.0", + "psr/log": "^1 || ^2 || ^3" }, "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" }, "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Doctrine\\Deprecations\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Eases the creation of beautiful and testable command line interfaces", - "homepage": "https://symfony.com", - "keywords": [ - "cli", - "command-line", - "console", - "terminal" - ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", "support": { - "source": "https://github.com/symfony/console/tree/v5.4.47" + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/1.1.6" }, - "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-11-06T11:30:55+00:00" + "time": "2026-02-07T07:09:04+00:00" }, { - "name": "symfony/deprecation-contracts", - "version": "v3.7.1", + "name": "fidry/console", + "version": "0.6.11", "source": { "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d" + "url": "https://github.com/theofidry/console.git", + "reference": "bea8316beae874fc5b8be679d67dd3169c7e205f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/f3202fa1b5097b0af062dc978b32ecf63404e31d", - "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d", + "url": "https://api.github.com/repos/theofidry/console/zipball/bea8316beae874fc5b8be679d67dd3169c7e205f", + "reference": "bea8316beae874fc5b8be679d67dd3169c7e205f", "shasum": "" }, "require": { - "php": ">=8.1" + "php": "^8.2", + "psr/log": "^1.0 || ^2.0 || ^3.0", + "symfony/console": "^6.4 || ^7.2", + "symfony/deprecation-contracts": "^3.4", + "symfony/event-dispatcher-contracts": "^2.5 || ^3.0", + "symfony/polyfill-php84": "^1.31", + "symfony/service-contracts": "^2.5 || ^3.0", + "thecodingmachine/safe": "^2.0 || ^3.0", + "webmozart/assert": "^1.11" + }, + "conflict": { + "symfony/dependency-injection": "<6.4.0 || >=7.0.0 <7.2.0", + "symfony/framework-bundle": "<6.4.0 || >=7.0.0 <7.2.0", + "symfony/http-kernel": "<6.4.0 || >=7.0.0 <7.2.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "composer/semver": "^3.3.2", + "ergebnis/composer-normalize": "^2.33", + "fidry/makefile": "^0.2.1 || ^1.0.0", + "infection/infection": "^0.28", + "phpunit/phpunit": "^10.2", + "symfony/dependency-injection": "^6.4 || ^7.2", + "symfony/flex": "^2.4.0", + "symfony/framework-bundle": "^6.4 || ^7.2", + "symfony/http-kernel": "^6.4 || ^7.2", + "symfony/yaml": "^6.4 || ^7.2" }, "type": "library", "extra": { - "thanks": { - "url": "https://github.com/symfony/contracts", - "name": "symfony/contracts" + "bamarni-bin": { + "bin-links": false, + "forward-command": false }, "branch-alias": { - "dev-main": "3.7-dev" + "dev-main": "1.0.x-dev" } }, "autoload": { - "files": [ - "function.php" - ] + "psr-4": { + "Fidry\\Console\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1090,150 +1198,120 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Théo Fidry", + "email": "theo.fidry@gmail.com" } ], - "description": "A generic function and convention to trigger deprecation notices", - "homepage": "https://symfony.com", + "description": "Library to create CLI applications", + "keywords": [ + "cli", + "console", + "symfony" + ], "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.1" + "issues": "https://github.com/theofidry/console/issues", + "source": "https://github.com/theofidry/console/tree/0.6.11" }, "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", + "url": "https://github.com/theofidry", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" } ], - "time": "2026-06-05T06:23:12+00:00" + "time": "2025-02-14T11:06:15+00:00" }, { - "name": "symfony/event-dispatcher-contracts", - "version": "v3.7.1", + "name": "fidry/filesystem", + "version": "1.2.3", "source": { "type": "git", - "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "c7de7a00ffb67842132da02ea92988a39ccd9f4e" + "url": "https://github.com/theofidry/filesystem.git", + "reference": "3e1f9cac40f807b7c4196013ab77cc1b9416e3e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c7de7a00ffb67842132da02ea92988a39ccd9f4e", - "reference": "c7de7a00ffb67842132da02ea92988a39ccd9f4e", + "url": "https://api.github.com/repos/theofidry/filesystem/zipball/3e1f9cac40f807b7c4196013ab77cc1b9416e3e5", + "reference": "3e1f9cac40f807b7c4196013ab77cc1b9416e3e5", "shasum": "" }, "require": { - "php": ">=8.1", - "psr/event-dispatcher": "^1" + "php": "^8.1", + "symfony/filesystem": "^6.4 || ^7.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4", + "ergebnis/composer-normalize": "^2.28", + "infection/infection": ">=0.26", + "phpunit/phpunit": "^10.3", + "symfony/finder": "^6.4 || ^7.0" }, "type": "library", "extra": { - "thanks": { - "url": "https://github.com/symfony/contracts", - "name": "symfony/contracts" + "bamarni-bin": { + "bin-links": false, + "forward-command": false }, "branch-alias": { - "dev-main": "3.7-dev" + "dev-main": "1.0.x-dev" } }, "autoload": { "psr-4": { - "Symfony\\Contracts\\EventDispatcher\\": "" + "Fidry\\FileSystem\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Théo Fidry", + "email": "theo.fidry@gmail.com" } ], - "description": "Generic abstractions related to dispatching event", - "homepage": "https://symfony.com", + "description": "Symfony Filesystem with a few more utilities.", "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" + "filesystem" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.7.1" + "issues": "https://github.com/theofidry/filesystem/issues", + "source": "https://github.com/theofidry/filesystem/tree/1.2.3" }, "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", + "url": "https://github.com/theofidry", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" } ], - "time": "2026-06-05T06:23:12+00:00" + "time": "2025-02-13T22:58:51+00:00" }, { - "name": "symfony/filesystem", - "version": "v5.4.45", + "name": "graham-campbell/result-type", + "version": "v1.2.0", "source": { "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "57c8294ed37d4a055b77057827c67f9558c95c54" + "url": "https://github.com/GrahamCampbell/Result-Type.git", + "reference": "adccca3324eece92ca35463648c12b9e6293c05b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/57c8294ed37d4a055b77057827c67f9558c95c54", - "reference": "57c8294ed37d4a055b77057827c67f9558c95c54", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/adccca3324eece92ca35463648c12b9e6293c05b", + "reference": "adccca3324eece92ca35463648c12b9e6293c05b", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.8", - "symfony/polyfill-php80": "^1.16" + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.10" }, "require-dev": { - "symfony/process": "^5.4|^6.4" + "phpunit/phpunit": "^8.5.52 || ^9.6.34 || ^10.5.63 || ^11.5.55 || ^12.5.14" }, "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "GrahamCampbell\\ResultType\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1241,61 +1319,122 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" } ], - "description": "Provides basic utilities for the filesystem", - "homepage": "https://symfony.com", + "description": "An Implementation Of The Result Type", + "keywords": [ + "Graham Campbell", + "GrahamCampbell", + "Result Type", + "Result-Type", + "result" + ], "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.4.45" + "issues": "https://github.com/GrahamCampbell/Result-Type/issues", + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.2.0" }, "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", + "url": "https://github.com/GrahamCampbell", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type", "type": "tidelift" } ], - "time": "2024-10-22T13:05:35+00:00" + "time": "2026-08-24T09:06:52+00:00" }, { - "name": "symfony/finder", - "version": "v5.4.45", + "name": "humbug/box", + "version": "4.7.0", "source": { "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "63741784cd7b9967975eec610b256eed3ede022b" + "url": "https://github.com/box-project/box.git", + "reference": "9c2a430118f61ba4a20bc4969931494503f5da6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/63741784cd7b9967975eec610b256eed3ede022b", - "reference": "63741784cd7b9967975eec610b256eed3ede022b", + "url": "https://api.github.com/repos/box-project/box/zipball/9c2a430118f61ba4a20bc4969931494503f5da6a", + "reference": "9c2a430118f61ba4a20bc4969931494503f5da6a", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php80": "^1.16" + "amphp/parallel": "^2.0", + "composer-plugin-api": "^2.2", + "composer/semver": "^3.3.2", + "composer/xdebug-handler": "^3.0.3", + "ext-iconv": "*", + "ext-mbstring": "*", + "ext-phar": "*", + "fidry/console": "^0.6.0", + "fidry/filesystem": "^1.2.1", + "humbug/php-scoper": "^0.18.14", + "justinrainbow/json-schema": "^6.2.0", + "nikic/iter": "^2.2", + "php": "^8.2", + "phpdocumentor/reflection-docblock": "^5.4", + "phpdocumentor/type-resolver": "^1.7", + "psr/log": "^3.0", + "sebastian/diff": "^5.0 || ^6.0 || ^7.0", + "seld/jsonlint": "^1.10.2", + "seld/phar-utils": "^1.2", + "symfony/finder": "^6.4.0 || ^7.0.0", + "symfony/polyfill-iconv": "^1.28", + "symfony/polyfill-mbstring": "^1.28", + "symfony/process": "^6.4.0 || ^7.0.0", + "symfony/var-dumper": "^6.4.0 || ^7.0.0", + "thecodingmachine/safe": "^2.5 || ^3.0", + "webmozart/assert": "^1.12" + }, + "conflict": { + "marc-mabe/php-enum": "<4.4" + }, + "replace": { + "symfony/polyfill-php80": "*", + "symfony/polyfill-php81": "*", + "symfony/polyfill-php82": "*" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "ergebnis/composer-normalize": "^2.29", + "ext-xml": "*", + "fidry/makefile": "^1.0.1", + "mikey179/vfsstream": "^1.6.11", + "phpspec/prophecy": "^1.18", + "phpspec/prophecy-phpunit": "^2.1.0", + "phpunit/phpunit": "^10.5.2", + "symfony/yaml": "^6.4.0 || ^7.0.0" + }, + "suggest": { + "ext-openssl": "To accelerate private key generation." }, + "bin": [ + "bin/box" + ], "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": false, + "forward-command": false + }, + "branch-alias": { + "dev-main": "4.x-dev" + } + }, "autoload": { + "files": [ + "src/functions.php" + ], "psr-4": { - "Symfony\\Component\\Finder\\": "" + "KevinGH\\Box\\": "src" }, "exclude-from-classmap": [ - "/Tests/" + "/Test/", + "vendor/humbug/php-scoper/vendor-hotfix" ] }, "notification-url": "https://packagist.org/downloads/", @@ -1304,72 +1443,83 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Kevin Herrera", + "email": "kevin@herrera.io", + "homepage": "http://kevin.herrera.io" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Théo Fidry", + "email": "theo.fidry@gmail.com" } ], - "description": "Finds files and directories via an intuitive fluent interface", - "homepage": "https://symfony.com", + "description": "Fast, zero config application bundler with PHARs.", + "keywords": [ + "phar" + ], "support": { - "source": "https://github.com/symfony/finder/tree/v5.4.45" + "issues": "https://github.com/box-project/box/issues", + "source": "https://github.com/box-project/box/tree/4.7.0" }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-09-28T13:32:08+00:00" + "time": "2026-03-18T09:34:43+00:00" }, { - "name": "symfony/polyfill-ctype", - "version": "v1.37.0", + "name": "humbug/php-scoper", + "version": "0.18.18", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "141046a8f9477948ff284fa65be2095baafb94f2" + "url": "https://github.com/humbug/php-scoper.git", + "reference": "dd55d01a937602c9473cfbe0ecab9521cb9740aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/141046a8f9477948ff284fa65be2095baafb94f2", - "reference": "141046a8f9477948ff284fa65be2095baafb94f2", + "url": "https://api.github.com/repos/humbug/php-scoper/zipball/dd55d01a937602c9473cfbe0ecab9521cb9740aa", + "reference": "dd55d01a937602c9473cfbe0ecab9521cb9740aa", "shasum": "" }, "require": { - "php": ">=7.2" - }, - "provide": { - "ext-ctype": "*" + "fidry/console": "^0.6.10", + "fidry/filesystem": "^1.1", + "jetbrains/phpstorm-stubs": "^2024.1", + "nikic/php-parser": "^5.0", + "php": "^8.2", + "symfony/console": "^6.4 || ^7.0", + "symfony/filesystem": "^6.4 || ^7.0", + "symfony/finder": "^6.4 || ^7.0", + "symfony/var-dumper": "^7.1", + "thecodingmachine/safe": "^3.0" }, - "suggest": { - "ext-ctype": "For best performance" + "require-dev": { + "bamarni/composer-bin-plugin": "^1.1", + "ergebnis/composer-normalize": "^2.28", + "fidry/makefile": "^1.0", + "humbug/box": "^4.6.2", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^10.0 || ^11.0", + "symfony/yaml": "^6.4 || ^7.0" }, + "bin": [ + "bin/php-scoper" + ], "type": "library", "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" + "bamarni-bin": { + "bin-links": false, + "forward-command": false + }, + "branch-alias": { + "dev-master": "1.0-dev" } }, "autoload": { "files": [ - "bootstrap.php" + "src/functions.php" ], "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - } + "Humbug\\PhpScoper\\": "src/" + }, + "classmap": [ + "vendor-hotfix/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1377,78 +1527,112 @@ ], "authors": [ { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.37.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" }, { - "url": "https://github.com/nicolas-grekas", - "type": "github" + "name": "Théo Fidry", + "email": "theo.fidry@gmail.com" }, { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" + "name": "Pádraic Brady", + "email": "padraic.brady@gmail.com" } ], - "time": "2026-04-10T16:19:22+00:00" + "description": "Prefixes all PHP namespaces in a file or directory.", + "support": { + "issues": "https://github.com/humbug/php-scoper/issues", + "source": "https://github.com/humbug/php-scoper/tree/0.18.18" + }, + "time": "2025-10-15T15:29:47+00:00" }, { - "name": "symfony/polyfill-intl-grapheme", - "version": "v1.41.0", + "name": "jetbrains/phpstorm-stubs", + "version": "v2024.3", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d" + "url": "https://github.com/JetBrains/phpstorm-stubs.git", + "reference": "0e82bdfe850c71857ee4ee3501ed82a9fc5d043c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", - "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", + "url": "https://api.github.com/repos/JetBrains/phpstorm-stubs/zipball/0e82bdfe850c71857ee4ee3501ed82a9fc5d043c", + "reference": "0e82bdfe850c71857ee4ee3501ed82a9fc5d043c", "shasum": "" }, - "require": { - "php": ">=7.2" + "require-dev": { + "friendsofphp/php-cs-fixer": "v3.64.0", + "nikic/php-parser": "v5.3.1", + "phpdocumentor/reflection-docblock": "5.6.0", + "phpunit/phpunit": "11.4.3" }, - "suggest": { - "ext-intl": "For best performance" + "type": "library", + "autoload": { + "files": [ + "PhpStormStubsMap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "PHP runtime & extensions header files for PhpStorm", + "homepage": "https://www.jetbrains.com/phpstorm", + "keywords": [ + "autocomplete", + "code", + "inference", + "inspection", + "jetbrains", + "phpstorm", + "stubs", + "type" + ], + "support": { + "source": "https://github.com/JetBrains/phpstorm-stubs/tree/v2024.3" + }, + "time": "2024-12-14T08:03:12+00:00" + }, + { + "name": "justinrainbow/json-schema", + "version": "6.13.0", + "source": { + "type": "git", + "url": "https://github.com/jsonrainbow/json-schema.git", + "reference": "30de5e9b3fa04253af272a7d932a38cd026c311b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/30de5e9b3fa04253af272a7d932a38cd026c311b", + "reference": "30de5e9b3fa04253af272a7d932a38cd026c311b", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "ext-json": "*", + "marc-mabe/php-enum": "^4.4", + "php": "^7.2 || ^8.0" }, + "require-dev": { + "friendsofphp/php-cs-fixer": "3.3.0", + "json-schema/json-schema-test-suite": "dev-main", + "marc-mabe/php-enum-phpstan": "^2.0", + "phpspec/prophecy": "^1.19", + "phpstan/phpstan": "^1.12", + "phpunit/phpunit": "^8.5" + }, + "bin": [ + "bin/validate-json" + ], "type": "library", "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" + "branch-alias": { + "dev-master": "6.x-dev" } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + "JsonSchema\\": "src/JsonSchema/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1457,84 +1641,55 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Danny van der Sluijs", + "email": "danny.vandersluijs@icloud.com", + "role": "Maintainer" } ], - "description": "Symfony polyfill for intl's grapheme_* functions", - "homepage": "https://symfony.com", + "description": "A library to validate a json schema.", + "homepage": "https://github.com/jsonrainbow/json-schema", "keywords": [ - "compatibility", - "grapheme", - "intl", - "polyfill", - "portable", - "shim" + "json", + "schema" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.41.0" + "issues": "https://github.com/jsonrainbow/json-schema/issues", + "source": "https://github.com/jsonrainbow/json-schema/tree/6.13.0" }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-07-28T08:25:59+00:00" + "time": "2026-09-23T19:46:42+00:00" }, { - "name": "symfony/polyfill-intl-normalizer", - "version": "v1.42.0", + "name": "kelunik/certificate", + "version": "v1.1.3", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502" + "url": "https://github.com/kelunik/certificate.git", + "reference": "7e00d498c264d5eb4f78c69f41c8bd6719c0199e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/aa20edea75bd9c48cfecc8360922e5a6e5c44502", - "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502", + "url": "https://api.github.com/repos/kelunik/certificate/zipball/7e00d498c264d5eb4f78c69f41c8bd6719c0199e", + "reference": "7e00d498c264d5eb4f78c69f41c8bd6719c0199e", "shasum": "" }, "require": { - "php": ">=7.2" + "ext-openssl": "*", + "php": ">=7.0" }, - "suggest": { - "ext-intl": "For best performance" + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "phpunit/phpunit": "^6 | 7 | ^8 | ^9" }, "type": "library", "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" + "branch-alias": { + "dev-master": "1.x-dev" } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, - "classmap": [ - "Resources/stubs" - ] + "Kelunik\\Certificate\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1542,84 +1697,70 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], - "description": "Symfony polyfill for intl's Normalizer class and related functions", - "homepage": "https://symfony.com", + "description": "Access certificate details and transform between different formats.", "keywords": [ - "compatibility", - "intl", - "normalizer", - "polyfill", - "portable", - "shim" + "DER", + "certificate", + "certificates", + "openssl", + "pem", + "x509" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.42.0" + "issues": "https://github.com/kelunik/certificate/issues", + "source": "https://github.com/kelunik/certificate/tree/v1.1.3" }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-08-07T06:33:24+00:00" + "time": "2023-02-03T21:26:53+00:00" }, { - "name": "symfony/polyfill-mbstring", - "version": "v1.38.2", + "name": "league/uri", + "version": "7.8.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6" + "url": "https://github.com/thephpleague/uri.git", + "reference": "08cf38e3924d4f56238125547b5720496fac8fd4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", - "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", + "url": "https://api.github.com/repos/thephpleague/uri/zipball/08cf38e3924d4f56238125547b5720496fac8fd4", + "reference": "08cf38e3924d4f56238125547b5720496fac8fd4", "shasum": "" }, "require": { - "ext-iconv": "*", - "php": ">=7.2" + "league/uri-interfaces": "^7.8.1", + "php": "^8.1", + "psr/http-factory": "^1" }, - "provide": { - "ext-mbstring": "*" + "conflict": { + "league/uri-schemes": "^1.0" }, "suggest": { - "ext-mbstring": "For best performance" + "ext-bcmath": "to improve IPV4 host parsing", + "ext-dom": "to convert the URI into an HTML anchor tag", + "ext-fileinfo": "to create Data URI from file contennts", + "ext-gmp": "to improve IPV4 host parsing", + "ext-intl": "to handle IDN host with the best performance", + "ext-uri": "to use the PHP native URI class", + "jeremykendall/php-domain-parser": "to further parse the URI host and resolve its Public Suffix and Top Level Domain", + "league/uri-components": "to provide additional tools to manipulate URI objects components", + "league/uri-polyfill": "to backport the PHP URI extension for older versions of PHP", + "php-64bit": "to improve IPV4 host parsing", + "rowbot/url": "to handle URLs using the WHATWG URL Living Standard specification", + "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" }, "type": "library", "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" + "branch-alias": { + "dev-master": "7.x-dev" } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" + "League\\Uri\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -1628,80 +1769,88 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" } ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", + "description": "URI manipulation library", + "homepage": "https://uri.thephpleague.com", "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" + "URN", + "data-uri", + "file-uri", + "ftp", + "hostname", + "http", + "https", + "middleware", + "parse_str", + "parse_url", + "psr-7", + "query-string", + "querystring", + "rfc2141", + "rfc3986", + "rfc3987", + "rfc6570", + "rfc8141", + "uri", + "uri-template", + "url", + "ws" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.38.2" + "docs": "https://uri.thephpleague.com", + "forum": "https://thephpleague.slack.com", + "issues": "https://github.com/thephpleague/uri-src/issues", + "source": "https://github.com/thephpleague/uri/tree/7.8.1" }, "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", + "url": "https://github.com/sponsors/nyamsprod", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" } ], - "time": "2026-05-27T06:59:30+00:00" + "time": "2026-03-15T20:22:25+00:00" }, { - "name": "symfony/polyfill-php80", - "version": "v1.37.0", + "name": "league/uri-interfaces", + "version": "7.8.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411" + "url": "https://github.com/thephpleague/uri-interfaces.git", + "reference": "85d5c77c5d6d3af6c54db4a78246364908f3c928" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dfb55726c3a76ea3b6459fcfda1ec2d80a682411", - "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411", + "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/85d5c77c5d6d3af6c54db4a78246364908f3c928", + "reference": "85d5c77c5d6d3af6c54db4a78246364908f3c928", "shasum": "" }, "require": { - "php": ">=7.2" + "ext-filter": "*", + "php": "^8.1", + "psr/http-message": "^1.1 || ^2.0" + }, + "suggest": { + "ext-bcmath": "to improve IPV4 host parsing", + "ext-gmp": "to improve IPV4 host parsing", + "ext-intl": "to handle IDN host with the best performance", + "php-64bit": "to improve IPV4 host parsing", + "rowbot/url": "to handle URLs using the WHATWG URL Living Standard specification", + "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" }, "type": "library", "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" + "branch-alias": { + "dev-master": "7.x-dev" } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "classmap": [ - "Resources/stubs" - ] + "League\\Uri\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1709,168 +1858,155 @@ ], "authors": [ { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" } ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", + "description": "Common tools for parsing and resolving RFC3987/RFC3986 URI", + "homepage": "https://uri.thephpleague.com", "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" + "data-uri", + "file-uri", + "ftp", + "hostname", + "http", + "https", + "parse_str", + "parse_url", + "psr-7", + "query-string", + "querystring", + "rfc3986", + "rfc3987", + "rfc6570", + "uri", + "url", + "ws" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.37.0" + "docs": "https://uri.thephpleague.com", + "forum": "https://thephpleague.slack.com", + "issues": "https://github.com/thephpleague/uri-src/issues", + "source": "https://github.com/thephpleague/uri-interfaces/tree/7.8.1" }, "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", + "url": "https://github.com/sponsors/nyamsprod", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" } ], - "time": "2026-04-10T16:19:22+00:00" + "time": "2026-03-08T20:05:35+00:00" }, { - "name": "symfony/polyfill-php81", - "version": "v1.38.1", + "name": "marc-mabe/php-enum", + "version": "v4.7.2", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "6bfb9c766cacffbc8e118cb87217d08ed84e5cd7" + "url": "https://github.com/marc-mabe/php-enum.git", + "reference": "bb426fcdd65c60fb3638ef741e8782508fda7eef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/6bfb9c766cacffbc8e118cb87217d08ed84e5cd7", - "reference": "6bfb9c766cacffbc8e118cb87217d08ed84e5cd7", + "url": "https://api.github.com/repos/marc-mabe/php-enum/zipball/bb426fcdd65c60fb3638ef741e8782508fda7eef", + "reference": "bb426fcdd65c60fb3638ef741e8782508fda7eef", "shasum": "" }, "require": { - "php": ">=7.2" + "ext-reflection": "*", + "php": "^7.1 | ^8.0" + }, + "require-dev": { + "phpbench/phpbench": "^0.16.10 || ^1.0.4", + "phpstan/phpstan": "^1.3.1", + "phpunit/phpunit": "^7.5.20 | ^8.5.22 | ^9.5.11", + "vimeo/psalm": "^4.17.0 | ^5.26.1" }, "type": "library", "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" + "branch-alias": { + "dev-3.x": "3.2-dev", + "dev-master": "4.7-dev" } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Php81\\": "" + "MabeEnum\\": "src/" }, "classmap": [ - "Resources/stubs" + "stubs/Stringable.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Marc Bennewitz", + "email": "dev@mabe.berlin", + "homepage": "https://mabe.berlin/", + "role": "Lead" } ], - "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", - "homepage": "https://symfony.com", + "description": "Simple and fast implementation of enumerations with native PHP", + "homepage": "https://github.com/marc-mabe/php-enum", "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" + "enum", + "enum-map", + "enum-set", + "enumeration", + "enumerator", + "enummap", + "enumset", + "map", + "set", + "type", + "type-hint", + "typehint" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.38.1" + "issues": "https://github.com/marc-mabe/php-enum/issues", + "source": "https://github.com/marc-mabe/php-enum/tree/v4.7.2" }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-05-26T12:45:58+00:00" + "time": "2025-09-14T11:18:39+00:00" }, { - "name": "symfony/service-contracts", - "version": "v3.7.3", + "name": "matthiasmullie/minify", + "version": "1.3.75", "source": { "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257" + "url": "https://github.com/matthiasmullie/minify.git", + "reference": "76ba4a5f555fd7bf4aa408af608e991569076671" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", - "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", + "url": "https://api.github.com/repos/matthiasmullie/minify/zipball/76ba4a5f555fd7bf4aa408af608e991569076671", + "reference": "76ba4a5f555fd7bf4aa408af608e991569076671", "shasum": "" }, "require": { - "php": ">=8.1", - "psr/container": "^1.1|^2.0", - "symfony/deprecation-contracts": "^2.5|^3" + "ext-pcre": "*", + "matthiasmullie/path-converter": "~1.1", + "php": ">=5.3.0" }, - "conflict": { - "ext-psr": "<1.1|>=2" + "require-dev": { + "friendsofphp/php-cs-fixer": ">=2.0", + "matthiasmullie/scrapbook": ">=1.3", + "phpunit/phpunit": ">=4.8" }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/contracts", - "name": "symfony/contracts" - }, - "branch-alias": { - "dev-main": "3.7-dev" - } + "suggest": { + "psr/cache-implementation": "Cache implementation to use with Minify::cache" }, + "bin": [ + "bin/minifycss", + "bin/minifyjs" + ], + "type": "library", "autoload": { "psr-4": { - "Symfony\\Contracts\\Service\\": "" - }, - "exclude-from-classmap": [ - "/Test/" - ] + "MatthiasMullie\\Minify\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1878,88 +2014,59 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Matthias Mullie", + "email": "minify@mullie.eu", + "homepage": "https://www.mullie.eu", + "role": "Developer" } ], - "description": "Generic abstractions related to writing services", - "homepage": "https://symfony.com", + "description": "CSS & JavaScript minifier, in PHP. Removes whitespace, strips comments, combines files (incl. @import statements and small assets in CSS files), and optimizes/shortens a few common programming patterns.", + "homepage": "https://github.com/matthiasmullie/minify", "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" + "JS", + "css", + "javascript", + "minifier", + "minify" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.7.3" + "issues": "https://github.com/matthiasmullie/minify/issues", + "source": "https://github.com/matthiasmullie/minify/tree/1.3.75" }, "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", + "url": "https://github.com/matthiasmullie", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" } ], - "time": "2026-07-27T15:39:01+00:00" + "time": "2025-06-25T09:56:19+00:00" }, { - "name": "symfony/string", - "version": "v6.4.46", + "name": "matthiasmullie/path-converter", + "version": "1.1.3", "source": { "type": "git", - "url": "https://github.com/symfony/string.git", - "reference": "4513ab2b0ad2d7845a2f920e2f30b61633c9e606" + "url": "https://github.com/matthiasmullie/path-converter.git", + "reference": "e7d13b2c7e2f2268e1424aaed02085518afa02d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/4513ab2b0ad2d7845a2f920e2f30b61633c9e606", - "reference": "4513ab2b0ad2d7845a2f920e2f30b61633c9e606", + "url": "https://api.github.com/repos/matthiasmullie/path-converter/zipball/e7d13b2c7e2f2268e1424aaed02085518afa02d9", + "reference": "e7d13b2c7e2f2268e1424aaed02085518afa02d9", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.0", - "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/translation-contracts": "<2.5" + "ext-pcre": "*", + "php": ">=5.3.0" }, "require-dev": { - "symfony/http-client": "^5.4|^6.0|^7.0", - "symfony/intl": "^6.2|^7.0", - "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^5.4|^6.0|^7.0" + "phpunit/phpunit": "~4.8" }, "type": "library", "autoload": { - "files": [ - "Resources/functions.php" - ], "psr-4": { - "Symfony\\Component\\String\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "MatthiasMullie\\PathConverter\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1967,320 +2074,220 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Matthias Mullie", + "email": "pathconverter@mullie.eu", + "homepage": "http://www.mullie.eu", + "role": "Developer" } ], - "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", - "homepage": "https://symfony.com", + "description": "Relative path converter", + "homepage": "http://github.com/matthiasmullie/path-converter", "keywords": [ - "grapheme", - "i18n", - "string", - "unicode", - "utf-8", - "utf8" + "converter", + "path", + "paths", + "relative" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.46" + "issues": "https://github.com/matthiasmullie/path-converter/issues", + "source": "https://github.com/matthiasmullie/path-converter/tree/1.1.3" }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-09-11T09:03:57+00:00" + "time": "2019-02-05T23:41:09+00:00" }, { - "name": "symfony/var-dumper", - "version": "v5.4.48", + "name": "nette/php-generator", + "version": "v4.2.2", "source": { "type": "git", - "url": "https://github.com/symfony/var-dumper.git", - "reference": "42f18f170aa86d612c3559cfb3bd11a375df32c8" + "url": "https://github.com/nette/php-generator.git", + "reference": "0d7060926f5c3e8c488b9b9ced42d857f12a34b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/42f18f170aa86d612c3559cfb3bd11a375df32c8", - "reference": "42f18f170aa86d612c3559cfb3bd11a375df32c8", + "url": "https://api.github.com/repos/nette/php-generator/zipball/0d7060926f5c3e8c488b9b9ced42d857f12a34b5", + "reference": "0d7060926f5c3e8c488b9b9ced42d857f12a34b5", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.16" - }, - "conflict": { - "symfony/console": "<4.4" + "nette/utils": "^4.0.6", + "php": "8.1 - 8.5" }, "require-dev": { - "ext-iconv": "*", - "symfony/console": "^4.4|^5.0|^6.0", - "symfony/http-kernel": "^4.4|^5.0|^6.0", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/uid": "^5.1|^6.0", - "twig/twig": "^2.13|^3.0.4" + "jetbrains/phpstorm-attributes": "^1.2", + "nette/phpstan-rules": "^1.0", + "nette/tester": "^2.6", + "nikic/php-parser": "^5.0", + "phpstan/extension-installer": "^1.4@stable", + "phpstan/phpstan": "^2.1.40@stable", + "tracy/tracy": "^2.8" }, "suggest": { - "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", - "ext-intl": "To show region name in time zone dump", - "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + "nikic/php-parser": "to use ClassType::from(withBodies: true) & ClassType::fromCode()" }, - "bin": [ - "Resources/bin/var-dump-server" - ], "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.2-dev" + } + }, "autoload": { - "files": [ - "Resources/functions/dump.php" - ], "psr-4": { - "Symfony\\Component\\VarDumper\\": "" + "Nette\\": "src" }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "Provides mechanisms for walking through any arbitrary PHP variable", - "homepage": "https://symfony.com", + "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 8.5 features.", + "homepage": "https://nette.org", "keywords": [ - "debug", - "dump" + "code", + "nette", + "php", + "scaffolding" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.4.48" + "issues": "https://github.com/nette/php-generator/issues", + "source": "https://github.com/nette/php-generator/tree/v4.2.2" }, - "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-11-08T15:21:10+00:00" + "time": "2026-02-26T00:58:33+00:00" }, { - "name": "thecodingmachine/safe", - "version": "v2.5.0", + "name": "nette/utils", + "version": "v4.1.5", "source": { "type": "git", - "url": "https://github.com/thecodingmachine/safe.git", - "reference": "3115ecd6b4391662b4931daac4eba6b07a2ac1f0" + "url": "https://github.com/nette/utils.git", + "reference": "b043439dbdf954e6c28b5ea7e34b0100f83165e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/3115ecd6b4391662b4931daac4eba6b07a2ac1f0", - "reference": "3115ecd6b4391662b4931daac4eba6b07a2ac1f0", + "url": "https://api.github.com/repos/nette/utils/zipball/b043439dbdf954e6c28b5ea7e34b0100f83165e0", + "reference": "b043439dbdf954e6c28b5ea7e34b0100f83165e0", "shasum": "" }, "require": { - "php": "^8.0" + "php": "8.2 - 8.5" + }, + "conflict": { + "nette/finder": "<3", + "nette/schema": "<1.2.2" }, "require-dev": { - "phpstan/phpstan": "^1.5", - "phpunit/phpunit": "^9.5", - "squizlabs/php_codesniffer": "^3.2", - "thecodingmachine/phpstan-strict-rules": "^1.0" + "jetbrains/phpstorm-attributes": "^1.2", + "nette/phpstan-rules": "^1.0", + "nette/tester": "^2.5", + "phpstan/extension-installer": "^1.4@stable", + "phpstan/phpstan": "^2.1@stable", + "tracy/tracy": "^2.9" + }, + "suggest": { + "ext-gd": "to use Image", + "ext-iconv": "to use Strings::chr(), ord() and reverse()", + "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", + "ext-json": "to use Nette\\Utils\\Json", + "ext-mbstring": "to use Strings::lower() etc...", + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2.x-dev" + "dev-master": "4.1-dev" } }, "autoload": { - "files": [ - "deprecated/apc.php", - "deprecated/array.php", - "deprecated/datetime.php", - "deprecated/libevent.php", - "deprecated/misc.php", - "deprecated/password.php", - "deprecated/mssql.php", - "deprecated/stats.php", - "deprecated/strings.php", - "lib/special_cases.php", - "deprecated/mysqli.php", - "generated/apache.php", - "generated/apcu.php", - "generated/array.php", - "generated/bzip2.php", - "generated/calendar.php", - "generated/classobj.php", - "generated/com.php", - "generated/cubrid.php", - "generated/curl.php", - "generated/datetime.php", - "generated/dir.php", - "generated/eio.php", - "generated/errorfunc.php", - "generated/exec.php", - "generated/fileinfo.php", - "generated/filesystem.php", - "generated/filter.php", - "generated/fpm.php", - "generated/ftp.php", - "generated/funchand.php", - "generated/gettext.php", - "generated/gmp.php", - "generated/gnupg.php", - "generated/hash.php", - "generated/ibase.php", - "generated/ibmDb2.php", - "generated/iconv.php", - "generated/image.php", - "generated/imap.php", - "generated/info.php", - "generated/inotify.php", - "generated/json.php", - "generated/ldap.php", - "generated/libxml.php", - "generated/lzf.php", - "generated/mailparse.php", - "generated/mbstring.php", - "generated/misc.php", - "generated/mysql.php", - "generated/network.php", - "generated/oci8.php", - "generated/opcache.php", - "generated/openssl.php", - "generated/outcontrol.php", - "generated/pcntl.php", - "generated/pcre.php", - "generated/pgsql.php", - "generated/posix.php", - "generated/ps.php", - "generated/pspell.php", - "generated/readline.php", - "generated/rpminfo.php", - "generated/rrd.php", - "generated/sem.php", - "generated/session.php", - "generated/shmop.php", - "generated/sockets.php", - "generated/sodium.php", - "generated/solr.php", - "generated/spl.php", - "generated/sqlsrv.php", - "generated/ssdeep.php", - "generated/ssh2.php", - "generated/stream.php", - "generated/strings.php", - "generated/swoole.php", - "generated/uodbc.php", - "generated/uopz.php", - "generated/url.php", - "generated/var.php", - "generated/xdiff.php", - "generated/xml.php", - "generated/xmlrpc.php", - "generated/yaml.php", - "generated/yaz.php", - "generated/zip.php", - "generated/zlib.php" - ], + "psr-4": { + "Nette\\": "src" + }, "classmap": [ - "lib/DateTime.php", - "lib/DateTimeImmutable.php", - "lib/Exceptions/", - "deprecated/Exceptions/", - "generated/Exceptions/" + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", + "homepage": "https://nette.org", + "keywords": [ + "array", + "core", + "datetime", + "images", + "json", + "nette", + "paginator", + "password", + "slugify", + "string", + "unicode", + "utf-8", + "utility", + "validation" ], - "description": "PHP core functions that throw exceptions instead of returning FALSE on error", "support": { - "issues": "https://github.com/thecodingmachine/safe/issues", - "source": "https://github.com/thecodingmachine/safe/tree/v2.5.0" + "issues": "https://github.com/nette/utils/issues", + "source": "https://github.com/nette/utils/tree/v4.1.5" }, - "time": "2023-04-05T11:54:14+00:00" + "time": "2026-07-17T23:02:45+00:00" }, { - "name": "vlucas/phpdotenv", - "version": "v5.7.0", + "name": "nikic/iter", + "version": "v2.4.1", "source": { "type": "git", - "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "301c07936b16d88628b126b01d082ba153cf4c40" + "url": "https://github.com/nikic/iter.git", + "reference": "3f031ae08d82c4394410e76b88b441331a6fa15f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/301c07936b16d88628b126b01d082ba153cf4c40", - "reference": "301c07936b16d88628b126b01d082ba153cf4c40", + "url": "https://api.github.com/repos/nikic/iter/zipball/3f031ae08d82c4394410e76b88b441331a6fa15f", + "reference": "3f031ae08d82c4394410e76b88b441331a6fa15f", "shasum": "" }, "require": { - "ext-pcre": "*", - "graham-campbell/result-type": "^1.2", - "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.10", - "symfony/polyfill-ctype": "^1.26", - "symfony/polyfill-mbstring": "^1.26", - "symfony/polyfill-php80": "^1.26" + "php": ">=7.1" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.2", - "ext-filter": "*", - "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" - }, - "suggest": { - "ext-filter": "Required to use the boolean validator." + "phpstan/phpstan": "^1.4", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", + "vimeo/psalm": "^4.18 || ^5.13" }, "type": "library", - "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": false - }, - "branch-alias": { - "dev-master": "5.6-dev" - } - }, "autoload": { - "psr-4": { - "Dotenv\\": "src/" - } + "files": [ + "src/iter.func.php", + "src/iter.php", + "src/iter.rewindable.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2288,478 +2295,567 @@ ], "authors": [ { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Vance Lucas", - "email": "vance@vancelucas.com", - "homepage": "https://github.com/vlucas" + "name": "Nikita Popov", + "email": "nikic@php.net" } ], - "description": "Loads environment variables from `.env` to `$_ENV` and `$_SERVER` automagically, and optionally to `getenv()`.", + "description": "Iteration primitives using generators", "keywords": [ - "dotenv", - "env", - "environment" + "functional", + "generator", + "iterator" ], "support": { - "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v5.7.0" + "issues": "https://github.com/nikic/iter/issues", + "source": "https://github.com/nikic/iter/tree/v2.4.1" }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv", - "type": "tidelift" - } - ], - "time": "2026-08-24T18:07:49+00:00" + "time": "2024-03-19T20:45:05+00:00" }, { - "name": "webmozart/assert", - "version": "1.12.1", + "name": "nikic/php-parser", + "version": "v5.9.0", "source": { "type": "git", - "url": "https://github.com/webmozarts/assert.git", - "reference": "9be6926d8b485f55b9229203f962b51ed377ba68" + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "9e33da9553fe7786f0962b35f4e4ecf01be89def" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/9be6926d8b485f55b9229203f962b51ed377ba68", - "reference": "9be6926d8b485f55b9229203f962b51ed377ba68", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/9e33da9553fe7786f0962b35f4e4ecf01be89def", + "reference": "9e33da9553fe7786f0962b35f4e4ecf01be89def", "shasum": "" }, "require": { - "ext-ctype": "*", - "ext-date": "*", - "ext-filter": "*", - "php": "^7.2 || ^8.0" + "ext-json": "*", + "ext-tokenizer": "*", + "php": ">=7.4" }, - "suggest": { - "ext-intl": "", - "ext-simplexml": "", - "ext-spl": "" + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^9.0" }, + "bin": [ + "bin/php-parse" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "1.10-dev" + "dev-master": "5.x-dev" } }, "autoload": { "psr-4": { - "Webmozart\\Assert\\": "src/" + "PhpParser\\": "lib/PhpParser" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" + "name": "Nikita Popov" } ], - "description": "Assertions to validate method input/output with nice error messages.", + "description": "A PHP parser written in PHP", "keywords": [ - "assert", - "check", - "validate" + "parser", + "php" ], "support": { - "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/1.12.1" + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v5.9.0" }, - "time": "2025-10-29T15:56:20+00:00" - } - ], - "packages-dev": [ + "time": "2026-09-13T18:51:52+00:00" + }, { - "name": "amphp/amp", - "version": "v2.6.5", + "name": "phalcon/annotations", + "version": "1.0.x-dev", "source": { "type": "git", - "url": "https://github.com/amphp/amp.git", - "reference": "d7dda98dae26e56f3f6fcfbf1c1f819c9a993207" + "url": "https://github.com/phalcon/annotations.git", + "reference": "9fe4e374b805dafba42128c6d40c4e5c3595bb02" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/amp/zipball/d7dda98dae26e56f3f6fcfbf1c1f819c9a993207", - "reference": "d7dda98dae26e56f3f6fcfbf1c1f819c9a993207", + "url": "https://api.github.com/repos/phalcon/annotations/zipball/9fe4e374b805dafba42128c6d40c4e5c3595bb02", + "reference": "9fe4e374b805dafba42128c6d40c4e5c3595bb02", "shasum": "" }, "require": { - "php": ">=7.1" + "ext-mbstring": "*", + "phalcon/traits": "^4.0", + "php": ">=8.1 <9.0" }, "require-dev": { - "amphp/php-cs-fixer-config": "dev-master", - "amphp/phpunit-util": "^1", - "ext-json": "*", - "jetbrains/phpstorm-stubs": "^2019.3", - "phpunit/phpunit": "^7 | ^8 | ^9", - "react/promise": "^2", - "vimeo/psalm": "^3.12" + "friendsofphp/php-cs-fixer": "^3.95", + "pds/composer-script-names": "^1.0", + "pds/skeleton": "^1.0", + "phalcon/code-quality": "^1.0", + "phalcon/talon": "^1.0.0", + "phpstan/phpstan": "^2.0", + "phpunit/phpunit": "^10.5", + "squizlabs/php_codesniffer": "^4.0" }, + "suggest": { + "ext-apcu": "Required by the Apcu annotations adapter", + "phalcon/phalcon": "The Phalcon framework this module integrates with" + }, + "default-branch": true, "type": "library", "autoload": { - "files": [ - "lib/functions.php", - "lib/Internal/functions.php" - ], "psr-4": { - "Amp\\": "lib" + "Phalcon\\Annotations\\Docblock\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Daniel Lowrey", - "email": "rdlowrey@php.net" - }, - { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" - }, - { - "name": "Bob Weinand", - "email": "bobwei9@hotmail.com" + "name": "Phalcon Team", + "email": "team@phalcon.io", + "homepage": "https://phalcon.io/en/team" }, { - "name": "Niklas Keller", - "email": "me@kelunik.com" + "name": "Contributors", + "homepage": "https://github.com/phalcon/annotations/graphs/contributors" } ], - "description": "A non-blocking concurrency framework for PHP applications.", - "homepage": "https://amphp.org/amp", + "description": "Docblock annotations parser for the Phalcon Framework", + "homepage": "https://phalcon.io", "keywords": [ - "async", - "asynchronous", - "awaitable", - "concurrency", - "event", - "event-loop", - "future", - "non-blocking", - "promise" + "annotations", + "docblock", + "framework", + "parser", + "phalcon", + "php" ], "support": { - "irc": "irc://irc.freenode.org/amphp", - "issues": "https://github.com/amphp/amp/issues", - "source": "https://github.com/amphp/amp/tree/v2.6.5" + "discussions": "https://phalcon.io/discussions/", + "docs": "https://phalcon.io/docs/", + "email": "support@phalcon.io", + "issues": "https://github.com/phalcon/annotations/issues", + "rss": "https://blog.phalcon.io/rss", + "source": "https://github.com/phalcon/annotations" }, "funding": [ { - "url": "https://github.com/amphp", + "url": "https://github.com/phalcon", "type": "github" + }, + { + "url": "https://opencollective.com/phalcon", + "type": "open_collective" } ], - "time": "2025-09-03T19:41:28+00:00" + "time": "2026-09-19T02:21:59+00:00" }, { - "name": "amphp/byte-stream", - "version": "v1.8.2", + "name": "phalcon/cli-options-parser", + "version": "v2.0.0", "source": { "type": "git", - "url": "https://github.com/amphp/byte-stream.git", - "reference": "4f0e968ba3798a423730f567b1b50d3441c16ddc" + "url": "https://github.com/phalcon/cli-options-parser.git", + "reference": "ec4d4cd0b7e61046b88957a4028ad01dfa14f4e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/byte-stream/zipball/4f0e968ba3798a423730f567b1b50d3441c16ddc", - "reference": "4f0e968ba3798a423730f567b1b50d3441c16ddc", + "url": "https://api.github.com/repos/phalcon/cli-options-parser/zipball/ec4d4cd0b7e61046b88957a4028ad01dfa14f4e6", + "reference": "ec4d4cd0b7e61046b88957a4028ad01dfa14f4e6", "shasum": "" }, "require": { - "amphp/amp": "^2", - "php": ">=7.1" + "php": ">=8.0" }, "require-dev": { - "amphp/php-cs-fixer-config": "dev-master", - "amphp/phpunit-util": "^1.4", - "friendsofphp/php-cs-fixer": "^2.3", - "jetbrains/phpstorm-stubs": "^2019.3", - "phpunit/phpunit": "^6 || ^7 || ^8", - "psalm/phar": "^3.11.4" + "pds/skeleton": "^1.0", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^9.6", + "squizlabs/php_codesniffer": "^3.7" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, "autoload": { - "files": [ - "lib/functions.php" - ], "psr-4": { - "Amp\\ByteStream\\": "lib" + "Phalcon\\Cop\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" + "name": "Phalcon Team", + "email": "team@phalconphp.com", + "homepage": "https://phalconphp.com/en/team" }, { - "name": "Niklas Keller", - "email": "me@kelunik.com" + "name": "Contributors", + "homepage": "https://github.com/phalcon/cli-options-parser/graphs/contributors" } ], - "description": "A stream abstraction to make working with non-blocking I/O simple.", - "homepage": "https://amphp.org/byte-stream", + "description": "Command line arguments/options parser.", + "homepage": "https://phalconphp.com", "keywords": [ - "amp", - "amphp", - "async", - "io", - "non-blocking", - "stream" + "argparse", + "cli", + "command", + "command-line", + "getopt", + "line", + "option", + "optparse", + "parser", + "terminal" ], "support": { - "issues": "https://github.com/amphp/byte-stream/issues", - "source": "https://github.com/amphp/byte-stream/tree/v1.8.2" + "discord": "https://phalcon.io/discord/", + "issues": "https://github.com/phalcon/cli-options-parser/issues", + "source": "https://github.com/phalcon/cli-options-parser" }, "funding": [ { - "url": "https://github.com/amphp", + "url": "https://github.com/phalcon", "type": "github" + }, + { + "url": "https://opencollective.com/phalcon", + "type": "open_collective" } ], - "time": "2024-04-13T18:00:56+00:00" + "time": "2023-11-24T16:04:00+00:00" }, { - "name": "amphp/parallel", - "version": "v1.4.4", + "name": "phalcon/migrations", + "version": "dev-master", "source": { "type": "git", - "url": "https://github.com/amphp/parallel.git", - "reference": "508ca221f2f47235327db5120f0a89d43435b69b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/amphp/parallel/zipball/508ca221f2f47235327db5120f0a89d43435b69b", - "reference": "508ca221f2f47235327db5120f0a89d43435b69b", - "shasum": "" + "url": "https://github.com/phalcon/migrations.git", + "reference": "0ec43e39e64be4140eb1a958c37c2832793a6a6e" }, "require": { - "amphp/amp": "^2", - "amphp/byte-stream": "^1.6.1", - "amphp/parser": "^1", - "amphp/process": "^1", - "amphp/serialization": "^1", - "amphp/sync": "^1.0.1", - "php": ">=7.1" + "nette/php-generator": "^4.0", + "phalcon/cli-options-parser": "^2.0", + "php": ">=8.2" }, "require-dev": { - "amphp/php-cs-fixer-config": "^2", - "amphp/phpunit-util": "^1.1", - "phpunit/phpunit": "^9 || ^8 || ^7" + "ext-pdo": "*", + "fakerphp/faker": "^1.24", + "friendsofphp/php-cs-fixer": "^3.95", + "humbug/box": "^4.7", + "pds/composer-script-names": "^1.0", + "pds/skeleton": "^1.0", + "phpstan/phpstan": "^2.1", + "phpunit/phpunit": "^11.5", + "squizlabs/php_codesniffer": "^4.0", + "vimeo/psalm": "^6.16", + "vlucas/phpdotenv": "^5.6" + }, + "suggest": { + "robmorgan/phinx": "Phinx makes it ridiculously easy to manage the database migrations for your PHP app." }, + "default-branch": true, + "bin": [ + "bin/phalcon-migrations" + ], "type": "library", "autoload": { - "files": [ - "lib/Context/functions.php", - "lib/Sync/functions.php", - "lib/Worker/functions.php" - ], "psr-4": { - "Amp\\Parallel\\": "lib" + "Phalcon\\Migrations\\": "src/" } }, - "notification-url": "https://packagist.org/downloads/", + "autoload-dev": { + "psr-4": { + "Phalcon\\Db\\": "tests/Fakes/Shims/Phalcon/Db/", + "Phalcon\\Migrations\\Tests\\": "tests/", + "Phalcon\\Migrations\\Tests\\Fakes\\": "tests/Fakes/", + "Phalcon\\Migrations\\Tests\\Unit\\": "tests/unit/" + } + }, + "archive": { + "exclude": [ + "/.github", + "/tests", + ".codacy.yml", + ".codecov.yml", + "CHANGELOG.md", + "resources/phpcs.xml", + "resources/phpstan.neon.dist", + "resources/psalm.xml.dist" + ] + }, + "scripts": { + "analyze": [ + "vendor/bin/phpstan analyse -c resources/phpstan.neon.dist" + ], + "analyze-psalm": [ + "vendor/bin/psalm -c resources/psalm.xml.dist" + ], + "cs": [ + "vendor/bin/phpcs --standard=resources/phpcs.xml" + ], + "cs-fix": [ + "vendor/bin/phpcbf --standard=resources/phpcs.xml" + ], + "cs-fixer": [ + "vendor/bin/php-cs-fixer fix --config=resources/php-cs-fixer.php --dry-run --diff" + ], + "cs-fixer-fix": [ + "vendor/bin/php-cs-fixer fix --config=resources/php-cs-fixer.php" + ], + "test": [ + "vendor/bin/phpunit -c resources/phpunit.xml.dist" + ], + "test-coverage": [ + "vendor/bin/phpunit -c resources/phpunit.xml.dist --coverage-clover tests/_output/coverage/clover.xml" + ], + "test-coverage-html": [ + "vendor/bin/phpunit -c resources/phpunit.xml.dist --coverage-html tests/_output/coverage/html/" + ] + }, "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" + "name": "Phalcon Team", + "email": "team@phalcon.io", + "homepage": "https://phalcon.io/en/team" }, { - "name": "Stephen Coakley", - "email": "me@stephencoakley.com" + "name": "Contributors", + "homepage": "https://github.com/phalcon/migrations/graphs/contributors" } ], - "description": "Parallel processing component for Amp.", - "homepage": "https://github.com/amphp/parallel", + "description": "Run and Generate DB Migrations with Phalcon Framework", + "homepage": "https://phalcon.io", "keywords": [ - "async", - "asynchronous", - "concurrent", - "multi-processing", - "multi-threading" + "framework", + "migration", + "phalcon", + "phar" ], "support": { - "issues": "https://github.com/amphp/parallel/issues", - "source": "https://github.com/amphp/parallel/tree/v1.4.4" + "issues": "https://github.com/phalcon/migrations/issues", + "source": "https://github.com/phalcon/migrations", + "forum": "https://forum.phalcon.io" }, - "funding": [ - { - "url": "https://github.com/amphp", - "type": "github" - } - ], - "time": "2024-12-08T16:28:11+00:00" + "time": "2026-09-17T10:47:45+00:00" }, { - "name": "amphp/parallel-functions", - "version": "v1.1.0", + "name": "phalcon/phalcon", + "version": "v6.0.0RC2", "source": { "type": "git", - "url": "https://github.com/amphp/parallel-functions.git", - "reference": "04e92fcacfc921a56dfe12c23b3265e62593a7cb" + "url": "https://github.com/phalcon/phalcon.git", + "reference": "e353b8a926cd022f06ac0f115bd5ddc1489ce311" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/parallel-functions/zipball/04e92fcacfc921a56dfe12c23b3265e62593a7cb", - "reference": "04e92fcacfc921a56dfe12c23b3265e62593a7cb", + "url": "https://api.github.com/repos/phalcon/phalcon/zipball/e353b8a926cd022f06ac0f115bd5ddc1489ce311", + "reference": "e353b8a926cd022f06ac0f115bd5ddc1489ce311", "shasum": "" }, "require": { - "amphp/amp": "^2.0.3", - "amphp/parallel": "^1.4", - "amphp/serialization": "^1.0", - "laravel/serializable-closure": "^1.0", - "php": ">=7.4" + "ext-fileinfo": "*", + "ext-json": "*", + "ext-mbstring": "*", + "ext-pdo": "*", + "ext-xml": "*", + "matthiasmullie/minify": "^1.3", + "phalcon/traits": "^4.1", + "php": ">=8.1 <9.0" }, "require-dev": { - "amphp/php-cs-fixer-config": "v2.x-dev", - "amphp/phpunit-util": "^2.0", - "phpunit/phpunit": "^9.5.11" + "ext-gettext": "*", + "ext-yaml": "*", + "friendsofphp/php-cs-fixer": "^3.95", + "pds/composer-script-names": "^1.0", + "pds/skeleton": "^1.0", + "phalcon/annotations": "1.0.x-dev", + "phalcon/code-quality": "^1.0", + "phalcon/phql": "1.0.x-dev", + "phalcon/quill": "^0.5.0", + "phalcon/talon": "^1.0.0", + "phalcon/volt": "1.0.x-dev", + "phpbench/phpbench": "^1.4", + "phpstan/phpstan": "^2.2", + "phpunit/phpunit": "^10.5", + "predis/predis": "^3.4", + "squizlabs/php_codesniffer": "^4.0", + "vlucas/phpdotenv": "^5.6" + }, + "suggest": { + "ext-apcu": "to use Cache\\Adapter\\Apcu, Storage\\Adapter\\Apcu", + "ext-gd": "to use Image\\Adapter\\Gd", + "ext-igbinary": "to use Storage\\Serializer\\Igbinary", + "ext-imagick": "to use Image\\Adapter\\Imagick", + "ext-memcached": "to use Cache\\Adapter\\Libmemcached, Session\\Adapter\\Libmemcached, Storage\\Adapter\\Libmemcached", + "ext-openssl": "to use Encryption\\Crypt", + "ext-pcntl": "to use signal-based graceful shutdown in Queue\\Consumer\\Worker", + "ext-redis": "to use Cache\\Adapter\\Redis, Session\\Adapter\\Redis, Storage\\Adapter\\Redis", + "ext-yaml": "to use Config\\Adapter\\Yaml" }, "type": "library", "autoload": { - "files": [ - "src/functions.php" - ], "psr-4": { - "Amp\\ParallelFunctions\\": "src" + "Phalcon\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Niklas Keller", - "email": "me@kelunik.com" - } + "description": "Phalcon Framework", + "keywords": [ + "framework", + "php" ], - "description": "Parallel processing made simple.", "support": { - "issues": "https://github.com/amphp/parallel-functions/issues", - "source": "https://github.com/amphp/parallel-functions/tree/v1.1.0" + "issues": "https://github.com/phalcon/phalcon/issues", + "source": "https://github.com/phalcon/phalcon/tree/v6.0.0RC2" }, "funding": [ { - "url": "https://github.com/amphp", + "url": "https://github.com/phalcon", "type": "github" + }, + { + "url": "https://opencollective.com/phalcon", + "type": "open_collective" } ], - "time": "2022-02-03T19:32:41+00:00" + "time": "2026-09-22T20:11:19+00:00" }, { - "name": "amphp/parser", - "version": "v1.1.1", + "name": "phalcon/traits", + "version": "4.1.0", "source": { "type": "git", - "url": "https://github.com/amphp/parser.git", - "reference": "3cf1f8b32a0171d4b1bed93d25617637a77cded7" + "url": "https://github.com/phalcon/traits.git", + "reference": "a686028ef39ccbb6bd90fd56dc7c7389e768693e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/parser/zipball/3cf1f8b32a0171d4b1bed93d25617637a77cded7", - "reference": "3cf1f8b32a0171d4b1bed93d25617637a77cded7", + "url": "https://api.github.com/repos/phalcon/traits/zipball/a686028ef39ccbb6bd90fd56dc7c7389e768693e", + "reference": "a686028ef39ccbb6bd90fd56dc7c7389e768693e", "shasum": "" }, "require": { - "php": ">=7.4" + "ext-json": "*", + "ext-mbstring": "*", + "php": ">=8.1 <9.0" }, "require-dev": { - "amphp/php-cs-fixer-config": "^2", - "phpunit/phpunit": "^9", - "psalm/phar": "^5.4" + "friendsofphp/php-cs-fixer": "^3.75", + "pds/composer-script-names": "^1.0", + "pds/skeleton": "^1.0", + "phalcon/talon": "^1.0.0", + "phpstan/phpstan": "^2.2", + "phpunit/phpunit": "^10.5", + "squizlabs/php_codesniffer": "^4.0" + }, + "suggest": { + "ext-apcu": "For Php\\ApcuTrait", + "ext-gettext": "For the gettext-based translation helpers", + "ext-igbinary": "For Php\\IgbinaryTrait", + "ext-msgpack": "For Php\\MsgpackTrait", + "ext-yaml": "For Php\\YamlTrait" }, "type": "library", "autoload": { "psr-4": { - "Amp\\Parser\\": "src" + "Phalcon\\Traits\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" + "name": "Phalcon Team", + "email": "team@phalcon.io", + "homepage": "https://phalcon.io/en/team" }, { - "name": "Niklas Keller", - "email": "me@kelunik.com" + "name": "Contributors", + "homepage": "https://github.com/phalcon/traits/graphs/contributors" } ], - "description": "A generator parser to make streaming parsers simple.", - "homepage": "https://github.com/amphp/parser", + "description": "Phalcon Framework reusable traits", + "homepage": "https://phalcon.io", "keywords": [ - "async", - "non-blocking", - "parser", - "stream" + "framework", + "phalcon", + "php", + "traits" ], "support": { - "issues": "https://github.com/amphp/parser/issues", - "source": "https://github.com/amphp/parser/tree/v1.1.1" + "discord": "https://phalcon.io/discord/", + "issues": "https://github.com/phalcon/traits/issues", + "source": "https://github.com/phalcon/traits" }, "funding": [ { - "url": "https://github.com/amphp", + "url": "https://github.com/phalcon", "type": "github" + }, + { + "url": "https://opencollective.com/phalcon", + "type": "open_collective" } ], - "time": "2024-03-21T19:16:53+00:00" + "time": "2026-09-04T16:43:18+00:00" }, { - "name": "amphp/process", - "version": "v1.1.9", + "name": "phalcon/volt", + "version": "1.0.x-dev", "source": { "type": "git", - "url": "https://github.com/amphp/process.git", - "reference": "55b837d4f1857b9bd7efb7bb859ae6b0e804f13f" + "url": "https://github.com/phalcon/volt.git", + "reference": "4296eaab6af7b81d30b1c0f1a11204fd2bc46032" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/process/zipball/55b837d4f1857b9bd7efb7bb859ae6b0e804f13f", - "reference": "55b837d4f1857b9bd7efb7bb859ae6b0e804f13f", + "url": "https://api.github.com/repos/phalcon/volt/zipball/4296eaab6af7b81d30b1c0f1a11204fd2bc46032", + "reference": "4296eaab6af7b81d30b1c0f1a11204fd2bc46032", "shasum": "" }, "require": { - "amphp/amp": "^2", - "amphp/byte-stream": "^1.4", - "php": ">=7.1" + "ext-ctype": "*", + "ext-mbstring": "*", + "php": ">=8.1 <9.0" }, "require-dev": { - "amphp/php-cs-fixer-config": "dev-master", - "amphp/phpunit-util": "^1", - "phpunit/phpunit": "^6" + "friendsofphp/php-cs-fixer": "^3.95", + "pds/skeleton": "^1.0", + "phalcon/code-quality": "^1.0", + "phalcon/ide-stubs": "^5.8", + "phalcon/talon": "^1.0.0", + "phpstan/phpstan": "^2.0", + "phpunit/phpunit": "^10.5", + "squizlabs/php_codesniffer": "^4.0" + }, + "suggest": { + "phalcon/phalcon": "The Phalcon framework this module integrates with" }, + "default-branch": true, "type": "library", "autoload": { "files": [ - "lib/functions.php" + "resources/files/parser.php" ], "psr-4": { - "Amp\\Process\\": "lib" + "Phalcon\\Volt\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -2768,63 +2864,70 @@ ], "authors": [ { - "name": "Bob Weinand", - "email": "bobwei9@hotmail.com" - }, - { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" + "name": "Phalcon Team", + "email": "team@phalcon.io", + "homepage": "https://phalcon.io/en/team" }, { - "name": "Niklas Keller", - "email": "me@kelunik.com" + "name": "Contributors", + "homepage": "https://github.com/phalcon/volt/graphs/contributors" } ], - "description": "Asynchronous process manager.", - "homepage": "https://github.com/amphp/process", + "description": "Phalcon Volt is an HTML template engine for server-side rendering.", + "homepage": "https://phalcon.io", + "keywords": [ + "engine", + "html", + "phalcon", + "template", + "volt" + ], "support": { - "issues": "https://github.com/amphp/process/issues", - "source": "https://github.com/amphp/process/tree/v1.1.9" + "discussions": "https://phalcon.io/discussions/", + "docs": "https://phalcon.io/docs/", + "email": "support@phalcon.io", + "issues": "https://github.com/phalcon/volt/issues", + "rss": "https://blog.phalcon.io/rss", + "source": "https://github.com/phalcon/volt" }, "funding": [ { - "url": "https://github.com/amphp", + "url": "https://github.com/phalcon", "type": "github" + }, + { + "url": "https://opencollective.com/phalcon", + "type": "open_collective" } ], - "time": "2024-12-13T17:38:25+00:00" + "time": "2026-09-23T22:32:17+00:00" }, { - "name": "amphp/serialization", - "version": "v1.1.0", + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", "source": { "type": "git", - "url": "https://github.com/amphp/serialization.git", - "reference": "fdf2834d78cebb0205fb2672676c1b1eb84371f0" + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/serialization/zipball/fdf2834d78cebb0205fb2672676c1b1eb84371f0", - "reference": "fdf2834d78cebb0205fb2672676c1b1eb84371f0", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", "shasum": "" }, "require": { - "php": ">=7.4" - }, - "require-dev": { - "amphp/php-cs-fixer-config": "^2", - "ext-json": "*", - "ext-zlib": "*", - "phpunit/phpunit": "^9", - "psalm/phar": "6.16.1" + "php": "^7.2 || ^8.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, "autoload": { - "files": [ - "src/functions.php" - ], "psr-4": { - "Amp\\Serialization\\": "src" + "phpDocumentor\\Reflection\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -2833,65 +2936,66 @@ ], "authors": [ { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" - }, - { - "name": "Niklas Keller", - "email": "me@kelunik.com" + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" } ], - "description": "Serialization tools for IPC and data storage in PHP.", - "homepage": "https://github.com/amphp/serialization", + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", "keywords": [ - "async", - "asynchronous", - "serialization", - "serialize" + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" ], "support": { - "issues": "https://github.com/amphp/serialization/issues", - "source": "https://github.com/amphp/serialization/tree/v1.1.0" + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" }, - "funding": [ - { - "url": "https://github.com/amphp", - "type": "github" - } - ], - "time": "2026-04-05T15:59:53+00:00" + "time": "2020-06-27T09:03:43+00:00" }, { - "name": "amphp/sync", - "version": "v1.4.2", + "name": "phpdocumentor/reflection-docblock", + "version": "5.6.7", "source": { "type": "git", - "url": "https://github.com/amphp/sync.git", - "reference": "85ab06764f4f36d63b1356b466df6111cf4b89cf" + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "31a105931bc8ffa3a123383829772e832fd8d903" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/sync/zipball/85ab06764f4f36d63b1356b466df6111cf4b89cf", - "reference": "85ab06764f4f36d63b1356b466df6111cf4b89cf", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/31a105931bc8ffa3a123383829772e832fd8d903", + "reference": "31a105931bc8ffa3a123383829772e832fd8d903", "shasum": "" }, "require": { - "amphp/amp": "^2.2", - "php": ">=7.1" + "doctrine/deprecations": "^1.1", + "ext-filter": "*", + "php": "^7.4 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.7", + "phpstan/phpdoc-parser": "^1.7|^2.0", + "webmozart/assert": "^1.9.1 || ^2" }, "require-dev": { - "amphp/php-cs-fixer-config": "dev-master", - "amphp/phpunit-util": "^1.1", - "phpunit/phpunit": "^9 || ^8 || ^7" + "mockery/mockery": "~1.3.5 || ~1.6.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-webmozart-assert": "^1.2", + "phpunit/phpunit": "^9.5", + "psalm/phar": "^5.26" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, "autoload": { - "files": [ - "src/functions.php", - "src/ConcurrentIterator/functions.php" - ], "psr-4": { - "Amp\\Sync\\": "src" + "phpDocumentor\\Reflection\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -2900,75 +3004,60 @@ ], "authors": [ { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" + "name": "Mike van Riel", + "email": "me@mikevanriel.com" }, { - "name": "Stephen Coakley", - "email": "me@stephencoakley.com" + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" } ], - "description": "Mutex, Semaphore, and other synchronization tools for Amp.", - "homepage": "https://github.com/amphp/sync", - "keywords": [ - "async", - "asynchronous", - "mutex", - "semaphore", - "synchronization" - ], + "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/amphp/sync/issues", - "source": "https://github.com/amphp/sync/tree/v1.4.2" + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.7" }, - "funding": [ - { - "url": "https://github.com/amphp", - "type": "github" - } - ], - "time": "2021-10-25T18:29:10+00:00" + "time": "2026-03-18T20:47:46+00:00" }, { - "name": "behat/gherkin", - "version": "v4.17.0", + "name": "phpdocumentor/type-resolver", + "version": "1.12.0", "source": { "type": "git", - "url": "https://github.com/Behat/Gherkin.git", - "reference": "5c8b3149fac39b5a79942b64eeec59a5ee4001c0" + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "92a98ada2b93d9b201a613cb5a33584dde25f195" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Gherkin/zipball/5c8b3149fac39b5a79942b64eeec59a5ee4001c0", - "reference": "5c8b3149fac39b5a79942b64eeec59a5ee4001c0", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/92a98ada2b93d9b201a613cb5a33584dde25f195", + "reference": "92a98ada2b93d9b201a613cb5a33584dde25f195", "shasum": "" }, "require": { - "composer-runtime-api": "^2.2", - "php": ">=8.1 <8.6" + "doctrine/deprecations": "^1.0", + "php": "^7.3 || ^8.0", + "phpdocumentor/reflection-common": "^2.0", + "phpstan/phpdoc-parser": "^1.18|^2.0" }, "require-dev": { - "cucumber/gherkin-monorepo": "dev-gherkin-v39.1.0", - "friendsofphp/php-cs-fixer": "^3.77", - "mikey179/vfsstream": "^1.6", - "phpstan/extension-installer": "^1", - "phpstan/phpstan": "^2", - "phpstan/phpstan-phpunit": "^2", - "phpunit/phpunit": "^10.5", - "symfony/yaml": "^5.4 || ^6.4 || ^7.0" - }, - "suggest": { - "symfony/yaml": "If you want to parse features, represented in YAML files" + "ext-tokenizer": "*", + "phpbench/phpbench": "^1.2", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^9.5", + "rector/rector": "^0.13.9", + "vimeo/psalm": "^4.25" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.x-dev" + "dev-1.x": "1.x-dev" } }, "autoload": { "psr-4": { - "Behat\\Gherkin\\": "src/" + "phpDocumentor\\Reflection\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -2977,227 +3066,166 @@ ], "authors": [ { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "https://everzet.com" + "name": "Mike van Riel", + "email": "me@mikevanriel.com" } ], - "description": "Gherkin DSL parser for PHP", - "homepage": "https://behat.org/", - "keywords": [ - "BDD", - "Behat", - "Cucumber", - "DSL", - "gherkin", - "parser" - ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { - "issues": "https://github.com/Behat/Gherkin/issues", - "source": "https://github.com/Behat/Gherkin/tree/v4.17.0" + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.12.0" }, - "funding": [ - { - "url": "https://github.com/acoulton", - "type": "github" - }, - { - "url": "https://github.com/carlos-granados", - "type": "github" - }, - { - "url": "https://github.com/stof", - "type": "github" - } - ], - "time": "2026-05-18T09:33:47+00:00" + "time": "2025-11-21T15:09:14+00:00" }, { - "name": "codeception/codeception", - "version": "4.2.2", + "name": "phpoption/phpoption", + "version": "1.10.0", "source": { "type": "git", - "url": "https://github.com/Codeception/Codeception.git", - "reference": "b88014f3348c93f3df99dc6d0967b0dbfa804474" + "url": "https://github.com/schmittjoh/php-option.git", + "reference": "67b192b6a42ec03944b972d6e633ddec78ad2c6d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Codeception/zipball/b88014f3348c93f3df99dc6d0967b0dbfa804474", - "reference": "b88014f3348c93f3df99dc6d0967b0dbfa804474", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/67b192b6a42ec03944b972d6e633ddec78ad2c6d", + "reference": "67b192b6a42ec03944b972d6e633ddec78ad2c6d", "shasum": "" }, "require": { - "behat/gherkin": "^4.4.0", - "codeception/lib-asserts": "^1.0 | 2.0.*@dev", - "codeception/phpunit-wrapper": ">6.0.15 <6.1.0 | ^6.6.1 | ^7.7.1 | ^8.1.1 | ^9.0", - "codeception/stub": "^2.0 | ^3.0 | ^4.0", - "ext-curl": "*", - "ext-json": "*", - "ext-mbstring": "*", - "guzzlehttp/psr7": "^1.4 | ^2.0", - "php": ">=5.6.0 <9.0", - "symfony/console": ">=2.7 <6.0", - "symfony/css-selector": ">=2.7 <6.0", - "symfony/event-dispatcher": ">=2.7 <6.0", - "symfony/finder": ">=2.7 <6.0", - "symfony/yaml": ">=2.7 <6.0" + "php": "^7.2.5 || ^8.0" }, "require-dev": { - "codeception/module-asserts": "^1.0 | 2.0.*@dev", - "codeception/module-cli": "^1.0 | 2.0.*@dev", - "codeception/module-db": "^1.0 | 2.0.*@dev", - "codeception/module-filesystem": "^1.0 | 2.0.*@dev", - "codeception/module-phpbrowser": "^1.0 | 2.0.*@dev", - "codeception/specify": "~0.3", - "codeception/util-universalframework": "*@dev", - "monolog/monolog": "~1.8", - "squizlabs/php_codesniffer": "~2.0", - "symfony/process": ">=2.7 <6.0", - "vlucas/phpdotenv": "^2.0 | ^3.0 | ^4.0 | ^5.0" - }, - "suggest": { - "codeception/specify": "BDD-style code blocks", - "codeception/verify": "BDD-style assertions", - "hoa/console": "For interactive console functionality", - "stecman/symfony-console-completion": "For BASH autocompletion", - "symfony/phpunit-bridge": "For phpunit-bridge support" + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.54 || ^9.6.36 || ^10.5.64 || ^11.5.56 || ^12.5.33" }, - "bin": [ - "codecept" - ], "type": "library", "extra": { - "branch-alias": [] + "bamarni-bin": { + "bin-links": true, + "forward-command": false + }, + "branch-alias": { + "dev-master": "1.9-dev" + } }, "autoload": { - "files": [ - "functions.php" - ], "psr-4": { - "Codeception\\": "src/Codeception", - "Codeception\\Extension\\": "ext" + "PhpOption\\": "src/PhpOption/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "Apache-2.0" ], "authors": [ { - "name": "Michael Bodnarchuk", - "email": "davert@mail.ua", - "homepage": "https://codegyre.com" + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com", + "homepage": "https://github.com/schmittjoh" + }, + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" } ], - "description": "BDD-style testing framework", - "homepage": "https://codeception.com/", + "description": "Option Type for PHP", "keywords": [ - "BDD", - "TDD", - "acceptance testing", - "functional testing", - "unit testing" + "language", + "option", + "php", + "type" ], "support": { - "issues": "https://github.com/Codeception/Codeception/issues", - "source": "https://github.com/Codeception/Codeception/tree/4.2.2" + "issues": "https://github.com/schmittjoh/php-option/issues", + "source": "https://github.com/schmittjoh/php-option/tree/1.10.0" }, "funding": [ { - "url": "https://opencollective.com/codeception", - "type": "open_collective" + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption", + "type": "tidelift" } ], - "time": "2022-08-13T13:28:25+00:00" + "time": "2026-08-24T00:54:40+00:00" }, { - "name": "codeception/lib-asserts", - "version": "1.13.2", + "name": "phpstan/phpdoc-parser", + "version": "2.3.5", "source": { "type": "git", - "url": "https://github.com/Codeception/lib-asserts.git", - "reference": "184231d5eab66bc69afd6b9429344d80c67a33b6" + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "148cefffaf0233e4c08cc13db8a195a56dd6dfe9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/lib-asserts/zipball/184231d5eab66bc69afd6b9429344d80c67a33b6", - "reference": "184231d5eab66bc69afd6b9429344d80c67a33b6", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/148cefffaf0233e4c08cc13db8a195a56dd6dfe9", + "reference": "148cefffaf0233e4c08cc13db8a195a56dd6dfe9", "shasum": "" }, "require": { - "codeception/phpunit-wrapper": ">6.0.15 <6.1.0 | ^6.6.1 | ^7.7.1 | ^8.0.3 | ^9.0", - "ext-dom": "*", - "php": ">=5.6.0 <9.0" + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "doctrine/annotations": "^2.0", + "nikic/php-parser": "^5.3.0", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpstan/phpstan-strict-rules": "^2.0", + "phpunit/phpunit": "^9.6", + "symfony/process": "^5.2" }, "type": "library", "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Michael Bodnarchuk", - "email": "davert@mail.ua", - "homepage": "http://codegyre.com" - }, - { - "name": "Gintautas Miselis" - }, - { - "name": "Gustavo Nieves", - "homepage": "https://medium.com/@ganieves" - } - ], - "description": "Assertion methods used by Codeception core and Asserts module", - "homepage": "https://codeception.com/", - "keywords": [ - "codeception" - ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { - "issues": "https://github.com/Codeception/lib-asserts/issues", - "source": "https://github.com/Codeception/lib-asserts/tree/1.13.2" + "issues": "https://github.com/phpstan/phpdoc-parser/issues", + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.5" }, - "time": "2020-10-21T16:26:20+00:00" + "time": "2026-08-31T16:05:28+00:00" }, { - "name": "codeception/lib-innerbrowser", - "version": "1.5.1", + "name": "psr/container", + "version": "2.0.2", "source": { "type": "git", - "url": "https://github.com/Codeception/lib-innerbrowser.git", - "reference": "31b4b56ad53c3464fcb2c0a14d55a51a201bd3c2" + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/lib-innerbrowser/zipball/31b4b56ad53c3464fcb2c0a14d55a51a201bd3c2", - "reference": "31b4b56ad53c3464fcb2c0a14d55a51a201bd3c2", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", "shasum": "" }, "require": { - "codeception/codeception": "4.*@dev", - "ext-dom": "*", - "ext-json": "*", - "ext-mbstring": "*", - "php": ">=5.6.0 <9.0", - "symfony/browser-kit": ">=2.7 <6.0", - "symfony/dom-crawler": ">=2.7 <6.0" - }, - "conflict": { - "codeception/codeception": "<4.0" - }, - "require-dev": { - "codeception/util-universalframework": "dev-master" + "php": ">=7.4.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Psr\\Container\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3205,52 +3233,52 @@ ], "authors": [ { - "name": "Michael Bodnarchuk", - "email": "davert@mail.ua", - "homepage": "http://codegyre.com" - }, - { - "name": "Gintautas Miselis" + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" } ], - "description": "Parent library for all Codeception framework modules and PhpBrowser", - "homepage": "https://codeception.com/", + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", "keywords": [ - "codeception" + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" ], "support": { - "issues": "https://github.com/Codeception/lib-innerbrowser/issues", - "source": "https://github.com/Codeception/lib-innerbrowser/tree/1.5.1" + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" }, - "time": "2021-08-30T15:21:42+00:00" + "time": "2021-11-05T16:47:00+00:00" }, { - "name": "codeception/module-asserts", - "version": "1.3.1", + "name": "psr/event-dispatcher", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/Codeception/module-asserts.git", - "reference": "59374f2fef0cabb9e8ddb53277e85cdca74328de" + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/module-asserts/zipball/59374f2fef0cabb9e8ddb53277e85cdca74328de", - "reference": "59374f2fef0cabb9e8ddb53277e85cdca74328de", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", "shasum": "" }, "require": { - "codeception/codeception": "*@dev", - "codeception/lib-asserts": "^1.13.1", - "php": ">=5.6.0 <9.0" - }, - "conflict": { - "codeception/codeception": "<4.0" + "php": ">=7.2.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Psr\\EventDispatcher\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3258,55 +3286,50 @@ ], "authors": [ { - "name": "Michael Bodnarchuk" - }, - { - "name": "Gintautas Miselis" - }, - { - "name": "Gustavo Nieves", - "homepage": "https://medium.com/@ganieves" + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" } ], - "description": "Codeception module containing various assertions", - "homepage": "https://codeception.com/", + "description": "Standard interfaces for event handling.", "keywords": [ - "assertions", - "asserts", - "codeception" + "events", + "psr", + "psr-14" ], "support": { - "issues": "https://github.com/Codeception/module-asserts/issues", - "source": "https://github.com/Codeception/module-asserts/tree/1.3.1" + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" }, - "time": "2020-10-21T16:48:15+00:00" + "time": "2019-01-08T18:20:26+00:00" }, { - "name": "codeception/module-cli", - "version": "1.1.1", + "name": "psr/http-factory", + "version": "1.1.0", "source": { "type": "git", - "url": "https://github.com/Codeception/module-cli.git", - "reference": "1f841ad4a1d43e5d9e60a43c4cc9e5af8008024f" + "url": "https://github.com/php-fig/http-factory.git", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/module-cli/zipball/1f841ad4a1d43e5d9e60a43c4cc9e5af8008024f", - "reference": "1f841ad4a1d43e5d9e60a43c4cc9e5af8008024f", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", "shasum": "" }, "require": { - "codeception/codeception": "*@dev", - "php": ">=5.6.0 <9.0" - }, - "conflict": { - "codeception/codeception": "<4.0" + "php": ">=7.1", + "psr/http-message": "^1.0 || ^2.0" }, "type": "library", - "autoload": { - "classmap": [ - "src/" - ] + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3314,47 +3337,53 @@ ], "authors": [ { - "name": "Michael Bodnarchuk" + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" } ], - "description": "Codeception module for testing basic shell commands and shell output", - "homepage": "http://codeception.com/", + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", "keywords": [ - "codeception" + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" ], "support": { - "issues": "https://github.com/Codeception/module-cli/issues", - "source": "https://github.com/Codeception/module-cli/tree/1.1.1" + "source": "https://github.com/php-fig/http-factory" }, - "time": "2020-12-26T16:56:19+00:00" + "time": "2024-04-15T12:06:14+00:00" }, { - "name": "codeception/module-filesystem", - "version": "1.0.3", + "name": "psr/http-message", + "version": "2.0", "source": { "type": "git", - "url": "https://github.com/Codeception/module-filesystem.git", - "reference": "781be167fb1557bfc9b61e0a4eac60a32c534ec1" + "url": "https://github.com/php-fig/http-message.git", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/module-filesystem/zipball/781be167fb1557bfc9b61e0a4eac60a32c534ec1", - "reference": "781be167fb1557bfc9b61e0a4eac60a32c534ec1", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", "shasum": "" }, "require": { - "codeception/codeception": "^4.0", - "php": ">=5.6.0 <9.0", - "symfony/finder": ">=2.7 <6.0" - }, - "conflict": { - "codeception/codeception": "<4.0" + "php": "^7.2 || ^8.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3362,58 +3391,52 @@ ], "authors": [ { - "name": "Michael Bodnarchuk" - }, - { - "name": "Gintautas Miselis" + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" } ], - "description": "Codeception module for testing local filesystem", - "homepage": "http://codeception.com/", + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", "keywords": [ - "codeception", - "filesystem" + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" ], "support": { - "issues": "https://github.com/Codeception/module-filesystem/issues", - "source": "https://github.com/Codeception/module-filesystem/tree/1.0.3" + "source": "https://github.com/php-fig/http-message/tree/2.0" }, - "time": "2020-10-24T14:46:40+00:00" + "time": "2023-04-04T09:54:51+00:00" }, { - "name": "codeception/module-phpbrowser", - "version": "1.0.3", + "name": "psr/log", + "version": "3.0.2", "source": { "type": "git", - "url": "https://github.com/Codeception/module-phpbrowser.git", - "reference": "8ba6bede11d0914e74d98691f427fd8f397f192e" + "url": "https://github.com/php-fig/log.git", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/module-phpbrowser/zipball/8ba6bede11d0914e74d98691f427fd8f397f192e", - "reference": "8ba6bede11d0914e74d98691f427fd8f397f192e", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", "shasum": "" }, "require": { - "codeception/codeception": "^4.1", - "codeception/lib-innerbrowser": "^1.3", - "guzzlehttp/guzzle": "^6.3|^7.0", - "php": ">=5.6.0 <9.0" - }, - "conflict": { - "codeception/codeception": "<4.0" - }, - "require-dev": { - "codeception/module-rest": "^1.0" - }, - "suggest": { - "codeception/phpbuiltinserver": "Start and stop PHP built-in web server for your tests" + "php": ">=8.0.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Psr\\Log\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3421,52 +3444,75 @@ ], "authors": [ { - "name": "Michael Bodnarchuk" - }, - { - "name": "Gintautas Miselis" + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" } ], - "description": "Codeception module for testing web application over HTTP", - "homepage": "http://codeception.com/", + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", "keywords": [ - "codeception", - "functional-testing", - "http" + "log", + "psr", + "psr-3" ], "support": { - "issues": "https://github.com/Codeception/module-phpbrowser/issues", - "source": "https://github.com/Codeception/module-phpbrowser/tree/1.0.3" + "source": "https://github.com/php-fig/log/tree/3.0.2" }, - "time": "2022-05-21T13:50:41+00:00" + "time": "2024-09-11T13:17:53+00:00" }, { - "name": "codeception/phpunit-wrapper", - "version": "9.0.9", + "name": "psy/psysh", + "version": "v0.12.24", "source": { "type": "git", - "url": "https://github.com/Codeception/phpunit-wrapper.git", - "reference": "7439a53ae367986e9c22b2ac00f9d7376bb2f8cf" + "url": "https://github.com/bobthecow/psysh.git", + "reference": "ca0fdcf8a7617afa3adfdf1b5fef573dffb69ca1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/phpunit-wrapper/zipball/7439a53ae367986e9c22b2ac00f9d7376bb2f8cf", - "reference": "7439a53ae367986e9c22b2ac00f9d7376bb2f8cf", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/ca0fdcf8a7617afa3adfdf1b5fef573dffb69ca1", + "reference": "ca0fdcf8a7617afa3adfdf1b5fef573dffb69ca1", "shasum": "" }, "require": { - "php": ">=7.2", - "phpunit/phpunit": "^9.0" + "ext-json": "*", + "ext-tokenizer": "*", + "nikic/php-parser": "^5.0 || ^4.0", + "php": "^8.0 || ^7.4", + "symfony/console": "^8.0 || ^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4", + "symfony/var-dumper": "^8.0 || ^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4" + }, + "conflict": { + "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" }, "require-dev": { - "codeception/specify": "*", - "consolidation/robo": "^3.0.0-alpha3", - "vlucas/phpdotenv": "^3.0" + "bamarni/composer-bin-plugin": "^1.2", + "composer/class-map-generator": "^1.6" + }, + "suggest": { + "composer/class-map-generator": "Improved tab completion performance with better class discovery.", + "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", + "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well." }, + "bin": [ + "bin/psysh" + ], "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": false, + "forward-command": false + }, + "branch-alias": { + "dev-main": "0.12.x-dev" + } + }, "autoload": { + "files": [ + "src/functions.php" + ], "psr-4": { - "Codeception\\PHPUnit\\": "src/" + "Psy\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -3475,44 +3521,56 @@ ], "authors": [ { - "name": "Davert", - "email": "davert.php@resend.cc" - }, - { - "name": "Naktibalda" + "name": "Justin Hileman", + "email": "justin@justinhileman.info" } ], - "description": "PHPUnit classes used by Codeception", + "description": "An interactive shell for modern PHP.", + "homepage": "https://psysh.org", + "keywords": [ + "REPL", + "console", + "interactive", + "shell" + ], "support": { - "issues": "https://github.com/Codeception/phpunit-wrapper/issues", - "source": "https://github.com/Codeception/phpunit-wrapper/tree/9.0.9" + "issues": "https://github.com/bobthecow/psysh/issues", + "source": "https://github.com/bobthecow/psysh/tree/v0.12.24" }, - "abandoned": true, - "time": "2022-05-23T06:24:11+00:00" + "time": "2026-06-29T15:41:09+00:00" }, { - "name": "codeception/specify", - "version": "1.4.0", + "name": "revolt/event-loop", + "version": "v1.0.9", "source": { "type": "git", - "url": "https://github.com/Codeception/Specify.git", - "reference": "17ae6d4d6cb201ef5461f6587ecfcff8c177f854" + "url": "https://github.com/revoltphp/event-loop.git", + "reference": "44061cf513e53c6200372fc935ac42271566295d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Specify/zipball/17ae6d4d6cb201ef5461f6587ecfcff8c177f854", - "reference": "17ae6d4d6cb201ef5461f6587ecfcff8c177f854", + "url": "https://api.github.com/repos/revoltphp/event-loop/zipball/44061cf513e53c6200372fc935ac42271566295d", + "reference": "44061cf513e53c6200372fc935ac42271566295d", "shasum": "" }, "require": { - "myclabs/deep-copy": "~1.1", - "php": ">=7.1.0", - "phpunit/phpunit": ">=7.0 <10.0" + "php": ">=8.1" + }, + "require-dev": { + "ext-json": "*", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^9", + "psalm/phar": "6.16.*" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, "autoload": { - "psr-0": { - "Codeception\\": "src/" + "psr-4": { + "Revolt\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -3521,86 +3579,133 @@ ], "authors": [ { - "name": "Michael Bodnarchuk", - "email": "davert@codeception.com" + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" }, { - "name": "Gustavo Nieves", - "homepage": "https://medium.com/@ganieves" + "name": "Cees-Jan Kiewiet", + "email": "ceesjank@gmail.com" + }, + { + "name": "Christian Lück", + "email": "christian@clue.engineering" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], - "description": "BDD code blocks for PHPUnit and Codeception", + "description": "Rock-solid event loop for concurrent PHP applications.", + "keywords": [ + "async", + "asynchronous", + "concurrency", + "event", + "event-loop", + "non-blocking", + "scheduler" + ], "support": { - "issues": "https://github.com/Codeception/Specify/issues", - "source": "https://github.com/Codeception/Specify/tree/1.4.0" + "issues": "https://github.com/revoltphp/event-loop/issues", + "source": "https://github.com/revoltphp/event-loop/tree/v1.0.9" }, - "time": "2020-08-27T20:17:29+00:00" + "time": "2026-05-16T17:55:38+00:00" }, { - "name": "codeception/stub", - "version": "4.0.2", + "name": "sebastian/diff", + "version": "6.0.2", "source": { "type": "git", - "url": "https://github.com/Codeception/Stub.git", - "reference": "18a148dacd293fc7b044042f5aa63a82b08bff5d" + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Stub/zipball/18a148dacd293fc7b044042f5aa63a82b08bff5d", - "reference": "18a148dacd293fc7b044042f5aa63a82b08bff5d", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544", + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544", "shasum": "" }, "require": { - "php": "^7.4 | ^8.0", - "phpunit/phpunit": "^8.4 | ^9.0 | ^10.0 | 10.0.x-dev" + "php": ">=8.2" }, "require-dev": { - "consolidation/robo": "^3.0" + "phpunit/phpunit": "^11.0", + "symfony/process": "^4.2 || ^5" }, "type": "library", - "autoload": { - "psr-4": { - "Codeception\\": "src/" + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" } }, + "autoload": { + "classmap": [ + "src/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" ], - "description": "Flexible Stub wrapper for PHPUnit's Mock Builder", "support": { - "issues": "https://github.com/Codeception/Stub/issues", - "source": "https://github.com/Codeception/Stub/tree/4.0.2" + "issues": "https://github.com/sebastianbergmann/diff/issues", + "security": "https://github.com/sebastianbergmann/diff/security/policy", + "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2" }, - "time": "2022-01-31T19:25:15+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T04:53:05+00:00" }, { - "name": "codeception/verify", - "version": "1.5.0", + "name": "seld/jsonlint", + "version": "1.12.1", "source": { "type": "git", - "url": "https://github.com/Codeception/Verify.git", - "reference": "ebf833c857825207a8abec541c07bdd724ea4676" + "url": "https://github.com/Seldaek/jsonlint.git", + "reference": "9a90eb5d32d5a500296bf43f946d60246444d5f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Verify/zipball/ebf833c857825207a8abec541c07bdd724ea4676", - "reference": "ebf833c857825207a8abec541c07bdd724ea4676", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/9a90eb5d32d5a500296bf43f946d60246444d5f7", + "reference": "9a90eb5d32d5a500296bf43f946d60246444d5f7", "shasum": "" }, "require": { - "codeception/phpunit-wrapper": "^7.8.0 | ^8.1.2 | ^9.0.2", - "ext-dom": "*", - "php": ">= 7.1", - "phpunit/phpunit": ">= 7.0" + "php": "^5.3 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.11", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^8.5.13" }, + "bin": [ + "bin/jsonlint" + ], "type": "library", "autoload": { - "files": [ - "src/Codeception/function.php" - ], "psr-4": { - "Codeception\\": "src\\Codeception" + "Seld\\JsonLint\\": "src/Seld/JsonLint/" } }, "notification-url": "https://packagist.org/downloads/", @@ -3609,61 +3714,60 @@ ], "authors": [ { - "name": "Michael Bodnarchuk", - "email": "davert@codeception.com" - }, - { - "name": "Gustavo Nieves", - "homepage": "https://medium.com/@ganieves" + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" } ], - "description": "BDD assertion library for PHPUnit", + "description": "JSON Linter", + "keywords": [ + "json", + "linter", + "parser", + "validator" + ], "support": { - "issues": "https://github.com/Codeception/Verify/issues", - "source": "https://github.com/Codeception/Verify/tree/master" + "issues": "https://github.com/Seldaek/jsonlint/issues", + "source": "https://github.com/Seldaek/jsonlint/tree/1.12.1" }, - "time": "2020-08-29T00:28:24+00:00" + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint", + "type": "tidelift" + } + ], + "time": "2026-06-12T11:32:29+00:00" }, { - "name": "composer/pcre", - "version": "3.4.0", + "name": "seld/phar-utils", + "version": "1.2.2", "source": { "type": "git", - "url": "https://github.com/composer/pcre.git", - "reference": "d5a341b3fb61f3001970940afb1d332968a183ed" + "url": "https://github.com/Seldaek/phar-utils.git", + "reference": "990bbd0e92caa216d52eca0935f6e35e589bfaa5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/d5a341b3fb61f3001970940afb1d332968a183ed", - "reference": "d5a341b3fb61f3001970940afb1d332968a183ed", + "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/990bbd0e92caa216d52eca0935f6e35e589bfaa5", + "reference": "990bbd0e92caa216d52eca0935f6e35e589bfaa5", "shasum": "" }, "require": { - "php": "^7.4 || ^8.0" - }, - "conflict": { - "phpstan/phpstan": "<2.2.2" - }, - "require-dev": { - "phpstan/phpstan": "^2", - "phpstan/phpstan-deprecation-rules": "^2", - "phpstan/phpstan-strict-rules": "^2", - "phpunit/phpunit": "^9" + "php": ">=5.3" }, "type": "library", "extra": { - "phpstan": { - "includes": [ - "extension.neon" - ] - }, "branch-alias": { - "dev-main": "3.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { "psr-4": { - "Composer\\Pcre\\": "src" + "Seld\\PharUtils\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -3673,64 +3777,71 @@ "authors": [ { "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" + "email": "j.boggiano@seld.be" } ], - "description": "PCRE wrapping library that offers type-safe preg_* replacements.", + "description": "PHAR file format utilities, for when PHP phars you up", "keywords": [ - "PCRE", - "preg", - "regex", - "regular expression" + "phar" ], "support": { - "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.4.0" + "issues": "https://github.com/Seldaek/phar-utils/issues", + "source": "https://github.com/Seldaek/phar-utils/tree/1.2.2" }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - } - ], - "time": "2026-06-07T11:47:49+00:00" + "time": "2026-08-01T12:48:55+00:00" }, { - "name": "composer/semver", - "version": "3.4.4", + "name": "symfony/console", + "version": "v7.4.19", "source": { "type": "git", - "url": "https://github.com/composer/semver.git", - "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95" + "url": "https://github.com/symfony/console.git", + "reference": "3a1973458b153f566a8d7499bc06ece323d60063" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/198166618906cb2de69b95d7d47e5fa8aa1b2b95", - "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95", + "url": "https://api.github.com/repos/symfony/console/zipball/3a1973458b153f566a8d7499bc06ece323d60063", + "reference": "3a1973458b153f566a8d7499bc06ece323d60063", "shasum": "" }, "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/string": "^7.2|^8.0" + }, + "conflict": { + "symfony/dependency-injection": "<6.4", + "symfony/dotenv": "<6.4", + "symfony/event-dispatcher": "<6.4", + "symfony/lock": "<6.4", + "symfony/process": "<6.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { - "phpstan/phpstan": "^1.11", - "symfony/phpunit-bridge": "^3 || ^7" + "psr/log": "^1|^2|^3", + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/event-dispatcher": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/lock": "^6.4|^7.0|^8.0", + "symfony/messenger": "^6.4|^7.0|^8.0", + "symfony/process": "^6.4|^7.0|^8.0", + "symfony/stopwatch": "^6.4|^7.0|^8.0", + "symfony/var-dumper": "^6.4|^7.0|^8.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, "autoload": { "psr-4": { - "Composer\\Semver\\": "src" - } + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3738,227 +3849,226 @@ ], "authors": [ { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "http://www.naderman.de" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { - "name": "Rob Bast", - "email": "rob.bast@gmail.com", - "homepage": "http://robbast.nl" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Semver library that offers utilities, version constraint parsing and validation.", + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", "keywords": [ - "semantic", - "semver", - "validation", - "versioning" + "cli", + "command-line", + "console", + "terminal" ], "support": { - "irc": "ircs://irc.libera.chat:6697/composer", - "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.4.4" + "source": "https://github.com/symfony/console/tree/v7.4.19" }, "funding": [ { - "url": "https://packagist.com", + "url": "https://symfony.com/sponsor", "type": "custom" }, { - "url": "https://github.com/composer", + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "time": "2025-08-20T19:15:30+00:00" + "time": "2026-09-13T10:38:41+00:00" }, { - "name": "composer/xdebug-handler", - "version": "3.0.5", + "name": "symfony/deprecation-contracts", + "version": "v3.7.1", "source": { "type": "git", - "url": "https://github.com/composer/xdebug-handler.git", - "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef" + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef", - "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/f3202fa1b5097b0af062dc978b32ecf63404e31d", + "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d", "shasum": "" }, "require": { - "composer/pcre": "^1 || ^2 || ^3", - "php": "^7.2.5 || ^8.0", - "psr/log": "^1 || ^2 || ^3" - }, - "require-dev": { - "phpstan/phpstan": "^1.0", - "phpstan/phpstan-strict-rules": "^1.1", - "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" + "php": ">=8.1" }, "type": "library", - "autoload": { - "psr-4": { - "Composer\\XdebugHandler\\": "src" + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.7-dev" } }, + "autoload": { + "files": [ + "function.php" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { - "name": "John Stevenson", - "email": "john-stevenson@blueyonder.co.uk" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Restarts a process without Xdebug.", - "keywords": [ - "Xdebug", - "performance" - ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", "support": { - "irc": "ircs://irc.libera.chat:6697/composer", - "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.5" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.1" }, "funding": [ { - "url": "https://packagist.com", + "url": "https://symfony.com/sponsor", "type": "custom" }, { - "url": "https://github.com/composer", + "url": "https://github.com/fabpot", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-05-06T16:37:16+00:00" + "time": "2026-06-05T06:23:12+00:00" }, { - "name": "dnoegel/php-xdg-base-dir", - "version": "v0.1.1", + "name": "symfony/event-dispatcher-contracts", + "version": "v3.7.1", "source": { "type": "git", - "url": "https://github.com/dnoegel/php-xdg-base-dir.git", - "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "c7de7a00ffb67842132da02ea92988a39ccd9f4e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", - "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c7de7a00ffb67842132da02ea92988a39ccd9f4e", + "reference": "c7de7a00ffb67842132da02ea92988a39ccd9f4e", "shasum": "" }, "require": { - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" + "php": ">=8.1", + "psr/event-dispatcher": "^1" }, "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.7-dev" + } + }, "autoload": { "psr-4": { - "XdgBaseDir\\": "src/" + "Symfony\\Contracts\\EventDispatcher\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "implementation of xdg base directory specification for php", - "support": { - "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues", - "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1" - }, - "time": "2019-12-04T15:06:13+00:00" - }, - { - "name": "doctrine/deprecations", - "version": "1.1.6", - "source": { - "type": "git", - "url": "https://github.com/doctrine/deprecations.git", - "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", - "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "conflict": { - "phpunit/phpunit": "<=7.5 || >=14" - }, - "require-dev": { - "doctrine/coding-standard": "^9 || ^12 || ^14", - "phpstan/phpstan": "1.4.10 || 2.1.30", - "phpstan/phpstan-phpunit": "^1.0 || ^2", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12.4 || ^13.0", - "psr/log": "^1 || ^2 || ^3" - }, - "suggest": { - "psr/log": "Allows logging deprecations via PSR-3 logger implementation" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Deprecations\\": "src" + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" ], - "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", - "homepage": "https://www.doctrine-project.org/", + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], "support": { - "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.6" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.7.1" }, - "time": "2026-02-07T07:09:04+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-06-05T06:23:12+00:00" }, { - "name": "doctrine/instantiator", - "version": "2.1.0", + "name": "symfony/filesystem", + "version": "v7.4.18", "source": { "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "23da848e1a2308728fe5fdddabf4be17ff9720c7" + "url": "https://github.com/symfony/filesystem.git", + "reference": "90d412aa5277c6819db39e7605aa46b1019e3232" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/23da848e1a2308728fe5fdddabf4be17ff9720c7", - "reference": "23da848e1a2308728fe5fdddabf4be17ff9720c7", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/90d412aa5277c6819db39e7605aa46b1019e3232", + "reference": "90d412aa5277c6819db39e7605aa46b1019e3232", "shasum": "" }, "require": { - "php": "^8.4" + "php": ">=8.2", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8" }, "require-dev": { - "doctrine/coding-standard": "^14", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^1.2", - "phpstan/phpstan": "^2.1", - "phpstan/phpstan-phpunit": "^2.0", - "phpunit/phpunit": "^10.5.58" + "symfony/process": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3966,191 +4076,226 @@ ], "authors": [ { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", - "keywords": [ - "constructor", - "instantiate" - ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", "support": { - "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/2.1.0" + "source": "https://github.com/symfony/filesystem/tree/v7.4.18" }, "funding": [ { - "url": "https://www.doctrine-project.org/sponsorship.html", + "url": "https://symfony.com/sponsor", "type": "custom" }, { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2026-01-05T06:47:08+00:00" + "time": "2026-08-23T10:03:40+00:00" }, { - "name": "felixfbecker/advanced-json-rpc", - "version": "v3.2.1", + "name": "symfony/finder", + "version": "v7.4.19", "source": { "type": "git", - "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git", - "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447" + "url": "https://github.com/symfony/finder.git", + "reference": "1b900bc6ae5ba60c5eee69c11ba44566190576fe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/b5f37dbff9a8ad360ca341f3240dc1c168b45447", - "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447", + "url": "https://api.github.com/repos/symfony/finder/zipball/1b900bc6ae5ba60c5eee69c11ba44566190576fe", + "reference": "1b900bc6ae5ba60c5eee69c11ba44566190576fe", "shasum": "" }, "require": { - "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", - "php": "^7.1 || ^8.0", - "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^7.0 || ^8.0" + "symfony/filesystem": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { "psr-4": { - "AdvancedJsonRpc\\": "lib/" - } + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "ISC" + "MIT" ], "authors": [ { - "name": "Felix Becker", - "email": "felix.b@outlook.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "A more advanced JSONRPC implementation", + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", "support": { - "issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues", - "source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.1" + "source": "https://github.com/symfony/finder/tree/v7.4.19" }, - "time": "2021-06-11T22:34:44+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-09-10T19:14:10+00:00" }, { - "name": "felixfbecker/language-server-protocol", - "version": "v1.5.3", + "name": "symfony/polyfill-ctype", + "version": "v1.37.0", "source": { "type": "git", - "url": "https://github.com/felixfbecker/php-language-server-protocol.git", - "reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9" + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "141046a8f9477948ff284fa65be2095baafb94f2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/a9e113dbc7d849e35b8776da39edaf4313b7b6c9", - "reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/141046a8f9477948ff284fa65be2095baafb94f2", + "reference": "141046a8f9477948ff284fa65be2095baafb94f2", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, - "require-dev": { - "phpstan/phpstan": "*", - "squizlabs/php_codesniffer": "^3.1", - "vimeo/psalm": "^4.0" + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "1.x-dev" + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { + "files": [ + "bootstrap.php" + ], "psr-4": { - "LanguageServerProtocol\\": "src/" + "Symfony\\Polyfill\\Ctype\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "ISC" + "MIT" ], "authors": [ { - "name": "Felix Becker", - "email": "felix.b@outlook.com" + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "PHP classes for the Language Server Protocol", + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", "keywords": [ - "language", - "microsoft", - "php", - "server" + "compatibility", + "ctype", + "polyfill", + "portable" ], "support": { - "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues", - "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.3" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.37.0" }, - "time": "2024-04-30T00:40:11+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-04-10T16:19:22+00:00" }, { - "name": "guzzlehttp/guzzle", - "version": "7.15.5", + "name": "symfony/polyfill-iconv", + "version": "v1.37.0", "source": { "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "ee80339fd9177ba44c49cdb653ff02a4d1106b9a" + "url": "https://github.com/symfony/polyfill-iconv.git", + "reference": "2c5729fd241b4b22f6e4b436bc3354a4f262df57" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ee80339fd9177ba44c49cdb653ff02a4d1106b9a", - "reference": "ee80339fd9177ba44c49cdb653ff02a4d1106b9a", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/2c5729fd241b4b22f6e4b436bc3354a4f262df57", + "reference": "2c5729fd241b4b22f6e4b436bc3354a4f262df57", "shasum": "" }, "require": { - "ext-json": "*", - "guzzlehttp/promises": "^2.5.3", - "guzzlehttp/psr7": "^2.13.1", - "php": "^7.2.5 || ^8.0", - "psr/http-client": "^1.0", - "symfony/deprecation-contracts": "^2.5 || ^3.0", - "symfony/polyfill-php80": "^1.25" + "php": ">=7.2" }, "provide": { - "psr/http-client-implementation": "1.0" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.2", - "ext-curl": "*", - "guzzle/client-integration-tests": "3.0.3", - "guzzlehttp/test-server": "^0.7", - "php-http/message-factory": "^1.1", - "phpunit/phpunit": "^8.5.52 || ^9.6.34", - "psr/log": "^1.1 || ^2.0 || ^3.0" + "ext-iconv": "*" }, "suggest": { - "ext-curl": "Required for CURL handler support", - "ext-intl": "Required for Internationalized Domain Name (IDN) support", - "psr/log": "Required for using the Log middleware" + "ext-iconv": "For best performance" }, "type": "library", "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": false + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { "files": [ - "src/functions_include.php" + "bootstrap.php" ], "psr-4": { - "GuzzleHttp\\": "src/" + "Symfony\\Polyfill\\Iconv\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -4159,106 +4304,165 @@ ], "authors": [ { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { - "name": "Jeremy Lindblom", - "email": "jeremeamia@gmail.com", - "homepage": "https://github.com/jeremeamia" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Iconv extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "iconv", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-iconv/tree/v1.37.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" }, { - "name": "George Mponos", - "email": "gmponos@gmail.com", - "homepage": "https://github.com/gmponos" + "url": "https://github.com/fabpot", + "type": "github" }, { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" + "url": "https://github.com/nicolas-grekas", + "type": "github" }, { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://github.com/sagikazarmark" + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-04-10T16:19:22+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.41.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", + "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Guzzle is a PHP HTTP client library", + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", "keywords": [ - "client", - "curl", - "framework", - "http", - "http client", - "psr-18", - "psr-7", - "rest", - "web service" + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" ], "support": { - "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.15.5" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.41.0" }, "funding": [ { - "url": "https://github.com/GrahamCampbell", + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", "type": "github" }, { - "url": "https://github.com/Nyholm", + "url": "https://github.com/nicolas-grekas", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2026-08-24T09:21:06+00:00" + "time": "2026-07-28T08:25:59+00:00" }, { - "name": "guzzlehttp/promises", - "version": "2.5.3", + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.42.0", "source": { "type": "git", - "url": "https://github.com/guzzle/promises.git", - "reference": "cde49999552d185d64715fe9c1f77a2aadd2f9f1" + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/cde49999552d185d64715fe9c1f77a2aadd2f9f1", - "reference": "cde49999552d185d64715fe9c1f77a2aadd2f9f1", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/aa20edea75bd9c48cfecc8360922e5a6e5c44502", + "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502", "shasum": "" }, "require": { - "php": "^7.2.5 || ^8.0", - "symfony/deprecation-contracts": "^2.5 || ^3.0" + "php": ">=7.2" }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.52 || ^9.6.34" + "suggest": { + "ext-intl": "For best performance" }, "type": "library", "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": false + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { + "files": [ + "bootstrap.php" + ], "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - } + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4266,95 +4470,84 @@ ], "authors": [ { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Guzzle promises library", + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", "keywords": [ - "promise" + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" ], "support": { - "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.5.3" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.42.0" }, "funding": [ { - "url": "https://github.com/GrahamCampbell", + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", "type": "github" }, { - "url": "https://github.com/Nyholm", + "url": "https://github.com/nicolas-grekas", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2026-08-24T09:11:28+00:00" + "time": "2026-08-07T06:33:24+00:00" }, { - "name": "guzzlehttp/psr7", - "version": "2.13.1", + "name": "symfony/polyfill-mbstring", + "version": "v1.38.2", "source": { "type": "git", - "url": "https://github.com/guzzle/psr7.git", - "reference": "95e7828100de18b4e269fb1703be530082d5166d" + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/95e7828100de18b4e269fb1703be530082d5166d", - "reference": "95e7828100de18b4e269fb1703be530082d5166d", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", + "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", "shasum": "" }, "require": { - "php": "^7.2.5 || ^8.0", - "psr/http-factory": "^1.0", - "psr/http-message": "^1.1 || ^2.0", - "ralouphie/getallheaders": "^3.0", - "symfony/deprecation-contracts": "^2.5 || ^3.0", - "symfony/polyfill-php80": "^1.25" + "ext-iconv": "*", + "php": ">=7.2" }, "provide": { - "psr/http-factory-implementation": "1.0", - "psr/http-message-implementation": "1.0" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.2", - "http-interop/http-factory-tests": "1.1.0", - "jshttp/mime-db": "1.54.0.1", - "phpunit/phpunit": "^8.5.52 || ^9.6.34" + "ext-mbstring": "*" }, "suggest": { - "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + "ext-mbstring": "For best performance" }, "type": "library", "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": false + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { + "files": [ + "bootstrap.php" + ], "psr-4": { - "GuzzleHttp\\Psr7\\": "src/" + "Symfony\\Polyfill\\Mbstring\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -4363,539 +4556,1845 @@ ], "authors": [ { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.38.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" }, { - "name": "George Mponos", - "email": "gmponos@gmail.com", - "homepage": "https://github.com/gmponos" + "url": "https://github.com/fabpot", + "type": "github" }, { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" + "url": "https://github.com/nicolas-grekas", + "type": "github" }, { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://github.com/sagikazarmark" + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-05-27T06:59:30+00:00" + }, + { + "name": "symfony/polyfill-php84", + "version": "v1.38.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php84.git", + "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa", + "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php84\\": "" }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://sagikazarmark.hu" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "PSR-7 message implementation that also provides common utility methods", + "description": "Symfony polyfill backporting some PHP 8.4+ features to lower PHP versions", + "homepage": "https://symfony.com", "keywords": [ - "http", - "message", - "psr-7", - "request", - "response", - "stream", - "uri", - "url" + "compatibility", + "polyfill", + "portable", + "shim" ], "support": { - "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.13.1" + "source": "https://github.com/symfony/polyfill-php84/tree/v1.38.1" }, "funding": [ { - "url": "https://github.com/GrahamCampbell", + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-05-26T12:51:13+00:00" + }, + { + "name": "symfony/process", + "version": "v7.4.19", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "ed0ae095b86994d370d5791612e55984f15aa30e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/ed0ae095b86994d370d5791612e55984f15aa30e", + "reference": "ed0ae095b86994d370d5791612e55984f15aa30e", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Executes commands in sub-processes", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v7.4.19" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-09-02T12:38:34+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.7.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", + "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.7-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.7.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", "type": "github" }, { - "url": "https://github.com/Nyholm", - "type": "github" + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-07-27T15:39:01+00:00" + }, + { + "name": "symfony/string", + "version": "v7.4.19", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "02731ce2bd26514bec9efc0baef2cd0b0cf67f46" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/02731ce2bd26514bec9efc0baef2cd0b0cf67f46", + "reference": "02731ce2bd26514bec9efc0baef2cd0b0cf67f46", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.33", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.5" + }, + "require-dev": { + "symfony/emoji": "^7.1|^8.0", + "symfony/http-client": "^6.4|^7.0|^8.0", + "symfony/intl": "^6.4|^7.0|^8.0", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^6.4|^7.0|^8.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v7.4.19" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-09-11T14:46:58+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v7.4.18", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "e088da50b813f32473a76871616cbb8fa54653a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/e088da50b813f32473a76871616cbb8fa54653a8", + "reference": "e088da50b813f32473a76871616cbb8fa54653a8", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/console": "<6.4" + }, + "require-dev": { + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/process": "^6.4|^7.0|^8.0", + "symfony/uid": "^6.4|^7.0|^8.0", + "twig/twig": "^3.12|^4.0" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v7.4.18" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-08-30T20:10:52+00:00" + }, + { + "name": "thecodingmachine/safe", + "version": "v3.4.0", + "source": { + "type": "git", + "url": "https://github.com/thecodingmachine/safe.git", + "reference": "705683a25bacf0d4860c7dea4d7947bfd09eea19" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/705683a25bacf0d4860c7dea4d7947bfd09eea19", + "reference": "705683a25bacf0d4860c7dea4d7947bfd09eea19", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "php-parallel-lint/php-parallel-lint": "^1.4", + "phpstan/phpstan": "^2", + "phpunit/phpunit": "^10", + "squizlabs/php_codesniffer": "^3.2" + }, + "type": "library", + "autoload": { + "files": [ + "lib/special_cases.php", + "generated/apache.php", + "generated/apcu.php", + "generated/array.php", + "generated/bzip2.php", + "generated/calendar.php", + "generated/classobj.php", + "generated/com.php", + "generated/cubrid.php", + "generated/curl.php", + "generated/datetime.php", + "generated/dir.php", + "generated/eio.php", + "generated/errorfunc.php", + "generated/exec.php", + "generated/fileinfo.php", + "generated/filesystem.php", + "generated/filter.php", + "generated/fpm.php", + "generated/ftp.php", + "generated/funchand.php", + "generated/gettext.php", + "generated/gmp.php", + "generated/gnupg.php", + "generated/hash.php", + "generated/ibase.php", + "generated/ibmDb2.php", + "generated/iconv.php", + "generated/image.php", + "generated/imap.php", + "generated/info.php", + "generated/inotify.php", + "generated/json.php", + "generated/ldap.php", + "generated/libxml.php", + "generated/lzf.php", + "generated/mailparse.php", + "generated/mbstring.php", + "generated/misc.php", + "generated/mysql.php", + "generated/mysqli.php", + "generated/network.php", + "generated/oci8.php", + "generated/opcache.php", + "generated/openssl.php", + "generated/outcontrol.php", + "generated/pcntl.php", + "generated/pcre.php", + "generated/pgsql.php", + "generated/posix.php", + "generated/ps.php", + "generated/pspell.php", + "generated/readline.php", + "generated/rnp.php", + "generated/rpminfo.php", + "generated/rrd.php", + "generated/sem.php", + "generated/session.php", + "generated/shmop.php", + "generated/sockets.php", + "generated/sodium.php", + "generated/solr.php", + "generated/spl.php", + "generated/sqlsrv.php", + "generated/ssdeep.php", + "generated/ssh2.php", + "generated/stream.php", + "generated/strings.php", + "generated/swoole.php", + "generated/uodbc.php", + "generated/uopz.php", + "generated/url.php", + "generated/var.php", + "generated/xdiff.php", + "generated/xml.php", + "generated/xmlrpc.php", + "generated/yaml.php", + "generated/yaz.php", + "generated/zip.php", + "generated/zlib.php" + ], + "classmap": [ + "lib/DateTime.php", + "lib/DateTimeImmutable.php", + "lib/Exceptions/", + "generated/Exceptions/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHP core functions that throw exceptions instead of returning FALSE on error", + "support": { + "issues": "https://github.com/thecodingmachine/safe/issues", + "source": "https://github.com/thecodingmachine/safe/tree/v3.4.0" + }, + "funding": [ + { + "url": "https://github.com/OskarStark", + "type": "github" + }, + { + "url": "https://github.com/shish", + "type": "github" + }, + { + "url": "https://github.com/silasjoisten", + "type": "github" + }, + { + "url": "https://github.com/staabm", + "type": "github" + } + ], + "time": "2026-02-04T18:08:13+00:00" + }, + { + "name": "vlucas/phpdotenv", + "version": "v5.7.0", + "source": { + "type": "git", + "url": "https://github.com/vlucas/phpdotenv.git", + "reference": "301c07936b16d88628b126b01d082ba153cf4c40" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/301c07936b16d88628b126b01d082ba153cf4c40", + "reference": "301c07936b16d88628b126b01d082ba153cf4c40", + "shasum": "" + }, + "require": { + "ext-pcre": "*", + "graham-campbell/result-type": "^1.2", + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.10", + "symfony/polyfill-ctype": "^1.26", + "symfony/polyfill-mbstring": "^1.26", + "symfony/polyfill-php80": "^1.26" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "ext-filter": "*", + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" + }, + "suggest": { + "ext-filter": "Required to use the boolean validator." + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + }, + "branch-alias": { + "dev-master": "5.6-dev" + } + }, + "autoload": { + "psr-4": { + "Dotenv\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Vance Lucas", + "email": "vance@vancelucas.com", + "homepage": "https://github.com/vlucas" + } + ], + "description": "Loads environment variables from `.env` to `$_ENV` and `$_SERVER` automagically, and optionally to `getenv()`.", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "support": { + "issues": "https://github.com/vlucas/phpdotenv/issues", + "source": "https://github.com/vlucas/phpdotenv/tree/v5.7.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv", + "type": "tidelift" + } + ], + "time": "2026-08-24T18:07:49+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.12.1", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "9be6926d8b485f55b9229203f962b51ed377ba68" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/9be6926d8b485f55b9229203f962b51ed377ba68", + "reference": "9be6926d8b485f55b9229203f962b51ed377ba68", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-date": "*", + "ext-filter": "*", + "php": "^7.2 || ^8.0" + }, + "suggest": { + "ext-intl": "", + "ext-simplexml": "", + "ext-spl": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.12.1" + }, + "time": "2025-10-29T15:56:20+00:00" + } + ], + "packages-dev": [ + { + "name": "behat/gherkin", + "version": "v4.17.0", + "source": { + "type": "git", + "url": "https://github.com/Behat/Gherkin.git", + "reference": "5c8b3149fac39b5a79942b64eeec59a5ee4001c0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Behat/Gherkin/zipball/5c8b3149fac39b5a79942b64eeec59a5ee4001c0", + "reference": "5c8b3149fac39b5a79942b64eeec59a5ee4001c0", + "shasum": "" + }, + "require": { + "composer-runtime-api": "^2.2", + "php": ">=8.1 <8.6" + }, + "require-dev": { + "cucumber/gherkin-monorepo": "dev-gherkin-v39.1.0", + "friendsofphp/php-cs-fixer": "^3.77", + "mikey179/vfsstream": "^1.6", + "phpstan/extension-installer": "^1", + "phpstan/phpstan": "^2", + "phpstan/phpstan-phpunit": "^2", + "phpunit/phpunit": "^10.5", + "symfony/yaml": "^5.4 || ^6.4 || ^7.0" + }, + "suggest": { + "symfony/yaml": "If you want to parse features, represented in YAML files" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.x-dev" + } + }, + "autoload": { + "psr-4": { + "Behat\\Gherkin\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "https://everzet.com" + } + ], + "description": "Gherkin DSL parser for PHP", + "homepage": "https://behat.org/", + "keywords": [ + "BDD", + "Behat", + "Cucumber", + "DSL", + "gherkin", + "parser" + ], + "support": { + "issues": "https://github.com/Behat/Gherkin/issues", + "source": "https://github.com/Behat/Gherkin/tree/v4.17.0" + }, + "funding": [ + { + "url": "https://github.com/acoulton", + "type": "github" + }, + { + "url": "https://github.com/carlos-granados", + "type": "github" + }, + { + "url": "https://github.com/stof", + "type": "github" + } + ], + "time": "2026-05-18T09:33:47+00:00" + }, + { + "name": "codeception/codeception", + "version": "5.3.5", + "source": { + "type": "git", + "url": "https://github.com/Codeception/Codeception.git", + "reference": "83c2986ec2abe594cee2f706d9ec7aca2878fbe0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Codeception/Codeception/zipball/83c2986ec2abe594cee2f706d9ec7aca2878fbe0", + "reference": "83c2986ec2abe594cee2f706d9ec7aca2878fbe0", + "shasum": "" + }, + "require": { + "behat/gherkin": "^4.12", + "codeception/lib-asserts": "^2.2 | ^3.0.1", + "codeception/stub": "^4.1", + "ext-curl": "*", + "ext-json": "*", + "ext-mbstring": "*", + "php": "^8.2", + "phpunit/php-code-coverage": "^9.2 | ^10.0 | ^11.0 | ^12.0 | ^13.0", + "phpunit/php-text-template": "^2.0 | ^3.0 | ^4.0 | ^5.0 | ^6.0", + "phpunit/php-timer": "^5.0.3 | ^6.0 | ^7.0 | ^8.0 | ^9.0", + "phpunit/phpunit": "^9.5.20 | ^10.0 | ^11.0 | ^12.0 | ^13.0", + "psy/psysh": "^0.11.2 | ^0.12", + "sebastian/comparator": "^4.0.5 | ^5.0 | ^6.0 | ^7.0 | ^8.0", + "sebastian/diff": "^4.0.3 | ^5.0 | ^6.0 | ^7.0 | ^8.0", + "symfony/console": ">=5.4.24 <9.0", + "symfony/css-selector": ">=5.4.24 <9.0", + "symfony/event-dispatcher": ">=5.4.24 <9.0", + "symfony/finder": ">=5.4.24 <9.0", + "symfony/var-dumper": ">=5.4.24 <9.0", + "symfony/yaml": ">=5.4.24 <9.0" + }, + "conflict": { + "codeception/lib-innerbrowser": "<3.1.3", + "codeception/module-filesystem": "<3.0", + "codeception/module-phpbrowser": "<2.5" + }, + "replace": { + "codeception/phpunit-wrapper": "*" + }, + "require-dev": { + "codeception/lib-innerbrowser": "*@dev", + "codeception/lib-web": "*@dev", + "codeception/module-asserts": "dev-master", + "codeception/module-cli": "*@dev", + "codeception/module-db": "*@dev", + "codeception/module-filesystem": "*@dev", + "codeception/module-phpbrowser": "*@dev", + "codeception/module-webdriver": "*@dev", + "codeception/util-universalframework": "*@dev", + "doctrine/orm": "^3.3", + "ext-simplexml": "*", + "jetbrains/phpstorm-attributes": "^1.0", + "laravel-zero/phar-updater": "^1.4", + "php-webdriver/webdriver": "^1.15", + "stecman/symfony-console-completion": "^0.14 || ^0.15", + "symfony/dotenv": ">=5.4.24 <9.0", + "symfony/error-handler": ">=5.4.24 <9.0", + "symfony/process": ">=5.4.24 <9.0", + "vlucas/phpdotenv": "^5.1" + }, + "suggest": { + "codeception/specify": "BDD-style code blocks", + "codeception/verify": "BDD-style assertions", + "ext-simplexml": "For loading params from XML files", + "stecman/symfony-console-completion": "For BASH autocompletion", + "symfony/dotenv": "For loading params from .env files", + "symfony/phpunit-bridge": "For phpunit-bridge support", + "vlucas/phpdotenv": "For loading params from .env files" + }, + "bin": [ + "codecept" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.3.x-dev" + } + }, + "autoload": { + "files": [ + "functions.php" + ], + "psr-4": { + "Codeception\\": "src/Codeception", + "Codeception\\Extension\\": "ext" + }, + "classmap": [ + "src/PHPUnit/TestCase.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Bodnarchuk", + "email": "davert.ua@gmail.com", + "homepage": "https://codeception.com" + } + ], + "description": "All-in-one PHP Testing Framework", + "homepage": "https://codeception.com/", + "keywords": [ + "BDD", + "TDD", + "acceptance testing", + "functional testing", + "unit testing" + ], + "support": { + "issues": "https://github.com/Codeception/Codeception/issues", + "source": "https://github.com/Codeception/Codeception/tree/5.3.5" + }, + "funding": [ + { + "url": "https://opencollective.com/codeception", + "type": "open_collective" + } + ], + "time": "2026-02-18T06:18:00+00:00" + }, + { + "name": "codeception/lib-asserts", + "version": "3.2.0", + "source": { + "type": "git", + "url": "https://github.com/Codeception/lib-asserts.git", + "reference": "f161e5d3a9e5ae573ca01cfb3b5601ff5303df03" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Codeception/lib-asserts/zipball/f161e5d3a9e5ae573ca01cfb3b5601ff5303df03", + "reference": "f161e5d3a9e5ae573ca01cfb3b5601ff5303df03", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": "^8.2 || ^8.3 || ^8.4 || ^8.5", + "phpunit/phpunit": "^11.5 || ^12.0 || ^13.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Bodnarchuk", + "email": "davert@mail.ua", + "homepage": "http://codegyre.com" + }, + { + "name": "Gintautas Miselis" + }, + { + "name": "Gustavo Nieves", + "homepage": "https://medium.com/@ganieves" + } + ], + "description": "Assertion methods used by Codeception core and Asserts module", + "homepage": "https://codeception.com/", + "keywords": [ + "codeception" + ], + "support": { + "issues": "https://github.com/Codeception/lib-asserts/issues", + "source": "https://github.com/Codeception/lib-asserts/tree/3.2.0" + }, + "time": "2026-02-06T15:19:32+00:00" + }, + { + "name": "codeception/lib-innerbrowser", + "version": "4.1.1", + "source": { + "type": "git", + "url": "https://github.com/Codeception/lib-innerbrowser.git", + "reference": "0fa80deaed7da6a92a0cd4117338394c69196ec6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Codeception/lib-innerbrowser/zipball/0fa80deaed7da6a92a0cd4117338394c69196ec6", + "reference": "0fa80deaed7da6a92a0cd4117338394c69196ec6", + "shasum": "" + }, + "require": { + "codeception/codeception": "^5.0.8", + "codeception/lib-web": "^1.0.1 || ^2", + "ext-dom": "*", + "ext-json": "*", + "ext-mbstring": "*", + "php": "^8.1", + "phpunit/phpunit": "^10.0 || ^11.0 || ^12.0 || ^13.0", + "symfony/browser-kit": "^4.4.24 || ^5.4 || ^6.0 || ^7.0 || ^8.0", + "symfony/dom-crawler": "^4.4.30 || ^5.4 || ^6.0 || ^7.0 || ^8.0" + }, + "require-dev": { + "codeception/util-universalframework": "^1.0 || ^2.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Bodnarchuk", + "email": "davert@mail.ua", + "homepage": "https://codegyre.com" + }, + { + "name": "Gintautas Miselis" + } + ], + "description": "Parent library for all Codeception framework modules and PhpBrowser", + "homepage": "https://codeception.com/", + "keywords": [ + "codeception" + ], + "support": { + "issues": "https://github.com/Codeception/lib-innerbrowser/issues", + "source": "https://github.com/Codeception/lib-innerbrowser/tree/4.1.1" + }, + "time": "2026-06-26T22:06:27+00:00" + }, + { + "name": "codeception/lib-web", + "version": "2.1.1", + "source": { + "type": "git", + "url": "https://github.com/Codeception/lib-web.git", + "reference": "b630c3a296685d20e8ea5c4a17b11f47ec381d91" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Codeception/lib-web/zipball/b630c3a296685d20e8ea5c4a17b11f47ec381d91", + "reference": "b630c3a296685d20e8ea5c4a17b11f47ec381d91", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "guzzlehttp/psr7": "^2.0 | ^3.0", + "php": "^8.2", + "phpunit/phpunit": "^11.5 | ^12 | ^13", + "symfony/css-selector": ">=4.4.24 <9.0" + }, + "conflict": { + "codeception/codeception": "<5.0.0-alpha3" + }, + "require-dev": { + "php-webdriver/webdriver": "^1.12" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gintautas Miselis" + } + ], + "description": "Library containing files used by module-webdriver and lib-innerbrowser or module-phpbrowser", + "homepage": "https://codeception.com/", + "keywords": [ + "codeception" + ], + "support": { + "issues": "https://github.com/Codeception/lib-web/issues", + "source": "https://github.com/Codeception/lib-web/tree/2.1.1" + }, + "time": "2026-07-22T06:33:17+00:00" + }, + { + "name": "codeception/module-asserts", + "version": "3.3.0", + "source": { + "type": "git", + "url": "https://github.com/Codeception/module-asserts.git", + "reference": "3b4ec5dc771a135e13c79f7e9a6eacd74779e4ad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Codeception/module-asserts/zipball/3b4ec5dc771a135e13c79f7e9a6eacd74779e4ad", + "reference": "3b4ec5dc771a135e13c79f7e9a6eacd74779e4ad", + "shasum": "" + }, + "require": { + "codeception/codeception": "*@dev", + "codeception/lib-asserts": "^3.1", + "php": "^8.2" + }, + "conflict": { + "codeception/codeception": "<5.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Bodnarchuk" + }, + { + "name": "Gintautas Miselis" + }, + { + "name": "Gustavo Nieves", + "homepage": "https://medium.com/@ganieves" + } + ], + "description": "Codeception module containing various assertions", + "homepage": "https://codeception.com/", + "keywords": [ + "assertions", + "asserts", + "codeception" + ], + "support": { + "issues": "https://github.com/Codeception/module-asserts/issues", + "source": "https://github.com/Codeception/module-asserts/tree/3.3.0" + }, + "time": "2025-12-23T21:16:13+00:00" + }, + { + "name": "codeception/module-cli", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/Codeception/module-cli.git", + "reference": "a3a101fae4049fa2f810107f7bd5db3b3266ce63" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Codeception/module-cli/zipball/a3a101fae4049fa2f810107f7bd5db3b3266ce63", + "reference": "a3a101fae4049fa2f810107f7bd5db3b3266ce63", + "shasum": "" + }, + "require": { + "codeception/codeception": "*@dev", + "codeception/module-asserts": "*", + "php": "^7.4 || ^8.0" + }, + "conflict": { + "codeception/codeception": "<4.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Bodnarchuk" + } + ], + "description": "Codeception module for testing basic shell commands and shell output", + "homepage": "https://codeception.com/", + "keywords": [ + "codeception" + ], + "support": { + "issues": "https://github.com/Codeception/module-cli/issues", + "source": "https://github.com/Codeception/module-cli/tree/2.0.1" + }, + "time": "2023-01-13T18:41:03+00:00" + }, + { + "name": "codeception/module-filesystem", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/Codeception/module-filesystem.git", + "reference": "2a81b5534a6679b4f17256f8275ca0048add6ef8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Codeception/module-filesystem/zipball/2a81b5534a6679b4f17256f8275ca0048add6ef8", + "reference": "2a81b5534a6679b4f17256f8275ca0048add6ef8", + "shasum": "" + }, + "require": { + "codeception/codeception": "*@dev", + "php": "^8.2", + "symfony/finder": "^4.4 || ^5.4 || ^6.0 || ^7.0 || ^8.0" + }, + "conflict": { + "codeception/codeception": "<5.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Bodnarchuk" + }, + { + "name": "Gintautas Miselis" + } + ], + "description": "Codeception module for testing local filesystem", + "homepage": "https://codeception.com/", + "keywords": [ + "codeception", + "filesystem" + ], + "support": { + "issues": "https://github.com/Codeception/module-filesystem/issues", + "source": "https://github.com/Codeception/module-filesystem/tree/3.0.2" + }, + "time": "2025-11-28T11:47:18+00:00" + }, + { + "name": "codeception/module-phpbrowser", + "version": "4.1.0", + "source": { + "type": "git", + "url": "https://github.com/Codeception/module-phpbrowser.git", + "reference": "56903df98e29dedb51dd9f8d2dc00b05063c2135" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Codeception/module-phpbrowser/zipball/56903df98e29dedb51dd9f8d2dc00b05063c2135", + "reference": "56903df98e29dedb51dd9f8d2dc00b05063c2135", + "shasum": "" + }, + "require": { + "codeception/codeception": "*@dev", + "codeception/lib-innerbrowser": "*@dev", + "ext-json": "*", + "guzzlehttp/guzzle": "^7.8.2 | ^8.0", + "guzzlehttp/psr7": "^2.6.3 | ^3.0", + "php": "^8.2", + "symfony/browser-kit": "^5.4 | ^6.0 | ^7.0 | ^8.0" + }, + "conflict": { + "codeception/codeception": "<5.0", + "codeception/lib-innerbrowser": "<3.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^3.199", + "codeception/module-rest": "^2.0 | *@dev", + "ext-curl": "*", + "phpstan/phpstan": "^2.2.6", + "squizlabs/php_codesniffer": "^3.10" + }, + "suggest": { + "codeception/phpbuiltinserver": "Start and stop PHP built-in web server for your tests" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Bodnarchuk" }, { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", - "type": "tidelift" + "name": "Gintautas Miselis" } ], - "time": "2026-08-24T09:13:11+00:00" + "description": "Codeception module for testing web application over HTTP", + "homepage": "https://codeception.com/", + "keywords": [ + "codeception", + "functional-testing", + "http" + ], + "support": { + "issues": "https://github.com/Codeception/module-phpbrowser/issues", + "source": "https://github.com/Codeception/module-phpbrowser/tree/4.1.0" + }, + "time": "2026-07-27T06:11:37+00:00" }, { - "name": "humbug/box", - "version": "3.16.0", + "name": "codeception/stub", + "version": "4.3.0", "source": { "type": "git", - "url": "https://github.com/box-project/box.git", - "reference": "adb282ad00a20438fc881f8ec9207ed7446243b9" + "url": "https://github.com/Codeception/Stub.git", + "reference": "6305b97eaf6ea9bdaed29a5bd4d6f2948f577d8f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/box-project/box/zipball/adb282ad00a20438fc881f8ec9207ed7446243b9", - "reference": "adb282ad00a20438fc881f8ec9207ed7446243b9", + "url": "https://api.github.com/repos/Codeception/Stub/zipball/6305b97eaf6ea9bdaed29a5bd4d6f2948f577d8f", + "reference": "6305b97eaf6ea9bdaed29a5bd4d6f2948f577d8f", "shasum": "" }, "require": { - "amphp/parallel-functions": "^1.1", - "composer-plugin-api": "^2.2", - "composer/semver": "^3.2", - "composer/xdebug-handler": "^2.0 || ^3.0", - "ext-phar": "*", - "humbug/php-scoper": "^0.17", - "justinrainbow/json-schema": "^5.2.9", - "laravel/serializable-closure": "^1.0", - "nikic/iter": "^2.0", - "nikic/php-parser": "^4.2", - "paragonie/pharaoh": "^0.6", - "php": "^7.4 || ^8.0", - "phpdocumentor/reflection-docblock": "^5.2", - "psr/log": "^1.0", - "seld/jsonlint": "^1.7", - "symfony/console": "^4.3.5 || ^5.2", - "symfony/filesystem": "^4.4 || ^5.2", - "symfony/finder": "^4.4 || ^5.2", - "symfony/process": "^4.4 || ^5.2", - "symfony/var-dumper": "^4.4 || ^5.2", - "webmozart/assert": "^1.9", - "webmozart/path-util": "^2.3" + "php": "^8.1", + "phpunit/phpunit": "^8.4 | ^9.0 | ^10.0 | ^11 | ^12 | ^13" }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.3", - "mikey179/vfsstream": "^1.6", - "phpspec/prophecy-phpunit": "^2.0", - "phpunit/phpunit": "^9.0", - "symfony/phpunit-bridge": "^4.2 || ^5.0" + "conflict": { + "codeception/codeception": "<5.0.6" }, - "suggest": { - "ext-openssl": "To accelerate private key generation." + "require-dev": { + "consolidation/robo": "^4.0" }, - "bin": [ - "bin/box" - ], "type": "library", - "extra": { - "bamarni-bin": { - "bin-links": false - }, - "branch-alias": { - "dev-master": "3.x-dev" - } - }, "autoload": { - "files": [ - "src/FileSystem/file_system.php", - "src/consts.php", - "src/functions.php" - ], "psr-4": { - "KevinGH\\Box\\": "src" - }, - "exclude-from-classmap": [ - "/Test/" - ] + "Codeception\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Kevin Herrera", - "email": "kevin@herrera.io", - "homepage": "http://kevin.herrera.io" - }, - { - "name": "Théo Fidry", - "email": "theo.fidry@gmail.com" - } - ], - "description": "Fast, zero config application bundler with PHARs.", - "keywords": [ - "phar" - ], + "description": "Flexible Stub wrapper for PHPUnit's Mock Builder", "support": { - "issues": "https://github.com/box-project/box/issues", - "source": "https://github.com/box-project/box/tree/3.16.0" + "issues": "https://github.com/Codeception/Stub/issues", + "source": "https://github.com/Codeception/Stub/tree/4.3.0" }, - "time": "2022-02-13T23:10:13+00:00" + "time": "2026-02-06T15:19:04+00:00" }, { - "name": "justinrainbow/json-schema", - "version": "5.3.4", + "name": "danog/advanced-json-rpc", + "version": "v3.2.3", "source": { "type": "git", - "url": "https://github.com/jsonrainbow/json-schema.git", - "reference": "7df70ffaf31d98726801b4bc099e1fbdbe2e5e54" + "url": "https://github.com/danog/php-advanced-json-rpc.git", + "reference": "ae703ea7b4811797a10590b6078de05b3b33dd91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/7df70ffaf31d98726801b4bc099e1fbdbe2e5e54", - "reference": "7df70ffaf31d98726801b4bc099e1fbdbe2e5e54", + "url": "https://api.github.com/repos/danog/php-advanced-json-rpc/zipball/ae703ea7b4811797a10590b6078de05b3b33dd91", + "reference": "ae703ea7b4811797a10590b6078de05b3b33dd91", "shasum": "" }, "require": { - "php": ">=7.1" + "netresearch/jsonmapper": "^5", + "php": ">=8.1", + "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0 || ^6" + }, + "replace": { + "felixfbecker/php-advanced-json-rpc": "^3" }, "require-dev": { - "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", - "json-schema/json-schema-test-suite": "1.2.0", - "phpunit/phpunit": "^4.8.35" + "phpunit/phpunit": "^9" }, - "bin": [ - "bin/validate-json" - ], "type": "library", "autoload": { "psr-4": { - "JsonSchema\\": "src/JsonSchema/" + "AdvancedJsonRpc\\": "lib/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "ISC" ], "authors": [ { - "name": "Bruno Prieto Reis", - "email": "bruno.p.reis@gmail.com" - }, - { - "name": "Justin Rainbow", - "email": "justin.rainbow@gmail.com" - }, - { - "name": "Igor Wiedler", - "email": "igor@wiedler.ch" + "name": "Felix Becker", + "email": "felix.b@outlook.com" }, { - "name": "Robert Schönthal", - "email": "seroscho@googlemail.com" + "name": "Daniil Gentili", + "email": "daniil@daniil.it" } ], - "description": "A library to validate a json schema.", - "homepage": "https://github.com/justinrainbow/json-schema", - "keywords": [ - "json", - "schema" - ], + "description": "A more advanced JSONRPC implementation", "support": { - "issues": "https://github.com/jsonrainbow/json-schema/issues", - "source": "https://github.com/jsonrainbow/json-schema/tree/5.3.4" + "issues": "https://github.com/danog/php-advanced-json-rpc/issues", + "source": "https://github.com/danog/php-advanced-json-rpc/tree/v3.2.3" }, - "time": "2026-05-04T18:54:58+00:00" + "time": "2026-01-12T21:07:10+00:00" }, { - "name": "laravel/serializable-closure", - "version": "v1.3.7", + "name": "dnoegel/php-xdg-base-dir", + "version": "v0.1.1", "source": { "type": "git", - "url": "https://github.com/laravel/serializable-closure.git", - "reference": "4f48ade902b94323ca3be7646db16209ec76be3d" + "url": "https://github.com/dnoegel/php-xdg-base-dir.git", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/4f48ade902b94323ca3be7646db16209ec76be3d", - "reference": "4f48ade902b94323ca3be7646db16209ec76be3d", + "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", "shasum": "" }, "require": { - "php": "^7.3|^8.0" + "php": ">=5.3.2" }, "require-dev": { - "illuminate/support": "^8.0|^9.0|^10.0|^11.0", - "nesbot/carbon": "^2.61|^3.0", - "pestphp/pest": "^1.21.3", - "phpstan/phpstan": "^1.8.2", - "symfony/var-dumper": "^5.4.11|^6.2.0|^7.0.0" + "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, "autoload": { "psr-4": { - "Laravel\\SerializableClosure\\": "src/" + "XdgBaseDir\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - }, - { - "name": "Nuno Maduro", - "email": "nuno@laravel.com" - } - ], - "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.", - "keywords": [ - "closure", - "laravel", - "serializable" - ], + "description": "implementation of xdg base directory specification for php", "support": { - "issues": "https://github.com/laravel/serializable-closure/issues", - "source": "https://github.com/laravel/serializable-closure" + "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues", + "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1" }, - "time": "2024-11-14T18:34:49+00:00" + "time": "2019-12-04T15:06:13+00:00" }, { - "name": "myclabs/deep-copy", - "version": "1.14.0", + "name": "felixfbecker/language-server-protocol", + "version": "v1.5.3", "source": { "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "8680aa248f8e07bc8fb43f56f0f5fc77a0c96aae" + "url": "https://github.com/felixfbecker/php-language-server-protocol.git", + "reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/8680aa248f8e07bc8fb43f56f0f5fc77a0c96aae", - "reference": "8680aa248f8e07bc8fb43f56f0f5fc77a0c96aae", + "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/a9e113dbc7d849e35b8776da39edaf4313b7b6c9", + "reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9", "shasum": "" }, "require": { - "php": "^8.0" - }, - "conflict": { - "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3 <3.2.2" + "php": ">=7.1" }, "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" + "phpstan/phpstan": "*", + "squizlabs/php_codesniffer": "^3.1", + "vimeo/psalm": "^4.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, "autoload": { - "files": [ - "src/DeepCopy/deep_copy.php" - ], "psr-4": { - "DeepCopy\\": "src/DeepCopy/" + "LanguageServerProtocol\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "ISC" ], - "description": "Create deep copies (clones) of your objects", + "authors": [ + { + "name": "Felix Becker", + "email": "felix.b@outlook.com" + } + ], + "description": "PHP classes for the Language Server Protocol", "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" + "language", + "microsoft", + "php", + "server" ], "support": { - "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.14.0" + "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues", + "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.3" }, - "funding": [ - { - "url": "https://github.com/mnapoli", - "type": "github" - } - ], - "time": "2026-08-11T10:17:44+00:00" + "time": "2024-04-30T00:40:11+00:00" }, { - "name": "netresearch/jsonmapper", - "version": "v4.5.0", + "name": "fidry/cpu-core-counter", + "version": "1.3.0", "source": { "type": "git", - "url": "https://github.com/cweiske/jsonmapper.git", - "reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5" + "url": "https://github.com/theofidry/cpu-core-counter.git", + "reference": "db9508f7b1474469d9d3c53b86f817e344732678" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8e76efb98ee8b6afc54687045e1b8dba55ac76e5", - "reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/db9508f7b1474469d9d3c53b86f817e344732678", + "reference": "db9508f7b1474469d9d3c53b86f817e344732678", "shasum": "" }, "require": { - "ext-json": "*", - "ext-pcre": "*", - "ext-reflection": "*", - "ext-spl": "*", - "php": ">=7.1" + "php": "^7.2 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0 || ~10.0", - "squizlabs/php_codesniffer": "~3.5" + "fidry/makefile": "^0.2.0", + "fidry/php-cs-fixer-config": "^1.1.2", + "phpstan/extension-installer": "^1.2.0", + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-deprecation-rules": "^2.0.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpstan/phpstan-strict-rules": "^2.0", + "phpunit/phpunit": "^8.5.31 || ^9.5.26", + "webmozarts/strict-phpunit": "^7.5" }, "type": "library", "autoload": { - "psr-0": { - "JsonMapper": "src/" + "psr-4": { + "Fidry\\CpuCoreCounter\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "OSL-3.0" + "MIT" ], "authors": [ { - "name": "Christian Weiske", - "email": "cweiske@cweiske.de", - "homepage": "http://github.com/cweiske/jsonmapper/", - "role": "Developer" + "name": "Théo FIDRY", + "email": "theo.fidry@gmail.com" } ], - "description": "Map nested JSON structures onto PHP classes", + "description": "Tiny utility to get the number of CPU cores.", + "keywords": [ + "CPU", + "core" + ], "support": { - "email": "cweiske@cweiske.de", - "issues": "https://github.com/cweiske/jsonmapper/issues", - "source": "https://github.com/cweiske/jsonmapper/tree/v4.5.0" + "issues": "https://github.com/theofidry/cpu-core-counter/issues", + "source": "https://github.com/theofidry/cpu-core-counter/tree/1.3.0" }, - "time": "2024-09-08T10:13:13+00:00" + "funding": [ + { + "url": "https://github.com/theofidry", + "type": "github" + } + ], + "time": "2025-08-14T07:29:31+00:00" }, { - "name": "nikic/iter", - "version": "v2.4.1", + "name": "guzzlehttp/guzzle", + "version": "8.2.0", "source": { "type": "git", - "url": "https://github.com/nikic/iter.git", - "reference": "3f031ae08d82c4394410e76b88b441331a6fa15f" + "url": "https://github.com/guzzle/guzzle.git", + "reference": "93939470950a9b11e2e84204166ef5e048c55fe4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/iter/zipball/3f031ae08d82c4394410e76b88b441331a6fa15f", - "reference": "3f031ae08d82c4394410e76b88b441331a6fa15f", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/93939470950a9b11e2e84204166ef5e048c55fe4", + "reference": "93939470950a9b11e2e84204166ef5e048c55fe4", "shasum": "" }, "require": { - "php": ">=7.1" + "ext-json": "*", + "guzzlehttp/promises": "^3.0.2", + "guzzlehttp/psr7": "^3.1", + "php": "^7.4 || ^8.0", + "psr/http-client": "^1.0", + "psr/http-factory": "^1.0", + "symfony/polyfill-php80": "^1.25", + "symfony/polyfill-php82": "^1.27" + }, + "provide": { + "psr/http-client-implementation": "1.0" }, "require-dev": { - "phpstan/phpstan": "^1.4", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", - "vimeo/psalm": "^4.18 || ^5.13" + "bamarni/composer-bin-plugin": "^1.8.2", + "ext-curl": "*", + "guzzle/client-integration-tests": "4.0.1", + "guzzlehttp/test-server": "^1.0.1", + "php-http/message-factory": "^1.1", + "phpunit/phpunit": "^9.6.34", + "psr/log": "^1.1 || ^2.0 || ^3.0" + }, + "suggest": { + "ext-curl": "Required for CURL handler support", + "ext-intl": "Required for Internationalized Domain Name (IDN) support", + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } }, - "type": "library", "autoload": { - "files": [ - "src/iter.func.php", - "src/iter.php", - "src/iter.rewindable.php" - ] + "psr-4": { + "GuzzleHttp\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Nikita Popov", - "email": "nikic@php.net" + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" } ], - "description": "Iteration primitives using generators", + "description": "Guzzle is a PHP HTTP client library", "keywords": [ - "functional", - "generator", - "iterator" + "client", + "curl", + "framework", + "http", + "http client", + "psr-18", + "psr-7", + "rest", + "web service" ], "support": { - "issues": "https://github.com/nikic/iter/issues", - "source": "https://github.com/nikic/iter/tree/v2.4.1" + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/8.2.0" }, - "time": "2024-03-19T20:45:05+00:00" + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" + } + ], + "time": "2026-09-06T13:55:09+00:00" }, { - "name": "openlss/lib-array2xml", - "version": "1.0.0", + "name": "guzzlehttp/promises", + "version": "3.0.2", "source": { "type": "git", - "url": "https://github.com/nullivex/lib-array2xml.git", - "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90" + "url": "https://github.com/guzzle/promises.git", + "reference": "42118e66a53c492effaf92bc357e931985d5c6f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nullivex/lib-array2xml/zipball/a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", - "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", + "url": "https://api.github.com/repos/guzzle/promises/zipball/42118e66a53c492effaf92bc357e931985d5c6f9", + "reference": "42118e66a53c492effaf92bc357e931985d5c6f9", "shasum": "" }, "require": { - "php": ">=5.3.2" + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^9.6.34" }, "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, "autoload": { - "psr-0": { - "LSS": "" + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache-2.0" + "MIT" ], "authors": [ { - "name": "Bryan Tong", - "email": "bryan@nullivex.com", - "homepage": "https://www.nullivex.com" + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" }, { - "name": "Tony Butler", - "email": "spudz76@gmail.com", - "homepage": "https://www.nullivex.com" + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" } ], - "description": "Array2XML conversion library credit to lalit.org", - "homepage": "https://www.nullivex.com", + "description": "Guzzle promises library", "keywords": [ - "array", - "array conversion", - "xml", - "xml conversion" + "promise" ], "support": { - "issues": "https://github.com/nullivex/lib-array2xml/issues", - "source": "https://github.com/nullivex/lib-array2xml/tree/master" + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/3.0.2" }, - "time": "2019-03-29T20:06:56+00:00" + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2026-08-24T10:00:26+00:00" }, { - "name": "paragonie/constant_time_encoding", - "version": "v3.1.3", + "name": "guzzlehttp/psr7", + "version": "3.1.0", "source": { "type": "git", - "url": "https://github.com/paragonie/constant_time_encoding.git", - "reference": "d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77" + "url": "https://github.com/guzzle/psr7.git", + "reference": "a3059ba1a84c9139c4ae03cf0f45bea276c97c74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77", - "reference": "d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/a3059ba1a84c9139c4ae03cf0f45bea276c97c74", + "reference": "a3059ba1a84c9139c4ae03cf0f45bea276c97c74", "shasum": "" }, "require": { - "php": "^8" + "php": "^7.4 || ^8.0", + "psr/http-factory": "^1.1", + "psr/http-message": "^2.0", + "symfony/polyfill-php80": "^1.25", + "symfony/polyfill-php82": "^1.27" + }, + "provide": { + "psr/http-factory-implementation": "1.1", + "psr/http-message-implementation": "2.0" }, "require-dev": { - "infection/infection": "^0", - "nikic/php-fuzzer": "^0", - "phpunit/phpunit": "^9|^10|^11", - "vimeo/psalm": "^4|^5|^6" + "bamarni/composer-bin-plugin": "^1.8.2", + "http-interop/http-factory-tests": "1.1.0", + "jshttp/mime-db": "1.54.0.1", + "php-http/psr7-integration-tests": "^1.5.1", + "phpunit/phpunit": "^9.6.34" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" }, "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, "autoload": { "psr-4": { - "ParagonIE\\ConstantTime\\": "src/" + "GuzzleHttp\\Psr7\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -4904,70 +6403,102 @@ ], "authors": [ { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com", - "role": "Maintainer" + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" }, { - "name": "Steve 'Sc00bz' Thomas", - "email": "steve@tobtu.com", - "homepage": "https://www.tobtu.com", - "role": "Original Developer" + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" } ], - "description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)", + "description": "PSR-7 message implementation that also provides common utility methods", "keywords": [ - "base16", - "base32", - "base32_decode", - "base32_encode", - "base64", - "base64_decode", - "base64_encode", - "bin2hex", - "encoding", - "hex", - "hex2bin", - "rfc4648" + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" ], "support": { - "email": "info@paragonie.com", - "issues": "https://github.com/paragonie/constant_time_encoding/issues", - "source": "https://github.com/paragonie/constant_time_encoding" + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/3.1.0" }, - "time": "2025-09-24T15:06:41+00:00" + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2026-08-24T11:02:13+00:00" }, { - "name": "paragonie/pharaoh", - "version": "v0.6.1", + "name": "masterminds/html5", + "version": "2.11.0", "source": { "type": "git", - "url": "https://github.com/paragonie/pharaoh.git", - "reference": "d661fa3e6b46429b9d5b21d974e35a6ef62e7220" + "url": "https://github.com/Masterminds/html5-php.git", + "reference": "a1e7a2f88ee13635d86fc61cfbdf2306a76ddfc7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/pharaoh/zipball/d661fa3e6b46429b9d5b21d974e35a6ef62e7220", - "reference": "d661fa3e6b46429b9d5b21d974e35a6ef62e7220", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/a1e7a2f88ee13635d86fc61cfbdf2306a76ddfc7", + "reference": "a1e7a2f88ee13635d86fc61cfbdf2306a76ddfc7", "shasum": "" }, "require": { - "paragonie/constant_time_encoding": "^2|^3", - "paragonie/sodium_compat": "^1.3", - "php": "^7.1|^8", - "ulrichsg/getopt-php": "^3" + "ext-dom": "*", + "php": ">=7.4" }, "require-dev": { - "vimeo/psalm": "^1|^2|^3|^4" + "phpunit/phpunit": "^6 || ^7 || ^8 || ^9 || ^10" }, - "bin": [ - "pharaoh" - ], "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, "autoload": { "psr-4": { - "ParagonIE\\Pharaoh\\": "src/Pharaoh/" + "Masterminds\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -4976,164 +6507,145 @@ ], "authors": [ { - "name": "Scott Arciszewski", - "email": "scott@paragonie.com", - "homepage": "https://paragonie.com", - "role": "Developer" + "name": "Matt Butcher", + "email": "technosophos@gmail.com" + }, + { + "name": "Matt Farina", + "email": "matt@mattfarina.com" + }, + { + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" } ], - "description": "Compare PHARs from the Command Line", + "description": "An HTML5 parser and serializer.", + "homepage": "http://masterminds.github.io/html5-php", "keywords": [ - "auditing", - "diff", - "phar", - "security", - "tool", - "utility" + "HTML5", + "dom", + "html", + "parser", + "querypath", + "serializer", + "xml" ], "support": { - "email": "info@paragonie.com", - "issues": "https://github.com/paragonie/pharaoh/issues", - "source": "https://github.com/paragonie/pharaoh" + "issues": "https://github.com/Masterminds/html5-php/issues", + "source": "https://github.com/Masterminds/html5-php/tree/2.11.0" }, - "abandoned": "humbug/box", - "time": "2024-05-08T16:20:23+00:00" + "time": "2026-08-18T06:18:41+00:00" }, { - "name": "paragonie/random_compat", - "version": "v9.99.100", + "name": "myclabs/deep-copy", + "version": "1.14.0", "source": { "type": "git", - "url": "https://github.com/paragonie/random_compat.git", - "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a" + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "8680aa248f8e07bc8fb43f56f0f5fc77a0c96aae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a", - "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/8680aa248f8e07bc8fb43f56f0f5fc77a0c96aae", + "reference": "8680aa248f8e07bc8fb43f56f0f5fc77a0c96aae", "shasum": "" }, "require": { - "php": ">= 7" + "php": "^8.0" }, - "require-dev": { - "phpunit/phpunit": "4.*|5.*", - "vimeo/psalm": "^1" + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3 <3.2.2" }, - "suggest": { - "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + "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", + "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com" - } - ], - "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "description": "Create deep copies (clones) of your objects", "keywords": [ - "csprng", - "polyfill", - "pseudorandom", - "random" + "clone", + "copy", + "duplicate", + "object", + "object graph" ], "support": { - "email": "info@paragonie.com", - "issues": "https://github.com/paragonie/random_compat/issues", - "source": "https://github.com/paragonie/random_compat" + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.14.0" }, - "time": "2020-10-15T08:29:30+00:00" + "funding": [ + { + "url": "https://github.com/mnapoli", + "type": "github" + } + ], + "time": "2026-08-11T10:17:44+00:00" }, { - "name": "paragonie/sodium_compat", - "version": "v1.24.2", + "name": "netresearch/jsonmapper", + "version": "v5.0.1", "source": { "type": "git", - "url": "https://github.com/paragonie/sodium_compat.git", - "reference": "4524c98a826776c9a32d6ce06932563cb10f3995" + "url": "https://github.com/cweiske/jsonmapper.git", + "reference": "980674efdda65913492d29a8fd51c82270dd37bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/4524c98a826776c9a32d6ce06932563cb10f3995", - "reference": "4524c98a826776c9a32d6ce06932563cb10f3995", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/980674efdda65913492d29a8fd51c82270dd37bb", + "reference": "980674efdda65913492d29a8fd51c82270dd37bb", "shasum": "" }, "require": { - "paragonie/random_compat": ">=1", - "php": "^5.2.4|^5.3|^5.4|^5.5|^5.6|^7|^8" + "ext-json": "*", + "ext-pcre": "*", + "ext-reflection": "*", + "ext-spl": "*", + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "^3|^4|^5|^6|^7|^8|^9" - }, - "suggest": { - "ext-libsodium": "PHP < 7.0: Better performance, password hashing (Argon2i), secure memory management (memzero), and better security.", - "ext-sodium": "PHP >= 7.0: Better performance, password hashing (Argon2i), secure memory management (memzero), and better security." + "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0 || ~10.0", + "squizlabs/php_codesniffer": "~3.5" }, "type": "library", "autoload": { - "files": [ - "autoload.php" - ] + "psr-0": { + "JsonMapper": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "ISC" + "OSL-3.0" ], "authors": [ { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com" - }, - { - "name": "Frank Denis", - "email": "jedisct1@pureftpd.org" + "name": "Christian Weiske", + "email": "cweiske@cweiske.de", + "homepage": "http://github.com/cweiske/jsonmapper/", + "role": "Developer" } ], - "description": "Pure PHP implementation of libsodium; uses the PHP extension if it exists", - "keywords": [ - "Authentication", - "BLAKE2b", - "ChaCha20", - "ChaCha20-Poly1305", - "Chapoly", - "Curve25519", - "Ed25519", - "EdDSA", - "Edwards-curve Digital Signature Algorithm", - "Elliptic Curve Diffie-Hellman", - "Poly1305", - "Pure-PHP cryptography", - "RFC 7748", - "RFC 8032", - "Salpoly", - "Salsa20", - "X25519", - "XChaCha20-Poly1305", - "XSalsa20-Poly1305", - "Xchacha20", - "Xsalsa20", - "aead", - "cryptography", - "ecdh", - "elliptic curve", - "elliptic curve cryptography", - "encryption", - "libsodium", - "php", - "public-key cryptography", - "secret-key cryptography", - "side-channel resistant" - ], + "description": "Map nested JSON structures onto PHP classes", "support": { - "issues": "https://github.com/paragonie/sodium_compat/issues", - "source": "https://github.com/paragonie/sodium_compat/tree/v1.24.2" + "email": "cweiske@cweiske.de", + "issues": "https://github.com/cweiske/jsonmapper/issues", + "source": "https://github.com/cweiske/jsonmapper/tree/v5.0.1" }, - "time": "2026-08-18T23:44:07+00:00" + "time": "2026-02-22T16:28:03+00:00" }, { "name": "phar-io/manifest", @@ -5254,100 +6766,29 @@ "time": "2022-02-21T01:04:05+00:00" }, { - "name": "phpdocumentor/reflection-common", - "version": "2.2.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" - }, + "name": "phpstan/phpstan", + "version": "2.2.15", "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/b158556ffd26825cf615a1c1f72fb5157a2301b7", + "reference": "b158556ffd26825cf615a1c1f72fb5157a2301b7", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-2.x": "2.x-dev" - } + "php": "^7.4|^8.0" }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src/" - } + "conflict": { + "phpstan/phpstan-shim": "*" }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" + "bin": [ + "phpstan", + "phpstan.phar" ], - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", - "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" - }, - "time": "2020-06-27T09:03:43+00:00" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "5.6.7", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "31a105931bc8ffa3a123383829772e832fd8d903" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/31a105931bc8ffa3a123383829772e832fd8d903", - "reference": "31a105931bc8ffa3a123383829772e832fd8d903", - "shasum": "" - }, - "require": { - "doctrine/deprecations": "^1.1", - "ext-filter": "*", - "php": "^7.4 || ^8.0", - "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.7", - "phpstan/phpdoc-parser": "^1.7|^2.0", - "webmozart/assert": "^1.9.1 || ^2" - }, - "require-dev": { - "mockery/mockery": "~1.3.5 || ~1.6.0", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-mockery": "^1.1", - "phpstan/phpstan-webmozart-assert": "^1.2", - "phpunit/phpunit": "^9.5", - "psalm/phar": "^5.26" - }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } + "files": [ + "bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5355,157 +6796,70 @@ ], "authors": [ { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" + "name": "Ondřej Mirtes" }, { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.7" - }, - "time": "2026-03-18T20:47:46+00:00" - }, - { - "name": "phpdocumentor/type-resolver", - "version": "1.12.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "92a98ada2b93d9b201a613cb5a33584dde25f195" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/92a98ada2b93d9b201a613cb5a33584dde25f195", - "reference": "92a98ada2b93d9b201a613cb5a33584dde25f195", - "shasum": "" - }, - "require": { - "doctrine/deprecations": "^1.0", - "php": "^7.3 || ^8.0", - "phpdocumentor/reflection-common": "^2.0", - "phpstan/phpdoc-parser": "^1.18|^2.0" - }, - "require-dev": { - "ext-tokenizer": "*", - "phpbench/phpbench": "^1.2", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-phpunit": "^1.1", - "phpunit/phpunit": "^9.5", - "rector/rector": "^0.13.9", - "vimeo/psalm": "^4.25" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-1.x": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ + "name": "Markus Staab" + }, { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" + "name": "Vincent Langlet" } ], - "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "support": { - "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.12.0" - }, - "time": "2025-11-21T15:09:14+00:00" - }, - { - "name": "phpstan/phpdoc-parser", - "version": "2.3.5", - "source": { - "type": "git", - "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "148cefffaf0233e4c08cc13db8a195a56dd6dfe9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/148cefffaf0233e4c08cc13db8a195a56dd6dfe9", - "reference": "148cefffaf0233e4c08cc13db8a195a56dd6dfe9", - "shasum": "" - }, - "require": { - "php": "^7.4 || ^8.0" - }, - "require-dev": { - "doctrine/annotations": "^2.0", - "nikic/php-parser": "^5.3.0", - "php-parallel-lint/php-parallel-lint": "^1.2", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^2.0", - "phpstan/phpstan-phpunit": "^2.0", - "phpstan/phpstan-strict-rules": "^2.0", - "phpunit/phpunit": "^9.6", - "symfony/process": "^5.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "PHPStan\\PhpDocParser\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" + "description": "PHPStan - PHP Static Analysis Tool", + "keywords": [ + "dev", + "static analysis" ], - "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/2.3.5" + "docs": "https://phpstan.org/user-guide/getting-started", + "forum": "https://github.com/phpstan/phpstan/discussions", + "issues": "https://github.com/phpstan/phpstan/issues", + "security": "https://github.com/phpstan/phpstan/security/policy", + "source": "https://github.com/phpstan/phpstan-src" }, - "time": "2026-08-31T16:05:28+00:00" + "funding": [ + { + "url": "https://github.com/ondrejmirtes", + "type": "github" + }, + { + "url": "https://github.com/phpstan", + "type": "github" + } + ], + "time": "2026-09-23T12:23:07+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "9.2.32", + "version": "11.0.12", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5" + "reference": "2c1ed04922802c15e1de5d7447b4856de949cf56" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/85402a822d1ecf1db1096959413d35e1c37cf1a5", - "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2c1ed04922802c15e1de5d7447b4856de949cf56", + "reference": "2c1ed04922802c15e1de5d7447b4856de949cf56", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.19.1 || ^5.1.0", - "php": ">=7.3", - "phpunit/php-file-iterator": "^3.0.6", - "phpunit/php-text-template": "^2.0.4", - "sebastian/code-unit-reverse-lookup": "^2.0.3", - "sebastian/complexity": "^2.0.3", - "sebastian/environment": "^5.1.5", - "sebastian/lines-of-code": "^1.0.4", - "sebastian/version": "^3.0.2", - "theseer/tokenizer": "^1.2.3" + "nikic/php-parser": "^5.7.0", + "php": ">=8.2", + "phpunit/php-file-iterator": "^5.1.0", + "phpunit/php-text-template": "^4.0.1", + "sebastian/code-unit-reverse-lookup": "^4.0.1", + "sebastian/complexity": "^4.0.1", + "sebastian/environment": "^7.2.1", + "sebastian/lines-of-code": "^3.0.1", + "sebastian/version": "^5.0.2", + "theseer/tokenizer": "^1.3.1" }, "require-dev": { - "phpunit/phpunit": "^9.6" + "phpunit/phpunit": "^11.5.46" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -5514,7 +6868,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "9.2.x-dev" + "dev-main": "11.0.x-dev" } }, "autoload": { @@ -5543,40 +6897,52 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.32" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.12" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/php-code-coverage", + "type": "tidelift" } ], - "time": "2024-08-22T04:23:01+00:00" + "time": "2025-12-24T07:01:01+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "3.0.6", + "version": "5.1.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + "reference": "2f3a64888c814fc235386b7387dd5b5ed92ad903" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/2f3a64888c814fc235386b7387dd5b5ed92ad903", + "reference": "2f3a64888c814fc235386b7387dd5b5ed92ad903", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "5.1-dev" } }, "autoload": { @@ -5603,36 +6969,49 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" + "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.1" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/php-file-iterator", + "type": "tidelift" } ], - "time": "2021-12-02T12:48:52+00:00" + "time": "2026-02-02T13:52:54+00:00" }, { "name": "phpunit/php-invoker", - "version": "3.1.1", + "version": "5.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/c1ca3814734c07492b3d4c5f794f4b0995333da2", + "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { "ext-pcntl": "*", - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "suggest": { "ext-pcntl": "*" @@ -5640,7 +7019,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -5666,7 +7045,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-invoker/issues", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + "security": "https://github.com/sebastianbergmann/php-invoker/security/policy", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/5.0.1" }, "funding": [ { @@ -5674,32 +7054,32 @@ "type": "github" } ], - "time": "2020-09-28T05:58:55+00:00" + "time": "2024-07-03T05:07:44+00:00" }, { "name": "phpunit/php-text-template", - "version": "2.0.4", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/3e0404dc6b300e6bf56415467ebcb3fe4f33e964", + "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -5725,7 +7105,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/4.0.1" }, "funding": [ { @@ -5733,398 +7114,190 @@ "type": "github" } ], - "time": "2020-10-26T05:33:50+00:00" + "time": "2024-07-03T05:08:43+00:00" }, { "name": "phpunit/php-timer", - "version": "5.0.3", + "version": "7.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", + "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:16:10+00:00" - }, - { - "name": "phpunit/phpunit", - "version": "9.6.37", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "aceaa623912caf8e80bffea22fc4103a0a01565f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/aceaa623912caf8e80bffea22fc4103a0a01565f", - "reference": "aceaa623912caf8e80bffea22fc4103a0a01565f", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.5.0 || ^2", - "ext-dom": "*", - "ext-filter": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.13.4", - "phar-io/manifest": "^2.0.4", - "phar-io/version": "^3.2.1", - "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.32", - "phpunit/php-file-iterator": "^3.0.6", - "phpunit/php-invoker": "^3.1.1", - "phpunit/php-text-template": "^2.0.4", - "phpunit/php-timer": "^5.0.3", - "sebastian/cli-parser": "^1.0.2", - "sebastian/code-unit": "^1.0.8", - "sebastian/comparator": "^4.0.10", - "sebastian/diff": "^4.0.6", - "sebastian/environment": "^5.1.5", - "sebastian/exporter": "^4.0.9", - "sebastian/global-state": "^5.0.8", - "sebastian/object-enumerator": "^4.0.4", - "sebastian/resource-operations": "^3.0.4", - "sebastian/type": "^3.2.1", - "sebastian/version": "^3.0.2" - }, - "suggest": { - "ext-soap": "To be able to generate mocks based on WSDL files", - "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + "phpunit/phpunit": "^11.0" }, - "bin": [ - "phpunit" - ], "type": "library", "extra": { "branch-alias": { - "dev-master": "9.6-dev" + "dev-main": "7.0-dev" } }, "autoload": { - "files": [ - "src/Framework/Assert/Functions.php" - ], "classmap": [ "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.37" - }, - "funding": [ - { - "url": "https://phpunit.de/sponsoring.html", - "type": "other" - } - ], - "time": "2026-09-23T09:59:59+00:00" - }, - { - "name": "psr/http-client", - "version": "1.0.3", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-client.git", - "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", - "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", - "shasum": "" - }, - "require": { - "php": "^7.0 || ^8.0", - "psr/http-message": "^1.0 || ^2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Client\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP clients", - "homepage": "https://github.com/php-fig/http-client", - "keywords": [ - "http", - "http-client", - "psr", - "psr-18" - ], - "support": { - "source": "https://github.com/php-fig/http-client" - }, - "time": "2023-09-23T14:17:50+00:00" - }, - { - "name": "psr/http-factory", - "version": "1.1.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-factory.git", - "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", - "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", - "shasum": "" - }, - "require": { - "php": ">=7.1", - "psr/http-message": "^1.0 || ^2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", - "keywords": [ - "factory", - "http", - "message", - "psr", - "psr-17", - "psr-7", - "request", - "response" - ], - "support": { - "source": "https://github.com/php-fig/http-factory" - }, - "time": "2024-04-15T12:06:14+00:00" - }, - { - "name": "psr/http-message", - "version": "2.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", - "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" + "timer" ], "support": { - "source": "https://github.com/php-fig/http-message/tree/2.0" + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "security": "https://github.com/sebastianbergmann/php-timer/security/policy", + "source": "https://github.com/sebastianbergmann/php-timer/tree/7.0.1" }, - "time": "2023-04-04T09:54:51+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T05:09:35+00:00" }, { - "name": "psr/log", - "version": "1.1.4", + "name": "phpunit/phpunit", + "version": "11.5.56", "source": { "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "5f83edffa6967c3db468d48a695ec7bcb02e9256" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/5f83edffa6967c3db468d48a695ec7bcb02e9256", + "reference": "5f83edffa6967c3db468d48a695ec7bcb02e9256", "shasum": "" }, "require": { - "php": ">=5.3.0" + "ext-dom": "*", + "ext-filter": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.13.4", + "phar-io/manifest": "^2.0.4", + "phar-io/version": "^3.2.1", + "php": ">=8.2", + "phpunit/php-code-coverage": "^11.0.12", + "phpunit/php-file-iterator": "^5.1.1", + "phpunit/php-invoker": "^5.0.1", + "phpunit/php-text-template": "^4.0.1", + "phpunit/php-timer": "^7.0.1", + "sebastian/cli-parser": "^3.0.2", + "sebastian/code-unit": "^3.0.3", + "sebastian/comparator": "^6.3.3", + "sebastian/diff": "^6.0.2", + "sebastian/environment": "^7.2.1", + "sebastian/exporter": "^6.3.2", + "sebastian/global-state": "^7.0.2", + "sebastian/object-enumerator": "^6.0.1", + "sebastian/recursion-context": "^6.0.3", + "sebastian/type": "^5.1.3", + "sebastian/version": "^5.0.2", + "staabm/side-effects-detector": "^1.0.5" }, + "suggest": { + "ext-soap": "To be able to generate mocks based on WSDL files" + }, + "bin": [ + "phpunit" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-main": "11.5-dev" } }, "autoload": { - "psr-4": { - "Psr\\Log\\": "Psr/Log/" - } + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", "keywords": [ - "log", - "psr", - "psr-3" + "phpunit", + "testing", + "xunit" ], "support": { - "source": "https://github.com/php-fig/log/tree/1.1.4" + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.56" }, - "time": "2021-05-03T11:20:27+00:00" + "funding": [ + { + "url": "https://phpunit.de/sponsoring.html", + "type": "other" + } + ], + "time": "2026-07-06T14:52:39+00:00" }, { - "name": "ralouphie/getallheaders", - "version": "3.0.3", + "name": "psr/http-client", + "version": "1.0.3", "source": { "type": "git", - "url": "https://github.com/ralouphie/getallheaders.git", - "reference": "120b605dfeb996808c31b6477290a714d356e822" + "url": "https://github.com/php-fig/http-client.git", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", - "reference": "120b605dfeb996808c31b6477290a714d356e822", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", "shasum": "" }, "require": { - "php": ">=5.6" - }, - "require-dev": { - "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^5 || ^6.5" + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0 || ^2.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, "autoload": { - "files": [ - "src/getallheaders.php" - ] + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -6132,41 +7305,47 @@ ], "authors": [ { - "name": "Ralph Khattar", - "email": "ralph.khattar@gmail.com" + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" } ], - "description": "A polyfill for getallheaders.", + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], "support": { - "issues": "https://github.com/ralouphie/getallheaders/issues", - "source": "https://github.com/ralouphie/getallheaders/tree/develop" + "source": "https://github.com/php-fig/http-client" }, - "time": "2019-03-08T08:55:37+00:00" + "time": "2023-09-23T14:17:50+00:00" }, { "name": "sebastian/cli-parser", - "version": "1.0.2", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b" + "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b", - "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/15c5dd40dc4f38794d383bb95465193f5e0ae180", + "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -6189,7 +7368,8 @@ "homepage": "https://github.com/sebastianbergmann/cli-parser", "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.2" + "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/3.0.2" }, "funding": [ { @@ -6197,32 +7377,32 @@ "type": "github" } ], - "time": "2024-03-02T06:27:43+00:00" + "time": "2024-07-03T04:41:36+00:00" }, { "name": "sebastian/code-unit", - "version": "1.0.8", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/54391c61e4af8078e5b276ab082b6d3c54c9ad64", + "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -6245,7 +7425,8 @@ "homepage": "https://github.com/sebastianbergmann/code-unit", "support": { "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + "security": "https://github.com/sebastianbergmann/code-unit/security/policy", + "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.3" }, "funding": [ { @@ -6253,32 +7434,32 @@ "type": "github" } ], - "time": "2020-10-26T13:08:54+00:00" + "time": "2025-03-19T07:56:08+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "2.0.3", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + "reference": "183a9b2632194febd219bb9246eee421dad8d45e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/183a9b2632194febd219bb9246eee421dad8d45e", + "reference": "183a9b2632194febd219bb9246eee421dad8d45e", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -6300,7 +7481,8 @@ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", "support": { "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/4.0.1" }, "funding": [ { @@ -6308,34 +7490,39 @@ "type": "github" } ], - "time": "2020-09-28T05:30:19+00:00" + "time": "2024-07-03T04:45:54+00:00" }, { "name": "sebastian/comparator", - "version": "4.0.10", + "version": "6.3.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "e4df00b9b3571187db2831ae9aada2c6efbd715d" + "reference": "2c95e1e86cb8dd41beb8d502057d1081ccc8eca9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/e4df00b9b3571187db2831ae9aada2c6efbd715d", - "reference": "e4df00b9b3571187db2831ae9aada2c6efbd715d", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2c95e1e86cb8dd41beb8d502057d1081ccc8eca9", + "reference": "2c95e1e86cb8dd41beb8d502057d1081ccc8eca9", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/diff": "^4.0", - "sebastian/exporter": "^4.0" + "ext-dom": "*", + "ext-mbstring": "*", + "php": ">=8.2", + "sebastian/diff": "^6.0", + "sebastian/exporter": "^6.0" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.4" + }, + "suggest": { + "ext-bcmath": "For comparing BcMath\\Number objects" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "6.3-dev" } }, "autoload": { @@ -6374,7 +7561,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.10" + "security": "https://github.com/sebastianbergmann/comparator/security/policy", + "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.3" }, "funding": [ { @@ -6394,33 +7582,33 @@ "type": "tidelift" } ], - "time": "2026-01-24T09:22:56+00:00" + "time": "2026-01-24T09:26:40+00:00" }, { "name": "sebastian/complexity", - "version": "2.0.3", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a" + "reference": "ee41d384ab1906c68852636b6de493846e13e5a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a", - "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/ee41d384ab1906c68852636b6de493846e13e5a0", + "reference": "ee41d384ab1906c68852636b6de493846e13e5a0", "shasum": "" }, "require": { - "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=7.3" + "nikic/php-parser": "^5.0", + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -6443,73 +7631,8 @@ "homepage": "https://github.com/sebastianbergmann/complexity", "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", - "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-12-22T06:19:30+00:00" - }, - { - "name": "sebastian/diff", - "version": "4.0.6", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc", - "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3", - "symfony/process": "^4.2 || ^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6" + "security": "https://github.com/sebastianbergmann/complexity/security/policy", + "source": "https://github.com/sebastianbergmann/complexity/tree/4.0.1" }, "funding": [ { @@ -6517,27 +7640,27 @@ "type": "github" } ], - "time": "2024-03-02T06:30:58+00:00" + "time": "2024-07-03T04:49:50+00:00" }, { "name": "sebastian/environment", - "version": "5.1.5", + "version": "7.2.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" + "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/a5c75038693ad2e8d4b6c15ba2403532647830c4", + "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.3" }, "suggest": { "ext-posix": "*" @@ -6545,7 +7668,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "5.1-dev" + "dev-main": "7.2-dev" } }, "autoload": { @@ -6564,7 +7687,7 @@ } ], "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", + "homepage": "https://github.com/sebastianbergmann/environment", "keywords": [ "Xdebug", "environment", @@ -6572,42 +7695,55 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" + "security": "https://github.com/sebastianbergmann/environment/security/policy", + "source": "https://github.com/sebastianbergmann/environment/tree/7.2.1" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/environment", + "type": "tidelift" } ], - "time": "2023-02-03T06:03:51+00:00" + "time": "2025-05-21T11:55:47+00:00" }, { "name": "sebastian/exporter", - "version": "4.0.9", + "version": "6.3.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "4352c1a3df741a7ba9e61af6fed51d1fee41cbf7" + "reference": "70a298763b40b213ec087c51c739efcaa90bcd74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/4352c1a3df741a7ba9e61af6fed51d1fee41cbf7", - "reference": "4352c1a3df741a7ba9e61af6fed51d1fee41cbf7", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/70a298763b40b213ec087c51c739efcaa90bcd74", + "reference": "70a298763b40b213ec087c51c739efcaa90bcd74", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/recursion-context": "^4.0" + "ext-mbstring": "*", + "php": ">=8.2", + "sebastian/recursion-context": "^6.0" }, "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "6.3-dev" } }, "autoload": { @@ -6649,7 +7785,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.9" + "security": "https://github.com/sebastianbergmann/exporter/security/policy", + "source": "https://github.com/sebastianbergmann/exporter/tree/6.3.2" }, "funding": [ { @@ -6669,38 +7806,35 @@ "type": "tidelift" } ], - "time": "2026-08-11T04:55:59+00:00" + "time": "2025-09-24T06:12:51+00:00" }, { "name": "sebastian/global-state", - "version": "5.0.8", + "version": "7.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6" + "reference": "3be331570a721f9a4b5917f4209773de17f747d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/b6781316bdcd28260904e7cc18ec983d0d2ef4f6", - "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/3be331570a721f9a4b5917f4209773de17f747d7", + "reference": "3be331570a721f9a4b5917f4209773de17f747d7", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" + "php": ">=8.2", + "sebastian/object-reflector": "^4.0", + "sebastian/recursion-context": "^6.0" }, "require-dev": { "ext-dom": "*", - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-uopz": "*" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -6719,59 +7853,48 @@ } ], "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", + "homepage": "https://www.github.com/sebastianbergmann/global-state", "keywords": [ "global state" ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.8" + "security": "https://github.com/sebastianbergmann/global-state/security/policy", + "source": "https://github.com/sebastianbergmann/global-state/tree/7.0.2" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/sebastian/global-state", - "type": "tidelift" } ], - "time": "2025-08-10T07:10:35+00:00" + "time": "2024-07-03T04:57:36+00:00" }, { "name": "sebastian/lines-of-code", - "version": "1.0.4", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5" + "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5", - "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d36ad0d782e5756913e42ad87cb2890f4ffe467a", + "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a", "shasum": "" }, "require": { - "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=7.3" + "nikic/php-parser": "^5.0", + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -6794,7 +7917,8 @@ "homepage": "https://github.com/sebastianbergmann/lines-of-code", "support": { "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4" + "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/3.0.1" }, "funding": [ { @@ -6802,34 +7926,34 @@ "type": "github" } ], - "time": "2023-12-22T06:20:34+00:00" + "time": "2024-07-03T04:58:38+00:00" }, { "name": "sebastian/object-enumerator", - "version": "4.0.4", + "version": "6.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" + "reference": "f5b498e631a74204185071eb41f33f38d64608aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f5b498e631a74204185071eb41f33f38d64608aa", + "reference": "f5b498e631a74204185071eb41f33f38d64608aa", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" + "php": ">=8.2", + "sebastian/object-reflector": "^4.0", + "sebastian/recursion-context": "^6.0" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -6851,7 +7975,8 @@ "homepage": "https://github.com/sebastianbergmann/object-enumerator/", "support": { "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/6.0.1" }, "funding": [ { @@ -6859,32 +7984,32 @@ "type": "github" } ], - "time": "2020-10-26T13:12:34+00:00" + "time": "2024-07-03T05:00:13+00:00" }, { "name": "sebastian/object-reflector", - "version": "2.0.4", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/6e1a43b411b2ad34146dee7524cb13a068bb35f9", + "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -6906,7 +8031,8 @@ "homepage": "https://github.com/sebastianbergmann/object-reflector/", "support": { "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + "security": "https://github.com/sebastianbergmann/object-reflector/security/policy", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/4.0.1" }, "funding": [ { @@ -6914,32 +8040,32 @@ "type": "github" } ], - "time": "2020-10-26T13:14:26+00:00" + "time": "2024-07-03T05:01:32+00:00" }, { "name": "sebastian/recursion-context", - "version": "4.0.7", + "version": "6.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "c85be6922b7fd365942b986b9a50397d65407611" + "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/c85be6922b7fd365942b986b9a50397d65407611", - "reference": "c85be6922b7fd365942b986b9a50397d65407611", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/f6458abbf32a6c8174f8f26261475dc133b3d9dc", + "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -6969,7 +8095,8 @@ "homepage": "https://github.com/sebastianbergmann/recursion-context", "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.7" + "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.3" }, "funding": [ { @@ -6978,97 +8105,43 @@ }, { "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context", - "type": "tidelift" - } - ], - "time": "2026-08-11T05:25:24+00:00" - }, - { - "name": "sebastian/resource-operations", - "version": "3.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/05d5692a7993ecccd56a03e40cd7e5b09b1d404e", - "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "support": { - "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.4" - }, - "funding": [ + "type": "liberapay" + }, { - "url": "https://github.com/sebastianbergmann", - "type": "github" + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context", + "type": "tidelift" } ], - "time": "2024-03-14T16:00:52+00:00" + "time": "2025-08-13T04:42:22+00:00" }, { "name": "sebastian/type", - "version": "3.2.1", + "version": "5.1.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" + "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/f77d2d4e78738c98d9a68d2596fe5e8fa380f449", + "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.5" + "phpunit/phpunit": "^11.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-main": "5.1-dev" } }, "autoload": { @@ -7091,37 +8164,50 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" + "security": "https://github.com/sebastianbergmann/type/security/policy", + "source": "https://github.com/sebastianbergmann/type/tree/5.1.3" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/type", + "type": "tidelift" } ], - "time": "2023-02-03T06:13:03+00:00" + "time": "2025-08-09T06:55:48+00:00" }, { "name": "sebastian/version", - "version": "3.0.2", + "version": "5.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c6c1022351a901512170118436c764e473f6de8c" + "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", - "reference": "c6c1022351a901512170118436c764e473f6de8c", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c687e3387b99f5b03b6caa64c74b63e2936ff874", + "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -7144,7 +8230,8 @@ "homepage": "https://github.com/sebastianbergmann/version", "support": { "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + "security": "https://github.com/sebastianbergmann/version/security/policy", + "source": "https://github.com/sebastianbergmann/version/tree/5.0.2" }, "funding": [ { @@ -7152,36 +8239,40 @@ "type": "github" } ], - "time": "2020-09-28T06:39:44+00:00" + "time": "2024-10-09T05:16:32+00:00" }, { - "name": "seld/jsonlint", - "version": "1.12.1", + "name": "spatie/array-to-xml", + "version": "3.4.4", "source": { "type": "git", - "url": "https://github.com/Seldaek/jsonlint.git", - "reference": "9a90eb5d32d5a500296bf43f946d60246444d5f7" + "url": "https://github.com/spatie/array-to-xml.git", + "reference": "88b2f3852a922dd73177a68938f8eb2ec70c7224" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/9a90eb5d32d5a500296bf43f946d60246444d5f7", - "reference": "9a90eb5d32d5a500296bf43f946d60246444d5f7", + "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/88b2f3852a922dd73177a68938f8eb2ec70c7224", + "reference": "88b2f3852a922dd73177a68938f8eb2ec70c7224", "shasum": "" }, "require": { - "php": "^5.3 || ^7.0 || ^8.0" + "ext-dom": "*", + "php": "^8.0" }, "require-dev": { - "phpstan/phpstan": "^1.11", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^8.5.13" + "mockery/mockery": "^1.2", + "pestphp/pest": "^1.21", + "spatie/pest-plugin-snapshots": "^1.1" }, - "bin": [ - "bin/jsonlint" - ], "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, "autoload": { "psr-4": { - "Seld\\JsonLint\\": "src/Seld/JsonLint/" + "Spatie\\ArrayToXml\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -7190,33 +8281,33 @@ ], "authors": [ { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "https://seld.be" + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://freek.dev", + "role": "Developer" } ], - "description": "JSON Linter", + "description": "Convert an array to xml", + "homepage": "https://github.com/spatie/array-to-xml", "keywords": [ - "json", - "linter", - "parser", - "validator" + "array", + "convert", + "xml" ], "support": { - "issues": "https://github.com/Seldaek/jsonlint/issues", - "source": "https://github.com/Seldaek/jsonlint/tree/1.12.1" + "source": "https://github.com/spatie/array-to-xml/tree/3.4.4" }, "funding": [ { - "url": "https://github.com/Seldaek", - "type": "github" + "url": "https://spatie.be/open-source/support-us", + "type": "custom" }, { - "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint", - "type": "tidelift" + "url": "https://github.com/spatie", + "type": "github" } ], - "time": "2026-06-12T11:32:29+00:00" + "time": "2025-12-15T09:00:41+00:00" }, { "name": "squizlabs/php_codesniffer", @@ -7297,33 +8388,82 @@ ], "time": "2026-08-06T00:17:32+00:00" }, + { + "name": "staabm/side-effects-detector", + "version": "1.0.5", + "source": { + "type": "git", + "url": "https://github.com/staabm/side-effects-detector.git", + "reference": "d8334211a140ce329c13726d4a715adbddd0a163" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163", + "reference": "d8334211a140ce329c13726d4a715adbddd0a163", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^1.12.6", + "phpunit/phpunit": "^9.6.21", + "symfony/var-dumper": "^5.4.43", + "tomasvotruba/type-coverage": "1.0.0", + "tomasvotruba/unused-public": "1.0.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "lib/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A static analysis tool to detect side effects in PHP code", + "keywords": [ + "static analysis" + ], + "support": { + "issues": "https://github.com/staabm/side-effects-detector/issues", + "source": "https://github.com/staabm/side-effects-detector/tree/1.0.5" + }, + "funding": [ + { + "url": "https://github.com/staabm", + "type": "github" + } + ], + "time": "2024-10-20T05:08:20+00:00" + }, { "name": "symfony/browser-kit", - "version": "v5.4.45", + "version": "v7.4.17", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "03cce39764429e07fbab9b989a1182a24578341d" + "reference": "7aff5c4b17a7b04ea6a8390773a93148d15a40b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/03cce39764429e07fbab9b989a1182a24578341d", - "reference": "03cce39764429e07fbab9b989a1182a24578341d", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/7aff5c4b17a7b04ea6a8390773a93148d15a40b7", + "reference": "7aff5c4b17a7b04ea6a8390773a93148d15a40b7", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/dom-crawler": "^4.4|^5.0|^6.0", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/dom-crawler": "^6.4|^7.0|^8.0" }, "require-dev": { - "symfony/css-selector": "^4.4|^5.0|^6.0", - "symfony/http-client": "^4.4|^5.0|^6.0", - "symfony/mime": "^4.4|^5.0|^6.0", - "symfony/process": "^4.4|^5.0|^6.0" - }, - "suggest": { - "symfony/process": "" + "symfony/css-selector": "^6.4|^7.0|^8.0", + "symfony/http-client": "^6.4|^7.0|^8.0", + "symfony/mime": "^6.4|^7.0|^8.0", + "symfony/process": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -7351,7 +8491,7 @@ "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/browser-kit/tree/v5.4.45" + "source": "https://github.com/symfony/browser-kit/tree/v7.4.17" }, "funding": [ { @@ -7362,30 +8502,33 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-10-22T13:05:35+00:00" + "time": "2026-08-21T17:40:08+00:00" }, { "name": "symfony/css-selector", - "version": "v5.4.45", + "version": "v7.4.18", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "4f7f3c35fba88146b56d0025d20ace3f3901f097" + "reference": "fecf40067fc8d8880ea87b8ac227600b9aadd1d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/4f7f3c35fba88146b56d0025d20ace3f3901f097", - "reference": "4f7f3c35fba88146b56d0025d20ace3f3901f097", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/fecf40067fc8d8880ea87b8ac227600b9aadd1d0", + "reference": "fecf40067fc8d8880ea87b8ac227600b9aadd1d0", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.2" }, "type": "library", "autoload": { @@ -7417,7 +8560,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v5.4.45" + "source": "https://github.com/symfony/css-selector/tree/v7.4.18" }, "funding": [ { @@ -7428,43 +8571,40 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:11:13+00:00" + "time": "2026-08-23T10:03:40+00:00" }, { "name": "symfony/dom-crawler", - "version": "v5.4.52", + "version": "v7.4.17", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "b4cf17ff405a77341ad86e81e06ff09298f5aa8f" + "reference": "6b037d62595666cf65de867073c9a1f00184be0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/b4cf17ff405a77341ad86e81e06ff09298f5aa8f", - "reference": "b4cf17ff405a77341ad86e81e06ff09298f5aa8f", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/6b037d62595666cf65de867073c9a1f00184be0c", + "reference": "6b037d62595666cf65de867073c9a1f00184be0c", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", + "masterminds/html5": "^2.6", + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.16" - }, - "conflict": { - "masterminds/html5": "<2.6" + "symfony/polyfill-mbstring": "~1.0" }, "require-dev": { - "masterminds/html5": "^2.6", - "symfony/css-selector": "^4.4|^5.0|^6.0" - }, - "suggest": { - "symfony/css-selector": "" + "symfony/css-selector": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -7492,7 +8632,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v5.4.52" + "source": "https://github.com/symfony/dom-crawler/tree/v7.4.17" }, "funding": [ { @@ -7512,48 +8652,44 @@ "type": "tidelift" } ], - "time": "2026-04-17T07:30:55+00:00" + "time": "2026-08-21T17:40:08+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v5.4.45", + "version": "v7.4.17", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "72982eb416f61003e9bb6e91f8b3213600dcf9e9" + "reference": "d269974ee93c61d03620ffee358355bfdb471d66" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/72982eb416f61003e9bb6e91f8b3213600dcf9e9", - "reference": "72982eb416f61003e9bb6e91f8b3213600dcf9e9", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d269974ee93c61d03620ffee358355bfdb471d66", + "reference": "d269974ee93c61d03620ffee358355bfdb471d66", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/event-dispatcher-contracts": "^2|^3", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.2", + "symfony/event-dispatcher-contracts": "^2.5|^3" }, "conflict": { - "symfony/dependency-injection": "<4.4" + "symfony/dependency-injection": "<6.4", + "symfony/service-contracts": "<2.5" }, "provide": { "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "2.0" + "symfony/event-dispatcher-implementation": "2.0|3.0" }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/error-handler": "^4.4|^5.0|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/http-foundation": "^4.4|^5.0|^6.0", - "symfony/service-contracts": "^1.1|^2|^3", - "symfony/stopwatch": "^4.4|^5.0|^6.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/error-handler": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/framework-bundle": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/stopwatch": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -7581,69 +8717,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.45" - }, - "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-09-25T14:11:13+00:00" - }, - { - "name": "symfony/process", - "version": "v5.4.51", - "source": { - "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "467bfc56f18f5ef6d5ccb09324d7e988c1c0a98f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/467bfc56f18f5ef6d5ccb09324d7e988c1c0a98f", - "reference": "467bfc56f18f5ef6d5ccb09324d7e988c1c0a98f", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.16" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Process\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Executes commands in sub-processes", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/process/tree/v5.4.51" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.4.17" }, "funding": [ { @@ -7663,35 +8737,32 @@ "type": "tidelift" } ], - "time": "2026-01-26T15:53:37+00:00" + "time": "2026-08-21T17:40:08+00:00" }, { "name": "symfony/yaml", - "version": "v5.4.53", + "version": "v7.4.18", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "ae0bbb46f77ff56591d0a0259c7f458f4b3e1f77" + "reference": "4cef939e55b8a21c5780418de0d98ab00d0736e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/ae0bbb46f77ff56591d0a0259c7f458f4b3e1f77", - "reference": "ae0bbb46f77ff56591d0a0259c7f458f4b3e1f77", + "url": "https://api.github.com/repos/symfony/yaml/zipball/4cef939e55b8a21c5780418de0d98ab00d0736e1", + "reference": "4cef939e55b8a21c5780418de0d98ab00d0736e1", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "symfony/console": "<5.3" + "symfony/console": "<6.4" }, "require-dev": { - "symfony/console": "^5.3|^6.0" - }, - "suggest": { - "symfony/console": "For validating YAML files using the lint command" + "symfony/console": "^6.4|^7.0|^8.0" }, "bin": [ "Resources/bin/yaml-lint" @@ -7722,7 +8793,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v5.4.53" + "source": "https://github.com/symfony/yaml/tree/v7.4.18" }, "funding": [ { @@ -7742,7 +8813,7 @@ "type": "tidelift" } ], - "time": "2026-05-20T17:13:41+00:00" + "time": "2026-08-30T00:47:26+00:00" }, { "name": "theseer/tokenizer", @@ -7794,76 +8865,28 @@ ], "time": "2025-11-17T20:03:58+00:00" }, - { - "name": "ulrichsg/getopt-php", - "version": "v3.4.0", - "source": { - "type": "git", - "url": "https://github.com/getopt-php/getopt-php.git", - "reference": "9121d7c2c51a6a59ee407c49a13b4d8cfae71075" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/getopt-php/getopt-php/zipball/9121d7c2c51a6a59ee407c49a13b4d8cfae71075", - "reference": "9121d7c2c51a6a59ee407c49a13b4d8cfae71075", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "php": ">=5.4.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8", - "squizlabs/php_codesniffer": "^2.7" - }, - "type": "library", - "autoload": { - "psr-4": { - "GetOpt\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ulrich Schmidt-Goertz", - "email": "ulrich@schmidt-goertz.de" - }, - { - "name": "Thomas Flori", - "email": "thflori@gmail.com" - } - ], - "description": "Command line arguments parser for PHP 5.4 - 7.3", - "homepage": "http://getopt-php.github.io/getopt-php", - "support": { - "issues": "https://github.com/getopt-php/getopt-php/issues", - "source": "https://github.com/getopt-php/getopt-php/tree/v3.4.0" - }, - "time": "2020-07-14T06:09:04+00:00" - }, { "name": "vimeo/psalm", - "version": "4.30.0", + "version": "6.18.0", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "d0bc6e25d89f649e4f36a534f330f8bb4643dd69" + "reference": "536dd6236b39a5115385b0307b42d6d1ad431a02" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/d0bc6e25d89f649e4f36a534f330f8bb4643dd69", - "reference": "d0bc6e25d89f649e4f36a534f330f8bb4643dd69", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/536dd6236b39a5115385b0307b42d6d1ad431a02", + "reference": "536dd6236b39a5115385b0307b42d6d1ad431a02", "shasum": "" }, "require": { - "amphp/amp": "^2.4.2", - "amphp/byte-stream": "^1.5", - "composer/package-versions-deprecated": "^1.8.0", + "amphp/amp": "^3", + "amphp/byte-stream": "^2", + "amphp/parallel": "^2.3", + "composer-runtime-api": "^2", "composer/semver": "^1.4 || ^2.0 || ^3.0", - "composer/xdebug-handler": "^1.1 || ^2.0 || ^3.0", + "composer/xdebug-handler": "^2.0 || ^3.0", + "danog/advanced-json-rpc": "^3.1", "dnoegel/php-xdg-base-dir": "^0.1.1", "ext-ctype": "*", "ext-dom": "*", @@ -7872,35 +8895,37 @@ "ext-mbstring": "*", "ext-simplexml": "*", "ext-tokenizer": "*", - "felixfbecker/advanced-json-rpc": "^3.0.3", - "felixfbecker/language-server-protocol": "^1.5", - "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", - "nikic/php-parser": "^4.13", - "openlss/lib-array2xml": "^1.0", - "php": "^7.1|^8", - "sebastian/diff": "^3.0 || ^4.0", - "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0 || ^6.0", - "symfony/polyfill-php80": "^1.25", - "webmozart/path-util": "^2.3" + "felixfbecker/language-server-protocol": "^1.5.3", + "fidry/cpu-core-counter": "^0.4.1 || ^0.5.1 || ^1.0.0", + "netresearch/jsonmapper": "^5.0", + "nikic/php-parser": "^5.2.0", + "php": "~8.1.31 || ~8.2.27 || ~8.3.16 || ~8.4.3 || ~8.5.0", + "sebastian/diff": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0", + "spatie/array-to-xml": "^2.17.0 || ^3.0", + "symfony/console": "^6.0 || ^7.0 || ^8.0", + "symfony/filesystem": "~6.3.12 || ~6.4.3 || ^7.0.3 || ^8.0", + "symfony/polyfill-php84": "^1.31.0" }, "provide": { "psalm/psalm": "self.version" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.2", - "brianium/paratest": "^4.0||^6.0", + "amphp/phpunit-util": "^3", + "bamarni/composer-bin-plugin": "^1.4", + "brianium/paratest": "^6.9", + "danog/class-finder": "^0.4.8", + "dg/bypass-finals": "^1.5", "ext-curl": "*", + "mockery/mockery": "^1.5", + "nunomaduro/mock-final-classes": "^1.1", "php-parallel-lint/php-parallel-lint": "^1.2", - "phpdocumentor/reflection-docblock": "^5", - "phpmyadmin/sql-parser": "5.1.0||dev-master", - "phpspec/prophecy": ">=1.9.0", - "phpstan/phpdoc-parser": "1.2.* || 1.6.4", - "phpunit/phpunit": "^9.0", - "psalm/plugin-phpunit": "^0.16", - "slevomat/coding-standard": "^7.0", - "squizlabs/php_codesniffer": "^3.5", - "symfony/process": "^4.3 || ^5.0 || ^6.0", - "weirdan/prophecy-shim": "^1.0 || ^2.0" + "phpstan/phpdoc-parser": "^1.6", + "phpunit/phpunit": "^9.6", + "psalm/plugin-mockery": "^1.1", + "psalm/plugin-phpunit": "^0.19", + "slevomat/coding-standard": "^8.4", + "squizlabs/php_codesniffer": "^3.6", + "symfony/process": "^6.0 || ^7.0 || ^8.0" }, "suggest": { "ext-curl": "In order to send data to shepherd", @@ -7911,22 +8936,22 @@ "psalm-language-server", "psalm-plugin", "psalm-refactor", + "psalm-review", "psalter" ], - "type": "library", + "type": "project", "extra": { "branch-alias": { "dev-1.x": "1.x-dev", "dev-2.x": "2.x-dev", "dev-3.x": "3.x-dev", - "dev-master": "4.x-dev" + "dev-4.x": "4.x-dev", + "dev-5.x": "5.x-dev", + "dev-6.x": "6.x-dev", + "dev-master": "7.x-dev" } }, "autoload": { - "files": [ - "src/functions.php", - "src/spl_object_id.php" - ], "psr-4": { "Psalm\\": "src/Psalm/" } @@ -7938,76 +8963,34 @@ "authors": [ { "name": "Matthew Brown" + }, + { + "name": "Daniil Gentili", + "email": "daniil@daniil.it" } ], "description": "A static analysis tool for finding errors in PHP applications", "keywords": [ "code", "inspection", - "php" + "php", + "static analysis" ], "support": { + "docs": "https://psalm.dev/docs", "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm/tree/4.30.0" - }, - "time": "2022-11-06T20:37:08+00:00" - }, - { - "name": "webmozart/path-util", - "version": "2.3.0", - "source": { - "type": "git", - "url": "https://github.com/webmozart/path-util.git", - "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725", - "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "webmozart/assert": "~1.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.3-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\PathUtil\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.", - "support": { - "issues": "https://github.com/webmozart/path-util/issues", - "source": "https://github.com/webmozart/path-util/tree/2.3.0" + "source": "https://github.com/vimeo/psalm" }, - "abandoned": "symfony/filesystem", - "time": "2015-12-17T08:42:14+00:00" + "time": "2026-09-21T08:32:57+00:00" } ], "aliases": [], "minimum-stability": "stable", "stability-flags": { - "phalcon/phalcon": 5 + "phalcon/annotations": 20, + "phalcon/migrations": 20, + "phalcon/phalcon": 5, + "phalcon/volt": 20 }, "prefer-stable": false, "prefer-lowest": false, @@ -8016,5 +8999,8 @@ "ext-pdo": "*" }, "platform-dev": {}, + "platform-overrides": { + "php": "8.2.27" + }, "plugin-api-version": "2.9.0" } diff --git a/src/Builder/Project/Simple.php b/src/Builder/Project/Simple.php index f2864681c..8a0024bb8 100644 --- a/src/Builder/Project/Simple.php +++ b/src/Builder/Project/Simple.php @@ -57,10 +57,11 @@ class Simple extends ProjectBuilder */ public function build() { - + $this ->buildDirectories() ->getVariableValues() + ->createComposerFile() ->createConfig() ->createBootstrapFiles() ->createHtaccessFiles() @@ -176,6 +177,21 @@ private function createBootstrapFiles() return $this; } + /** + * Create Composer configuration file. + * + * @return $this + */ + private function createComposerFile() + { + $getFile = $this->options->get('templatePath') . '/project/simple/composer.json'; + $putFile = $this->options->get('projectPath') . 'composer.json'; + + $this->generateFile($getFile, $putFile); + + return $this; + } + /** * Creates the configuration * diff --git a/src/Error/ErrorHandler.php b/src/Error/ErrorHandler.php index f0585bcc8..a858c9b2c 100644 --- a/src/Error/ErrorHandler.php +++ b/src/Error/ErrorHandler.php @@ -13,7 +13,7 @@ namespace Phalcon\DevTools\Error; use Phalcon\Di\Injectable; -use Phalcon\Logger\Logger; +use Phalcon\Logger\Enum; class ErrorHandler extends Injectable { @@ -81,7 +81,7 @@ public function handle(AppError $error): void $message = "$type: {$error->message()} in {$error->file()} on line {$error->line()}"; if ($di->has('logger')) { - /** @var Logger $logger */ + /** @var \Phalcon\Logger\Logger $logger */ $logger = $this->getDI()->getShared('logger'); $logger->log($this->mapErrorsToLogType($error->type()), $message); @@ -94,11 +94,11 @@ public function handle(AppError $error): void case E_COMPILE_WARNING: case E_USER_WARNING: case E_USER_NOTICE: - case E_STRICT: case E_DEPRECATED: case E_USER_DEPRECATED: case E_ALL: break; + default: if ($di->has('view')) { // @todo @@ -141,8 +141,6 @@ public function mapErrors(int $code) return 'E_USER_WARNING'; case E_USER_NOTICE: return 'E_USER_NOTICE'; - case E_STRICT: - return 'E_STRICT'; case E_RECOVERABLE_ERROR: return 'E_RECOVERABLE_ERROR'; case E_DEPRECATED: @@ -169,22 +167,24 @@ public function mapErrorsToLogType(int $code): int case E_COMPILE_ERROR: case E_USER_ERROR: case E_PARSE: - return Logger::ERROR; + return Enum::ERROR; + case E_WARNING: case E_USER_WARNING: case E_CORE_WARNING: case E_COMPILE_WARNING: - return Logger::WARNING; + return Enum::WARNING; + case E_NOTICE: case E_USER_NOTICE: - return Logger::NOTICE; - case E_STRICT: + return Enum::NOTICE; + case E_DEPRECATED: case E_USER_DEPRECATED: - return Logger::INFO; + return Enum::INFO; } - return Logger::ERROR; + return Enum::ERROR; } public function customErrorHandler($errno, $errstr, $errfile, $errline) diff --git a/src/Mvc/Controller/Base.php b/src/Mvc/Controller/Base.php index a14613f4f..1ad42af75 100644 --- a/src/Mvc/Controller/Base.php +++ b/src/Mvc/Controller/Base.php @@ -12,8 +12,8 @@ namespace Phalcon\DevTools\Mvc\Controller; -use Phalcon\Assets\Filters\Cssmin; -use Phalcon\Assets\Filters\Jsmin; +use Phalcon\Assets\Filters\CssMin; +use Phalcon\Assets\Filters\JsMin; use Phalcon\Assets\Manager; use Phalcon\Config\Config; use Phalcon\DevTools\Resources\AssetsResource; @@ -32,7 +32,7 @@ use Phalcon\Support\Registry; use Phalcon\Mvc\Url; use Phalcon\Mvc\Url\UrlInterface; -use Phalcon\support\Version as PhVersion; +use Phalcon\Support\Version as PhVersion; /** * @property Config $config diff --git a/src/Mvc/Controller/CodemirrorTrait.php b/src/Mvc/Controller/CodemirrorTrait.php index 584481015..6c612140a 100644 --- a/src/Mvc/Controller/CodemirrorTrait.php +++ b/src/Mvc/Controller/CodemirrorTrait.php @@ -12,8 +12,8 @@ namespace Phalcon\DevTools\Mvc\Controller; -use Phalcon\Assets\Filters\Cssmin; -use Phalcon\Assets\Filters\Jsmin; +use Phalcon\Assets\Filters\CssMin; +use Phalcon\Assets\Filters\JsMin; use Phalcon\Assets\Manager; use Phalcon\DevTools\Resources\AssetsResource; use Phalcon\DevTools\Version; diff --git a/src/Web/Tools/Controllers/ErrorController.php b/src/Web/Tools/Controllers/ErrorController.php index b1e45730b..f3c16981e 100644 --- a/src/Web/Tools/Controllers/ErrorController.php +++ b/src/Web/Tools/Controllers/ErrorController.php @@ -12,8 +12,8 @@ namespace Phalcon\DevTools\Web\Tools\Controllers; -use Phalcon\Assets\Filters\Cssmin; -use Phalcon\Assets\Filters\Jsmin; +use Phalcon\Assets\Filters\CssMin; +use Phalcon\Assets\Filters\JsMin; use Phalcon\DevTools\Mvc\Controller\Base; use Phalcon\DevTools\Version; use Phalcon\Html\TagFactory; diff --git a/templates/project/simple/composer.json b/templates/project/simple/composer.json new file mode 100644 index 000000000..d75c1cb15 --- /dev/null +++ b/templates/project/simple/composer.json @@ -0,0 +1,11 @@ +{ + "name": "phalcon/project", + "description": "Phalcon application", + "type": "project", + "require": { + "php": ">=8.2 <9.0", + "phalcon/phalcon": "^6.0@RC", + "phalcon/phql": "1.0.x-dev", + "phalcon/volt": "1.0.x-dev" + } +} diff --git a/templates/project/simple/index.php b/templates/project/simple/index.php index 6a9b99d27..835f36036 100644 --- a/templates/project/simple/index.php +++ b/templates/project/simple/index.php @@ -8,6 +8,8 @@ define('BASE_PATH', dirname(__DIR__)); define('APP_PATH', BASE_PATH . '/app'); +require BASE_PATH . '/vendor/autoload.php'; + try { /** * The FactoryDefault Dependency Injector automatically registers From 7272e838dea01e80337a84154717dd1f9ee6c617 Mon Sep 17 00:00:00 2001 From: Romeo Manzur Date: Thu, 24 Sep 2026 11:25:04 -0600 Subject: [PATCH 06/15] Add migrations v4 database test support Assisted-by: ChatGPT --- docker-compose.yml | 15 ++- .../Controllers/MigrationsController.php | 46 ++++++-- tests/_ci/setup_dbs_github.sh | 2 +- tests/_data/acceptance/mysql/config.php | 12 +- tests/_data/acceptance/pgsql/config.php | 10 +- tests/_data/console/app/mysql/config.php | 16 +-- tests/_data/schemas/mysql/customers.sql | 30 +++++ tests/_data/schemas/postgresql/dump.sql | 5 - tests/_support/Helper/Acceptance.php | 110 +++++++++++++++--- 9 files changed, 195 insertions(+), 51 deletions(-) create mode 100644 tests/_data/schemas/mysql/customers.sql diff --git a/docker-compose.yml b/docker-compose.yml index 41b00b21a..b20bc8093 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,6 +13,19 @@ services: volumes: - ./:/app + environment: + MYSQL_DB_HOST: mysql + MYSQL_DB_USERNAME: devtools + MYSQL_DB_PASSWORD: password + MYSQL_DB_NAME: devtools + MYSQL_DB_PORT: 3306 + + POSTGRES_DB_HOST: postgres + POSTGRES_DB_USERNAME: devtools + POSTGRES_DB_PASSWORD: password + POSTGRES_DB_NAME: devtools + POSTGRES_DB_PORT: 5432 + depends_on: - mysql - postgres @@ -48,7 +61,7 @@ services: - ./docker/mysql/config:/etc/mysql/conf.d/ postgres: - image: postgis/postgis:13-master + image: postgres:13 restart: unless-stopped environment: diff --git a/src/Web/Tools/Controllers/MigrationsController.php b/src/Web/Tools/Controllers/MigrationsController.php index 73b76fe7e..471471603 100644 --- a/src/Web/Tools/Controllers/MigrationsController.php +++ b/src/Web/Tools/Controllers/MigrationsController.php @@ -19,6 +19,7 @@ use Phalcon\Flash\Session; use Phalcon\Http\ResponseInterface; use Phalcon\Migrations\Migrations; +use Phalcon\Migrations\Utils\Config as MigrationsConfig; use Phalcon\Html\TagFactory; /** @@ -43,7 +44,7 @@ public function indexAction(): void $migrations = []; if ($migrationsDir = $this->registry->offsetGet('directories')->migrationsDir) { - foreach (new DirectoryIterator($migrationsDir) as $index => $version) { + foreach (new DirectoryIterator($migrationsDir) as $version) { if ($version->isDot() || !$version->isDir()) { continue; } @@ -94,15 +95,16 @@ public function generateAction() if ($this->request->isPost()) { try { Migrations::generate([ - 'directory' => $this->request->getPost('basePath', 'string'), - 'tableName' => $this->request->getPost('tableName', 'string'), - 'exportData' => $this->request->getPost('exportDataType', 'string'), - 'migrationsDir' => $this->request->getPost('migrationsDir', 'string'), - 'force' => $this->request->getPost('force', 'int'), - 'noAutoIncrement' => $this->request->getPost('noAi', 'int'), - 'config' => $this->config, - 'descr' => null, // @todo - 'version' => $this->request->getPost('version', 'string') ?: null, + 'directory' => $this->request->getPost('basePath', 'string'), + 'tableName' => $this->request->getPost('tableName', 'string'), + 'exportData' => $this->request->getPost('exportDataType', 'string'), + 'exportDataFromTables' => [], + 'migrationsDir' => $this->request->getPost('migrationsDir', 'string'), + 'force' => (bool) $this->request->getPost('force', 'int'), + 'noAutoIncrement' => (bool) $this->request->getPost('noAi', 'int'), + 'config' => $this->getMigrationsConfig(), + 'descr' => null, // @todo + 'version' => $this->request->getPost('version', 'string') ?: null, ]); $this->flashSession->success('The migration was generated successfully.'); @@ -155,7 +157,7 @@ public function runAction() try { Migrations::run( [ - 'config' => $this->config, + 'config' => $this->getMigrationsConfig(), 'directory' => $this->request->getPost('basePath', 'string'), 'tableName' => '@', // @todo 'migrationsDir' => $this->request->getPost('migrationsDir', 'string'), @@ -221,4 +223,26 @@ protected function prepareVersions(): string return 'None'; } } + + /** + * Convert DevTools application configuration to the configuration + * object expected by phalcon/migrations v4. + */ + private function getMigrationsConfig(): MigrationsConfig + { + if ($this->config instanceof MigrationsConfig) { + return $this->config; + } + + if ( + is_object($this->config) + && method_exists($this->config, 'toArray') + ) { + $config = $this->config->toArray(); + } else { + $config = (array) $this->config; + } + + return MigrationsConfig::fromArray($config); + } } diff --git a/tests/_ci/setup_dbs_github.sh b/tests/_ci/setup_dbs_github.sh index 876ef4b7e..4c01460e8 100644 --- a/tests/_ci/setup_dbs_github.sh +++ b/tests/_ci/setup_dbs_github.sh @@ -10,7 +10,7 @@ CURRENT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) BUILD_DIR="${BUILD_DIR:-"$( dirname "$( dirname "$CURRENT_DIR" ) ")"}" echo -e "Create PostgreSQL database..." -psql -U postgres devtools -p "$POSTGRES_DB_PORT" -h localhost -q -f "${BUILD_DIR}/tests/_data/schemas/postgresql/dump.sql" +psql -v ON_ERROR_STOP=1 -U devtools devtools -p "$POSTGRES_DB_PORT" -h 127.0.0.1 -q -f "${BUILD_DIR}/tests/_data/schemas/postgresql/dump.sql" echo -e "Done\n" echo -e "Create MySQL database..." diff --git a/tests/_data/acceptance/mysql/config.php b/tests/_data/acceptance/mysql/config.php index 8a1409804..4ea734288 100644 --- a/tests/_data/acceptance/mysql/config.php +++ b/tests/_data/acceptance/mysql/config.php @@ -11,12 +11,12 @@ return new \Phalcon\Config\Config([ 'database' => [ 'adapter' => 'Mysql', - 'host' => '127.0.0.1', - 'username' => 'root', - 'password' => getenv('MYSQL_DB_PASSWORD'), - 'dbname' => 'devtools', - 'port' => getenv('MYSQL_DB_PORT'), - 'charset' => 'utf8' + 'host' => getenv('MYSQL_DB_HOST') ?: '127.0.0.1', + 'username' => getenv('MYSQL_DB_USERNAME') ?: 'root', + 'password' => getenv('MYSQL_DB_PASSWORD') ?: '', + 'dbname' => getenv('MYSQL_DB_NAME') ?: 'devtools', + 'port' => getenv('MYSQL_DB_PORT') ?: 3306, + 'charset' => 'utf8', ], 'application' => [ 'appDir' => APP_PATH . '/', diff --git a/tests/_data/acceptance/pgsql/config.php b/tests/_data/acceptance/pgsql/config.php index ca50e32d6..f82643762 100644 --- a/tests/_data/acceptance/pgsql/config.php +++ b/tests/_data/acceptance/pgsql/config.php @@ -10,11 +10,11 @@ return new \Phalcon\Config\Config([ 'database' => [ 'adapter' => 'Postgresql', - 'host' => 'localhost', - 'username' => 'postgres', - 'password' => '', - 'dbname' => 'devtools', - 'port' => getenv('POSTGRES_DB_PORT'), + 'host' => getenv('POSTGRES_DB_HOST') ?: 'localhost', + 'username' => getenv('POSTGRES_DB_USERNAME') ?: 'postgres', + 'password' => getenv('POSTGRES_DB_PASSWORD') ?: '', + 'dbname' => getenv('POSTGRES_DB_NAME') ?: 'devtools', + 'port' => getenv('POSTGRES_DB_PORT') ?: 5432, ], 'application' => [ 'appDir' => APP_PATH . '/', diff --git a/tests/_data/console/app/mysql/config.php b/tests/_data/console/app/mysql/config.php index 89c1e2334..5e387e7e9 100644 --- a/tests/_data/console/app/mysql/config.php +++ b/tests/_data/console/app/mysql/config.php @@ -1,22 +1,22 @@ [ - 'adapter' => 'Mysql', - 'host' => '127.0.0.1', - 'username' => 'root', - 'password' => env('MYSQL_DB_PASSWORD'), - 'dbname' => 'devtools', - 'port' => env('MYSQL_DB_PORT') + 'adapter' => 'Mysql', + 'host' => env('MYSQL_DB_HOST') ?: '127.0.0.1', + 'username' => env('MYSQL_DB_USERNAME') ?: 'root', + 'password' => env('MYSQL_DB_PASSWORD') ?: '', + 'dbname' => env('MYSQL_DB_NAME') ?: 'devtools', + 'port' => (int) (env('MYSQL_DB_PORT') ?: 3306), ], 'logger' => [ 'path' => tests_path('_output/logs/console/mysql/'), 'format' => '%date% [%type%] %message%', 'date' => 'D j H:i:s', - 'logLevel' => Logger::DEBUG, + 'logLevel' => Enum::DEBUG, 'filename' => 'tests.log', ], 'application' => [ diff --git a/tests/_data/schemas/mysql/customers.sql b/tests/_data/schemas/mysql/customers.sql new file mode 100644 index 000000000..1fdba52ed --- /dev/null +++ b/tests/_data/schemas/mysql/customers.sql @@ -0,0 +1,30 @@ +DROP TABLE IF EXISTS `customers`; + +CREATE TABLE customers( + id integer auto_increment, + firstname Varchar(30), + surname Varchar(30), + membertype Varchar(6), + dateofbirth date, + PRIMARY KEY(id) +); + +INSERT INTO customers (firstname,surname,membertype,dateofbirth) VALUES ("Hedley","Reeves","U7B0Q","19-04-15"),("Lillian","Bright","B6O2I","19-04-17"),("Quin","Cherry","W2Q7K","19-04-15"),("Felix","Underwood","H9O8P","19-04-16"),("Kirestin","Finley","E5K6R","19-04-15"),("Brandon","West","A1L1Q","19-04-17"),("Plato","Vaughn","L2C3S","19-04-15"),("Kristen","Davenport","Q7S9K","19-04-15"),("Erasmus","Oneil","T7S0B","19-04-16"),("Steven","Kramer","I6G0M","19-04-15"); + +INSERT INTO customers (firstname,surname,membertype,dateofbirth) VALUES ("Damian","Houston","Y3U7T","19-04-16"),("Griffin","Beach","K1S6X","19-04-15"),("Kylie","Cohen","S3D2P","19-04-17"),("Wayne","Freeman","W5H9H","19-04-17"),("Charde","Lewis","L4B4B","19-04-17"),("Simone","Ratliff","M4I1N","19-04-17"),("Maggie","Guerrero","O4S3Z","19-04-17"),("Ferris","Fitzgerald","J1M0F","19-04-16"),("Yoshio","Reynolds","B6J9Y","19-04-17"),("Lacey","Austin","H3C8R","19-04-15"); + +INSERT INTO customers (firstname,surname,membertype,dateofbirth) VALUES ("Eugenia","Tyson","A6K1J","19-04-16"),("Slade","Farley","M7Y5K","19-04-16"),("Kylynn","Bolton","I7D5M","19-04-17"),("Patience","Ware","R1Y8S","19-04-17"),("Cooper","Bruce","R5Y2P","19-04-17"),("Justin","Harding","X9Q0H","19-04-16"),("Cleo","York","R4Z9A","19-04-17"),("Dante","Delacruz","L6H3S","19-04-17"),("Kylie","Oneal","C0U1Q","19-04-16"),("Macey","Salazar","L0Q8H","19-04-15"); + +INSERT INTO customers (firstname,surname,membertype,dateofbirth) VALUES ("Rosalyn","Chandler","M6B2H","19-04-15"),("Jorden","Pratt","Z8L6D","19-04-15"),("Kermit","Gaines","T7H1K","19-04-17"),("Kirsten","Grimes","B6N1L","19-04-15"),("Keegan","Wolfe","F2L4A","19-04-16"),("Kiara","Castaneda","D7P0D","19-04-17"),("Eleanor","Gomez","P4W3O","19-04-17"),("Abdul","Potter","T9P5Z","19-04-16"),("Denton","Mendoza","W0L1X","19-04-16"),("Omar","Morse","A2P8Q","19-04-17"); + +INSERT INTO customers (firstname,surname,membertype,dateofbirth) VALUES ("Martina","Mckinney","S0P7K","19-04-16"),("Hedley","Nguyen","L7U8O","19-04-15"),("Wanda","Dyer","T8Z1R","19-04-16"),("Olga","Witt","I0R6O","19-04-15"),("Leandra","Simmons","U6C4C","19-04-17"),("Lev","Cox","D8P2R","19-04-17"),("Maxine","Gilmore","E2D3R","19-04-15"),("Sean","Doyle","K1Z1M","19-04-17"),("Carl","Brady","M2K4X","19-04-15"),("Hilel","Huffman","N5W1L","19-04-17"); + +INSERT INTO customers (firstname,surname,membertype,dateofbirth) VALUES ("Ina","Mendoza","I0M8V","19-04-17"),("Uriah","Mccarthy","A0Z8A","19-04-15"),("Kay","Stevens","Q8J8G","19-04-15"),("Silas","Calhoun","Z8L4O","19-04-16"),("Nolan","Garrett","Z1G4A","19-04-17"),("Knox","Sosa","X0X3A","19-04-15"),("Calista","Barnes","D2R6H","19-04-17"),("Troy","Reed","K0P3L","19-04-17"),("Flynn","Fry","K1Z6P","19-04-17"),("Veda","Boone","B7P2C","19-04-17"); + +INSERT INTO customers (firstname,surname,membertype,dateofbirth) VALUES ("Madonna","Gilbert","U1T8G","19-04-17"),("Boris","Montgomery","V2L4R","19-04-16"),("Wing","Reese","U3L2S","19-04-15"),("Jackson","Bradford","J8C9Z","19-04-16"),("Jermaine","Mendez","Y2W5W","19-04-16"),("Astra","Chan","U0V6D","19-04-16"),("Kitra","Head","U2A3O","19-04-15"),("Honorato","Mullen","W3K6D","19-04-16"),("Brynn","Morse","O7K3B","19-04-17"),("Yolanda","Rivas","J2Z9L","19-04-16"); + +INSERT INTO customers (firstname,surname,membertype,dateofbirth) VALUES ("Cedric","Avery","L2P1G","19-04-15"),("Ann","Travis","K2B5E","19-04-17"),("Lee","Mathis","C0Z4A","19-04-17"),("Skyler","Cervantes","W9I3B","19-04-15"),("Hermione","Baird","C4V9Q","19-04-17"),("Helen","Clark","I3T9J","19-04-17"),("Maryam","Blackburn","S1I7Z","19-04-15"),("Rahim","Knapp","O2S7K","19-04-17"),("Gannon","Williamson","F9O2L","19-04-15"),("Stephen","Bradshaw","H9X5D","19-04-16"); + +INSERT INTO customers (firstname,surname,membertype,dateofbirth) VALUES ("Gil","Manning","Q3Z2R","19-04-16"),("Victoria","Alford","J4T7L","19-04-16"),("Calvin","Stout","R1H0I","19-04-17"),("Erica","Gregory","H2K1T","19-04-17"),("Finn","Maynard","I8K4T","19-04-17"),("Karina","Nichols","U1Y4I","19-04-17"),("Imogene","Soto","S6M7P","19-04-16"),("Juliet","Wilkins","P0X0K","19-04-15"),("Emma","Dejesus","L8P4G","19-04-16"),("Pearl","Henry","L9X3W","19-04-17"); + +INSERT INTO customers (firstname,surname,membertype,dateofbirth) VALUES ("Lillith","Garcia","L1V1Q","19-04-16"),("Zenia","Figueroa","X6J6W","19-04-17"),("Ulla","Kidd","V5N4T","19-04-16"),("Maxwell","Solis","Q0J1Y","19-04-16"),("Erasmus","Raymond","F8Y3G","19-04-16"),("Caleb","Byrd","A5D6F","19-04-17"),("Philip","Carpenter","B1R0E","19-04-17"),("Lisandra","Wilcox","N2Z7T","19-04-15"),("Joseph","Bush","N4Z8R","19-04-15"),("Kaitlin","Ferrell","J0G8Q","19-04-17"); \ No newline at end of file diff --git a/tests/_data/schemas/postgresql/dump.sql b/tests/_data/schemas/postgresql/dump.sql index 0ed1a0a00..6ebe687d4 100644 --- a/tests/_data/schemas/postgresql/dump.sql +++ b/tests/_data/schemas/postgresql/dump.sql @@ -29,8 +29,6 @@ SET default_tablespace = ''; SET default_with_oids = false; -CREATE USER phalcon_user WITH PASSWORD '1234'; -GRANT ALL PRIVILEGES ON DATABASE devtools TO phalcon_user; -- -- Tables for testing describeReferences() @@ -44,7 +42,6 @@ CREATE TABLE foreign_key_parent ( UNIQUE (refer_int) ); -ALTER TABLE public.foreign_key_parent OWNER TO postgres; -- Table: foreign_key_child CREATE TABLE foreign_key_child ( @@ -55,7 +52,6 @@ CREATE TABLE foreign_key_child ( UNIQUE (child_int) ); -ALTER TABLE public.foreign_key_child OWNER TO postgres; -- -- Table for testing generating migrations and methods batchInsert(), batchDelete() @@ -74,7 +70,6 @@ CREATE TABLE test_insert_delete ( UNIQUE (username) ); -ALTER TABLE public.test_insert_delete OWNER TO postgres; INSERT INTO public.test_insert_delete VALUES (3, 3, 'superadmin3', 'First name Last name', 'email@test.com', '', NULL, null); diff --git a/tests/_support/Helper/Acceptance.php b/tests/_support/Helper/Acceptance.php index 3aa24f816..30a4b3a44 100644 --- a/tests/_support/Helper/Acceptance.php +++ b/tests/_support/Helper/Acceptance.php @@ -1,9 +1,12 @@ projectPath = tests_path('_data/acceptance/' . $this->projectName); + $this->projectPath = tests_path( + '_data/acceptance/' . $this->projectName + ); } public function _before(TestInterface $test) { $driver = $test->getMetadata()->getCurrent('env'); + if (!empty($driver)) { $this->driver = $driver; } - if (true === in_array($driver, ['mysql', 'pgsql'])) { - - $codeceptionDataFile = PATH_DATA . 'acceptance' . - DIRECTORY_SEPARATOR . $driver . - DIRECTORY_SEPARATOR . 'config.php'; + if (true === in_array($driver, ['mysql', 'pgsql'], true)) { + $codeceptionDataFile = PATH_DATA . + 'acceptance' . + DIRECTORY_SEPARATOR . + $driver . + DIRECTORY_SEPARATOR . + 'config.php'; - $targetWebtoolFile = PROJECT_PATH . 'webtools' . - DIRECTORY_SEPARATOR . 'app' . - DIRECTORY_SEPARATOR . 'config' . - DIRECTORY_SEPARATOR . 'config.php'; + $targetWebtoolFile = PROJECT_PATH . + 'webtools' . + DIRECTORY_SEPARATOR . + 'app' . + DIRECTORY_SEPARATOR . + 'config' . + DIRECTORY_SEPARATOR . + 'config.php'; copy($codeceptionDataFile, $targetWebtoolFile); } parent::_before($test); - - //shell_exec('phalcon project --directory=' . $this->projectPath); } public function _after(TestInterface $test) { parent::_after($test); + } + + /** + * Restore the customers table to its original acceptance-test state. + */ + public function resetCustomersFixture(): void + { + $fixtureFile = PATH_DATA . + 'schemas' . + DIRECTORY_SEPARATOR . + 'mysql' . + DIRECTORY_SEPARATOR . + 'customers.sql'; + + if (!is_file($fixtureFile)) { + throw new RuntimeException( + sprintf( + 'Customers fixture was not found: %s', + $fixtureFile + ) + ); + } - //shell_exec('rm -rf ' . $this->projectPath); + $sql = file_get_contents($fixtureFile); + + if (false === $sql) { + throw new RuntimeException( + sprintf( + 'Unable to read customers fixture: %s', + $fixtureFile + ) + ); + } + + $host = getenv('MYSQL_DB_HOST') ?: 'mysql'; + $port = getenv('MYSQL_DB_PORT') ?: '3306'; + $database = getenv('MYSQL_DB_NAME') ?: 'devtools'; + $username = getenv('MYSQL_DB_USERNAME') ?: 'devtools'; + $password = getenv('MYSQL_DB_PASSWORD') ?: 'password'; + + $pdo = new PDO( + sprintf( + 'mysql:host=%s;port=%s;dbname=%s;charset=utf8', + $host, + $port, + $database + ), + $username, + $password, + [ + PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, + ] + ); + + $statements = preg_split( + '/;\s*(?:\r?\n|$)/', + $sql, + -1, + PREG_SPLIT_NO_EMPTY + ); + + if (false === $statements) { + throw new RuntimeException( + 'Unable to parse customers fixture.' + ); + } + + foreach ($statements as $statement) { + $statement = trim($statement); + + if ('' !== $statement) { + $pdo->exec($statement); + } + } } -} +} \ No newline at end of file From f1c699f8c4979e5658d9eea94433e04c1c019da2 Mon Sep 17 00:00:00 2001 From: Romeo Manzur Date: Thu, 24 Sep 2026 11:26:13 -0600 Subject: [PATCH 07/15] Update scaffolding and tests for Phalcon 6 Assisted-by: ChatGPT --- docker/nginx/conf.d/default.conf | 16 +- templates/scaffold/no-forms/views/edit.phtml | 9 +- templates/scaffold/no-forms/views/edit.volt | 5 +- templates/scaffold/no-forms/views/new.phtml | 3 +- templates/scaffold/no-forms/views/new.volt | 3 +- tests/.env.test | 12 +- .../console/app/models/files/TestModel.php | 39 +- .../console/app/models/files/TestModel2.php | 37 +- .../console/app/models/files/TestModel3.php | 37 +- .../console/app/models/files/Testmodel4.php | 37 +- tests/_support/Module/UnitTest.php | 2 - tests/acceptance.suite.yml | 2 - .../Web/Template/ScaffoldPhtmlCest.php | 346 +++++++++++----- .../Web/Template/ScaffoldVoltCest.php | 372 +++++++++++++----- tests/console.suite.yml | 2 +- tests/console/GenerateMultyModelsCept.php | 7 +- tests/functional.suite.yml | 2 +- .../functional/Commands/Builtin/ServeTest.php | 2 +- tests/unit/Generator/SnippetTest.php | 3 + tests/unit/UtilsTest.php | 132 ++++--- 20 files changed, 665 insertions(+), 403 deletions(-) diff --git a/docker/nginx/conf.d/default.conf b/docker/nginx/conf.d/default.conf index 1b39e8872..d05bc3f83 100644 --- a/docker/nginx/conf.d/default.conf +++ b/docker/nginx/conf.d/default.conf @@ -2,7 +2,7 @@ server { listen 80; listen [::]:80; - root /app/dummy/public/; + root /app/webtools/public/; index index.php index.html index.htm; client_max_body_size 128M; @@ -15,8 +15,18 @@ server { try_files $uri $uri/ /webtools.php?_url=$uri&$args; } - location ~ \.php$ { - fastcgi_pass phalcon-devtools:8000; + # + # Execute only PHP front controllers located directly in public/. + # + # This intentionally does not match routes such as: + # + # /webtools.php/controllers/edit/FooController.php + # + # where the final ".php" is a route parameter, not the script + # Nginx should execute. + # + location ~ ^/[^/]+\.php$ { + fastcgi_pass phalcon-devtools:9000; include fastcgi-php.conf; fastcgi_buffers 16 32k; diff --git a/templates/scaffold/no-forms/views/edit.phtml b/templates/scaffold/no-forms/views/edit.phtml index 30059cd38..0363e2ec2 100644 --- a/templates/scaffold/no-forms/views/edit.phtml +++ b/templates/scaffold/no-forms/views/edit.phtml @@ -20,11 +20,16 @@
$captureFields$ - tag->inputHidden("id", $singularVar$->$pkGet$) ?> + +
- tag->inputSubmit("save", "Save", ['class' => "btn btn-primary"]) ?> +
diff --git a/templates/scaffold/no-forms/views/edit.volt b/templates/scaffold/no-forms/views/edit.volt index a41c856f9..f29de6650 100644 --- a/templates/scaffold/no-forms/views/edit.volt +++ b/templates/scaffold/no-forms/views/edit.volt @@ -14,11 +14,12 @@
$captureFields$ - {{ inputHidden("id", $singular$.$pk$) }} + +
- {{ inputSubmit('save', 'Save', ['class': 'btn btn-primary']) }} +
diff --git a/templates/scaffold/no-forms/views/new.phtml b/templates/scaffold/no-forms/views/new.phtml index 0af3675e1..4c72b4cca 100644 --- a/templates/scaffold/no-forms/views/new.phtml +++ b/templates/scaffold/no-forms/views/new.phtml @@ -20,9 +20,10 @@
$captureFields$ +
- tag->inputSubmit("save", "Save", ['class' => "btn btn-primary"]) ?> +
diff --git a/templates/scaffold/no-forms/views/new.volt b/templates/scaffold/no-forms/views/new.volt index 40292f4c5..268dbea8b 100644 --- a/templates/scaffold/no-forms/views/new.volt +++ b/templates/scaffold/no-forms/views/new.volt @@ -14,9 +14,10 @@
$captureFields$ +
- {{ inputSubmit('save', 'Save', ['class': 'btn btn-primary']) }} +
diff --git a/tests/.env.test b/tests/.env.test index 22a908194..8b8feac02 100644 --- a/tests/.env.test +++ b/tests/.env.test @@ -1,6 +1,8 @@ -CODECEPTION_URL=127.0.0.1 -CODECEPTION_PORT=8000 +CODECEPTION_URL=nginx +CODECEPTION_PORT=80 -MYSQL_DB_PASSWORD='' -MYSQL_DB_PORT=3306 -POSTGRES_DB_PORT=5432 +MYSQL_DB_HOST=mysql +MYSQL_DB_USERNAME=devtools +MYSQL_DB_PASSWORD=password +MYSQL_DB_NAME=devtools +MYSQL_DB_PORT=3306 \ No newline at end of file diff --git a/tests/_data/console/app/models/files/TestModel.php b/tests/_data/console/app/models/files/TestModel.php index f304a9b41..c9ff9ddb3 100644 --- a/tests/_data/console/app/models/files/TestModel.php +++ b/tests/_data/console/app/models/files/TestModel.php @@ -1,67 +1,46 @@ + */ class TestModel extends \Phalcon\Mvc\Model { /** - * - * @var integer + * @var int|null * @Primary * @Identity - * @Column(column="id", type="integer", length=10, nullable=false) + * @Column(column="id", type="int", length=10, nullable=false) */ public $id; /** - * * @var string * @Column(column="some-col", type="string", length=20, nullable=false) */ public $someCol; /** - * * @var string * @Column(column="someCol2", type="string", length=20, nullable=false) */ public $someCol2; /** - * * @var string * @Column(column="SomeCol3", type="string", length=20, nullable=false) */ public $someCol3; /** - * Initialize method for model. + * Initialize the model. */ - public function initialize() + public function initialize(): void { $this->setSchema("devtools"); $this->setSource("testModel"); } - /** - * Allows to query a set of records that match the specified conditions - * - * @param mixed $parameters - * @return TestModel[]|TestModel|\Phalcon\Mvc\Model\ResultSetInterface - */ - public static function find($parameters = null): \Phalcon\Mvc\Model\ResultsetInterface - { - return parent::find($parameters); - } - - /** - * Allows to query the first record that match the specified conditions - * - * @param mixed $parameters - * @return TestModel|\Phalcon\Mvc\Model\ResultInterface|\Phalcon\Mvc\ModelInterface|null - */ - public static function findFirst($parameters = null): ?\Phalcon\Mvc\ModelInterface - { - return parent::findFirst($parameters); - } - } diff --git a/tests/_data/console/app/models/files/TestModel2.php b/tests/_data/console/app/models/files/TestModel2.php index 0dd97ff8c..d553ef389 100644 --- a/tests/_data/console/app/models/files/TestModel2.php +++ b/tests/_data/console/app/models/files/TestModel2.php @@ -1,53 +1,34 @@ + */ class TestModel2 extends \Phalcon\Mvc\Model { /** - * - * @var integer + * @var int|null * @Primary * @Identity - * @Column(column="id", type="integer", length=10, nullable=false) + * @Column(column="id", type="int", length=10, nullable=false) */ public $id; /** - * * @var string * @Column(column="name", type="string", length=45, nullable=false) */ public $name; /** - * Initialize method for model. + * Initialize the model. */ - public function initialize() + public function initialize(): void { $this->setSchema("devtools"); $this->setSource("test-model2"); } - /** - * Allows to query a set of records that match the specified conditions - * - * @param mixed $parameters - * @return TestModel2[]|TestModel2|\Phalcon\Mvc\Model\ResultSetInterface - */ - public static function find($parameters = null): \Phalcon\Mvc\Model\ResultsetInterface - { - return parent::find($parameters); - } - - /** - * Allows to query the first record that match the specified conditions - * - * @param mixed $parameters - * @return TestModel2|\Phalcon\Mvc\Model\ResultInterface|\Phalcon\Mvc\ModelInterface|null - */ - public static function findFirst($parameters = null): ?\Phalcon\Mvc\ModelInterface - { - return parent::findFirst($parameters); - } - } diff --git a/tests/_data/console/app/models/files/TestModel3.php b/tests/_data/console/app/models/files/TestModel3.php index 6d92c31d1..ecab5a9b6 100644 --- a/tests/_data/console/app/models/files/TestModel3.php +++ b/tests/_data/console/app/models/files/TestModel3.php @@ -1,53 +1,34 @@ + */ class TestModel3 extends \Phalcon\Mvc\Model { /** - * - * @var integer + * @var int|null * @Primary * @Identity - * @Column(column="id", type="integer", length=10, nullable=false) + * @Column(column="id", type="int", length=10, nullable=false) */ public $id; /** - * * @var string * @Column(column="name", type="string", length=45, nullable=false) */ public $name; /** - * Initialize method for model. + * Initialize the model. */ - public function initialize() + public function initialize(): void { $this->setSchema("devtools"); $this->setSource("test_model3"); } - /** - * Allows to query a set of records that match the specified conditions - * - * @param mixed $parameters - * @return TestModel3[]|TestModel3|\Phalcon\Mvc\Model\ResultSetInterface - */ - public static function find($parameters = null): \Phalcon\Mvc\Model\ResultsetInterface - { - return parent::find($parameters); - } - - /** - * Allows to query the first record that match the specified conditions - * - * @param mixed $parameters - * @return TestModel3|\Phalcon\Mvc\Model\ResultInterface|\Phalcon\Mvc\ModelInterface|null - */ - public static function findFirst($parameters = null): ?\Phalcon\Mvc\ModelInterface - { - return parent::findFirst($parameters); - } - } diff --git a/tests/_data/console/app/models/files/Testmodel4.php b/tests/_data/console/app/models/files/Testmodel4.php index 358b7834f..6a2d72590 100644 --- a/tests/_data/console/app/models/files/Testmodel4.php +++ b/tests/_data/console/app/models/files/Testmodel4.php @@ -1,53 +1,34 @@ + */ class Testmodel4 extends \Phalcon\Mvc\Model { /** - * - * @var integer + * @var int|null * @Primary * @Identity - * @Column(column="id", type="integer", length=10, nullable=false) + * @Column(column="id", type="int", length=10, nullable=false) */ public $id; /** - * * @var string * @Column(column="name", type="string", length=45, nullable=false) */ public $name; /** - * Initialize method for model. + * Initialize the model. */ - public function initialize() + public function initialize(): void { $this->setSchema("devtools"); $this->setSource("Testmodel4"); } - /** - * Allows to query a set of records that match the specified conditions - * - * @param mixed $parameters - * @return Testmodel4[]|Testmodel4|\Phalcon\Mvc\Model\ResultSetInterface - */ - public static function find($parameters = null): \Phalcon\Mvc\Model\ResultsetInterface - { - return parent::find($parameters); - } - - /** - * Allows to query the first record that match the specified conditions - * - * @param mixed $parameters - * @return Testmodel4|\Phalcon\Mvc\Model\ResultInterface|\Phalcon\Mvc\ModelInterface|null - */ - public static function findFirst($parameters = null): ?\Phalcon\Mvc\ModelInterface - { - return parent::findFirst($parameters); - } - } diff --git a/tests/_support/Module/UnitTest.php b/tests/_support/Module/UnitTest.php index ab7fbafcd..5a414d3d9 100644 --- a/tests/_support/Module/UnitTest.php +++ b/tests/_support/Module/UnitTest.php @@ -2,7 +2,6 @@ namespace Phalcon\DevTools\Tests\Support\Module; -use Codeception\Specify; use Codeception\Test\Unit; use UnitTester; @@ -25,7 +24,6 @@ */ class UnitTest extends Unit { - use Specify; /** * UnitTester Object diff --git a/tests/acceptance.suite.yml b/tests/acceptance.suite.yml index 2207ab59b..91063efb1 100644 --- a/tests/acceptance.suite.yml +++ b/tests/acceptance.suite.yml @@ -9,8 +9,6 @@ modules: enabled: - PhpBrowser: url: 'http://%CODECEPTION_URL%:%CODECEPTION_PORT%' - curl: - CURLOPT_RETURNTRANSFER: true - \Helper\Acceptance - Filesystem step_decorators: ~ diff --git a/tests/acceptance/Web/Template/ScaffoldPhtmlCest.php b/tests/acceptance/Web/Template/ScaffoldPhtmlCest.php index 9789a1d2d..fb49937eb 100644 --- a/tests/acceptance/Web/Template/ScaffoldPhtmlCest.php +++ b/tests/acceptance/Web/Template/ScaffoldPhtmlCest.php @@ -8,31 +8,40 @@ final class ScaffoldPhtmlCest { - /** - * @group mysql - * @param AcceptanceTester $I - */ - public function before(AcceptanceTester $I): void + public function _before(AcceptanceTester $I): void { + $I->resetCustomersFixture(); + $namespace = 'Test\WebTools'; $I->amOnPage('/webtools.php/scaffold/generate'); - $I->selectOption('form select[name=templateEngine]', 'PHP'); + $I->selectOption( + 'form select[name=templateEngine]', + 'PHP' + ); Fixtures::add('tablename', 'customers'); - $I->selectOption('form select[name=tableName]', Fixtures::get('tablename')); + $I->selectOption( + 'form select[name=tableName]', + Fixtures::get('tablename') + ); $basePath = $I->grabValueFrom('#basePath'); + Fixtures::add('base_path', $basePath); - $I->fillField('modelsNamespace', $namespace); + $I->fillField( + 'modelsNamespace', + $namespace + ); + $I->checkOption('#force'); $I->click('input[type=submit]'); + $I->see('Migrations'); $I->see('All migrations that we managed to find'); - //add namespace in loader file $loaderFile = $basePath . DIRECTORY_SEPARATOR . 'app' . DIRECTORY_SEPARATOR . 'config' . @@ -40,91 +49,174 @@ public function before(AcceptanceTester $I): void $content = file_get_contents($loaderFile); - // Add namespace - $returnLine = "\r\n"; - - $content .= $returnLine . - '$loader->setNamespaces(' . - $returnLine . '[ ' . - '"' . $namespace . '" => $config->application->modelsDir' . - $returnLine . ' ]' . - $returnLine . ');'; - - file_put_contents($loaderFile, $content); + if (false === $content) { + return; + } + + $namespaceSignature = + '"' . $namespace . + '" => $config->application->modelsDir'; + + if (!str_contains($content, $namespaceSignature)) { + $namespaceRegistration = + PHP_EOL . + '$loader->setNamespaces(' . + PHP_EOL . + '[ "' . + $namespace . + '" => $config->application->modelsDir ]' . + PHP_EOL . + ');' . + PHP_EOL; + + file_put_contents( + $loaderFile, + $content . $namespaceRegistration + ); + } } - /** - * @group mysql - * @param AcceptanceTester $I - */ - public function testGenScaffoldFileExist(AcceptanceTester $I): void + public function _after(AcceptanceTester $I): void { $basePath = Fixtures::get('base_path'); - Fixtures::add('controller', $basePath . + $controller = $basePath . DIRECTORY_SEPARATOR . 'app' . DIRECTORY_SEPARATOR . 'controllers' . - DIRECTORY_SEPARATOR . 'CustomersController.php'); + DIRECTORY_SEPARATOR . 'CustomersController.php'; - Fixtures::add('model', $basePath . + $model = $basePath . DIRECTORY_SEPARATOR . 'app' . DIRECTORY_SEPARATOR . 'models' . - DIRECTORY_SEPARATOR . 'Customers.php'); + DIRECTORY_SEPARATOR . 'Customers.php'; - Fixtures::add('layout', $basePath . + $layout = $basePath . DIRECTORY_SEPARATOR . 'app' . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'layouts' . - DIRECTORY_SEPARATOR . 'customers.phtml'); + DIRECTORY_SEPARATOR . 'customers.phtml'; - Fixtures::add('views', $basePath . + $views = $basePath . DIRECTORY_SEPARATOR . 'app' . DIRECTORY_SEPARATOR . 'views' . - DIRECTORY_SEPARATOR . 'customers'); + DIRECTORY_SEPARATOR . 'customers'; + + if (is_file($controller)) { + $I->deleteFile($controller); + } - Fixtures::add('views_edit', $basePath . + if (is_file($model)) { + $I->deleteFile($model); + } + + if (is_file($layout)) { + $I->deleteFile($layout); + } + + if (is_dir($views)) { + $I->deleteDir($views); + } + } + + /** + * @group mysql + */ + public function testGenScaffoldFileExist( + AcceptanceTester $I + ): void { + $basePath = Fixtures::get('base_path'); + + Fixtures::add( + 'controller', + $basePath . DIRECTORY_SEPARATOR . 'app' . - DIRECTORY_SEPARATOR . 'views' . - DIRECTORY_SEPARATOR . 'customers' . - DIRECTORY_SEPARATOR . 'edit.phtml'); + DIRECTORY_SEPARATOR . 'controllers' . + DIRECTORY_SEPARATOR . 'CustomersController.php' + ); - Fixtures::add('views_index', $basePath . + Fixtures::add( + 'model', + $basePath . DIRECTORY_SEPARATOR . 'app' . - DIRECTORY_SEPARATOR . 'views' . - DIRECTORY_SEPARATOR . 'customers' . - DIRECTORY_SEPARATOR . 'index.phtml'); + DIRECTORY_SEPARATOR . 'models' . + DIRECTORY_SEPARATOR . 'Customers.php' + ); - Fixtures::add('views_new', $basePath . + Fixtures::add( + 'layout', + $basePath . DIRECTORY_SEPARATOR . 'app' . DIRECTORY_SEPARATOR . 'views' . - DIRECTORY_SEPARATOR . 'customers' . - DIRECTORY_SEPARATOR . 'new.phtml'); + DIRECTORY_SEPARATOR . 'layouts' . + DIRECTORY_SEPARATOR . 'customers.phtml' + ); - Fixtures::add('views_search', $basePath . + Fixtures::add( + 'views', + $basePath . DIRECTORY_SEPARATOR . 'app' . DIRECTORY_SEPARATOR . 'views' . - DIRECTORY_SEPARATOR . 'customers' . - DIRECTORY_SEPARATOR . 'search.phtml'); + DIRECTORY_SEPARATOR . 'customers' + ); + + Fixtures::add( + 'views_edit', + Fixtures::get('views') . + DIRECTORY_SEPARATOR . 'edit.phtml' + ); + + Fixtures::add( + 'views_index', + Fixtures::get('views') . + DIRECTORY_SEPARATOR . 'index.phtml' + ); + + Fixtures::add( + 'views_new', + Fixtures::get('views') . + DIRECTORY_SEPARATOR . 'new.phtml' + ); + + Fixtures::add( + 'views_search', + Fixtures::get('views') . + DIRECTORY_SEPARATOR . 'search.phtml' + ); $I->seeFileFound(Fixtures::get('controller')); $I->seeFileFound(Fixtures::get('model')); $I->seeFileFound(Fixtures::get('layout')); $I->seeFileFound(Fixtures::get('views_edit')); $I->seeFileFound(Fixtures::get('views_index')); + $I->seeFileFound(Fixtures::get('views_new')); $I->seeFileFound(Fixtures::get('views_search')); } /** * @group mysql - * @param AcceptanceTester $I */ - public function testSearchAction(AcceptanceTester $I): void - { - $I->amOnPage('/' . Fixtures::get('tablename')); - $I->see(Fixtures::get('tablename')); - $I->see('Search ' . Fixtures::get('tablename')); + public function testSearchAction( + AcceptanceTester $I + ): void { + $I->amOnPage( + '/' . Fixtures::get('tablename') + ); + + $I->see( + Fixtures::get('tablename') + ); + + $I->see( + 'Search ' . Fixtures::get('tablename') + ); + $I->see('Dateofbirth'); - $I->fillField('dateofbirth', '2019-04-17'); + + $I->fillField( + 'dateofbirth', + '2019-04-17' + ); + $I->click('input[type=submit]'); $I->see('Brandon'); @@ -132,72 +224,138 @@ public function testSearchAction(AcceptanceTester $I): void /** * @group mysql - * @param AcceptanceTester $I */ - public function testSearchButtonAction(AcceptanceTester $I): void - { - $I->amOnPage('/' . Fixtures::get('tablename') . '/search'); + public function testSearchButtonAction( + AcceptanceTester $I + ): void { + $I->amOnPage( + '/' . + Fixtures::get('tablename') . + '/search' + ); + $I->see('Search result'); - $I->click("#next"); - $I->see("K1S6X"); + $I->click('#next'); + $I->see('K1S6X'); - $I->click("#previous"); - $I->see("U7B0Q"); + $I->click('#previous'); + $I->see('U7B0Q'); - $I->click("#last"); - $I->see("N2Z7T"); + $I->click('#last'); + $I->see('N2Z7T'); - $I->click("#first"); - $I->see("U7B0Q"); + $I->click('#first'); + $I->see('U7B0Q'); } /** * @group mysql - * @param AcceptanceTester $I */ - public function testNewAction(AcceptanceTester $I): void - { - $I->amOnPage('/' . Fixtures::get('tablename') . '/new'); - $I->see('Create ' . Fixtures::get('tablename')); - $I->fillField('firstname', 'jeremy'); - $I->fillField('surname', 'jenovateurs'); - $I->fillField('membertype', 'aaa'); - $I->fillField('dateofbirth', '2019-04-17'); + public function testNewAction( + AcceptanceTester $I + ): void { + $I->amOnPage( + '/' . + Fixtures::get('tablename') . + '/new' + ); + + $I->see( + 'Create ' . + Fixtures::get('tablename') + ); + + $I->fillField( + 'firstname', + 'jeremy' + ); + + $I->fillField( + 'surname', + 'jenovateurs' + ); + + $I->fillField( + 'membertype', + 'aaa' + ); + + $I->fillField( + 'dateofbirth', + '2019-04-17' + ); + $I->click('input[type=submit]'); } /** * @group mysql - * @param AcceptanceTester $I */ - public function testEditAction(AcceptanceTester $I): void - { - $I->amOnPage('/' . Fixtures::get('tablename') . '/search'); + public function testEditAction( + AcceptanceTester $I + ): void { + $I->amOnPage( + '/' . + Fixtures::get('tablename') . + '/search' + ); + $I->see('Search result'); - $I->click(['link' => 'Edit']); - $I->seeInField('firstname', 'Hedley'); - $I->fillField('firstname', 'samedi'); + + $I->click([ + 'link' => 'Edit' + ]); + + $I->seeInField( + 'firstname', + 'Hedley' + ); + + $I->fillField( + 'firstname', + 'samedi' + ); + $I->click('input[type=submit]'); - $I->amOnPage('/' . Fixtures::get('tablename') . - '/search'); + + $I->amOnPage( + '/' . + Fixtures::get('tablename') . + '/search' + ); + $I->see('Search result'); - //Check if edit work - // $I->see('samedi'); } /** * @group mysql - * @param AcceptanceTester $I */ - public function testDeleteAction(AcceptanceTester $I): void - { - $I->amOnPage('/' . Fixtures::get('tablename') . '/search'); + public function testDeleteAction( + AcceptanceTester $I + ): void { + $I->amOnPage( + '/' . + Fixtures::get('tablename') . + '/search' + ); + $I->see('Search result'); - $I->click(['link' => 'Delete']); - $I->see('customer was deleted successfully'); - $I->amOnPage('/' . Fixtures::get('tablename') . '/search'); + $I->click([ + 'link' => 'Delete' + ]); + + $I->see( + 'customer was deleted successfully' + ); + + $I->amOnPage( + '/' . + Fixtures::get('tablename') . + '/search' + ); + $I->cantSee('Hedley'); } -} +} \ No newline at end of file diff --git a/tests/acceptance/Web/Template/ScaffoldVoltCest.php b/tests/acceptance/Web/Template/ScaffoldVoltCest.php index dc538b8b5..92f8485a8 100644 --- a/tests/acceptance/Web/Template/ScaffoldVoltCest.php +++ b/tests/acceptance/Web/Template/ScaffoldVoltCest.php @@ -8,31 +8,46 @@ final class ScaffoldVoltCest { - /** - * @group mysql - * @param AcceptanceTester $I - */ - public function before(AcceptanceTester $I): void + public function _before(AcceptanceTester $I): void { + $I->resetCustomersFixture(); + $namespace = 'Test\WebTools'; $I->amOnPage('/webtools.php/scaffold/generate'); - $I->selectOption('form select[name=templateEngine]', 'Volt'); + + $I->selectOption( + 'form select[name=templateEngine]', + 'Volt' + ); Fixtures::add('tablename', 'customers'); - $I->selectOption('form select[name=tableName]', Fixtures::get('tablename')); + $I->selectOption( + 'form select[name=tableName]', + Fixtures::get('tablename') + ); $basePath = $I->grabValueFrom('#basePath'); - Fixtures::add('base_path', $basePath); - $I->fillField('modelsNamespace', $namespace); + Fixtures::add( + 'base_path', + $basePath + ); + + $I->fillField( + 'modelsNamespace', + $namespace + ); + $I->checkOption('#force'); $I->click('input[type=submit]'); + $I->see('Migrations'); - $I->see('All migrations that we managed to find'); + $I->see( + 'All migrations that we managed to find' + ); - //add namespace in loader file $loaderFile = $basePath . DIRECTORY_SEPARATOR . 'app' . DIRECTORY_SEPARATOR . 'config' . @@ -40,91 +55,178 @@ public function before(AcceptanceTester $I): void $content = file_get_contents($loaderFile); - //Add namespace - $returnLine = "\r\n"; - - $content .= $returnLine . - '$loader->setNamespaces(' . - $returnLine . '[ ' . - '"' . $namespace . '" => $config->application->modelsDir' . - $returnLine . ' ]' . - $returnLine . ');'; - - file_put_contents($loaderFile, $content); + if (false === $content) { + return; + } + + $namespaceSignature = + '"' . + $namespace . + '" => $config->application->modelsDir'; + + if (!str_contains( + $content, + $namespaceSignature + )) { + $namespaceRegistration = + PHP_EOL . + '$loader->setNamespaces(' . + PHP_EOL . + '[ "' . + $namespace . + '" => $config->application->modelsDir ]' . + PHP_EOL . + ');' . + PHP_EOL; + + file_put_contents( + $loaderFile, + $content . $namespaceRegistration + ); + } } - /** - * @group mysql - * @param AcceptanceTester $I - */ - public function testGenScaffoldFileExist(AcceptanceTester $I): void + public function _after(AcceptanceTester $I): void { $basePath = Fixtures::get('base_path'); - Fixtures::add('controller', $basePath . + $controller = $basePath . DIRECTORY_SEPARATOR . 'app' . DIRECTORY_SEPARATOR . 'controllers' . - DIRECTORY_SEPARATOR . 'CustomersController.php'); + DIRECTORY_SEPARATOR . 'CustomersController.php'; - Fixtures::add('model', $basePath . + $model = $basePath . DIRECTORY_SEPARATOR . 'app' . DIRECTORY_SEPARATOR . 'models' . - DIRECTORY_SEPARATOR . 'Customers.php'); + DIRECTORY_SEPARATOR . 'Customers.php'; - Fixtures::add('layout', $basePath . + $layout = $basePath . DIRECTORY_SEPARATOR . 'app' . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'layouts' . - DIRECTORY_SEPARATOR . 'customers.volt'); + DIRECTORY_SEPARATOR . 'customers.volt'; - Fixtures::add('views', $basePath . + $views = $basePath . DIRECTORY_SEPARATOR . 'app' . DIRECTORY_SEPARATOR . 'views' . - DIRECTORY_SEPARATOR . 'customers'); + DIRECTORY_SEPARATOR . 'customers'; + + if (is_file($controller)) { + $I->deleteFile($controller); + } - Fixtures::add('views_edit', $basePath . + if (is_file($model)) { + $I->deleteFile($model); + } + + if (is_file($layout)) { + $I->deleteFile($layout); + } + + if (is_dir($views)) { + $I->deleteDir($views); + } + } + + /** + * @group mysql + */ + public function testGenScaffoldFileExist( + AcceptanceTester $I + ): void { + $basePath = Fixtures::get('base_path'); + + Fixtures::add( + 'controller', + $basePath . DIRECTORY_SEPARATOR . 'app' . - DIRECTORY_SEPARATOR . 'views' . - DIRECTORY_SEPARATOR . 'customers' . - DIRECTORY_SEPARATOR . 'edit.volt'); + DIRECTORY_SEPARATOR . 'controllers' . + DIRECTORY_SEPARATOR . 'CustomersController.php' + ); - Fixtures::add('views_index', $basePath . + Fixtures::add( + 'model', + $basePath . DIRECTORY_SEPARATOR . 'app' . - DIRECTORY_SEPARATOR . 'views' . - DIRECTORY_SEPARATOR . 'customers' . - DIRECTORY_SEPARATOR . 'index.volt'); + DIRECTORY_SEPARATOR . 'models' . + DIRECTORY_SEPARATOR . 'Customers.php' + ); - Fixtures::add('views_new', $basePath . + Fixtures::add( + 'layout', + $basePath . DIRECTORY_SEPARATOR . 'app' . DIRECTORY_SEPARATOR . 'views' . - DIRECTORY_SEPARATOR . 'customers' . - DIRECTORY_SEPARATOR . 'new.volt'); + DIRECTORY_SEPARATOR . 'layouts' . + DIRECTORY_SEPARATOR . 'customers.volt' + ); - Fixtures::add('views_search', $basePath . + Fixtures::add( + 'views', + $basePath . DIRECTORY_SEPARATOR . 'app' . DIRECTORY_SEPARATOR . 'views' . - DIRECTORY_SEPARATOR . 'customers' . - DIRECTORY_SEPARATOR . 'search.volt'); + DIRECTORY_SEPARATOR . 'customers' + ); + + Fixtures::add( + 'views_edit', + Fixtures::get('views') . + DIRECTORY_SEPARATOR . 'edit.volt' + ); + + Fixtures::add( + 'views_index', + Fixtures::get('views') . + DIRECTORY_SEPARATOR . 'index.volt' + ); + + Fixtures::add( + 'views_new', + Fixtures::get('views') . + DIRECTORY_SEPARATOR . 'new.volt' + ); + + Fixtures::add( + 'views_search', + Fixtures::get('views') . + DIRECTORY_SEPARATOR . 'search.volt' + ); $I->seeFileFound(Fixtures::get('controller')); $I->seeFileFound(Fixtures::get('model')); $I->seeFileFound(Fixtures::get('layout')); $I->seeFileFound(Fixtures::get('views_edit')); $I->seeFileFound(Fixtures::get('views_index')); + $I->seeFileFound(Fixtures::get('views_new')); $I->seeFileFound(Fixtures::get('views_search')); } /** * @group mysql - * @param AcceptanceTester $I */ - public function testSearchAction(AcceptanceTester $I): void - { - $I->amOnPage('/' . Fixtures::get('tablename')); - $I->see(Fixtures::get('tablename')); - $I->see('Search ' . Fixtures::get('tablename')); + public function testSearchAction( + AcceptanceTester $I + ): void { + $I->amOnPage( + '/' . Fixtures::get('tablename') + ); + + $I->see( + Fixtures::get('tablename') + ); + + $I->see( + 'Search ' . Fixtures::get('tablename') + ); + $I->see('Dateofbirth'); - $I->fillField('dateofbirth', '2019-04-17'); + + $I->fillField( + 'dateofbirth', + '2019-04-17' + ); + $I->click('input[type=submit]'); $I->see('Brandon'); @@ -132,84 +234,138 @@ public function testSearchAction(AcceptanceTester $I): void /** * @group mysql - * @param AcceptanceTester $I */ - public function testSearchButtonAction(AcceptanceTester $I): void - { - $I->amOnPage('/' . Fixtures::get('tablename') . '/search'); + public function testSearchButtonAction( + AcceptanceTester $I + ): void { + $I->amOnPage( + '/' . + Fixtures::get('tablename') . + '/search' + ); + $I->see('Search result'); - $I->click("#next"); - $I->see("K1S6X"); + $I->click('#next'); + $I->see('K1S6X'); - $I->click("#previous"); - $I->see("W2Q7K"); + $I->click('#previous'); + $I->see('U7B0Q'); - $I->click("#last"); - $I->see("N2Z7T"); + $I->click('#last'); + $I->see('N2Z7T'); - $I->click("#first"); - $I->see("W2Q7K"); + $I->click('#first'); + $I->see('U7B0Q'); } /** * @group mysql - * @param AcceptanceTester $I */ - public function testNewAction(AcceptanceTester $I): void - { - $I->amOnPage('/' . Fixtures::get('tablename') . '/new'); - $I->see('Create ' . Fixtures::get('tablename')); - $I->fillField('firstname', 'jeremy'); - $I->fillField('surname', 'jenovateurs'); - $I->fillField('membertype', 'aaa'); - $I->fillField('dateofbirth', '2019-04-17'); + public function testNewAction( + AcceptanceTester $I + ): void { + $I->amOnPage( + '/' . + Fixtures::get('tablename') . + '/new' + ); + + $I->see( + 'Create ' . + Fixtures::get('tablename') + ); + + $I->fillField( + 'firstname', + 'jeremy' + ); + + $I->fillField( + 'surname', + 'jenovateurs' + ); + + $I->fillField( + 'membertype', + 'aaa' + ); + + $I->fillField( + 'dateofbirth', + '2019-04-17' + ); + $I->click('input[type=submit]'); } /** * @group mysql - * @param AcceptanceTester $I */ - public function testEditAction(AcceptanceTester $I): void - { - $I->amOnPage('/' . Fixtures::get('tablename') . - '/search'); + public function testEditAction( + AcceptanceTester $I + ): void { + $I->amOnPage( + '/' . + Fixtures::get('tablename') . + '/search' + ); + $I->see('Search result'); - $I->click(['link' => 'Edit']); - $I->seeInField('firstname', 'Lillian'); - $I->fillField('firstname', 'samedi'); + + $I->click([ + 'link' => 'Edit' + ]); + + $I->seeInField( + 'firstname', + 'Hedley' + ); + + $I->fillField( + 'firstname', + 'samedi' + ); + $I->click('input[type=submit]'); - $I->amOnPage('/' . Fixtures::get('tablename') . '/search'); + + $I->amOnPage( + '/' . + Fixtures::get('tablename') . + '/search' + ); + $I->see('Search result'); - //Check if edit work - // $I->see('samedi'); } /** * @group mysql - * @param AcceptanceTester $I */ - public function testDeleteAction(AcceptanceTester $I): void - { - $I->amOnPage('/' . Fixtures::get('tablename') . '/search'); + public function testDeleteAction( + AcceptanceTester $I + ): void { + $I->amOnPage( + '/' . + Fixtures::get('tablename') . + '/search' + ); + $I->see('Search result'); - $I->click(['link' => 'Delete']); - $I->see('customer was deleted successfully'); - $I->amOnPage('/' . Fixtures::get('tablename') . '/search'); - $I->cantSee('samedi'); - } + $I->click([ + 'link' => 'Delete' + ]); - /** - * @group mysql - * @param AcceptanceTester $I - */ - public function after(AcceptanceTester $I): void - { - $I->deleteFile(Fixtures::get('controller')); - $I->deleteFile(Fixtures::get('model')); - $I->deleteFile(Fixtures::get('layout')); - $I->deleteDir(Fixtures::get('views')); + $I->see( + 'customer was deleted successfully' + ); + + $I->amOnPage( + '/' . + Fixtures::get('tablename') . + '/search' + ); + + $I->cantSee('Hedley'); } -} +} \ No newline at end of file diff --git a/tests/console.suite.yml b/tests/console.suite.yml index 8106b097b..ffa1127a4 100755 --- a/tests/console.suite.yml +++ b/tests/console.suite.yml @@ -3,7 +3,7 @@ # suite for console tests. # RUN `build` COMMAND AFTER ADDING/REMOVING MODULES. -class_name: ConsoleTester +actor: ConsoleTester modules: enabled: - Helper\Console diff --git a/tests/console/GenerateMultyModelsCept.php b/tests/console/GenerateMultyModelsCept.php index db283c4d6..b8e2e63da 100644 --- a/tests/console/GenerateMultyModelsCept.php +++ b/tests/console/GenerateMultyModelsCept.php @@ -26,10 +26,13 @@ $I->amInPath(dirname(app_path())); $modelsTestDir = tests_path('_data/console/app/models/all_model_test'); -if (!is_dir($modelsTestDir)) { - mkdir($modelsTestDir, 0777, true); + +if (is_dir($modelsTestDir)) { + $I->deleteDir($modelsTestDir); } +mkdir($modelsTestDir, 0777, true); + $I->runShellCommand('phalcon all-models --config=app/mysql/config.php --output=app/models/all_model_test --annotate'); $I->seeFileFound(app_path('models/all_model_test/TestModel.php')); diff --git a/tests/functional.suite.yml b/tests/functional.suite.yml index ca5f1ccfe..26863c03c 100755 --- a/tests/functional.suite.yml +++ b/tests/functional.suite.yml @@ -6,7 +6,7 @@ # RUN `build` COMMAND AFTER ADDING/REMOVING MODULES. -class_name: FunctionalTester +actor: FunctionalTester modules: enabled: - Helper\Functional diff --git a/tests/functional/Commands/Builtin/ServeTest.php b/tests/functional/Commands/Builtin/ServeTest.php index c7c49c25a..e6965220b 100644 --- a/tests/functional/Commands/Builtin/ServeTest.php +++ b/tests/functional/Commands/Builtin/ServeTest.php @@ -11,7 +11,7 @@ declare(strict_types=1); -namespace Phalcon\DevTools\Tests\Functional; +namespace Phalcon\DevTools\Tests\Functional\Commands\Builtin; use Codeception\Test\Unit; use Phalcon\DevTools\Commands\Builtin\Serve; diff --git a/tests/unit/Generator/SnippetTest.php b/tests/unit/Generator/SnippetTest.php index e2326c404..f290a5823 100644 --- a/tests/unit/Generator/SnippetTest.php +++ b/tests/unit/Generator/SnippetTest.php @@ -1,4 +1,5 @@ - * @since 2017-08-02 + * @issue 1056 */ - public function shouldCamelizeString() + public function shouldCamelizeString(): void { - $this->specify( - "Method Utils::camelize hasn't returned proper string", - function ($string, $expected) { - expect($string)->equals($expected); - }, - [ - 'examples' => [ - [Utils::camelize('MyFooBar'), 'MyFooBar'], - [Utils::camelize('MyFooBar', '_-'), 'MyFooBar'], - [Utils::camelize('My-Foo_Bar', '-'), 'MyFoo_Bar'], - [Utils::camelize('My-Foo_Bar', '_-'), 'MyFooBar'] - ] - ] + $this->assertSame( + 'MyFooBar', + Utils::camelize('MyFooBar') + ); + + $this->assertSame( + 'MyFooBar', + Utils::camelize('MyFooBar', '_-') + ); + + $this->assertSame( + 'MyFoo_Bar', + Utils::camelize('My-Foo_Bar', '-') + ); + + $this->assertSame( + 'MyFooBar', + Utils::camelize('My-Foo_Bar', '_-') ); } @@ -49,26 +52,37 @@ function ($string, $expected) { * Tests Utils::lowerCamelizeWithDelimiter * * @test - * @issue 1070 - * @author Sergii Svyrydenko - * @since 2017-08-07 + * @issue 1070 */ - public function shouldCamelizeStringWithDelimiter() + public function shouldCamelizeStringWithDelimiter(): void { - $this->specify( - "Method Utils::lowerCamelizeWithDelimiter hasn't returned proper string", - function ($string, $expected) { - expect($string)->equals($expected); - }, - [ - 'examples' => [ - [Utils::lowerCamelizeWithDelimiter('myfoobar'), 'myfoobar'], - [Utils::lowerCamelizeWithDelimiter('myfoobar', '_-'), 'Myfoobar'], - [Utils::lowerCamelizeWithDelimiter('My-Foo_Bar', '_-'), 'MyFooBar'], - [Utils::lowerCamelizeWithDelimiter('my-foo_bar', '_-'), 'MyFooBar'], - [Utils::lowerCamelizeWithDelimiter('my-foo_bar', '_-', true), 'myFooBar'] - ] - ] + $this->assertSame( + 'myfoobar', + Utils::lowerCamelizeWithDelimiter('myfoobar') + ); + + $this->assertSame( + 'Myfoobar', + Utils::lowerCamelizeWithDelimiter('myfoobar', '_-') + ); + + $this->assertSame( + 'MyFooBar', + Utils::lowerCamelizeWithDelimiter('My-Foo_Bar', '_-') + ); + + $this->assertSame( + 'MyFooBar', + Utils::lowerCamelizeWithDelimiter('my-foo_bar', '_-') + ); + + $this->assertSame( + 'myFooBar', + Utils::lowerCamelizeWithDelimiter( + 'my-foo_bar', + '_-', + true + ) ); } @@ -76,47 +90,37 @@ function ($string, $expected) { * Tests Utils::lowerCamelize * * @test - * @author Sergii Svyrydenko - * @since 2017-08-02 */ - public function shouldLowercamelizeString() + public function shouldLowercamelizeString(): void { - $this->specify( - "Method Utils::lowerCamelize hasn't returned proper string", - function ($string, $expected) { - expect($string)->equals($expected); - }, - [ - 'examples' => [ - [Utils::lowerCamelize('MyFooBar'), 'myFooBar'] - ] - ] + $this->assertSame( + 'myFooBar', + Utils::lowerCamelize('MyFooBar') ); } /** - * Tests (new HelperFactory())->uncamelize + * Tests HelperFactory::uncamelize * * @test - * @author Sergii Svyrydenko - * @since 2017-08-02 */ - public function shouldUncamelizeString() + public function shouldUncamelizeString(): void { $helper = new HelperFactory(); - $this->specify( - "Method (new HelperFactory())->uncamelize hasn't returned proper string", - function ($string, $expected) { - expect($string)->equals($expected); - }, - [ - 'examples' => [ - [$helper->uncamelize('MyFooBar'), 'my_foo_bar'], - [$helper->uncamelize('MyFooBar', '-'), 'my-foo-bar'], - [$helper->uncamelize('MyFooBar', '_'), 'my_foo_bar'] - ] - ] + $this->assertSame( + 'my_foo_bar', + $helper->uncamelize('MyFooBar') + ); + + $this->assertSame( + 'my-foo-bar', + $helper->uncamelize('MyFooBar', '-') + ); + + $this->assertSame( + 'my_foo_bar', + $helper->uncamelize('MyFooBar', '_') ); } } From e769935a8a654162604dc8647ed45d9dd69e22b5 Mon Sep 17 00:00:00 2001 From: Romeo Manzur Date: Thu, 24 Sep 2026 11:33:56 -0600 Subject: [PATCH 08/15] Modernize CI and static analysis Assisted-by: ChatGPT --- .github/workflows/tests.yml | 219 ++++++----- phpstan.neon | 19 +- psalm-baseline.xml | 766 ++++++++++++++++++++++++++++++++++++ psalm.xml | 1 + 4 files changed, 908 insertions(+), 97 deletions(-) create mode 100644 psalm-baseline.xml diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index d8ba8fe40..bafc7abd9 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,155 +1,190 @@ -on: [ push, pull_request ] +name: Tests -name: "Tests" +on: + push: + pull_request: jobs: run-tests: - name: PHP ${{ matrix.php-versions }} + name: PHP ${{ matrix.php-version }} runs-on: ubuntu-latest - env: - extensions: mbstring, intl, json, zip, phalcon-5.2.0, mysql, pgsql, xdebug-2.9.8 - key: cache-v2.0~19.03.2020 + strategy: + fail-fast: false + matrix: + php-version: + - '8.2' + - '8.3' + - '8.4' services: mysql: image: mysql:5.7 env: MYSQL_DATABASE: devtools + MYSQL_USER: devtools + MYSQL_PASSWORD: password MYSQL_ROOT_PASSWORD: root ports: - 3306/tcp - options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 + options: >- + --health-cmd="mysqladmin ping -h 127.0.0.1 -uroot -proot" + --health-interval=10s + --health-timeout=5s + --health-retries=5 postgres: - image: postgres:10.8 - ports: - - 5432/tcp + image: postgres:13 env: POSTGRES_DB: devtools - options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 + POSTGRES_USER: devtools + POSTGRES_PASSWORD: password + ports: + - 5432/tcp + options: >- + --health-cmd="pg_isready -U devtools -d devtools" + --health-interval=10s + --health-timeout=5s + --health-retries=5 - strategy: - fail-fast: false - matrix: - php-versions: [ '7.4', '8.0', '8.1', '8.2' ] steps: - - uses: actions/checkout@v1 - - - name: Setup cache environment - id: cache-env - uses: shivammathur/cache-extensions@v1 - with: - php-version: ${{ matrix.php-versions }} - extensions: ${{ env.extensions }} - key: ${{ env.key }} - - - name: Cache extensions - uses: actions/cache@v4 - with: - path: ${{ steps.cache-env.outputs.dir }} - key: ${{ steps.cache-env.outputs.key }} - restore-keys: ${{ steps.cache-env.outputs.key }} + - name: Checkout + uses: actions/checkout@v4 - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: ${{ matrix.php-versions }} - extensions: ${{ env.extensions }} - tools: pecl + php-version: ${{ matrix.php-version }} + extensions: mbstring, intl, zip, pdo_mysql, pdo_pgsql + coverage: xdebug + tools: composer:v2 - - name: Get Composer Cache Directory + - name: Get Composer cache directory id: composer-cache - run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + run: echo "dir=$(composer config cache-files-dir)" >> "$GITHUB_OUTPUT" - - name: Cache composer dependencies + - name: Cache Composer dependencies uses: actions/cache@v4 with: path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: ${{ runner.os }}-composer- + key: ${{ runner.os }}-php-${{ matrix.php-version }}-composer-${{ hashFiles('composer.lock') }} + restore-keys: | + ${{ runner.os }}-php-${{ matrix.php-version }}-composer- + ${{ runner.os }}-composer- - name: Install Composer dependencies - run: | - composer install --prefer-dist --no-suggest - composer require --dev phpstan/phpstan + run: composer install --prefer-dist --no-interaction --no-progress - - name: Initialise DataBase + - name: Initialise databases env: - MYSQL_DB_PASSWORD: 'root' MYSQL_DB_PORT: ${{ job.services.mysql.ports['3306'] }} + MYSQL_DB_PASSWORD: root POSTGRES_DB_PORT: ${{ job.services.postgres.ports['5432'] }} + PGPASSWORD: password run: bash tests/_ci/setup_dbs_github.sh - - name: Symbolic link Phalcon devtools - run: sudo ln -s "$(pwd)/phalcon" /usr/local/bin/phalcon + - name: Install Phalcon DevTools command + run: sudo ln -sf "$(pwd)/phalcon" /usr/local/bin/phalcon - - name: Init Webtools and add ports in database setup + - name: Initialise WebTools env: - MYSQL_DB_PASSWORD: 'root' + MYSQL_DB_HOST: 127.0.0.1 + MYSQL_DB_USERNAME: devtools + MYSQL_DB_PASSWORD: password + MYSQL_DB_NAME: devtools MYSQL_DB_PORT: ${{ job.services.mysql.ports['3306'] }} + + POSTGRES_DB_HOST: 127.0.0.1 + POSTGRES_DB_USERNAME: devtools + POSTGRES_DB_PASSWORD: password + POSTGRES_DB_NAME: devtools POSTGRES_DB_PORT: ${{ job.services.postgres.ports['5432'] }} run: | rm -rf webtools phalcon project --name=webtools - sed -i "s/database->charset/database->charset,\n\t\t'port' => \$config->database->port/g" webtools/app/config/services.php + cd webtools + composer install --prefer-dist --no-interaction --no-progress + cd .. + perl -0pi -e "s/'host'\s*=>\s*'[^']*'/'host' => '127.0.0.1'/; s/'username'\s*=>\s*'[^']*'/'username' => 'devtools'/; s/'password'\s*=>\s*'[^']*'/'password' => 'password'/; s/'dbname'\s*=>\s*'[^']*'/'dbname' => 'devtools'/" webtools/app/config/config.php + perl -0pi -e "s/'charset'\s*=>\s*'utf8',/'charset' => 'utf8',\n 'port' => ${MYSQL_DB_PORT},/" webtools/app/config/config.php + sed -i "s/database->charset/database->charset,\n 'port' => \$config->database->port/g" webtools/app/config/services.php cd webtools phalcon webtools enable - phalcon serve & + phalcon serve > /tmp/phalcon-webtools.log 2>&1 & + cd .. + for i in {1..30}; do if curl -fsS http://127.0.0.1:8000/ >/dev/null; then exit 0; fi; sleep 1; done + cat /tmp/phalcon-webtools.log + exit 1 - name: Setup tests - run: | - cp tests/.env.test .env - - sed -i "s/MYSQL_DB_PORT=3306/MYSQL_DB_PORT=$MYSQL_DB_PORT/g" .env - sed -i "s/MYSQL_DB_PASSWORD=''/MYSQL_DB_PASSWORD='$MYSQL_DB_PASSWORD'/g" .env - sed -i "s/POSTGRES_DB_PORT=5432/POSTGRES_DB_PORT=$POSTGRES_DB_PORT/g" .env - - mkdir .phalcon - vendor/bin/codecept build - vendor/bin/phpcs - - - name: Run test suites env: - MYSQL_DB_PASSWORD: 'root' MYSQL_DB_PORT: ${{ job.services.mysql.ports['3306'] }} POSTGRES_DB_PORT: ${{ job.services.postgres.ports['5432'] }} - if: success() run: | - vendor/bin/codecept run --ext DotReporter acceptance -g mysql --env mysql - vendor/bin/codecept run --ext DotReporter acceptance -g pgsql --env pgsql - vendor/bin/codecept run --ext DotReporter acceptance -g common --coverage-xml=coverage-common-${{ matrix.php-versions }}.xml - vendor/bin/codecept run --ext DotReporter unit --coverage-xml=coverage-unit-${{ matrix.php-versions }}.xml - vendor/bin/codecept run --ext DotReporter functional --coverage-xml=coverage-functional-${{ matrix.php-versions }}.xml - vendor/bin/codecept run --ext DotReporter console --coverage-xml=coverage-console-${{ matrix.php-versions }}.xml - - - name: If fail - Check Config file - env: - MYSQL_DB_PORT: ${{ job.services.mysql.ports['3306'] }} - POSTGRES_DB_PORT: ${{ job.services.postgres.ports['5432'] }} + sed -i "s/CODECEPTION_URL=nginx/CODECEPTION_URL=127.0.0.1/; s/CODECEPTION_PORT=80/CODECEPTION_PORT=8000/; s/MYSQL_DB_HOST=mysql/MYSQL_DB_HOST=127.0.0.1/; s/MYSQL_DB_PORT=3306/MYSQL_DB_PORT=${MYSQL_DB_PORT}/" tests/.env.test + echo "MYSQL_DB_HOST=127.0.0.1" >> "$GITHUB_ENV" + echo "MYSQL_DB_USERNAME=devtools" >> "$GITHUB_ENV" + echo "MYSQL_DB_PASSWORD=password" >> "$GITHUB_ENV" + echo "MYSQL_DB_NAME=devtools" >> "$GITHUB_ENV" + echo "MYSQL_DB_PORT=${MYSQL_DB_PORT}" >> "$GITHUB_ENV" + echo "POSTGRES_DB_HOST=127.0.0.1" >> "$GITHUB_ENV" + echo "POSTGRES_DB_USERNAME=devtools" >> "$GITHUB_ENV" + echo "POSTGRES_DB_PASSWORD=password" >> "$GITHUB_ENV" + echo "POSTGRES_DB_NAME=devtools" >> "$GITHUB_ENV" + echo "POSTGRES_DB_PORT=${POSTGRES_DB_PORT}" >> "$GITHUB_ENV" + mkdir -p .phalcon + vendor/bin/codecept build + vendor/bin/phpcs + + - name: Run MySQL acceptance tests + run: vendor/bin/codecept run --ext DotReporter acceptance -g mysql --env mysql + + - name: Run PostgreSQL acceptance tests + run: vendor/bin/codecept run --ext DotReporter acceptance -g pgsql --env pgsql + + - name: Run common acceptance tests + run: vendor/bin/codecept run --ext DotReporter acceptance -g common --coverage-xml=coverage-common-${{ matrix.php-version }}.xml + + - name: Run unit tests + run: vendor/bin/codecept run --ext DotReporter unit --coverage-xml=coverage-unit-${{ matrix.php-version }}.xml + + - name: Run functional tests + run: vendor/bin/codecept run --ext DotReporter functional --coverage-xml=coverage-functional-${{ matrix.php-version }}.xml + + - name: Run console tests + run: vendor/bin/codecept run --ext DotReporter console --coverage-xml=coverage-console-${{ matrix.php-version }}.xml + + - name: PHPStan + run: vendor/bin/phpstan analyse + + - name: Psalm + run: vendor/bin/psalm --threads=1 + + - name: Debug failed build if: failure() run: | - cat webtools/app/config/config.php - cat webtools/app/config/services.php - echo "" > content_config.php - php content_config.php - php tests/debug.php - - - uses: actions/upload-artifact@v4 + echo "=== WebTools config ===" + cat webtools/app/config/config.php || true + echo "=== WebTools services ===" + cat webtools/app/config/services.php || true + echo "=== WebTools server ===" + cat /tmp/phalcon-webtools.log || true + echo "=== PHP ===" + php -v + echo "=== Composer packages ===" + composer show -D || true + + - name: Upload Codeception logs if: failure() + uses: actions/upload-artifact@v4 with: - name: Codeception Logs + name: codeception-logs-php-${{ matrix.php-version }} path: tests/_output - - #- name: Check psalm - # run: vendor/bin/psalm --show-info=false - - #- name: Check phpstan - # run: vendor/bin/phpstan analyse -l 5 -c phpstan.neon src -v + if-no-files-found: ignore - name: Upload coverage to Codecov if: success() - uses: codecov/codecov-action@v1 + uses: codecov/codecov-action@v5 with: - token: ${{secrets.CODECOV_TOKEN}} - file: ./tests/_output/coverage-*.xml + token: ${{ secrets.CODECOV_TOKEN }} + files: ./tests/_output/coverage-common-${{ matrix.php-version }}.xml,./tests/_output/coverage-unit-${{ matrix.php-version }}.xml,./tests/_output/coverage-functional-${{ matrix.php-version }}.xml,./tests/_output/coverage-console-${{ matrix.php-version }}.xml diff --git a/phpstan.neon b/phpstan.neon index 0ddebe59d..d1e98600e 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -1,10 +1,18 @@ parameters: - bootstrap: %rootDir%/../../../bootstrap/phpstan.php + level: 1 + + paths: + - src + + bootstrapFiles: + - bootstrap/phpstan.php + + excludePaths: + analyse: + - src/Generator/* + - src/Commands/DotPhalconMissingException.php + - src/Mvc/Dispatcher/ErrorHandler.php - excludes_analyse: - - %rootDir%/../../../src/Generator/* - - %rootDir%/../../../src/Commands/DotPhalconMissingException.php - - %rootDir%/../../../src/Mvc/Dispatcher/ErrorHandler.php ignoreErrors: - '#Strict comparison using === between#' - '#Result of && is always true#' @@ -14,4 +22,5 @@ parameters: - '#Parameter \#1 \$exception_handler of function set_exception_handler expects#' - '#Parameter \#1 \$function of function register_shutdown_function expects callable\(\)#' - '#Call to an undefined method [a-zA-Z0-9\\_]+::getShared\(\)#' + reportUnmatchedIgnoredErrors: false diff --git a/psalm-baseline.xml b/psalm-baseline.xml new file mode 100644 index 000000000..d0ceeb0e9 --- /dev/null +++ b/psalm-baseline.xml @@ -0,0 +1,766 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/psalm.xml b/psalm.xml index 7c0333df3..daf3c8c80 100644 --- a/psalm.xml +++ b/psalm.xml @@ -1,6 +1,7 @@ Date: Thu, 24 Sep 2026 11:47:03 -0600 Subject: [PATCH 09/15] Fix PHPCS formatting Assisted-by: ChatGPT --- src/Builder/Component/Model.php | 21 +++++++------------ src/Builder/Component/Scaffold.php | 8 +++++-- .../Controllers/MigrationsController.php | 3 +-- 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/src/Builder/Component/Model.php b/src/Builder/Component/Model.php index 20ee9edec..e8e2f86e3 100644 --- a/src/Builder/Component/Model.php +++ b/src/Builder/Component/Model.php @@ -204,11 +204,10 @@ public function build(): void /** * Direct relations: this model references other tables. */ - foreach ( - $db->describeReferences( - $this->modelOptions->getOption('name'), - $schema - ) as $reference + foreach ($db->describeReferences( + $this->modelOptions->getOption('name'), + $schema + ) as $reference ) { $entityNamespace = $this->modelOptions->hasOption('namespace') ? $this->modelOptions->getOption('namespace') @@ -347,8 +346,7 @@ public function build(): void foreach ($reflection->getProperties() as $property) { $propertyName = $property->getName(); - if ( - !empty($possibleFieldsTransformed[$propertyName]) + if (!empty($possibleFieldsTransformed[$propertyName]) || $property->getDeclaringClass()->getName() !== $fullClassName ) { continue; @@ -504,8 +502,7 @@ public function build(): void $genDocMethods ); - if ( - $this->modelOptions->hasOption('mapColumn') && + if ($this->modelOptions->hasOption('mapColumn') && $this->modelOptions->getOption('mapColumn') && !$alreadyColumnMapped ) { @@ -979,8 +976,7 @@ protected function singularizeRelationToken(string $token): string return substr($token, 0, -3) . 'y'; } - if ( - $length > 3 && + if ($length > 3 && ( str_ends_with($token, 'sses') || str_ends_with($token, 'xes') || @@ -993,8 +989,7 @@ protected function singularizeRelationToken(string $token): string return substr($token, 0, -2); } - if ( - $length > 2 && + if ($length > 2 && str_ends_with($token, 's') && !str_ends_with($token, 'ss') ) { diff --git a/src/Builder/Component/Scaffold.php b/src/Builder/Component/Scaffold.php index 4a04c309e..5600972c5 100644 --- a/src/Builder/Component/Scaffold.php +++ b/src/Builder/Component/Scaffold.php @@ -239,8 +239,12 @@ public function build(): bool * * @return string */ - private function captureFilterInput(string $var, $fields, bool $useGetSetters, ?string $identityField = null): string - { + private function captureFilterInput( + string $var, + $fields, + bool $useGetSetters, + ?string $identityField = null + ): string { $code = ''; foreach ($fields as $field => $dataType) { if ($identityField !== null && $field === $identityField) { diff --git a/src/Web/Tools/Controllers/MigrationsController.php b/src/Web/Tools/Controllers/MigrationsController.php index 471471603..809acfe70 100644 --- a/src/Web/Tools/Controllers/MigrationsController.php +++ b/src/Web/Tools/Controllers/MigrationsController.php @@ -234,8 +234,7 @@ private function getMigrationsConfig(): MigrationsConfig return $this->config; } - if ( - is_object($this->config) + if (is_object($this->config) && method_exists($this->config, 'toArray') ) { $config = $this->config->toArray(); From 2ac5ea6f9ebed671bed9a27331ddd4d65aaa0f10 Mon Sep 17 00:00:00 2001 From: Romeo Manzur Date: Thu, 24 Sep 2026 11:55:07 -0600 Subject: [PATCH 10/15] Fix model metadata namespace for Phalcon 6 Assisted-by: ChatGPT --- templates/project/modules/services.php | 2 +- templates/project/simple/services.php | 2 +- tests/_data/fixtures/Traits/DiTrait.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/project/modules/services.php b/templates/project/modules/services.php index 9b9ad001f..8b505fde6 100644 --- a/templates/project/modules/services.php +++ b/templates/project/modules/services.php @@ -1,7 +1,7 @@ Date: Thu, 24 Sep 2026 12:05:23 -0600 Subject: [PATCH 11/15] Disable remote acceptance coverage Assisted-by: ChatGPT --- .github/workflows/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index bafc7abd9..5bf4c6f5c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -143,7 +143,7 @@ jobs: run: vendor/bin/codecept run --ext DotReporter acceptance -g pgsql --env pgsql - name: Run common acceptance tests - run: vendor/bin/codecept run --ext DotReporter acceptance -g common --coverage-xml=coverage-common-${{ matrix.php-version }}.xml + run: vendor/bin/codecept run --ext DotReporter acceptance -g common - name: Run unit tests run: vendor/bin/codecept run --ext DotReporter unit --coverage-xml=coverage-unit-${{ matrix.php-version }}.xml @@ -187,4 +187,4 @@ jobs: uses: codecov/codecov-action@v5 with: token: ${{ secrets.CODECOV_TOKEN }} - files: ./tests/_output/coverage-common-${{ matrix.php-version }}.xml,./tests/_output/coverage-unit-${{ matrix.php-version }}.xml,./tests/_output/coverage-functional-${{ matrix.php-version }}.xml,./tests/_output/coverage-console-${{ matrix.php-version }}.xml + files: ./tests/_output/coverage-unit-${{ matrix.php-version }}.xml,./tests/_output/coverage-functional-${{ matrix.php-version }}.xml,./tests/_output/coverage-console-${{ matrix.php-version }}.xml From c99ab4f69d7b56075724dab5b47b4f52a34f90bd Mon Sep 17 00:00:00 2001 From: Romeo Manzur Date: Thu, 24 Sep 2026 13:39:42 -0600 Subject: [PATCH 12/15] Clean up runtime dependencies Assisted-by: ChatGPT --- composer.json | 7 +- composer.lock | 9896 ++++++++++++++++++++++++------------------------- 2 files changed, 4951 insertions(+), 4952 deletions(-) diff --git a/composer.json b/composer.json index 398dfed7a..373bb8518 100644 --- a/composer.json +++ b/composer.json @@ -37,13 +37,11 @@ "require": { "php": ">=8.2 <9.0", "ext-pdo": "*", - "nikic/php-parser": "^5.9", "phalcon/annotations": "1.0.x-dev", "phalcon/migrations": "dev-master", "phalcon/phalcon": "^6.0@RC", "phalcon/volt": "1.0.x-dev", - "psy/psysh": "^0.12.24", - "vlucas/phpdotenv": "^5.7" + "psy/psysh": "^0.12.24" }, "require-dev": { "codeception/codeception": "^5.3", @@ -56,7 +54,8 @@ "phpstan/phpstan": "^2.2", "phpunit/phpunit": "^11.5", "squizlabs/php_codesniffer": "^3.13", - "vimeo/psalm": "^6.16" + "vimeo/psalm": "^6.16", + "vlucas/phpdotenv": "^5.7" }, "autoload": { "psr-4": { diff --git a/composer.lock b/composer.lock index e3d61ee20..dcf254a7e 100644 --- a/composer.lock +++ b/composer.lock @@ -4,40 +4,43 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "da3940330d547a6dcdfe568431c0ee42", + "content-hash": "6faa6e349766f48f2a8f909ee1c8ce29", "packages": [ { - "name": "amphp/amp", - "version": "v3.1.3", + "name": "matthiasmullie/minify", + "version": "1.3.75", "source": { "type": "git", - "url": "https://github.com/amphp/amp.git", - "reference": "73c38b323ff8d790abf0f76c56fcc892bda4111a" + "url": "https://github.com/matthiasmullie/minify.git", + "reference": "76ba4a5f555fd7bf4aa408af608e991569076671" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/amp/zipball/73c38b323ff8d790abf0f76c56fcc892bda4111a", - "reference": "73c38b323ff8d790abf0f76c56fcc892bda4111a", + "url": "https://api.github.com/repos/matthiasmullie/minify/zipball/76ba4a5f555fd7bf4aa408af608e991569076671", + "reference": "76ba4a5f555fd7bf4aa408af608e991569076671", "shasum": "" }, "require": { - "php": ">=8.1", - "revolt/event-loop": "^1 || ^0.2" + "ext-pcre": "*", + "matthiasmullie/path-converter": "~1.1", + "php": ">=5.3.0" }, "require-dev": { - "amphp/php-cs-fixer-config": "^2", - "phpunit/phpunit": "^9", - "psalm/phar": "6.16.1" + "friendsofphp/php-cs-fixer": ">=2.0", + "matthiasmullie/scrapbook": ">=1.3", + "phpunit/phpunit": ">=4.8" + }, + "suggest": { + "psr/cache-implementation": "Cache implementation to use with Minify::cache" }, + "bin": [ + "bin/minifycss", + "bin/minifyjs" + ], "type": "library", "autoload": { - "files": [ - "src/functions.php", - "src/Future/functions.php", - "src/Internal/functions.php" - ], "psr-4": { - "Amp\\": "src" + "MatthiasMullie\\Minify\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -46,84 +49,58 @@ ], "authors": [ { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" - }, - { - "name": "Bob Weinand", - "email": "bobwei9@hotmail.com" - }, - { - "name": "Niklas Keller", - "email": "me@kelunik.com" - }, - { - "name": "Daniel Lowrey", - "email": "rdlowrey@php.net" + "name": "Matthias Mullie", + "email": "minify@mullie.eu", + "homepage": "https://www.mullie.eu", + "role": "Developer" } ], - "description": "A non-blocking concurrency framework for PHP applications.", - "homepage": "https://amphp.org/amp", + "description": "CSS & JavaScript minifier, in PHP. Removes whitespace, strips comments, combines files (incl. @import statements and small assets in CSS files), and optimizes/shortens a few common programming patterns.", + "homepage": "https://github.com/matthiasmullie/minify", "keywords": [ - "async", - "asynchronous", - "awaitable", - "concurrency", - "event", - "event-loop", - "future", - "non-blocking", - "promise" + "JS", + "css", + "javascript", + "minifier", + "minify" ], "support": { - "issues": "https://github.com/amphp/amp/issues", - "source": "https://github.com/amphp/amp/tree/v3.1.3" + "issues": "https://github.com/matthiasmullie/minify/issues", + "source": "https://github.com/matthiasmullie/minify/tree/1.3.75" }, "funding": [ { - "url": "https://github.com/amphp", + "url": "https://github.com/matthiasmullie", "type": "github" } ], - "time": "2026-07-19T17:59:20+00:00" + "time": "2025-06-25T09:56:19+00:00" }, { - "name": "amphp/byte-stream", - "version": "v2.1.2", + "name": "matthiasmullie/path-converter", + "version": "1.1.3", "source": { "type": "git", - "url": "https://github.com/amphp/byte-stream.git", - "reference": "55a6bd071aec26fa2a3e002618c20c35e3df1b46" + "url": "https://github.com/matthiasmullie/path-converter.git", + "reference": "e7d13b2c7e2f2268e1424aaed02085518afa02d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/byte-stream/zipball/55a6bd071aec26fa2a3e002618c20c35e3df1b46", - "reference": "55a6bd071aec26fa2a3e002618c20c35e3df1b46", + "url": "https://api.github.com/repos/matthiasmullie/path-converter/zipball/e7d13b2c7e2f2268e1424aaed02085518afa02d9", + "reference": "e7d13b2c7e2f2268e1424aaed02085518afa02d9", "shasum": "" }, "require": { - "amphp/amp": "^3", - "amphp/parser": "^1.1", - "amphp/pipeline": "^1", - "amphp/serialization": "^1", - "amphp/sync": "^2", - "php": ">=8.1", - "revolt/event-loop": "^1 || ^0.2.3" + "ext-pcre": "*", + "php": ">=5.3.0" }, "require-dev": { - "amphp/php-cs-fixer-config": "^2", - "amphp/phpunit-util": "^3", - "phpunit/phpunit": "^9", - "psalm/phar": "5.22.1" + "phpunit/phpunit": "~4.8" }, "type": "library", "autoload": { - "files": [ - "src/functions.php", - "src/Internal/functions.php" - ], "psr-4": { - "Amp\\ByteStream\\": "src" + "MatthiasMullie\\PathConverter\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -132,656 +109,736 @@ ], "authors": [ { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" - }, - { - "name": "Niklas Keller", - "email": "me@kelunik.com" + "name": "Matthias Mullie", + "email": "pathconverter@mullie.eu", + "homepage": "http://www.mullie.eu", + "role": "Developer" } ], - "description": "A stream abstraction to make working with non-blocking I/O simple.", - "homepage": "https://amphp.org/byte-stream", + "description": "Relative path converter", + "homepage": "http://github.com/matthiasmullie/path-converter", "keywords": [ - "amp", - "amphp", - "async", - "io", - "non-blocking", - "stream" + "converter", + "path", + "paths", + "relative" ], "support": { - "issues": "https://github.com/amphp/byte-stream/issues", - "source": "https://github.com/amphp/byte-stream/tree/v2.1.2" + "issues": "https://github.com/matthiasmullie/path-converter/issues", + "source": "https://github.com/matthiasmullie/path-converter/tree/1.1.3" }, - "funding": [ - { - "url": "https://github.com/amphp", - "type": "github" - } - ], - "time": "2025-03-16T17:10:27+00:00" + "time": "2019-02-05T23:41:09+00:00" }, { - "name": "amphp/cache", - "version": "v2.0.1", + "name": "nette/php-generator", + "version": "v4.2.2", "source": { "type": "git", - "url": "https://github.com/amphp/cache.git", - "reference": "46912e387e6aa94933b61ea1ead9cf7540b7797c" + "url": "https://github.com/nette/php-generator.git", + "reference": "0d7060926f5c3e8c488b9b9ced42d857f12a34b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/cache/zipball/46912e387e6aa94933b61ea1ead9cf7540b7797c", - "reference": "46912e387e6aa94933b61ea1ead9cf7540b7797c", + "url": "https://api.github.com/repos/nette/php-generator/zipball/0d7060926f5c3e8c488b9b9ced42d857f12a34b5", + "reference": "0d7060926f5c3e8c488b9b9ced42d857f12a34b5", "shasum": "" }, "require": { - "amphp/amp": "^3", - "amphp/serialization": "^1", - "amphp/sync": "^2", - "php": ">=8.1", - "revolt/event-loop": "^1 || ^0.2" + "nette/utils": "^4.0.6", + "php": "8.1 - 8.5" }, "require-dev": { - "amphp/php-cs-fixer-config": "^2", - "amphp/phpunit-util": "^3", - "phpunit/phpunit": "^9", - "psalm/phar": "^5.4" + "jetbrains/phpstorm-attributes": "^1.2", + "nette/phpstan-rules": "^1.0", + "nette/tester": "^2.6", + "nikic/php-parser": "^5.0", + "phpstan/extension-installer": "^1.4@stable", + "phpstan/phpstan": "^2.1.40@stable", + "tracy/tracy": "^2.8" + }, + "suggest": { + "nikic/php-parser": "to use ClassType::from(withBodies: true) & ClassType::fromCode()" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.2-dev" + } + }, "autoload": { "psr-4": { - "Amp\\Cache\\": "src" - } + "Nette\\": "src" + }, + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { - "name": "Niklas Keller", - "email": "me@kelunik.com" - }, - { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" }, { - "name": "Daniel Lowrey", - "email": "rdlowrey@php.net" + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "A fiber-aware cache API based on Amp and Revolt.", - "homepage": "https://amphp.org/cache", + "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 8.5 features.", + "homepage": "https://nette.org", + "keywords": [ + "code", + "nette", + "php", + "scaffolding" + ], "support": { - "issues": "https://github.com/amphp/cache/issues", - "source": "https://github.com/amphp/cache/tree/v2.0.1" + "issues": "https://github.com/nette/php-generator/issues", + "source": "https://github.com/nette/php-generator/tree/v4.2.2" }, - "funding": [ - { - "url": "https://github.com/amphp", - "type": "github" - } - ], - "time": "2024-04-19T03:38:06+00:00" + "time": "2026-02-26T00:58:33+00:00" }, { - "name": "amphp/dns", - "version": "v2.4.1", + "name": "nette/utils", + "version": "v4.1.5", "source": { "type": "git", - "url": "https://github.com/amphp/dns.git", - "reference": "ec5948bfafac808f410406e18bc7b52a2d4629b7" + "url": "https://github.com/nette/utils.git", + "reference": "b043439dbdf954e6c28b5ea7e34b0100f83165e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/dns/zipball/ec5948bfafac808f410406e18bc7b52a2d4629b7", - "reference": "ec5948bfafac808f410406e18bc7b52a2d4629b7", + "url": "https://api.github.com/repos/nette/utils/zipball/b043439dbdf954e6c28b5ea7e34b0100f83165e0", + "reference": "b043439dbdf954e6c28b5ea7e34b0100f83165e0", "shasum": "" }, "require": { - "amphp/amp": "^3", - "amphp/byte-stream": "^2", - "amphp/cache": "^2", - "amphp/parser": "^1", - "amphp/process": "^2", - "daverandom/libdns": "^2.0.2", - "ext-filter": "*", - "ext-json": "*", - "php": ">=8.1", - "revolt/event-loop": "^1 || ^0.2" + "php": "8.2 - 8.5" }, - "require-dev": { - "amphp/php-cs-fixer-config": "^2", - "amphp/phpunit-util": "^3", - "phpunit/phpunit": "^9", - "psalm/phar": "6.16.1" + "conflict": { + "nette/finder": "<3", + "nette/schema": "<1.2.2" + }, + "require-dev": { + "jetbrains/phpstorm-attributes": "^1.2", + "nette/phpstan-rules": "^1.0", + "nette/tester": "^2.5", + "phpstan/extension-installer": "^1.4@stable", + "phpstan/phpstan": "^2.1@stable", + "tracy/tracy": "^2.9" + }, + "suggest": { + "ext-gd": "to use Image", + "ext-iconv": "to use Strings::chr(), ord() and reverse()", + "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", + "ext-json": "to use Nette\\Utils\\Json", + "ext-mbstring": "to use Strings::lower() etc...", + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.1-dev" + } + }, "autoload": { - "files": [ - "src/functions.php" - ], "psr-4": { - "Amp\\Dns\\": "src" - } + "Nette\\": "src" + }, + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { - "name": "Chris Wright", - "email": "addr@daverandom.com" - }, - { - "name": "Daniel Lowrey", - "email": "rdlowrey@php.net" - }, - { - "name": "Bob Weinand", - "email": "bobwei9@hotmail.com" - }, - { - "name": "Niklas Keller", - "email": "me@kelunik.com" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" }, { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "Async DNS resolution for Amp.", - "homepage": "https://github.com/amphp/dns", + "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", + "homepage": "https://nette.org", "keywords": [ - "amp", - "amphp", - "async", - "client", - "dns", - "resolve" + "array", + "core", + "datetime", + "images", + "json", + "nette", + "paginator", + "password", + "slugify", + "string", + "unicode", + "utf-8", + "utility", + "validation" ], "support": { - "issues": "https://github.com/amphp/dns/issues", - "source": "https://github.com/amphp/dns/tree/v2.4.1" + "issues": "https://github.com/nette/utils/issues", + "source": "https://github.com/nette/utils/tree/v4.1.5" }, - "funding": [ - { - "url": "https://github.com/amphp", - "type": "github" - } - ], - "time": "2026-07-26T17:53:54+00:00" + "time": "2026-07-17T23:02:45+00:00" }, { - "name": "amphp/parallel", - "version": "v2.4.0", + "name": "nikic/php-parser", + "version": "v5.9.0", "source": { "type": "git", - "url": "https://github.com/amphp/parallel.git", - "reference": "37f5b2754fadc229c00f9416bd68fb8d04529a81" + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "9e33da9553fe7786f0962b35f4e4ecf01be89def" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/parallel/zipball/37f5b2754fadc229c00f9416bd68fb8d04529a81", - "reference": "37f5b2754fadc229c00f9416bd68fb8d04529a81", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/9e33da9553fe7786f0962b35f4e4ecf01be89def", + "reference": "9e33da9553fe7786f0962b35f4e4ecf01be89def", "shasum": "" }, "require": { - "amphp/amp": "^3", - "amphp/byte-stream": "^2", - "amphp/cache": "^2", - "amphp/parser": "^1", - "amphp/pipeline": "^1", - "amphp/process": "^2", - "amphp/serialization": "^1", - "amphp/socket": "^2", - "amphp/sync": "^2", - "php": ">=8.1", - "revolt/event-loop": "^1" + "ext-json": "*", + "ext-tokenizer": "*", + "php": ">=7.4" }, "require-dev": { - "amphp/php-cs-fixer-config": "^2", - "amphp/phpunit-util": "^3", - "phpunit/phpunit": "^9", - "psalm/phar": "6.16.1" + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^9.0" }, + "bin": [ + "bin/php-parse" + ], "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, "autoload": { - "files": [ - "src/Context/functions.php", - "src/Context/Internal/functions.php", - "src/Ipc/functions.php", - "src/Worker/functions.php" - ], "psr-4": { - "Amp\\Parallel\\": "src" + "PhpParser\\": "lib/PhpParser" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" - }, - { - "name": "Niklas Keller", - "email": "me@kelunik.com" - }, - { - "name": "Stephen Coakley", - "email": "me@stephencoakley.com" + "name": "Nikita Popov" } ], - "description": "Parallel processing component for Amp.", - "homepage": "https://github.com/amphp/parallel", + "description": "A PHP parser written in PHP", "keywords": [ - "async", - "asynchronous", - "concurrent", - "multi-processing", - "multi-threading" + "parser", + "php" ], "support": { - "issues": "https://github.com/amphp/parallel/issues", - "source": "https://github.com/amphp/parallel/tree/v2.4.0" + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v5.9.0" }, - "funding": [ - { - "url": "https://github.com/amphp", - "type": "github" - } - ], - "time": "2026-05-16T16:54:01+00:00" + "time": "2026-09-13T18:51:52+00:00" }, { - "name": "amphp/parser", - "version": "v1.1.1", + "name": "phalcon/annotations", + "version": "1.0.x-dev", "source": { "type": "git", - "url": "https://github.com/amphp/parser.git", - "reference": "3cf1f8b32a0171d4b1bed93d25617637a77cded7" + "url": "https://github.com/phalcon/annotations.git", + "reference": "9fe4e374b805dafba42128c6d40c4e5c3595bb02" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/parser/zipball/3cf1f8b32a0171d4b1bed93d25617637a77cded7", - "reference": "3cf1f8b32a0171d4b1bed93d25617637a77cded7", + "url": "https://api.github.com/repos/phalcon/annotations/zipball/9fe4e374b805dafba42128c6d40c4e5c3595bb02", + "reference": "9fe4e374b805dafba42128c6d40c4e5c3595bb02", "shasum": "" }, "require": { - "php": ">=7.4" + "ext-mbstring": "*", + "phalcon/traits": "^4.0", + "php": ">=8.1 <9.0" }, "require-dev": { - "amphp/php-cs-fixer-config": "^2", - "phpunit/phpunit": "^9", - "psalm/phar": "^5.4" + "friendsofphp/php-cs-fixer": "^3.95", + "pds/composer-script-names": "^1.0", + "pds/skeleton": "^1.0", + "phalcon/code-quality": "^1.0", + "phalcon/talon": "^1.0.0", + "phpstan/phpstan": "^2.0", + "phpunit/phpunit": "^10.5", + "squizlabs/php_codesniffer": "^4.0" }, + "suggest": { + "ext-apcu": "Required by the Apcu annotations adapter", + "phalcon/phalcon": "The Phalcon framework this module integrates with" + }, + "default-branch": true, "type": "library", "autoload": { "psr-4": { - "Amp\\Parser\\": "src" + "Phalcon\\Annotations\\Docblock\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" + "name": "Phalcon Team", + "email": "team@phalcon.io", + "homepage": "https://phalcon.io/en/team" }, { - "name": "Niklas Keller", - "email": "me@kelunik.com" + "name": "Contributors", + "homepage": "https://github.com/phalcon/annotations/graphs/contributors" } ], - "description": "A generator parser to make streaming parsers simple.", - "homepage": "https://github.com/amphp/parser", + "description": "Docblock annotations parser for the Phalcon Framework", + "homepage": "https://phalcon.io", "keywords": [ - "async", - "non-blocking", + "annotations", + "docblock", + "framework", "parser", - "stream" + "phalcon", + "php" ], "support": { - "issues": "https://github.com/amphp/parser/issues", - "source": "https://github.com/amphp/parser/tree/v1.1.1" + "discussions": "https://phalcon.io/discussions/", + "docs": "https://phalcon.io/docs/", + "email": "support@phalcon.io", + "issues": "https://github.com/phalcon/annotations/issues", + "rss": "https://blog.phalcon.io/rss", + "source": "https://github.com/phalcon/annotations" }, "funding": [ { - "url": "https://github.com/amphp", + "url": "https://github.com/phalcon", "type": "github" + }, + { + "url": "https://opencollective.com/phalcon", + "type": "open_collective" } ], - "time": "2024-03-21T19:16:53+00:00" + "time": "2026-09-19T02:21:59+00:00" }, { - "name": "amphp/pipeline", - "version": "v1.2.7", + "name": "phalcon/cli-options-parser", + "version": "v2.0.0", "source": { "type": "git", - "url": "https://github.com/amphp/pipeline.git", - "reference": "cf2d67696c2015ea7c7fd8f6ec5f8ed7c2d17c17" + "url": "https://github.com/phalcon/cli-options-parser.git", + "reference": "ec4d4cd0b7e61046b88957a4028ad01dfa14f4e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/pipeline/zipball/cf2d67696c2015ea7c7fd8f6ec5f8ed7c2d17c17", - "reference": "cf2d67696c2015ea7c7fd8f6ec5f8ed7c2d17c17", + "url": "https://api.github.com/repos/phalcon/cli-options-parser/zipball/ec4d4cd0b7e61046b88957a4028ad01dfa14f4e6", + "reference": "ec4d4cd0b7e61046b88957a4028ad01dfa14f4e6", "shasum": "" }, "require": { - "amphp/amp": "^3", - "php": ">=8.1", - "revolt/event-loop": "^1" + "php": ">=8.0" }, "require-dev": { - "amphp/php-cs-fixer-config": "^2", - "amphp/phpunit-util": "^3", - "phpunit/phpunit": "^9", - "psalm/phar": "6.16.1" + "pds/skeleton": "^1.0", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^9.6", + "squizlabs/php_codesniffer": "^3.7" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, "autoload": { "psr-4": { - "Amp\\Pipeline\\": "src" + "Phalcon\\Cop\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" + "name": "Phalcon Team", + "email": "team@phalconphp.com", + "homepage": "https://phalconphp.com/en/team" }, { - "name": "Niklas Keller", - "email": "me@kelunik.com" + "name": "Contributors", + "homepage": "https://github.com/phalcon/cli-options-parser/graphs/contributors" } ], - "description": "Asynchronous iterators and operators.", - "homepage": "https://amphp.org/pipeline", + "description": "Command line arguments/options parser.", + "homepage": "https://phalconphp.com", "keywords": [ - "amp", - "amphp", - "async", - "io", - "iterator", - "non-blocking" + "argparse", + "cli", + "command", + "command-line", + "getopt", + "line", + "option", + "optparse", + "parser", + "terminal" ], "support": { - "issues": "https://github.com/amphp/pipeline/issues", - "source": "https://github.com/amphp/pipeline/tree/v1.2.7" + "discord": "https://phalcon.io/discord/", + "issues": "https://github.com/phalcon/cli-options-parser/issues", + "source": "https://github.com/phalcon/cli-options-parser" }, "funding": [ { - "url": "https://github.com/amphp", + "url": "https://github.com/phalcon", "type": "github" + }, + { + "url": "https://opencollective.com/phalcon", + "type": "open_collective" } ], - "time": "2026-07-26T14:50:43+00:00" + "time": "2023-11-24T16:04:00+00:00" }, { - "name": "amphp/process", - "version": "v2.1.0", + "name": "phalcon/migrations", + "version": "dev-master", "source": { "type": "git", - "url": "https://github.com/amphp/process.git", - "reference": "583959df17d00304ad7b0b32285373f985935643" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/amphp/process/zipball/583959df17d00304ad7b0b32285373f985935643", - "reference": "583959df17d00304ad7b0b32285373f985935643", - "shasum": "" + "url": "https://github.com/phalcon/migrations.git", + "reference": "0ec43e39e64be4140eb1a958c37c2832793a6a6e" }, "require": { - "amphp/amp": "^3", - "amphp/byte-stream": "^2", - "amphp/sync": "^2", - "php": ">=8.1", - "revolt/event-loop": "^1 || ^0.2" + "nette/php-generator": "^4.0", + "phalcon/cli-options-parser": "^2.0", + "php": ">=8.2" }, "require-dev": { - "amphp/php-cs-fixer-config": "^2", - "amphp/phpunit-util": "^3", - "phpunit/phpunit": "^9", - "psalm/phar": "6.16.1" + "ext-pdo": "*", + "fakerphp/faker": "^1.24", + "friendsofphp/php-cs-fixer": "^3.95", + "humbug/box": "^4.7", + "pds/composer-script-names": "^1.0", + "pds/skeleton": "^1.0", + "phpstan/phpstan": "^2.1", + "phpunit/phpunit": "^11.5", + "squizlabs/php_codesniffer": "^4.0", + "vimeo/psalm": "^6.16", + "vlucas/phpdotenv": "^5.6" + }, + "suggest": { + "robmorgan/phinx": "Phinx makes it ridiculously easy to manage the database migrations for your PHP app." }, + "default-branch": true, + "bin": [ + "bin/phalcon-migrations" + ], "type": "library", "autoload": { - "files": [ - "src/functions.php" - ], "psr-4": { - "Amp\\Process\\": "src" + "Phalcon\\Migrations\\": "src/" } }, - "notification-url": "https://packagist.org/downloads/", + "autoload-dev": { + "psr-4": { + "Phalcon\\Db\\": "tests/Fakes/Shims/Phalcon/Db/", + "Phalcon\\Migrations\\Tests\\": "tests/", + "Phalcon\\Migrations\\Tests\\Fakes\\": "tests/Fakes/", + "Phalcon\\Migrations\\Tests\\Unit\\": "tests/unit/" + } + }, + "archive": { + "exclude": [ + "/.github", + "/tests", + ".codacy.yml", + ".codecov.yml", + "CHANGELOG.md", + "resources/phpcs.xml", + "resources/phpstan.neon.dist", + "resources/psalm.xml.dist" + ] + }, + "scripts": { + "analyze": [ + "vendor/bin/phpstan analyse -c resources/phpstan.neon.dist" + ], + "analyze-psalm": [ + "vendor/bin/psalm -c resources/psalm.xml.dist" + ], + "cs": [ + "vendor/bin/phpcs --standard=resources/phpcs.xml" + ], + "cs-fix": [ + "vendor/bin/phpcbf --standard=resources/phpcs.xml" + ], + "cs-fixer": [ + "vendor/bin/php-cs-fixer fix --config=resources/php-cs-fixer.php --dry-run --diff" + ], + "cs-fixer-fix": [ + "vendor/bin/php-cs-fixer fix --config=resources/php-cs-fixer.php" + ], + "test": [ + "vendor/bin/phpunit -c resources/phpunit.xml.dist" + ], + "test-coverage": [ + "vendor/bin/phpunit -c resources/phpunit.xml.dist --coverage-clover tests/_output/coverage/clover.xml" + ], + "test-coverage-html": [ + "vendor/bin/phpunit -c resources/phpunit.xml.dist --coverage-html tests/_output/coverage/html/" + ] + }, "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Bob Weinand", - "email": "bobwei9@hotmail.com" - }, - { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" + "name": "Phalcon Team", + "email": "team@phalcon.io", + "homepage": "https://phalcon.io/en/team" }, { - "name": "Niklas Keller", - "email": "me@kelunik.com" + "name": "Contributors", + "homepage": "https://github.com/phalcon/migrations/graphs/contributors" } ], - "description": "A fiber-aware process manager based on Amp and Revolt.", - "homepage": "https://amphp.org/process", + "description": "Run and Generate DB Migrations with Phalcon Framework", + "homepage": "https://phalcon.io", + "keywords": [ + "framework", + "migration", + "phalcon", + "phar" + ], "support": { - "issues": "https://github.com/amphp/process/issues", - "source": "https://github.com/amphp/process/tree/v2.1.0" + "issues": "https://github.com/phalcon/migrations/issues", + "source": "https://github.com/phalcon/migrations", + "forum": "https://forum.phalcon.io" }, - "funding": [ - { - "url": "https://github.com/amphp", - "type": "github" - } - ], - "time": "2026-05-31T15:11:55+00:00" + "time": "2026-09-17T10:47:45+00:00" }, { - "name": "amphp/serialization", - "version": "v1.1.0", + "name": "phalcon/phalcon", + "version": "v6.0.0RC2", "source": { "type": "git", - "url": "https://github.com/amphp/serialization.git", - "reference": "fdf2834d78cebb0205fb2672676c1b1eb84371f0" + "url": "https://github.com/phalcon/phalcon.git", + "reference": "e353b8a926cd022f06ac0f115bd5ddc1489ce311" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/serialization/zipball/fdf2834d78cebb0205fb2672676c1b1eb84371f0", - "reference": "fdf2834d78cebb0205fb2672676c1b1eb84371f0", + "url": "https://api.github.com/repos/phalcon/phalcon/zipball/e353b8a926cd022f06ac0f115bd5ddc1489ce311", + "reference": "e353b8a926cd022f06ac0f115bd5ddc1489ce311", "shasum": "" }, "require": { - "php": ">=7.4" + "ext-fileinfo": "*", + "ext-json": "*", + "ext-mbstring": "*", + "ext-pdo": "*", + "ext-xml": "*", + "matthiasmullie/minify": "^1.3", + "phalcon/traits": "^4.1", + "php": ">=8.1 <9.0" }, "require-dev": { - "amphp/php-cs-fixer-config": "^2", - "ext-json": "*", - "ext-zlib": "*", - "phpunit/phpunit": "^9", - "psalm/phar": "6.16.1" + "ext-gettext": "*", + "ext-yaml": "*", + "friendsofphp/php-cs-fixer": "^3.95", + "pds/composer-script-names": "^1.0", + "pds/skeleton": "^1.0", + "phalcon/annotations": "1.0.x-dev", + "phalcon/code-quality": "^1.0", + "phalcon/phql": "1.0.x-dev", + "phalcon/quill": "^0.5.0", + "phalcon/talon": "^1.0.0", + "phalcon/volt": "1.0.x-dev", + "phpbench/phpbench": "^1.4", + "phpstan/phpstan": "^2.2", + "phpunit/phpunit": "^10.5", + "predis/predis": "^3.4", + "squizlabs/php_codesniffer": "^4.0", + "vlucas/phpdotenv": "^5.6" }, - "type": "library", - "autoload": { - "files": [ - "src/functions.php" - ], + "suggest": { + "ext-apcu": "to use Cache\\Adapter\\Apcu, Storage\\Adapter\\Apcu", + "ext-gd": "to use Image\\Adapter\\Gd", + "ext-igbinary": "to use Storage\\Serializer\\Igbinary", + "ext-imagick": "to use Image\\Adapter\\Imagick", + "ext-memcached": "to use Cache\\Adapter\\Libmemcached, Session\\Adapter\\Libmemcached, Storage\\Adapter\\Libmemcached", + "ext-openssl": "to use Encryption\\Crypt", + "ext-pcntl": "to use signal-based graceful shutdown in Queue\\Consumer\\Worker", + "ext-redis": "to use Cache\\Adapter\\Redis, Session\\Adapter\\Redis, Storage\\Adapter\\Redis", + "ext-yaml": "to use Config\\Adapter\\Yaml" + }, + "type": "library", + "autoload": { "psr-4": { - "Amp\\Serialization\\": "src" + "Phalcon\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" - }, - { - "name": "Niklas Keller", - "email": "me@kelunik.com" - } - ], - "description": "Serialization tools for IPC and data storage in PHP.", - "homepage": "https://github.com/amphp/serialization", + "description": "Phalcon Framework", "keywords": [ - "async", - "asynchronous", - "serialization", - "serialize" + "framework", + "php" ], "support": { - "issues": "https://github.com/amphp/serialization/issues", - "source": "https://github.com/amphp/serialization/tree/v1.1.0" + "issues": "https://github.com/phalcon/phalcon/issues", + "source": "https://github.com/phalcon/phalcon/tree/v6.0.0RC2" }, "funding": [ { - "url": "https://github.com/amphp", + "url": "https://github.com/phalcon", "type": "github" + }, + { + "url": "https://opencollective.com/phalcon", + "type": "open_collective" } ], - "time": "2026-04-05T15:59:53+00:00" + "time": "2026-09-22T20:11:19+00:00" }, { - "name": "amphp/socket", - "version": "v2.4.1", + "name": "phalcon/traits", + "version": "4.1.0", "source": { "type": "git", - "url": "https://github.com/amphp/socket.git", - "reference": "b347be5aff6b2cc025208bb4d896607eb470c018" + "url": "https://github.com/phalcon/traits.git", + "reference": "a686028ef39ccbb6bd90fd56dc7c7389e768693e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/socket/zipball/b347be5aff6b2cc025208bb4d896607eb470c018", - "reference": "b347be5aff6b2cc025208bb4d896607eb470c018", + "url": "https://api.github.com/repos/phalcon/traits/zipball/a686028ef39ccbb6bd90fd56dc7c7389e768693e", + "reference": "a686028ef39ccbb6bd90fd56dc7c7389e768693e", "shasum": "" }, "require": { - "amphp/amp": "^3", - "amphp/byte-stream": "^2", - "amphp/dns": "^2", - "ext-openssl": "*", - "kelunik/certificate": "^1.1", - "league/uri": "^7", - "league/uri-interfaces": "^7", - "php": ">=8.1", - "revolt/event-loop": "^1" + "ext-json": "*", + "ext-mbstring": "*", + "php": ">=8.1 <9.0" }, "require-dev": { - "amphp/php-cs-fixer-config": "^2", - "amphp/phpunit-util": "^3", - "amphp/process": "^2", - "phpunit/phpunit": "^9", - "psalm/phar": "6.16.1" + "friendsofphp/php-cs-fixer": "^3.75", + "pds/composer-script-names": "^1.0", + "pds/skeleton": "^1.0", + "phalcon/talon": "^1.0.0", + "phpstan/phpstan": "^2.2", + "phpunit/phpunit": "^10.5", + "squizlabs/php_codesniffer": "^4.0" + }, + "suggest": { + "ext-apcu": "For Php\\ApcuTrait", + "ext-gettext": "For the gettext-based translation helpers", + "ext-igbinary": "For Php\\IgbinaryTrait", + "ext-msgpack": "For Php\\MsgpackTrait", + "ext-yaml": "For Php\\YamlTrait" }, "type": "library", "autoload": { - "files": [ - "src/functions.php", - "src/Internal/functions.php", - "src/SocketAddress/functions.php" - ], "psr-4": { - "Amp\\Socket\\": "src" + "Phalcon\\Traits\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Daniel Lowrey", - "email": "rdlowrey@gmail.com" - }, - { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" + "name": "Phalcon Team", + "email": "team@phalcon.io", + "homepage": "https://phalcon.io/en/team" }, { - "name": "Niklas Keller", - "email": "me@kelunik.com" + "name": "Contributors", + "homepage": "https://github.com/phalcon/traits/graphs/contributors" } ], - "description": "Non-blocking socket connection / server implementations based on Amp and Revolt.", - "homepage": "https://github.com/amphp/socket", + "description": "Phalcon Framework reusable traits", + "homepage": "https://phalcon.io", "keywords": [ - "amp", - "async", - "encryption", - "non-blocking", - "sockets", - "tcp", - "tls" + "framework", + "phalcon", + "php", + "traits" ], "support": { - "issues": "https://github.com/amphp/socket/issues", - "source": "https://github.com/amphp/socket/tree/v2.4.1" + "discord": "https://phalcon.io/discord/", + "issues": "https://github.com/phalcon/traits/issues", + "source": "https://github.com/phalcon/traits" }, "funding": [ { - "url": "https://github.com/amphp", + "url": "https://github.com/phalcon", "type": "github" + }, + { + "url": "https://opencollective.com/phalcon", + "type": "open_collective" } ], - "time": "2026-08-22T18:13:20+00:00" + "time": "2026-09-04T16:43:18+00:00" }, { - "name": "amphp/sync", - "version": "v2.3.0", + "name": "phalcon/volt", + "version": "1.0.x-dev", "source": { "type": "git", - "url": "https://github.com/amphp/sync.git", - "reference": "217097b785130d77cfcc58ff583cf26cd1770bf1" + "url": "https://github.com/phalcon/volt.git", + "reference": "4296eaab6af7b81d30b1c0f1a11204fd2bc46032" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/sync/zipball/217097b785130d77cfcc58ff583cf26cd1770bf1", - "reference": "217097b785130d77cfcc58ff583cf26cd1770bf1", + "url": "https://api.github.com/repos/phalcon/volt/zipball/4296eaab6af7b81d30b1c0f1a11204fd2bc46032", + "reference": "4296eaab6af7b81d30b1c0f1a11204fd2bc46032", "shasum": "" }, "require": { - "amphp/amp": "^3", - "amphp/pipeline": "^1", - "amphp/serialization": "^1", - "php": ">=8.1", - "revolt/event-loop": "^1 || ^0.2" + "ext-ctype": "*", + "ext-mbstring": "*", + "php": ">=8.1 <9.0" }, "require-dev": { - "amphp/php-cs-fixer-config": "^2", - "amphp/phpunit-util": "^3", - "phpunit/phpunit": "^9", - "psalm/phar": "5.23" + "friendsofphp/php-cs-fixer": "^3.95", + "pds/skeleton": "^1.0", + "phalcon/code-quality": "^1.0", + "phalcon/ide-stubs": "^5.8", + "phalcon/talon": "^1.0.0", + "phpstan/phpstan": "^2.0", + "phpunit/phpunit": "^10.5", + "squizlabs/php_codesniffer": "^4.0" + }, + "suggest": { + "phalcon/phalcon": "The Phalcon framework this module integrates with" }, + "default-branch": true, "type": "library", "autoload": { "files": [ - "src/functions.php" + "resources/files/parser.php" ], "psr-4": { - "Amp\\Sync\\": "src" + "Phalcon\\Volt\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -790,79 +847,70 @@ ], "authors": [ { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" - }, - { - "name": "Niklas Keller", - "email": "me@kelunik.com" + "name": "Phalcon Team", + "email": "team@phalcon.io", + "homepage": "https://phalcon.io/en/team" }, { - "name": "Stephen Coakley", - "email": "me@stephencoakley.com" + "name": "Contributors", + "homepage": "https://github.com/phalcon/volt/graphs/contributors" } ], - "description": "Non-blocking synchronization primitives for PHP based on Amp and Revolt.", - "homepage": "https://github.com/amphp/sync", + "description": "Phalcon Volt is an HTML template engine for server-side rendering.", + "homepage": "https://phalcon.io", "keywords": [ - "async", - "asynchronous", - "mutex", - "semaphore", - "synchronization" + "engine", + "html", + "phalcon", + "template", + "volt" ], "support": { - "issues": "https://github.com/amphp/sync/issues", - "source": "https://github.com/amphp/sync/tree/v2.3.0" + "discussions": "https://phalcon.io/discussions/", + "docs": "https://phalcon.io/docs/", + "email": "support@phalcon.io", + "issues": "https://github.com/phalcon/volt/issues", + "rss": "https://blog.phalcon.io/rss", + "source": "https://github.com/phalcon/volt" }, "funding": [ { - "url": "https://github.com/amphp", + "url": "https://github.com/phalcon", "type": "github" + }, + { + "url": "https://opencollective.com/phalcon", + "type": "open_collective" } ], - "time": "2024-08-03T19:31:26+00:00" + "time": "2026-09-23T22:32:17+00:00" }, { - "name": "composer/pcre", - "version": "3.4.0", + "name": "psr/container", + "version": "2.0.2", "source": { "type": "git", - "url": "https://github.com/composer/pcre.git", - "reference": "d5a341b3fb61f3001970940afb1d332968a183ed" + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/d5a341b3fb61f3001970940afb1d332968a183ed", - "reference": "d5a341b3fb61f3001970940afb1d332968a183ed", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", "shasum": "" }, "require": { - "php": "^7.4 || ^8.0" - }, - "conflict": { - "phpstan/phpstan": "<2.2.2" - }, - "require-dev": { - "phpstan/phpstan": "^2", - "phpstan/phpstan-deprecation-rules": "^2", - "phpstan/phpstan-strict-rules": "^2", - "phpunit/phpunit": "^9" + "php": ">=7.4.0" }, "type": "library", "extra": { - "phpstan": { - "includes": [ - "extension.neon" - ] - }, "branch-alias": { - "dev-main": "3.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { "psr-4": { - "Composer\\Pcre\\": "src" + "Psr\\Container\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -871,64 +919,78 @@ ], "authors": [ { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" } ], - "description": "PCRE wrapping library that offers type-safe preg_* replacements.", + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", "keywords": [ - "PCRE", - "preg", - "regex", - "regular expression" + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" ], "support": { - "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.4.0" + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - } - ], - "time": "2026-06-07T11:47:49+00:00" + "time": "2021-11-05T16:47:00+00:00" }, { - "name": "composer/semver", - "version": "3.4.4", + "name": "psy/psysh", + "version": "v0.12.24", "source": { "type": "git", - "url": "https://github.com/composer/semver.git", - "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95" + "url": "https://github.com/bobthecow/psysh.git", + "reference": "ca0fdcf8a7617afa3adfdf1b5fef573dffb69ca1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/198166618906cb2de69b95d7d47e5fa8aa1b2b95", - "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/ca0fdcf8a7617afa3adfdf1b5fef573dffb69ca1", + "reference": "ca0fdcf8a7617afa3adfdf1b5fef573dffb69ca1", "shasum": "" }, "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" + "ext-json": "*", + "ext-tokenizer": "*", + "nikic/php-parser": "^5.0 || ^4.0", + "php": "^8.0 || ^7.4", + "symfony/console": "^8.0 || ^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4", + "symfony/var-dumper": "^8.0 || ^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4" + }, + "conflict": { + "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" }, "require-dev": { - "phpstan/phpstan": "^1.11", - "symfony/phpunit-bridge": "^3 || ^7" + "bamarni/composer-bin-plugin": "^1.2", + "composer/class-map-generator": "^1.6" + }, + "suggest": { + "composer/class-map-generator": "Improved tab completion performance with better class discovery.", + "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", + "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well." }, + "bin": [ + "bin/psysh" + ], "type": "library", "extra": { + "bamarni-bin": { + "bin-links": false, + "forward-command": false + }, "branch-alias": { - "dev-main": "3.x-dev" + "dev-main": "0.12.x-dev" } }, "autoload": { + "files": [ + "src/functions.php" + ], "psr-4": { - "Composer\\Semver\\": "src" + "Psy\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -937,74 +999,76 @@ ], "authors": [ { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "http://www.naderman.de" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - }, - { - "name": "Rob Bast", - "email": "rob.bast@gmail.com", - "homepage": "http://robbast.nl" + "name": "Justin Hileman", + "email": "justin@justinhileman.info" } ], - "description": "Semver library that offers utilities, version constraint parsing and validation.", + "description": "An interactive shell for modern PHP.", + "homepage": "https://psysh.org", "keywords": [ - "semantic", - "semver", - "validation", - "versioning" + "REPL", + "console", + "interactive", + "shell" ], "support": { - "irc": "ircs://irc.libera.chat:6697/composer", - "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.4.4" + "issues": "https://github.com/bobthecow/psysh/issues", + "source": "https://github.com/bobthecow/psysh/tree/v0.12.24" }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - } - ], - "time": "2025-08-20T19:15:30+00:00" + "time": "2026-06-29T15:41:09+00:00" }, { - "name": "composer/xdebug-handler", - "version": "3.0.5", + "name": "symfony/console", + "version": "v7.4.19", "source": { "type": "git", - "url": "https://github.com/composer/xdebug-handler.git", - "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef" + "url": "https://github.com/symfony/console.git", + "reference": "3a1973458b153f566a8d7499bc06ece323d60063" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef", - "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef", + "url": "https://api.github.com/repos/symfony/console/zipball/3a1973458b153f566a8d7499bc06ece323d60063", + "reference": "3a1973458b153f566a8d7499bc06ece323d60063", "shasum": "" }, "require": { - "composer/pcre": "^1 || ^2 || ^3", - "php": "^7.2.5 || ^8.0", - "psr/log": "^1 || ^2 || ^3" + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/string": "^7.2|^8.0" + }, + "conflict": { + "symfony/dependency-injection": "<6.4", + "symfony/dotenv": "<6.4", + "symfony/event-dispatcher": "<6.4", + "symfony/lock": "<6.4", + "symfony/process": "<6.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { - "phpstan/phpstan": "^1.0", - "phpstan/phpstan-strict-rules": "^1.1", - "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" + "psr/log": "^1|^2|^3", + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/event-dispatcher": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/lock": "^6.4|^7.0|^8.0", + "symfony/messenger": "^6.4|^7.0|^8.0", + "symfony/process": "^6.4|^7.0|^8.0", + "symfony/stopwatch": "^6.4|^7.0|^8.0", + "symfony/var-dumper": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { "psr-4": { - "Composer\\XdebugHandler\\": "src" - } + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1012,184 +1076,152 @@ ], "authors": [ { - "name": "John Stevenson", - "email": "john-stevenson@blueyonder.co.uk" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Restarts a process without Xdebug.", + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", "keywords": [ - "Xdebug", - "performance" + "cli", + "command-line", + "console", + "terminal" ], "support": { - "irc": "ircs://irc.libera.chat:6697/composer", - "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.5" + "source": "https://github.com/symfony/console/tree/v7.4.19" }, "funding": [ { - "url": "https://packagist.com", + "url": "https://symfony.com/sponsor", "type": "custom" }, { - "url": "https://github.com/composer", + "url": "https://github.com/fabpot", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-05-06T16:37:16+00:00" + "time": "2026-09-13T10:38:41+00:00" }, { - "name": "daverandom/libdns", - "version": "v2.1.0", + "name": "symfony/deprecation-contracts", + "version": "v3.7.1", "source": { "type": "git", - "url": "https://github.com/DaveRandom/LibDNS.git", - "reference": "b84c94e8fe6b7ee4aecfe121bfe3b6177d303c8a" + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/DaveRandom/LibDNS/zipball/b84c94e8fe6b7ee4aecfe121bfe3b6177d303c8a", - "reference": "b84c94e8fe6b7ee4aecfe121bfe3b6177d303c8a", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/f3202fa1b5097b0af062dc978b32ecf63404e31d", + "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d", "shasum": "" }, "require": { - "ext-ctype": "*", - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "Required for IDN support" + "php": ">=8.1" }, "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.7-dev" + } + }, "autoload": { "files": [ - "src/functions.php" - ], - "psr-4": { - "LibDNS\\": "src/" - } + "function.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "DNS protocol implementation written in pure PHP", - "keywords": [ - "dns" + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", "support": { - "issues": "https://github.com/DaveRandom/LibDNS/issues", - "source": "https://github.com/DaveRandom/LibDNS/tree/v2.1.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.1" }, - "time": "2024-04-12T12:12:48+00:00" - }, - { - "name": "doctrine/deprecations", - "version": "1.1.6", - "source": { - "type": "git", - "url": "https://github.com/doctrine/deprecations.git", - "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", - "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "conflict": { - "phpunit/phpunit": "<=7.5 || >=14" - }, - "require-dev": { - "doctrine/coding-standard": "^9 || ^12 || ^14", - "phpstan/phpstan": "1.4.10 || 2.1.30", - "phpstan/phpstan-phpunit": "^1.0 || ^2", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12.4 || ^13.0", - "psr/log": "^1 || ^2 || ^3" - }, - "suggest": { - "psr/log": "Allows logging deprecations via PSR-3 logger implementation" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Deprecations\\": "src" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" ], - "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", - "homepage": "https://www.doctrine-project.org/", - "support": { - "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.6" - }, - "time": "2026-02-07T07:09:04+00:00" + "time": "2026-06-05T06:23:12+00:00" }, { - "name": "fidry/console", - "version": "0.6.11", + "name": "symfony/polyfill-ctype", + "version": "v1.37.0", "source": { "type": "git", - "url": "https://github.com/theofidry/console.git", - "reference": "bea8316beae874fc5b8be679d67dd3169c7e205f" + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "141046a8f9477948ff284fa65be2095baafb94f2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theofidry/console/zipball/bea8316beae874fc5b8be679d67dd3169c7e205f", - "reference": "bea8316beae874fc5b8be679d67dd3169c7e205f", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/141046a8f9477948ff284fa65be2095baafb94f2", + "reference": "141046a8f9477948ff284fa65be2095baafb94f2", "shasum": "" }, "require": { - "php": "^8.2", - "psr/log": "^1.0 || ^2.0 || ^3.0", - "symfony/console": "^6.4 || ^7.2", - "symfony/deprecation-contracts": "^3.4", - "symfony/event-dispatcher-contracts": "^2.5 || ^3.0", - "symfony/polyfill-php84": "^1.31", - "symfony/service-contracts": "^2.5 || ^3.0", - "thecodingmachine/safe": "^2.0 || ^3.0", - "webmozart/assert": "^1.11" + "php": ">=7.2" }, - "conflict": { - "symfony/dependency-injection": "<6.4.0 || >=7.0.0 <7.2.0", - "symfony/framework-bundle": "<6.4.0 || >=7.0.0 <7.2.0", - "symfony/http-kernel": "<6.4.0 || >=7.0.0 <7.2.0" + "provide": { + "ext-ctype": "*" }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.2", - "composer/semver": "^3.3.2", - "ergebnis/composer-normalize": "^2.33", - "fidry/makefile": "^0.2.1 || ^1.0.0", - "infection/infection": "^0.28", - "phpunit/phpunit": "^10.2", - "symfony/dependency-injection": "^6.4 || ^7.2", - "symfony/flex": "^2.4.0", - "symfony/framework-bundle": "^6.4 || ^7.2", - "symfony/http-kernel": "^6.4 || ^7.2", - "symfony/yaml": "^6.4 || ^7.2" + "suggest": { + "ext-ctype": "For best performance" }, "type": "library", "extra": { - "bamarni-bin": { - "bin-links": false, - "forward-command": false - }, - "branch-alias": { - "dev-main": "1.0.x-dev" + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { + "files": [ + "bootstrap.php" + ], "psr-4": { - "Fidry\\Console\\": "src" + "Symfony\\Polyfill\\Ctype\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -1198,120 +1230,164 @@ ], "authors": [ { - "name": "Théo Fidry", - "email": "theo.fidry@gmail.com" + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Library to create CLI applications", + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", "keywords": [ - "cli", - "console", - "symfony" + "compatibility", + "ctype", + "polyfill", + "portable" ], "support": { - "issues": "https://github.com/theofidry/console/issues", - "source": "https://github.com/theofidry/console/tree/0.6.11" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.37.0" }, "funding": [ { - "url": "https://github.com/theofidry", + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "time": "2025-02-14T11:06:15+00:00" + "time": "2026-04-10T16:19:22+00:00" }, { - "name": "fidry/filesystem", - "version": "1.2.3", + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.41.0", "source": { "type": "git", - "url": "https://github.com/theofidry/filesystem.git", - "reference": "3e1f9cac40f807b7c4196013ab77cc1b9416e3e5" + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theofidry/filesystem/zipball/3e1f9cac40f807b7c4196013ab77cc1b9416e3e5", - "reference": "3e1f9cac40f807b7c4196013ab77cc1b9416e3e5", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", + "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", "shasum": "" }, "require": { - "php": "^8.1", - "symfony/filesystem": "^6.4 || ^7.0" + "php": ">=7.2" }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.4", - "ergebnis/composer-normalize": "^2.28", - "infection/infection": ">=0.26", - "phpunit/phpunit": "^10.3", - "symfony/finder": "^6.4 || ^7.0" + "suggest": { + "ext-intl": "For best performance" }, "type": "library", "extra": { - "bamarni-bin": { - "bin-links": false, - "forward-command": false - }, - "branch-alias": { - "dev-main": "1.0.x-dev" + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { + "files": [ + "bootstrap.php" + ], "psr-4": { - "Fidry\\FileSystem\\": "src" + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Théo Fidry", - "email": "theo.fidry@gmail.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Filesystem with a few more utilities.", + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", "keywords": [ - "filesystem" + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" ], "support": { - "issues": "https://github.com/theofidry/filesystem/issues", - "source": "https://github.com/theofidry/filesystem/tree/1.2.3" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.41.0" }, "funding": [ { - "url": "https://github.com/theofidry", + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "time": "2025-02-13T22:58:51+00:00" + "time": "2026-07-28T08:25:59+00:00" }, { - "name": "graham-campbell/result-type", - "version": "v1.2.0", + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.42.0", "source": { "type": "git", - "url": "https://github.com/GrahamCampbell/Result-Type.git", - "reference": "adccca3324eece92ca35463648c12b9e6293c05b" + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/adccca3324eece92ca35463648c12b9e6293c05b", - "reference": "adccca3324eece92ca35463648c12b9e6293c05b", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/aa20edea75bd9c48cfecc8360922e5a6e5c44502", + "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502", "shasum": "" }, "require": { - "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.10" + "php": ">=7.2" }, - "require-dev": { - "phpunit/phpunit": "^8.5.52 || ^9.6.34 || ^10.5.63 || ^11.5.55 || ^12.5.14" + "suggest": { + "ext-intl": "For best performance" }, "type": "library", - "autoload": { - "psr-4": { - "GrahamCampbell\\ResultType\\": "src/" - } + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1319,123 +1395,85 @@ ], "authors": [ { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "An Implementation Of The Result Type", + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", "keywords": [ - "Graham Campbell", - "GrahamCampbell", - "Result Type", - "Result-Type", - "result" + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" ], "support": { - "issues": "https://github.com/GrahamCampbell/Result-Type/issues", - "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.2.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.42.0" }, "funding": [ { - "url": "https://github.com/GrahamCampbell", + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type", + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2026-08-24T09:06:52+00:00" + "time": "2026-08-07T06:33:24+00:00" }, { - "name": "humbug/box", - "version": "4.7.0", + "name": "symfony/polyfill-mbstring", + "version": "v1.38.2", "source": { "type": "git", - "url": "https://github.com/box-project/box.git", - "reference": "9c2a430118f61ba4a20bc4969931494503f5da6a" + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/box-project/box/zipball/9c2a430118f61ba4a20bc4969931494503f5da6a", - "reference": "9c2a430118f61ba4a20bc4969931494503f5da6a", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", + "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", "shasum": "" }, "require": { - "amphp/parallel": "^2.0", - "composer-plugin-api": "^2.2", - "composer/semver": "^3.3.2", - "composer/xdebug-handler": "^3.0.3", "ext-iconv": "*", - "ext-mbstring": "*", - "ext-phar": "*", - "fidry/console": "^0.6.0", - "fidry/filesystem": "^1.2.1", - "humbug/php-scoper": "^0.18.14", - "justinrainbow/json-schema": "^6.2.0", - "nikic/iter": "^2.2", - "php": "^8.2", - "phpdocumentor/reflection-docblock": "^5.4", - "phpdocumentor/type-resolver": "^1.7", - "psr/log": "^3.0", - "sebastian/diff": "^5.0 || ^6.0 || ^7.0", - "seld/jsonlint": "^1.10.2", - "seld/phar-utils": "^1.2", - "symfony/finder": "^6.4.0 || ^7.0.0", - "symfony/polyfill-iconv": "^1.28", - "symfony/polyfill-mbstring": "^1.28", - "symfony/process": "^6.4.0 || ^7.0.0", - "symfony/var-dumper": "^6.4.0 || ^7.0.0", - "thecodingmachine/safe": "^2.5 || ^3.0", - "webmozart/assert": "^1.12" - }, - "conflict": { - "marc-mabe/php-enum": "<4.4" - }, - "replace": { - "symfony/polyfill-php80": "*", - "symfony/polyfill-php81": "*", - "symfony/polyfill-php82": "*" + "php": ">=7.2" }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.2", - "ergebnis/composer-normalize": "^2.29", - "ext-xml": "*", - "fidry/makefile": "^1.0.1", - "mikey179/vfsstream": "^1.6.11", - "phpspec/prophecy": "^1.18", - "phpspec/prophecy-phpunit": "^2.1.0", - "phpunit/phpunit": "^10.5.2", - "symfony/yaml": "^6.4.0 || ^7.0.0" + "provide": { + "ext-mbstring": "*" }, "suggest": { - "ext-openssl": "To accelerate private key generation." + "ext-mbstring": "For best performance" }, - "bin": [ - "bin/box" - ], "type": "library", "extra": { - "bamarni-bin": { - "bin-links": false, - "forward-command": false - }, - "branch-alias": { - "dev-main": "4.x-dev" + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { "files": [ - "src/functions.php" + "bootstrap.php" ], "psr-4": { - "KevinGH\\Box\\": "src" - }, - "exclude-from-classmap": [ - "/Test/", - "vendor/humbug/php-scoper/vendor-hotfix" - ] + "Symfony\\Polyfill\\Mbstring\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1443,82 +1481,84 @@ ], "authors": [ { - "name": "Kevin Herrera", - "email": "kevin@herrera.io", - "homepage": "http://kevin.herrera.io" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { - "name": "Théo Fidry", - "email": "theo.fidry@gmail.com" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Fast, zero config application bundler with PHARs.", + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", "keywords": [ - "phar" + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" ], "support": { - "issues": "https://github.com/box-project/box/issues", - "source": "https://github.com/box-project/box/tree/4.7.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.38.2" }, - "time": "2026-03-18T09:34:43+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-05-27T06:59:30+00:00" }, { - "name": "humbug/php-scoper", - "version": "0.18.18", + "name": "symfony/service-contracts", + "version": "v3.7.3", "source": { "type": "git", - "url": "https://github.com/humbug/php-scoper.git", - "reference": "dd55d01a937602c9473cfbe0ecab9521cb9740aa" + "url": "https://github.com/symfony/service-contracts.git", + "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/humbug/php-scoper/zipball/dd55d01a937602c9473cfbe0ecab9521cb9740aa", - "reference": "dd55d01a937602c9473cfbe0ecab9521cb9740aa", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", + "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", "shasum": "" }, "require": { - "fidry/console": "^0.6.10", - "fidry/filesystem": "^1.1", - "jetbrains/phpstorm-stubs": "^2024.1", - "nikic/php-parser": "^5.0", - "php": "^8.2", - "symfony/console": "^6.4 || ^7.0", - "symfony/filesystem": "^6.4 || ^7.0", - "symfony/finder": "^6.4 || ^7.0", - "symfony/var-dumper": "^7.1", - "thecodingmachine/safe": "^3.0" + "php": ">=8.1", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.1", - "ergebnis/composer-normalize": "^2.28", - "fidry/makefile": "^1.0", - "humbug/box": "^4.6.2", - "phpspec/prophecy-phpunit": "^2.0", - "phpunit/phpunit": "^10.0 || ^11.0", - "symfony/yaml": "^6.4 || ^7.0" + "conflict": { + "ext-psr": "<1.1|>=2" }, - "bin": [ - "bin/php-scoper" - ], "type": "library", "extra": { - "bamarni-bin": { - "bin-links": false, - "forward-command": false + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" }, "branch-alias": { - "dev-master": "1.0-dev" + "dev-main": "3.7-dev" } }, "autoload": { - "files": [ - "src/functions.php" - ], "psr-4": { - "Humbug\\PhpScoper\\": "src/" + "Symfony\\Contracts\\Service\\": "" }, - "classmap": [ - "vendor-hotfix/" + "exclude-from-classmap": [ + "/Test/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -1527,113 +1567,181 @@ ], "authors": [ { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - }, - { - "name": "Théo Fidry", - "email": "theo.fidry@gmail.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { - "name": "Pádraic Brady", - "email": "padraic.brady@gmail.com" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Prefixes all PHP namespaces in a file or directory.", - "support": { - "issues": "https://github.com/humbug/php-scoper/issues", - "source": "https://github.com/humbug/php-scoper/tree/0.18.18" - }, - "time": "2025-10-15T15:29:47+00:00" - }, - { - "name": "jetbrains/phpstorm-stubs", - "version": "v2024.3", + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.7.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-07-27T15:39:01+00:00" + }, + { + "name": "symfony/string", + "version": "v7.4.19", "source": { "type": "git", - "url": "https://github.com/JetBrains/phpstorm-stubs.git", - "reference": "0e82bdfe850c71857ee4ee3501ed82a9fc5d043c" + "url": "https://github.com/symfony/string.git", + "reference": "02731ce2bd26514bec9efc0baef2cd0b0cf67f46" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/JetBrains/phpstorm-stubs/zipball/0e82bdfe850c71857ee4ee3501ed82a9fc5d043c", - "reference": "0e82bdfe850c71857ee4ee3501ed82a9fc5d043c", + "url": "https://api.github.com/repos/symfony/string/zipball/02731ce2bd26514bec9efc0baef2cd0b0cf67f46", + "reference": "02731ce2bd26514bec9efc0baef2cd0b0cf67f46", "shasum": "" }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.33", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.5" + }, "require-dev": { - "friendsofphp/php-cs-fixer": "v3.64.0", - "nikic/php-parser": "v5.3.1", - "phpdocumentor/reflection-docblock": "5.6.0", - "phpunit/phpunit": "11.4.3" + "symfony/emoji": "^7.1|^8.0", + "symfony/http-client": "^6.4|^7.0|^8.0", + "symfony/intl": "^6.4|^7.0|^8.0", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { "files": [ - "PhpStormStubsMap.php" + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache-2.0" + "MIT" ], - "description": "PHP runtime & extensions header files for PhpStorm", - "homepage": "https://www.jetbrains.com/phpstorm", + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", "keywords": [ - "autocomplete", - "code", - "inference", - "inspection", - "jetbrains", - "phpstorm", - "stubs", - "type" + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" ], "support": { - "source": "https://github.com/JetBrains/phpstorm-stubs/tree/v2024.3" + "source": "https://github.com/symfony/string/tree/v7.4.19" }, - "time": "2024-12-14T08:03:12+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-09-11T14:46:58+00:00" }, { - "name": "justinrainbow/json-schema", - "version": "6.13.0", + "name": "symfony/var-dumper", + "version": "v7.4.18", "source": { "type": "git", - "url": "https://github.com/jsonrainbow/json-schema.git", - "reference": "30de5e9b3fa04253af272a7d932a38cd026c311b" + "url": "https://github.com/symfony/var-dumper.git", + "reference": "e088da50b813f32473a76871616cbb8fa54653a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/30de5e9b3fa04253af272a7d932a38cd026c311b", - "reference": "30de5e9b3fa04253af272a7d932a38cd026c311b", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/e088da50b813f32473a76871616cbb8fa54653a8", + "reference": "e088da50b813f32473a76871616cbb8fa54653a8", "shasum": "" }, "require": { - "ext-filter": "*", - "ext-json": "*", - "marc-mabe/php-enum": "^4.4", - "php": "^7.2 || ^8.0" + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/console": "<6.4" }, "require-dev": { - "friendsofphp/php-cs-fixer": "3.3.0", - "json-schema/json-schema-test-suite": "dev-main", - "marc-mabe/php-enum-phpstan": "^2.0", - "phpspec/prophecy": "^1.19", - "phpstan/phpstan": "^1.12", - "phpunit/phpunit": "^8.5" + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/process": "^6.4|^7.0|^8.0", + "symfony/uid": "^6.4|^7.0|^8.0", + "twig/twig": "^3.12|^4.0" }, "bin": [ - "bin/validate-json" + "Resources/bin/var-dump-server" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.x-dev" - } - }, "autoload": { + "files": [ + "Resources/functions/dump.php" + ], "psr-4": { - "JsonSchema\\": "src/JsonSchema/" - } + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1641,54 +1749,77 @@ ], "authors": [ { - "name": "Danny van der Sluijs", - "email": "danny.vandersluijs@icloud.com", - "role": "Maintainer" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "A library to validate a json schema.", - "homepage": "https://github.com/jsonrainbow/json-schema", + "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", "keywords": [ - "json", - "schema" + "debug", + "dump" ], "support": { - "issues": "https://github.com/jsonrainbow/json-schema/issues", - "source": "https://github.com/jsonrainbow/json-schema/tree/6.13.0" + "source": "https://github.com/symfony/var-dumper/tree/v7.4.18" }, - "time": "2026-09-23T19:46:42+00:00" - }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-08-30T20:10:52+00:00" + } + ], + "packages-dev": [ { - "name": "kelunik/certificate", - "version": "v1.1.3", + "name": "amphp/amp", + "version": "v3.1.3", "source": { "type": "git", - "url": "https://github.com/kelunik/certificate.git", - "reference": "7e00d498c264d5eb4f78c69f41c8bd6719c0199e" + "url": "https://github.com/amphp/amp.git", + "reference": "73c38b323ff8d790abf0f76c56fcc892bda4111a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/kelunik/certificate/zipball/7e00d498c264d5eb4f78c69f41c8bd6719c0199e", - "reference": "7e00d498c264d5eb4f78c69f41c8bd6719c0199e", + "url": "https://api.github.com/repos/amphp/amp/zipball/73c38b323ff8d790abf0f76c56fcc892bda4111a", + "reference": "73c38b323ff8d790abf0f76c56fcc892bda4111a", "shasum": "" }, "require": { - "ext-openssl": "*", - "php": ">=7.0" + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2" }, "require-dev": { "amphp/php-cs-fixer-config": "^2", - "phpunit/phpunit": "^6 | 7 | ^8 | ^9" + "phpunit/phpunit": "^9", + "psalm/phar": "6.16.1" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, "autoload": { + "files": [ + "src/functions.php", + "src/Future/functions.php", + "src/Internal/functions.php" + ], "psr-4": { - "Kelunik\\Certificate\\": "src" + "Amp\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1697,70 +1828,84 @@ ], "authors": [ { - "name": "Niklas Keller", - "email": "me@kelunik.com" - } - ], - "description": "Access certificate details and transform between different formats.", - "keywords": [ - "DER", - "certificate", - "certificates", - "openssl", - "pem", - "x509" + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Bob Weinand", + "email": "bobwei9@hotmail.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + }, + { + "name": "Daniel Lowrey", + "email": "rdlowrey@php.net" + } + ], + "description": "A non-blocking concurrency framework for PHP applications.", + "homepage": "https://amphp.org/amp", + "keywords": [ + "async", + "asynchronous", + "awaitable", + "concurrency", + "event", + "event-loop", + "future", + "non-blocking", + "promise" ], "support": { - "issues": "https://github.com/kelunik/certificate/issues", - "source": "https://github.com/kelunik/certificate/tree/v1.1.3" + "issues": "https://github.com/amphp/amp/issues", + "source": "https://github.com/amphp/amp/tree/v3.1.3" }, - "time": "2023-02-03T21:26:53+00:00" + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2026-07-19T17:59:20+00:00" }, { - "name": "league/uri", - "version": "7.8.1", + "name": "amphp/byte-stream", + "version": "v2.1.2", "source": { "type": "git", - "url": "https://github.com/thephpleague/uri.git", - "reference": "08cf38e3924d4f56238125547b5720496fac8fd4" + "url": "https://github.com/amphp/byte-stream.git", + "reference": "55a6bd071aec26fa2a3e002618c20c35e3df1b46" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri/zipball/08cf38e3924d4f56238125547b5720496fac8fd4", - "reference": "08cf38e3924d4f56238125547b5720496fac8fd4", + "url": "https://api.github.com/repos/amphp/byte-stream/zipball/55a6bd071aec26fa2a3e002618c20c35e3df1b46", + "reference": "55a6bd071aec26fa2a3e002618c20c35e3df1b46", "shasum": "" }, "require": { - "league/uri-interfaces": "^7.8.1", - "php": "^8.1", - "psr/http-factory": "^1" - }, - "conflict": { - "league/uri-schemes": "^1.0" + "amphp/amp": "^3", + "amphp/parser": "^1.1", + "amphp/pipeline": "^1", + "amphp/serialization": "^1", + "amphp/sync": "^2", + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2.3" }, - "suggest": { - "ext-bcmath": "to improve IPV4 host parsing", - "ext-dom": "to convert the URI into an HTML anchor tag", - "ext-fileinfo": "to create Data URI from file contennts", - "ext-gmp": "to improve IPV4 host parsing", - "ext-intl": "to handle IDN host with the best performance", - "ext-uri": "to use the PHP native URI class", - "jeremykendall/php-domain-parser": "to further parse the URI host and resolve its Public Suffix and Top Level Domain", - "league/uri-components": "to provide additional tools to manipulate URI objects components", - "league/uri-polyfill": "to backport the PHP URI extension for older versions of PHP", - "php-64bit": "to improve IPV4 host parsing", - "rowbot/url": "to handle URLs using the WHATWG URL Living Standard specification", - "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "5.22.1" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "7.x-dev" - } - }, "autoload": { + "files": [ + "src/functions.php", + "src/Internal/functions.php" + ], "psr-4": { - "League\\Uri\\": "" + "Amp\\ByteStream\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1769,87 +1914,67 @@ ], "authors": [ { - "name": "Ignace Nyamagana Butera", - "email": "nyamsprod@gmail.com", - "homepage": "https://nyamsprod.com" + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], - "description": "URI manipulation library", - "homepage": "https://uri.thephpleague.com", + "description": "A stream abstraction to make working with non-blocking I/O simple.", + "homepage": "https://amphp.org/byte-stream", "keywords": [ - "URN", - "data-uri", - "file-uri", - "ftp", - "hostname", - "http", - "https", - "middleware", - "parse_str", - "parse_url", - "psr-7", - "query-string", - "querystring", - "rfc2141", - "rfc3986", - "rfc3987", - "rfc6570", - "rfc8141", - "uri", - "uri-template", - "url", - "ws" + "amp", + "amphp", + "async", + "io", + "non-blocking", + "stream" ], "support": { - "docs": "https://uri.thephpleague.com", - "forum": "https://thephpleague.slack.com", - "issues": "https://github.com/thephpleague/uri-src/issues", - "source": "https://github.com/thephpleague/uri/tree/7.8.1" + "issues": "https://github.com/amphp/byte-stream/issues", + "source": "https://github.com/amphp/byte-stream/tree/v2.1.2" }, "funding": [ { - "url": "https://github.com/sponsors/nyamsprod", + "url": "https://github.com/amphp", "type": "github" } ], - "time": "2026-03-15T20:22:25+00:00" + "time": "2025-03-16T17:10:27+00:00" }, { - "name": "league/uri-interfaces", - "version": "7.8.1", + "name": "amphp/cache", + "version": "v2.0.1", "source": { "type": "git", - "url": "https://github.com/thephpleague/uri-interfaces.git", - "reference": "85d5c77c5d6d3af6c54db4a78246364908f3c928" + "url": "https://github.com/amphp/cache.git", + "reference": "46912e387e6aa94933b61ea1ead9cf7540b7797c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/85d5c77c5d6d3af6c54db4a78246364908f3c928", - "reference": "85d5c77c5d6d3af6c54db4a78246364908f3c928", + "url": "https://api.github.com/repos/amphp/cache/zipball/46912e387e6aa94933b61ea1ead9cf7540b7797c", + "reference": "46912e387e6aa94933b61ea1ead9cf7540b7797c", "shasum": "" }, "require": { - "ext-filter": "*", - "php": "^8.1", - "psr/http-message": "^1.1 || ^2.0" + "amphp/amp": "^3", + "amphp/serialization": "^1", + "amphp/sync": "^2", + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2" }, - "suggest": { - "ext-bcmath": "to improve IPV4 host parsing", - "ext-gmp": "to improve IPV4 host parsing", - "ext-intl": "to handle IDN host with the best performance", - "php-64bit": "to improve IPV4 host parsing", - "rowbot/url": "to handle URLs using the WHATWG URL Living Standard specification", - "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "^5.4" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "7.x-dev" - } - }, "autoload": { "psr-4": { - "League\\Uri\\": "" + "Amp\\Cache\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1858,154 +1983,164 @@ ], "authors": [ { - "name": "Ignace Nyamagana Butera", - "email": "nyamsprod@gmail.com", - "homepage": "https://nyamsprod.com" + "name": "Niklas Keller", + "email": "me@kelunik.com" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Daniel Lowrey", + "email": "rdlowrey@php.net" } ], - "description": "Common tools for parsing and resolving RFC3987/RFC3986 URI", - "homepage": "https://uri.thephpleague.com", - "keywords": [ - "data-uri", - "file-uri", - "ftp", - "hostname", - "http", - "https", - "parse_str", - "parse_url", - "psr-7", - "query-string", - "querystring", - "rfc3986", - "rfc3987", - "rfc6570", - "uri", - "url", - "ws" - ], + "description": "A fiber-aware cache API based on Amp and Revolt.", + "homepage": "https://amphp.org/cache", "support": { - "docs": "https://uri.thephpleague.com", - "forum": "https://thephpleague.slack.com", - "issues": "https://github.com/thephpleague/uri-src/issues", - "source": "https://github.com/thephpleague/uri-interfaces/tree/7.8.1" + "issues": "https://github.com/amphp/cache/issues", + "source": "https://github.com/amphp/cache/tree/v2.0.1" }, "funding": [ { - "url": "https://github.com/sponsors/nyamsprod", + "url": "https://github.com/amphp", "type": "github" } ], - "time": "2026-03-08T20:05:35+00:00" + "time": "2024-04-19T03:38:06+00:00" }, { - "name": "marc-mabe/php-enum", - "version": "v4.7.2", + "name": "amphp/dns", + "version": "v2.4.1", "source": { "type": "git", - "url": "https://github.com/marc-mabe/php-enum.git", - "reference": "bb426fcdd65c60fb3638ef741e8782508fda7eef" + "url": "https://github.com/amphp/dns.git", + "reference": "ec5948bfafac808f410406e18bc7b52a2d4629b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/marc-mabe/php-enum/zipball/bb426fcdd65c60fb3638ef741e8782508fda7eef", - "reference": "bb426fcdd65c60fb3638ef741e8782508fda7eef", + "url": "https://api.github.com/repos/amphp/dns/zipball/ec5948bfafac808f410406e18bc7b52a2d4629b7", + "reference": "ec5948bfafac808f410406e18bc7b52a2d4629b7", "shasum": "" }, "require": { - "ext-reflection": "*", - "php": "^7.1 | ^8.0" - }, - "require-dev": { - "phpbench/phpbench": "^0.16.10 || ^1.0.4", - "phpstan/phpstan": "^1.3.1", - "phpunit/phpunit": "^7.5.20 | ^8.5.22 | ^9.5.11", - "vimeo/psalm": "^4.17.0 | ^5.26.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-3.x": "3.2-dev", - "dev-master": "4.7-dev" - } + "amphp/amp": "^3", + "amphp/byte-stream": "^2", + "amphp/cache": "^2", + "amphp/parser": "^1", + "amphp/process": "^2", + "daverandom/libdns": "^2.0.2", + "ext-filter": "*", + "ext-json": "*", + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2" }, + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "6.16.1" + }, + "type": "library", "autoload": { + "files": [ + "src/functions.php" + ], "psr-4": { - "MabeEnum\\": "src/" - }, - "classmap": [ - "stubs/Stringable.php" - ] + "Amp\\Dns\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Marc Bennewitz", - "email": "dev@mabe.berlin", - "homepage": "https://mabe.berlin/", - "role": "Lead" + "name": "Chris Wright", + "email": "addr@daverandom.com" + }, + { + "name": "Daniel Lowrey", + "email": "rdlowrey@php.net" + }, + { + "name": "Bob Weinand", + "email": "bobwei9@hotmail.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" } ], - "description": "Simple and fast implementation of enumerations with native PHP", - "homepage": "https://github.com/marc-mabe/php-enum", + "description": "Async DNS resolution for Amp.", + "homepage": "https://github.com/amphp/dns", "keywords": [ - "enum", - "enum-map", - "enum-set", - "enumeration", - "enumerator", - "enummap", - "enumset", - "map", - "set", - "type", - "type-hint", - "typehint" + "amp", + "amphp", + "async", + "client", + "dns", + "resolve" ], "support": { - "issues": "https://github.com/marc-mabe/php-enum/issues", - "source": "https://github.com/marc-mabe/php-enum/tree/v4.7.2" + "issues": "https://github.com/amphp/dns/issues", + "source": "https://github.com/amphp/dns/tree/v2.4.1" }, - "time": "2025-09-14T11:18:39+00:00" + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2026-07-26T17:53:54+00:00" }, { - "name": "matthiasmullie/minify", - "version": "1.3.75", + "name": "amphp/parallel", + "version": "v2.4.0", "source": { "type": "git", - "url": "https://github.com/matthiasmullie/minify.git", - "reference": "76ba4a5f555fd7bf4aa408af608e991569076671" + "url": "https://github.com/amphp/parallel.git", + "reference": "37f5b2754fadc229c00f9416bd68fb8d04529a81" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/matthiasmullie/minify/zipball/76ba4a5f555fd7bf4aa408af608e991569076671", - "reference": "76ba4a5f555fd7bf4aa408af608e991569076671", + "url": "https://api.github.com/repos/amphp/parallel/zipball/37f5b2754fadc229c00f9416bd68fb8d04529a81", + "reference": "37f5b2754fadc229c00f9416bd68fb8d04529a81", "shasum": "" }, "require": { - "ext-pcre": "*", - "matthiasmullie/path-converter": "~1.1", - "php": ">=5.3.0" + "amphp/amp": "^3", + "amphp/byte-stream": "^2", + "amphp/cache": "^2", + "amphp/parser": "^1", + "amphp/pipeline": "^1", + "amphp/process": "^2", + "amphp/serialization": "^1", + "amphp/socket": "^2", + "amphp/sync": "^2", + "php": ">=8.1", + "revolt/event-loop": "^1" }, "require-dev": { - "friendsofphp/php-cs-fixer": ">=2.0", - "matthiasmullie/scrapbook": ">=1.3", - "phpunit/phpunit": ">=4.8" - }, - "suggest": { - "psr/cache-implementation": "Cache implementation to use with Minify::cache" + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "6.16.1" }, - "bin": [ - "bin/minifycss", - "bin/minifyjs" - ], "type": "library", "autoload": { + "files": [ + "src/Context/functions.php", + "src/Context/Internal/functions.php", + "src/Ipc/functions.php", + "src/Worker/functions.php" + ], "psr-4": { - "MatthiasMullie\\Minify\\": "src/" + "Amp\\Parallel\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -2014,58 +2149,65 @@ ], "authors": [ { - "name": "Matthias Mullie", - "email": "minify@mullie.eu", - "homepage": "https://www.mullie.eu", - "role": "Developer" + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + }, + { + "name": "Stephen Coakley", + "email": "me@stephencoakley.com" } ], - "description": "CSS & JavaScript minifier, in PHP. Removes whitespace, strips comments, combines files (incl. @import statements and small assets in CSS files), and optimizes/shortens a few common programming patterns.", - "homepage": "https://github.com/matthiasmullie/minify", + "description": "Parallel processing component for Amp.", + "homepage": "https://github.com/amphp/parallel", "keywords": [ - "JS", - "css", - "javascript", - "minifier", - "minify" + "async", + "asynchronous", + "concurrent", + "multi-processing", + "multi-threading" ], "support": { - "issues": "https://github.com/matthiasmullie/minify/issues", - "source": "https://github.com/matthiasmullie/minify/tree/1.3.75" + "issues": "https://github.com/amphp/parallel/issues", + "source": "https://github.com/amphp/parallel/tree/v2.4.0" }, "funding": [ { - "url": "https://github.com/matthiasmullie", + "url": "https://github.com/amphp", "type": "github" } ], - "time": "2025-06-25T09:56:19+00:00" + "time": "2026-05-16T16:54:01+00:00" }, { - "name": "matthiasmullie/path-converter", - "version": "1.1.3", + "name": "amphp/parser", + "version": "v1.1.1", "source": { "type": "git", - "url": "https://github.com/matthiasmullie/path-converter.git", - "reference": "e7d13b2c7e2f2268e1424aaed02085518afa02d9" + "url": "https://github.com/amphp/parser.git", + "reference": "3cf1f8b32a0171d4b1bed93d25617637a77cded7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/matthiasmullie/path-converter/zipball/e7d13b2c7e2f2268e1424aaed02085518afa02d9", - "reference": "e7d13b2c7e2f2268e1424aaed02085518afa02d9", + "url": "https://api.github.com/repos/amphp/parser/zipball/3cf1f8b32a0171d4b1bed93d25617637a77cded7", + "reference": "3cf1f8b32a0171d4b1bed93d25617637a77cded7", "shasum": "" }, "require": { - "ext-pcre": "*", - "php": ">=5.3.0" + "php": ">=7.4" }, "require-dev": { - "phpunit/phpunit": "~4.8" + "amphp/php-cs-fixer-config": "^2", + "phpunit/phpunit": "^9", + "psalm/phar": "^5.4" }, "type": "library", "autoload": { "psr-4": { - "MatthiasMullie\\PathConverter\\": "src/" + "Amp\\Parser\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -2074,789 +2216,750 @@ ], "authors": [ { - "name": "Matthias Mullie", - "email": "pathconverter@mullie.eu", - "homepage": "http://www.mullie.eu", - "role": "Developer" + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], - "description": "Relative path converter", - "homepage": "http://github.com/matthiasmullie/path-converter", + "description": "A generator parser to make streaming parsers simple.", + "homepage": "https://github.com/amphp/parser", "keywords": [ - "converter", - "path", - "paths", - "relative" + "async", + "non-blocking", + "parser", + "stream" ], "support": { - "issues": "https://github.com/matthiasmullie/path-converter/issues", - "source": "https://github.com/matthiasmullie/path-converter/tree/1.1.3" + "issues": "https://github.com/amphp/parser/issues", + "source": "https://github.com/amphp/parser/tree/v1.1.1" }, - "time": "2019-02-05T23:41:09+00:00" + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2024-03-21T19:16:53+00:00" }, { - "name": "nette/php-generator", - "version": "v4.2.2", + "name": "amphp/pipeline", + "version": "v1.2.7", "source": { "type": "git", - "url": "https://github.com/nette/php-generator.git", - "reference": "0d7060926f5c3e8c488b9b9ced42d857f12a34b5" + "url": "https://github.com/amphp/pipeline.git", + "reference": "cf2d67696c2015ea7c7fd8f6ec5f8ed7c2d17c17" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/php-generator/zipball/0d7060926f5c3e8c488b9b9ced42d857f12a34b5", - "reference": "0d7060926f5c3e8c488b9b9ced42d857f12a34b5", + "url": "https://api.github.com/repos/amphp/pipeline/zipball/cf2d67696c2015ea7c7fd8f6ec5f8ed7c2d17c17", + "reference": "cf2d67696c2015ea7c7fd8f6ec5f8ed7c2d17c17", "shasum": "" }, "require": { - "nette/utils": "^4.0.6", - "php": "8.1 - 8.5" + "amphp/amp": "^3", + "php": ">=8.1", + "revolt/event-loop": "^1" }, "require-dev": { - "jetbrains/phpstorm-attributes": "^1.2", - "nette/phpstan-rules": "^1.0", - "nette/tester": "^2.6", - "nikic/php-parser": "^5.0", - "phpstan/extension-installer": "^1.4@stable", - "phpstan/phpstan": "^2.1.40@stable", - "tracy/tracy": "^2.8" - }, - "suggest": { - "nikic/php-parser": "to use ClassType::from(withBodies: true) & ClassType::fromCode()" + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "6.16.1" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.2-dev" - } - }, "autoload": { "psr-4": { - "Nette\\": "src" - }, - "classmap": [ - "src/" - ] + "Amp\\Pipeline\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" + "MIT" ], "authors": [ { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" }, { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], - "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 8.5 features.", - "homepage": "https://nette.org", + "description": "Asynchronous iterators and operators.", + "homepage": "https://amphp.org/pipeline", "keywords": [ - "code", - "nette", - "php", - "scaffolding" + "amp", + "amphp", + "async", + "io", + "iterator", + "non-blocking" ], "support": { - "issues": "https://github.com/nette/php-generator/issues", - "source": "https://github.com/nette/php-generator/tree/v4.2.2" + "issues": "https://github.com/amphp/pipeline/issues", + "source": "https://github.com/amphp/pipeline/tree/v1.2.7" }, - "time": "2026-02-26T00:58:33+00:00" + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2026-07-26T14:50:43+00:00" }, { - "name": "nette/utils", - "version": "v4.1.5", + "name": "amphp/process", + "version": "v2.1.0", "source": { "type": "git", - "url": "https://github.com/nette/utils.git", - "reference": "b043439dbdf954e6c28b5ea7e34b0100f83165e0" + "url": "https://github.com/amphp/process.git", + "reference": "583959df17d00304ad7b0b32285373f985935643" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/b043439dbdf954e6c28b5ea7e34b0100f83165e0", - "reference": "b043439dbdf954e6c28b5ea7e34b0100f83165e0", + "url": "https://api.github.com/repos/amphp/process/zipball/583959df17d00304ad7b0b32285373f985935643", + "reference": "583959df17d00304ad7b0b32285373f985935643", "shasum": "" }, "require": { - "php": "8.2 - 8.5" - }, - "conflict": { - "nette/finder": "<3", - "nette/schema": "<1.2.2" + "amphp/amp": "^3", + "amphp/byte-stream": "^2", + "amphp/sync": "^2", + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2" }, "require-dev": { - "jetbrains/phpstorm-attributes": "^1.2", - "nette/phpstan-rules": "^1.0", - "nette/tester": "^2.5", - "phpstan/extension-installer": "^1.4@stable", - "phpstan/phpstan": "^2.1@stable", - "tracy/tracy": "^2.9" - }, - "suggest": { - "ext-gd": "to use Image", - "ext-iconv": "to use Strings::chr(), ord() and reverse()", - "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", - "ext-json": "to use Nette\\Utils\\Json", - "ext-mbstring": "to use Strings::lower() etc...", - "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()" + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "6.16.1" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.1-dev" - } - }, "autoload": { + "files": [ + "src/functions.php" + ], "psr-4": { - "Nette\\": "src" - }, - "classmap": [ - "src/" - ] + "Amp\\Process\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" + "MIT" ], "authors": [ { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" + "name": "Bob Weinand", + "email": "bobwei9@hotmail.com" }, { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], - "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", - "homepage": "https://nette.org", - "keywords": [ - "array", - "core", - "datetime", - "images", - "json", - "nette", - "paginator", - "password", - "slugify", - "string", - "unicode", - "utf-8", - "utility", - "validation" - ], + "description": "A fiber-aware process manager based on Amp and Revolt.", + "homepage": "https://amphp.org/process", "support": { - "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.1.5" + "issues": "https://github.com/amphp/process/issues", + "source": "https://github.com/amphp/process/tree/v2.1.0" }, - "time": "2026-07-17T23:02:45+00:00" + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2026-05-31T15:11:55+00:00" }, { - "name": "nikic/iter", - "version": "v2.4.1", + "name": "amphp/serialization", + "version": "v1.1.0", "source": { "type": "git", - "url": "https://github.com/nikic/iter.git", - "reference": "3f031ae08d82c4394410e76b88b441331a6fa15f" + "url": "https://github.com/amphp/serialization.git", + "reference": "fdf2834d78cebb0205fb2672676c1b1eb84371f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/iter/zipball/3f031ae08d82c4394410e76b88b441331a6fa15f", - "reference": "3f031ae08d82c4394410e76b88b441331a6fa15f", + "url": "https://api.github.com/repos/amphp/serialization/zipball/fdf2834d78cebb0205fb2672676c1b1eb84371f0", + "reference": "fdf2834d78cebb0205fb2672676c1b1eb84371f0", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.4" }, "require-dev": { - "phpstan/phpstan": "^1.4", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", - "vimeo/psalm": "^4.18 || ^5.13" + "amphp/php-cs-fixer-config": "^2", + "ext-json": "*", + "ext-zlib": "*", + "phpunit/phpunit": "^9", + "psalm/phar": "6.16.1" }, "type": "library", "autoload": { "files": [ - "src/iter.func.php", - "src/iter.php", - "src/iter.rewindable.php" - ] + "src/functions.php" + ], + "psr-4": { + "Amp\\Serialization\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Nikita Popov", - "email": "nikic@php.net" + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], - "description": "Iteration primitives using generators", + "description": "Serialization tools for IPC and data storage in PHP.", + "homepage": "https://github.com/amphp/serialization", "keywords": [ - "functional", - "generator", - "iterator" + "async", + "asynchronous", + "serialization", + "serialize" ], "support": { - "issues": "https://github.com/nikic/iter/issues", - "source": "https://github.com/nikic/iter/tree/v2.4.1" + "issues": "https://github.com/amphp/serialization/issues", + "source": "https://github.com/amphp/serialization/tree/v1.1.0" }, - "time": "2024-03-19T20:45:05+00:00" + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2026-04-05T15:59:53+00:00" }, { - "name": "nikic/php-parser", - "version": "v5.9.0", + "name": "amphp/socket", + "version": "v2.4.1", "source": { "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "9e33da9553fe7786f0962b35f4e4ecf01be89def" + "url": "https://github.com/amphp/socket.git", + "reference": "b347be5aff6b2cc025208bb4d896607eb470c018" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/9e33da9553fe7786f0962b35f4e4ecf01be89def", - "reference": "9e33da9553fe7786f0962b35f4e4ecf01be89def", + "url": "https://api.github.com/repos/amphp/socket/zipball/b347be5aff6b2cc025208bb4d896607eb470c018", + "reference": "b347be5aff6b2cc025208bb4d896607eb470c018", "shasum": "" }, "require": { - "ext-json": "*", - "ext-tokenizer": "*", - "php": ">=7.4" + "amphp/amp": "^3", + "amphp/byte-stream": "^2", + "amphp/dns": "^2", + "ext-openssl": "*", + "kelunik/certificate": "^1.1", + "league/uri": "^7", + "league/uri-interfaces": "^7", + "php": ">=8.1", + "revolt/event-loop": "^1" }, "require-dev": { - "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^9.0" + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "amphp/process": "^2", + "phpunit/phpunit": "^9", + "psalm/phar": "6.16.1" }, - "bin": [ - "bin/php-parse" - ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, "autoload": { + "files": [ + "src/functions.php", + "src/Internal/functions.php", + "src/SocketAddress/functions.php" + ], "psr-4": { - "PhpParser\\": "lib/PhpParser" + "Amp\\Socket\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Nikita Popov" + "name": "Daniel Lowrey", + "email": "rdlowrey@gmail.com" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], - "description": "A PHP parser written in PHP", + "description": "Non-blocking socket connection / server implementations based on Amp and Revolt.", + "homepage": "https://github.com/amphp/socket", "keywords": [ - "parser", - "php" + "amp", + "async", + "encryption", + "non-blocking", + "sockets", + "tcp", + "tls" ], "support": { - "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.9.0" + "issues": "https://github.com/amphp/socket/issues", + "source": "https://github.com/amphp/socket/tree/v2.4.1" }, - "time": "2026-09-13T18:51:52+00:00" + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2026-08-22T18:13:20+00:00" }, { - "name": "phalcon/annotations", - "version": "1.0.x-dev", + "name": "amphp/sync", + "version": "v2.3.0", "source": { "type": "git", - "url": "https://github.com/phalcon/annotations.git", - "reference": "9fe4e374b805dafba42128c6d40c4e5c3595bb02" + "url": "https://github.com/amphp/sync.git", + "reference": "217097b785130d77cfcc58ff583cf26cd1770bf1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phalcon/annotations/zipball/9fe4e374b805dafba42128c6d40c4e5c3595bb02", - "reference": "9fe4e374b805dafba42128c6d40c4e5c3595bb02", + "url": "https://api.github.com/repos/amphp/sync/zipball/217097b785130d77cfcc58ff583cf26cd1770bf1", + "reference": "217097b785130d77cfcc58ff583cf26cd1770bf1", "shasum": "" }, "require": { - "ext-mbstring": "*", - "phalcon/traits": "^4.0", - "php": ">=8.1 <9.0" + "amphp/amp": "^3", + "amphp/pipeline": "^1", + "amphp/serialization": "^1", + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.95", - "pds/composer-script-names": "^1.0", - "pds/skeleton": "^1.0", - "phalcon/code-quality": "^1.0", - "phalcon/talon": "^1.0.0", - "phpstan/phpstan": "^2.0", - "phpunit/phpunit": "^10.5", - "squizlabs/php_codesniffer": "^4.0" - }, - "suggest": { - "ext-apcu": "Required by the Apcu annotations adapter", - "phalcon/phalcon": "The Phalcon framework this module integrates with" + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "5.23" }, - "default-branch": true, "type": "library", "autoload": { + "files": [ + "src/functions.php" + ], "psr-4": { - "Phalcon\\Annotations\\Docblock\\": "src/" + "Amp\\Sync\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Phalcon Team", - "email": "team@phalcon.io", - "homepage": "https://phalcon.io/en/team" + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" }, { - "name": "Contributors", - "homepage": "https://github.com/phalcon/annotations/graphs/contributors" + "name": "Niklas Keller", + "email": "me@kelunik.com" + }, + { + "name": "Stephen Coakley", + "email": "me@stephencoakley.com" } ], - "description": "Docblock annotations parser for the Phalcon Framework", - "homepage": "https://phalcon.io", + "description": "Non-blocking synchronization primitives for PHP based on Amp and Revolt.", + "homepage": "https://github.com/amphp/sync", "keywords": [ - "annotations", - "docblock", - "framework", - "parser", - "phalcon", - "php" + "async", + "asynchronous", + "mutex", + "semaphore", + "synchronization" ], "support": { - "discussions": "https://phalcon.io/discussions/", - "docs": "https://phalcon.io/docs/", - "email": "support@phalcon.io", - "issues": "https://github.com/phalcon/annotations/issues", - "rss": "https://blog.phalcon.io/rss", - "source": "https://github.com/phalcon/annotations" + "issues": "https://github.com/amphp/sync/issues", + "source": "https://github.com/amphp/sync/tree/v2.3.0" }, "funding": [ { - "url": "https://github.com/phalcon", + "url": "https://github.com/amphp", "type": "github" - }, - { - "url": "https://opencollective.com/phalcon", - "type": "open_collective" } ], - "time": "2026-09-19T02:21:59+00:00" + "time": "2024-08-03T19:31:26+00:00" }, { - "name": "phalcon/cli-options-parser", - "version": "v2.0.0", + "name": "behat/gherkin", + "version": "v4.17.0", "source": { "type": "git", - "url": "https://github.com/phalcon/cli-options-parser.git", - "reference": "ec4d4cd0b7e61046b88957a4028ad01dfa14f4e6" + "url": "https://github.com/Behat/Gherkin.git", + "reference": "5c8b3149fac39b5a79942b64eeec59a5ee4001c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phalcon/cli-options-parser/zipball/ec4d4cd0b7e61046b88957a4028ad01dfa14f4e6", - "reference": "ec4d4cd0b7e61046b88957a4028ad01dfa14f4e6", + "url": "https://api.github.com/repos/Behat/Gherkin/zipball/5c8b3149fac39b5a79942b64eeec59a5ee4001c0", + "reference": "5c8b3149fac39b5a79942b64eeec59a5ee4001c0", "shasum": "" }, "require": { - "php": ">=8.0" + "composer-runtime-api": "^2.2", + "php": ">=8.1 <8.6" }, "require-dev": { - "pds/skeleton": "^1.0", - "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^9.6", - "squizlabs/php_codesniffer": "^3.7" + "cucumber/gherkin-monorepo": "dev-gherkin-v39.1.0", + "friendsofphp/php-cs-fixer": "^3.77", + "mikey179/vfsstream": "^1.6", + "phpstan/extension-installer": "^1", + "phpstan/phpstan": "^2", + "phpstan/phpstan-phpunit": "^2", + "phpunit/phpunit": "^10.5", + "symfony/yaml": "^5.4 || ^6.4 || ^7.0" + }, + "suggest": { + "symfony/yaml": "If you want to parse features, represented in YAML files" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "4.x-dev" } }, "autoload": { "psr-4": { - "Phalcon\\Cop\\": "src/" + "Behat\\Gherkin\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Phalcon Team", - "email": "team@phalconphp.com", - "homepage": "https://phalconphp.com/en/team" - }, - { - "name": "Contributors", - "homepage": "https://github.com/phalcon/cli-options-parser/graphs/contributors" + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "https://everzet.com" } ], - "description": "Command line arguments/options parser.", - "homepage": "https://phalconphp.com", + "description": "Gherkin DSL parser for PHP", + "homepage": "https://behat.org/", "keywords": [ - "argparse", - "cli", - "command", - "command-line", - "getopt", - "line", - "option", - "optparse", - "parser", - "terminal" + "BDD", + "Behat", + "Cucumber", + "DSL", + "gherkin", + "parser" ], "support": { - "discord": "https://phalcon.io/discord/", - "issues": "https://github.com/phalcon/cli-options-parser/issues", - "source": "https://github.com/phalcon/cli-options-parser" + "issues": "https://github.com/Behat/Gherkin/issues", + "source": "https://github.com/Behat/Gherkin/tree/v4.17.0" }, "funding": [ { - "url": "https://github.com/phalcon", + "url": "https://github.com/acoulton", "type": "github" }, { - "url": "https://opencollective.com/phalcon", - "type": "open_collective" + "url": "https://github.com/carlos-granados", + "type": "github" + }, + { + "url": "https://github.com/stof", + "type": "github" } ], - "time": "2023-11-24T16:04:00+00:00" + "time": "2026-05-18T09:33:47+00:00" }, { - "name": "phalcon/migrations", - "version": "dev-master", + "name": "codeception/codeception", + "version": "5.3.5", "source": { "type": "git", - "url": "https://github.com/phalcon/migrations.git", - "reference": "0ec43e39e64be4140eb1a958c37c2832793a6a6e" + "url": "https://github.com/Codeception/Codeception.git", + "reference": "83c2986ec2abe594cee2f706d9ec7aca2878fbe0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Codeception/Codeception/zipball/83c2986ec2abe594cee2f706d9ec7aca2878fbe0", + "reference": "83c2986ec2abe594cee2f706d9ec7aca2878fbe0", + "shasum": "" }, "require": { - "nette/php-generator": "^4.0", - "phalcon/cli-options-parser": "^2.0", - "php": ">=8.2" + "behat/gherkin": "^4.12", + "codeception/lib-asserts": "^2.2 | ^3.0.1", + "codeception/stub": "^4.1", + "ext-curl": "*", + "ext-json": "*", + "ext-mbstring": "*", + "php": "^8.2", + "phpunit/php-code-coverage": "^9.2 | ^10.0 | ^11.0 | ^12.0 | ^13.0", + "phpunit/php-text-template": "^2.0 | ^3.0 | ^4.0 | ^5.0 | ^6.0", + "phpunit/php-timer": "^5.0.3 | ^6.0 | ^7.0 | ^8.0 | ^9.0", + "phpunit/phpunit": "^9.5.20 | ^10.0 | ^11.0 | ^12.0 | ^13.0", + "psy/psysh": "^0.11.2 | ^0.12", + "sebastian/comparator": "^4.0.5 | ^5.0 | ^6.0 | ^7.0 | ^8.0", + "sebastian/diff": "^4.0.3 | ^5.0 | ^6.0 | ^7.0 | ^8.0", + "symfony/console": ">=5.4.24 <9.0", + "symfony/css-selector": ">=5.4.24 <9.0", + "symfony/event-dispatcher": ">=5.4.24 <9.0", + "symfony/finder": ">=5.4.24 <9.0", + "symfony/var-dumper": ">=5.4.24 <9.0", + "symfony/yaml": ">=5.4.24 <9.0" + }, + "conflict": { + "codeception/lib-innerbrowser": "<3.1.3", + "codeception/module-filesystem": "<3.0", + "codeception/module-phpbrowser": "<2.5" + }, + "replace": { + "codeception/phpunit-wrapper": "*" }, "require-dev": { - "ext-pdo": "*", - "fakerphp/faker": "^1.24", - "friendsofphp/php-cs-fixer": "^3.95", - "humbug/box": "^4.7", - "pds/composer-script-names": "^1.0", - "pds/skeleton": "^1.0", - "phpstan/phpstan": "^2.1", - "phpunit/phpunit": "^11.5", - "squizlabs/php_codesniffer": "^4.0", - "vimeo/psalm": "^6.16", - "vlucas/phpdotenv": "^5.6" + "codeception/lib-innerbrowser": "*@dev", + "codeception/lib-web": "*@dev", + "codeception/module-asserts": "dev-master", + "codeception/module-cli": "*@dev", + "codeception/module-db": "*@dev", + "codeception/module-filesystem": "*@dev", + "codeception/module-phpbrowser": "*@dev", + "codeception/module-webdriver": "*@dev", + "codeception/util-universalframework": "*@dev", + "doctrine/orm": "^3.3", + "ext-simplexml": "*", + "jetbrains/phpstorm-attributes": "^1.0", + "laravel-zero/phar-updater": "^1.4", + "php-webdriver/webdriver": "^1.15", + "stecman/symfony-console-completion": "^0.14 || ^0.15", + "symfony/dotenv": ">=5.4.24 <9.0", + "symfony/error-handler": ">=5.4.24 <9.0", + "symfony/process": ">=5.4.24 <9.0", + "vlucas/phpdotenv": "^5.1" }, "suggest": { - "robmorgan/phinx": "Phinx makes it ridiculously easy to manage the database migrations for your PHP app." + "codeception/specify": "BDD-style code blocks", + "codeception/verify": "BDD-style assertions", + "ext-simplexml": "For loading params from XML files", + "stecman/symfony-console-completion": "For BASH autocompletion", + "symfony/dotenv": "For loading params from .env files", + "symfony/phpunit-bridge": "For phpunit-bridge support", + "vlucas/phpdotenv": "For loading params from .env files" }, - "default-branch": true, "bin": [ - "bin/phalcon-migrations" + "codecept" ], "type": "library", - "autoload": { - "psr-4": { - "Phalcon\\Migrations\\": "src/" - } - }, - "autoload-dev": { - "psr-4": { - "Phalcon\\Db\\": "tests/Fakes/Shims/Phalcon/Db/", - "Phalcon\\Migrations\\Tests\\": "tests/", - "Phalcon\\Migrations\\Tests\\Fakes\\": "tests/Fakes/", - "Phalcon\\Migrations\\Tests\\Unit\\": "tests/unit/" + "extra": { + "branch-alias": { + "dev-main": "5.3.x-dev" } }, - "archive": { - "exclude": [ - "/.github", - "/tests", - ".codacy.yml", - ".codecov.yml", - "CHANGELOG.md", - "resources/phpcs.xml", - "resources/phpstan.neon.dist", - "resources/psalm.xml.dist" - ] - }, - "scripts": { - "analyze": [ - "vendor/bin/phpstan analyse -c resources/phpstan.neon.dist" - ], - "analyze-psalm": [ - "vendor/bin/psalm -c resources/psalm.xml.dist" - ], - "cs": [ - "vendor/bin/phpcs --standard=resources/phpcs.xml" - ], - "cs-fix": [ - "vendor/bin/phpcbf --standard=resources/phpcs.xml" - ], - "cs-fixer": [ - "vendor/bin/php-cs-fixer fix --config=resources/php-cs-fixer.php --dry-run --diff" - ], - "cs-fixer-fix": [ - "vendor/bin/php-cs-fixer fix --config=resources/php-cs-fixer.php" - ], - "test": [ - "vendor/bin/phpunit -c resources/phpunit.xml.dist" - ], - "test-coverage": [ - "vendor/bin/phpunit -c resources/phpunit.xml.dist --coverage-clover tests/_output/coverage/clover.xml" + "autoload": { + "files": [ + "functions.php" ], - "test-coverage-html": [ - "vendor/bin/phpunit -c resources/phpunit.xml.dist --coverage-html tests/_output/coverage/html/" + "psr-4": { + "Codeception\\": "src/Codeception", + "Codeception\\Extension\\": "ext" + }, + "classmap": [ + "src/PHPUnit/TestCase.php" ] }, + "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Phalcon Team", - "email": "team@phalcon.io", - "homepage": "https://phalcon.io/en/team" - }, - { - "name": "Contributors", - "homepage": "https://github.com/phalcon/migrations/graphs/contributors" + "name": "Michael Bodnarchuk", + "email": "davert.ua@gmail.com", + "homepage": "https://codeception.com" } ], - "description": "Run and Generate DB Migrations with Phalcon Framework", - "homepage": "https://phalcon.io", + "description": "All-in-one PHP Testing Framework", + "homepage": "https://codeception.com/", "keywords": [ - "framework", - "migration", - "phalcon", - "phar" + "BDD", + "TDD", + "acceptance testing", + "functional testing", + "unit testing" ], "support": { - "issues": "https://github.com/phalcon/migrations/issues", - "source": "https://github.com/phalcon/migrations", - "forum": "https://forum.phalcon.io" + "issues": "https://github.com/Codeception/Codeception/issues", + "source": "https://github.com/Codeception/Codeception/tree/5.3.5" }, - "time": "2026-09-17T10:47:45+00:00" + "funding": [ + { + "url": "https://opencollective.com/codeception", + "type": "open_collective" + } + ], + "time": "2026-02-18T06:18:00+00:00" }, { - "name": "phalcon/phalcon", - "version": "v6.0.0RC2", + "name": "codeception/lib-asserts", + "version": "3.2.0", "source": { "type": "git", - "url": "https://github.com/phalcon/phalcon.git", - "reference": "e353b8a926cd022f06ac0f115bd5ddc1489ce311" + "url": "https://github.com/Codeception/lib-asserts.git", + "reference": "f161e5d3a9e5ae573ca01cfb3b5601ff5303df03" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phalcon/phalcon/zipball/e353b8a926cd022f06ac0f115bd5ddc1489ce311", - "reference": "e353b8a926cd022f06ac0f115bd5ddc1489ce311", + "url": "https://api.github.com/repos/Codeception/lib-asserts/zipball/f161e5d3a9e5ae573ca01cfb3b5601ff5303df03", + "reference": "f161e5d3a9e5ae573ca01cfb3b5601ff5303df03", "shasum": "" }, "require": { - "ext-fileinfo": "*", - "ext-json": "*", - "ext-mbstring": "*", - "ext-pdo": "*", - "ext-xml": "*", - "matthiasmullie/minify": "^1.3", - "phalcon/traits": "^4.1", - "php": ">=8.1 <9.0" - }, - "require-dev": { - "ext-gettext": "*", - "ext-yaml": "*", - "friendsofphp/php-cs-fixer": "^3.95", - "pds/composer-script-names": "^1.0", - "pds/skeleton": "^1.0", - "phalcon/annotations": "1.0.x-dev", - "phalcon/code-quality": "^1.0", - "phalcon/phql": "1.0.x-dev", - "phalcon/quill": "^0.5.0", - "phalcon/talon": "^1.0.0", - "phalcon/volt": "1.0.x-dev", - "phpbench/phpbench": "^1.4", - "phpstan/phpstan": "^2.2", - "phpunit/phpunit": "^10.5", - "predis/predis": "^3.4", - "squizlabs/php_codesniffer": "^4.0", - "vlucas/phpdotenv": "^5.6" - }, - "suggest": { - "ext-apcu": "to use Cache\\Adapter\\Apcu, Storage\\Adapter\\Apcu", - "ext-gd": "to use Image\\Adapter\\Gd", - "ext-igbinary": "to use Storage\\Serializer\\Igbinary", - "ext-imagick": "to use Image\\Adapter\\Imagick", - "ext-memcached": "to use Cache\\Adapter\\Libmemcached, Session\\Adapter\\Libmemcached, Storage\\Adapter\\Libmemcached", - "ext-openssl": "to use Encryption\\Crypt", - "ext-pcntl": "to use signal-based graceful shutdown in Queue\\Consumer\\Worker", - "ext-redis": "to use Cache\\Adapter\\Redis, Session\\Adapter\\Redis, Storage\\Adapter\\Redis", - "ext-yaml": "to use Config\\Adapter\\Yaml" + "ext-dom": "*", + "php": "^8.2 || ^8.3 || ^8.4 || ^8.5", + "phpunit/phpunit": "^11.5 || ^12.0 || ^13.0" }, "type": "library", "autoload": { - "psr-4": { - "Phalcon\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "Phalcon Framework", - "keywords": [ - "framework", - "php" - ], - "support": { - "issues": "https://github.com/phalcon/phalcon/issues", - "source": "https://github.com/phalcon/phalcon/tree/v6.0.0RC2" - }, - "funding": [ + "authors": [ { - "url": "https://github.com/phalcon", - "type": "github" + "name": "Michael Bodnarchuk", + "email": "davert@mail.ua", + "homepage": "http://codegyre.com" }, { - "url": "https://opencollective.com/phalcon", - "type": "open_collective" + "name": "Gintautas Miselis" + }, + { + "name": "Gustavo Nieves", + "homepage": "https://medium.com/@ganieves" } ], - "time": "2026-09-22T20:11:19+00:00" + "description": "Assertion methods used by Codeception core and Asserts module", + "homepage": "https://codeception.com/", + "keywords": [ + "codeception" + ], + "support": { + "issues": "https://github.com/Codeception/lib-asserts/issues", + "source": "https://github.com/Codeception/lib-asserts/tree/3.2.0" + }, + "time": "2026-02-06T15:19:32+00:00" }, { - "name": "phalcon/traits", - "version": "4.1.0", + "name": "codeception/lib-innerbrowser", + "version": "4.1.1", "source": { "type": "git", - "url": "https://github.com/phalcon/traits.git", - "reference": "a686028ef39ccbb6bd90fd56dc7c7389e768693e" + "url": "https://github.com/Codeception/lib-innerbrowser.git", + "reference": "0fa80deaed7da6a92a0cd4117338394c69196ec6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phalcon/traits/zipball/a686028ef39ccbb6bd90fd56dc7c7389e768693e", - "reference": "a686028ef39ccbb6bd90fd56dc7c7389e768693e", + "url": "https://api.github.com/repos/Codeception/lib-innerbrowser/zipball/0fa80deaed7da6a92a0cd4117338394c69196ec6", + "reference": "0fa80deaed7da6a92a0cd4117338394c69196ec6", "shasum": "" }, "require": { - "ext-json": "*", - "ext-mbstring": "*", - "php": ">=8.1 <9.0" + "codeception/codeception": "^5.0.8", + "codeception/lib-web": "^1.0.1 || ^2", + "ext-dom": "*", + "ext-json": "*", + "ext-mbstring": "*", + "php": "^8.1", + "phpunit/phpunit": "^10.0 || ^11.0 || ^12.0 || ^13.0", + "symfony/browser-kit": "^4.4.24 || ^5.4 || ^6.0 || ^7.0 || ^8.0", + "symfony/dom-crawler": "^4.4.30 || ^5.4 || ^6.0 || ^7.0 || ^8.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.75", - "pds/composer-script-names": "^1.0", - "pds/skeleton": "^1.0", - "phalcon/talon": "^1.0.0", - "phpstan/phpstan": "^2.2", - "phpunit/phpunit": "^10.5", - "squizlabs/php_codesniffer": "^4.0" - }, - "suggest": { - "ext-apcu": "For Php\\ApcuTrait", - "ext-gettext": "For the gettext-based translation helpers", - "ext-igbinary": "For Php\\IgbinaryTrait", - "ext-msgpack": "For Php\\MsgpackTrait", - "ext-yaml": "For Php\\YamlTrait" + "codeception/util-universalframework": "^1.0 || ^2.0" }, "type": "library", "autoload": { - "psr-4": { - "Phalcon\\Traits\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Phalcon Team", - "email": "team@phalcon.io", - "homepage": "https://phalcon.io/en/team" + "name": "Michael Bodnarchuk", + "email": "davert@mail.ua", + "homepage": "https://codegyre.com" }, { - "name": "Contributors", - "homepage": "https://github.com/phalcon/traits/graphs/contributors" + "name": "Gintautas Miselis" } ], - "description": "Phalcon Framework reusable traits", - "homepage": "https://phalcon.io", + "description": "Parent library for all Codeception framework modules and PhpBrowser", + "homepage": "https://codeception.com/", "keywords": [ - "framework", - "phalcon", - "php", - "traits" + "codeception" ], "support": { - "discord": "https://phalcon.io/discord/", - "issues": "https://github.com/phalcon/traits/issues", - "source": "https://github.com/phalcon/traits" + "issues": "https://github.com/Codeception/lib-innerbrowser/issues", + "source": "https://github.com/Codeception/lib-innerbrowser/tree/4.1.1" }, - "funding": [ - { - "url": "https://github.com/phalcon", - "type": "github" - }, - { - "url": "https://opencollective.com/phalcon", - "type": "open_collective" - } - ], - "time": "2026-09-04T16:43:18+00:00" + "time": "2026-06-26T22:06:27+00:00" }, { - "name": "phalcon/volt", - "version": "1.0.x-dev", + "name": "codeception/lib-web", + "version": "2.1.1", "source": { "type": "git", - "url": "https://github.com/phalcon/volt.git", - "reference": "4296eaab6af7b81d30b1c0f1a11204fd2bc46032" + "url": "https://github.com/Codeception/lib-web.git", + "reference": "b630c3a296685d20e8ea5c4a17b11f47ec381d91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phalcon/volt/zipball/4296eaab6af7b81d30b1c0f1a11204fd2bc46032", - "reference": "4296eaab6af7b81d30b1c0f1a11204fd2bc46032", + "url": "https://api.github.com/repos/Codeception/lib-web/zipball/b630c3a296685d20e8ea5c4a17b11f47ec381d91", + "reference": "b630c3a296685d20e8ea5c4a17b11f47ec381d91", "shasum": "" }, "require": { - "ext-ctype": "*", "ext-mbstring": "*", - "php": ">=8.1 <9.0" + "guzzlehttp/psr7": "^2.0 | ^3.0", + "php": "^8.2", + "phpunit/phpunit": "^11.5 | ^12 | ^13", + "symfony/css-selector": ">=4.4.24 <9.0" }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^3.95", - "pds/skeleton": "^1.0", - "phalcon/code-quality": "^1.0", - "phalcon/ide-stubs": "^5.8", - "phalcon/talon": "^1.0.0", - "phpstan/phpstan": "^2.0", - "phpunit/phpunit": "^10.5", - "squizlabs/php_codesniffer": "^4.0" + "conflict": { + "codeception/codeception": "<5.0.0-alpha3" }, - "suggest": { - "phalcon/phalcon": "The Phalcon framework this module integrates with" + "require-dev": { + "php-webdriver/webdriver": "^1.12" }, - "default-branch": true, "type": "library", "autoload": { - "files": [ - "resources/files/parser.php" - ], - "psr-4": { - "Phalcon\\Volt\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2864,71 +2967,47 @@ ], "authors": [ { - "name": "Phalcon Team", - "email": "team@phalcon.io", - "homepage": "https://phalcon.io/en/team" - }, - { - "name": "Contributors", - "homepage": "https://github.com/phalcon/volt/graphs/contributors" + "name": "Gintautas Miselis" } ], - "description": "Phalcon Volt is an HTML template engine for server-side rendering.", - "homepage": "https://phalcon.io", + "description": "Library containing files used by module-webdriver and lib-innerbrowser or module-phpbrowser", + "homepage": "https://codeception.com/", "keywords": [ - "engine", - "html", - "phalcon", - "template", - "volt" + "codeception" ], "support": { - "discussions": "https://phalcon.io/discussions/", - "docs": "https://phalcon.io/docs/", - "email": "support@phalcon.io", - "issues": "https://github.com/phalcon/volt/issues", - "rss": "https://blog.phalcon.io/rss", - "source": "https://github.com/phalcon/volt" + "issues": "https://github.com/Codeception/lib-web/issues", + "source": "https://github.com/Codeception/lib-web/tree/2.1.1" }, - "funding": [ - { - "url": "https://github.com/phalcon", - "type": "github" - }, - { - "url": "https://opencollective.com/phalcon", - "type": "open_collective" - } - ], - "time": "2026-09-23T22:32:17+00:00" + "time": "2026-07-22T06:33:17+00:00" }, { - "name": "phpdocumentor/reflection-common", - "version": "2.2.0", + "name": "codeception/module-asserts", + "version": "3.3.0", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + "url": "https://github.com/Codeception/module-asserts.git", + "reference": "3b4ec5dc771a135e13c79f7e9a6eacd74779e4ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "url": "https://api.github.com/repos/Codeception/module-asserts/zipball/3b4ec5dc771a135e13c79f7e9a6eacd74779e4ad", + "reference": "3b4ec5dc771a135e13c79f7e9a6eacd74779e4ad", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "codeception/codeception": "*@dev", + "codeception/lib-asserts": "^3.1", + "php": "^8.2" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-2.x": "2.x-dev" - } + "conflict": { + "codeception/codeception": "<5.0" }, + "type": "library", "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2936,67 +3015,56 @@ ], "authors": [ { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" + "name": "Michael Bodnarchuk" + }, + { + "name": "Gintautas Miselis" + }, + { + "name": "Gustavo Nieves", + "homepage": "https://medium.com/@ganieves" } ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", + "description": "Codeception module containing various assertions", + "homepage": "https://codeception.com/", "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" + "assertions", + "asserts", + "codeception" ], "support": { - "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", - "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + "issues": "https://github.com/Codeception/module-asserts/issues", + "source": "https://github.com/Codeception/module-asserts/tree/3.3.0" }, - "time": "2020-06-27T09:03:43+00:00" + "time": "2025-12-23T21:16:13+00:00" }, { - "name": "phpdocumentor/reflection-docblock", - "version": "5.6.7", + "name": "codeception/module-cli", + "version": "2.0.1", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "31a105931bc8ffa3a123383829772e832fd8d903" + "url": "https://github.com/Codeception/module-cli.git", + "reference": "a3a101fae4049fa2f810107f7bd5db3b3266ce63" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/31a105931bc8ffa3a123383829772e832fd8d903", - "reference": "31a105931bc8ffa3a123383829772e832fd8d903", + "url": "https://api.github.com/repos/Codeception/module-cli/zipball/a3a101fae4049fa2f810107f7bd5db3b3266ce63", + "reference": "a3a101fae4049fa2f810107f7bd5db3b3266ce63", "shasum": "" }, "require": { - "doctrine/deprecations": "^1.1", - "ext-filter": "*", - "php": "^7.4 || ^8.0", - "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.7", - "phpstan/phpdoc-parser": "^1.7|^2.0", - "webmozart/assert": "^1.9.1 || ^2" + "codeception/codeception": "*@dev", + "codeception/module-asserts": "*", + "php": "^7.4 || ^8.0" }, - "require-dev": { - "mockery/mockery": "~1.3.5 || ~1.6.0", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-mockery": "^1.1", - "phpstan/phpstan-webmozart-assert": "^1.2", - "phpunit/phpunit": "^9.5", - "psalm/phar": "^5.26" + "conflict": { + "codeception/codeception": "<4.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3004,61 +3072,47 @@ ], "authors": [ { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - }, - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" + "name": "Michael Bodnarchuk" } ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "description": "Codeception module for testing basic shell commands and shell output", + "homepage": "https://codeception.com/", + "keywords": [ + "codeception" + ], "support": { - "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.7" + "issues": "https://github.com/Codeception/module-cli/issues", + "source": "https://github.com/Codeception/module-cli/tree/2.0.1" }, - "time": "2026-03-18T20:47:46+00:00" + "time": "2023-01-13T18:41:03+00:00" }, { - "name": "phpdocumentor/type-resolver", - "version": "1.12.0", + "name": "codeception/module-filesystem", + "version": "3.0.2", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "92a98ada2b93d9b201a613cb5a33584dde25f195" + "url": "https://github.com/Codeception/module-filesystem.git", + "reference": "2a81b5534a6679b4f17256f8275ca0048add6ef8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/92a98ada2b93d9b201a613cb5a33584dde25f195", - "reference": "92a98ada2b93d9b201a613cb5a33584dde25f195", + "url": "https://api.github.com/repos/Codeception/module-filesystem/zipball/2a81b5534a6679b4f17256f8275ca0048add6ef8", + "reference": "2a81b5534a6679b4f17256f8275ca0048add6ef8", "shasum": "" }, "require": { - "doctrine/deprecations": "^1.0", - "php": "^7.3 || ^8.0", - "phpdocumentor/reflection-common": "^2.0", - "phpstan/phpdoc-parser": "^1.18|^2.0" + "codeception/codeception": "*@dev", + "php": "^8.2", + "symfony/finder": "^4.4 || ^5.4 || ^6.0 || ^7.0 || ^8.0" }, - "require-dev": { - "ext-tokenizer": "*", - "phpbench/phpbench": "^1.2", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-phpunit": "^1.1", - "phpunit/phpunit": "^9.5", - "rector/rector": "^0.13.9", - "vimeo/psalm": "^4.25" + "conflict": { + "codeception/codeception": "<5.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-1.x": "1.x-dev" - } - }, "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3066,165 +3120,173 @@ ], "authors": [ { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" + "name": "Michael Bodnarchuk" + }, + { + "name": "Gintautas Miselis" } ], - "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "description": "Codeception module for testing local filesystem", + "homepage": "https://codeception.com/", + "keywords": [ + "codeception", + "filesystem" + ], "support": { - "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.12.0" + "issues": "https://github.com/Codeception/module-filesystem/issues", + "source": "https://github.com/Codeception/module-filesystem/tree/3.0.2" }, - "time": "2025-11-21T15:09:14+00:00" + "time": "2025-11-28T11:47:18+00:00" }, { - "name": "phpoption/phpoption", - "version": "1.10.0", + "name": "codeception/module-phpbrowser", + "version": "4.1.0", "source": { "type": "git", - "url": "https://github.com/schmittjoh/php-option.git", - "reference": "67b192b6a42ec03944b972d6e633ddec78ad2c6d" + "url": "https://github.com/Codeception/module-phpbrowser.git", + "reference": "56903df98e29dedb51dd9f8d2dc00b05063c2135" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/67b192b6a42ec03944b972d6e633ddec78ad2c6d", - "reference": "67b192b6a42ec03944b972d6e633ddec78ad2c6d", + "url": "https://api.github.com/repos/Codeception/module-phpbrowser/zipball/56903df98e29dedb51dd9f8d2dc00b05063c2135", + "reference": "56903df98e29dedb51dd9f8d2dc00b05063c2135", "shasum": "" }, "require": { - "php": "^7.2.5 || ^8.0" + "codeception/codeception": "*@dev", + "codeception/lib-innerbrowser": "*@dev", + "ext-json": "*", + "guzzlehttp/guzzle": "^7.8.2 | ^8.0", + "guzzlehttp/psr7": "^2.6.3 | ^3.0", + "php": "^8.2", + "symfony/browser-kit": "^5.4 | ^6.0 | ^7.0 | ^8.0" + }, + "conflict": { + "codeception/codeception": "<5.0", + "codeception/lib-innerbrowser": "<3.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.54 || ^9.6.36 || ^10.5.64 || ^11.5.56 || ^12.5.33" + "aws/aws-sdk-php": "^3.199", + "codeception/module-rest": "^2.0 | *@dev", + "ext-curl": "*", + "phpstan/phpstan": "^2.2.6", + "squizlabs/php_codesniffer": "^3.10" }, - "type": "library", - "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": false - }, - "branch-alias": { - "dev-master": "1.9-dev" - } + "suggest": { + "codeception/phpbuiltinserver": "Start and stop PHP built-in web server for your tests" }, + "type": "library", "autoload": { - "psr-4": { - "PhpOption\\": "src/PhpOption/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache-2.0" + "MIT" ], "authors": [ { - "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com", - "homepage": "https://github.com/schmittjoh" + "name": "Michael Bodnarchuk" }, { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" + "name": "Gintautas Miselis" } ], - "description": "Option Type for PHP", + "description": "Codeception module for testing web application over HTTP", + "homepage": "https://codeception.com/", "keywords": [ - "language", - "option", - "php", - "type" + "codeception", + "functional-testing", + "http" ], "support": { - "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.10.0" + "issues": "https://github.com/Codeception/module-phpbrowser/issues", + "source": "https://github.com/Codeception/module-phpbrowser/tree/4.1.0" }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption", - "type": "tidelift" - } - ], - "time": "2026-08-24T00:54:40+00:00" + "time": "2026-07-27T06:11:37+00:00" }, { - "name": "phpstan/phpdoc-parser", - "version": "2.3.5", + "name": "codeception/stub", + "version": "4.3.0", "source": { "type": "git", - "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "148cefffaf0233e4c08cc13db8a195a56dd6dfe9" + "url": "https://github.com/Codeception/Stub.git", + "reference": "6305b97eaf6ea9bdaed29a5bd4d6f2948f577d8f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/148cefffaf0233e4c08cc13db8a195a56dd6dfe9", - "reference": "148cefffaf0233e4c08cc13db8a195a56dd6dfe9", + "url": "https://api.github.com/repos/Codeception/Stub/zipball/6305b97eaf6ea9bdaed29a5bd4d6f2948f577d8f", + "reference": "6305b97eaf6ea9bdaed29a5bd4d6f2948f577d8f", "shasum": "" }, "require": { - "php": "^7.4 || ^8.0" + "php": "^8.1", + "phpunit/phpunit": "^8.4 | ^9.0 | ^10.0 | ^11 | ^12 | ^13" + }, + "conflict": { + "codeception/codeception": "<5.0.6" }, "require-dev": { - "doctrine/annotations": "^2.0", - "nikic/php-parser": "^5.3.0", - "php-parallel-lint/php-parallel-lint": "^1.2", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^2.0", - "phpstan/phpstan-phpunit": "^2.0", - "phpstan/phpstan-strict-rules": "^2.0", - "phpunit/phpunit": "^9.6", - "symfony/process": "^5.2" + "consolidation/robo": "^4.0" }, "type": "library", "autoload": { "psr-4": { - "PHPStan\\PhpDocParser\\": [ - "src/" - ] + "Codeception\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "PHPDoc parser with support for nullable, intersection and generic types", + "description": "Flexible Stub wrapper for PHPUnit's Mock Builder", "support": { - "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.5" + "issues": "https://github.com/Codeception/Stub/issues", + "source": "https://github.com/Codeception/Stub/tree/4.3.0" }, - "time": "2026-08-31T16:05:28+00:00" + "time": "2026-02-06T15:19:04+00:00" }, { - "name": "psr/container", - "version": "2.0.2", + "name": "composer/pcre", + "version": "3.4.0", "source": { "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + "url": "https://github.com/composer/pcre.git", + "reference": "d5a341b3fb61f3001970940afb1d332968a183ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "url": "https://api.github.com/repos/composer/pcre/zipball/d5a341b3fb61f3001970940afb1d332968a183ed", + "reference": "d5a341b3fb61f3001970940afb1d332968a183ed", "shasum": "" }, "require": { - "php": ">=7.4.0" + "php": "^7.4 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<2.2.2" + }, + "require-dev": { + "phpstan/phpstan": "^2", + "phpstan/phpstan-deprecation-rules": "^2", + "phpstan/phpstan-strict-rules": "^2", + "phpunit/phpunit": "^9" }, "type": "library", "extra": { + "phpstan": { + "includes": [ + "extension.neon" + ] + }, "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-main": "3.x-dev" } }, "autoload": { "psr-4": { - "Psr\\Container\\": "src/" + "Composer\\Pcre\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -3233,51 +3295,64 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" } ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", + "description": "PCRE wrapping library that offers type-safe preg_* replacements.", "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" + "PCRE", + "preg", + "regex", + "regular expression" ], "support": { - "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/2.0.2" + "issues": "https://github.com/composer/pcre/issues", + "source": "https://github.com/composer/pcre/tree/3.4.0" }, - "time": "2021-11-05T16:47:00+00:00" - }, - { - "name": "psr/event-dispatcher", - "version": "1.0.0", + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + } + ], + "time": "2026-06-07T11:47:49+00:00" + }, + { + "name": "composer/semver", + "version": "3.4.4", "source": { "type": "git", - "url": "https://github.com/php-fig/event-dispatcher.git", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + "url": "https://github.com/composer/semver.git", + "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "url": "https://api.github.com/repos/composer/semver/zipball/198166618906cb2de69b95d7d47e5fa8aa1b2b95", + "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95", "shasum": "" }, "require": { - "php": ">=7.2.0" + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.11", + "symfony/phpunit-bridge": "^3 || ^7" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-main": "3.x-dev" } }, "autoload": { "psr-4": { - "Psr\\EventDispatcher\\": "src/" + "Composer\\Semver\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -3286,49 +3361,73 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" } ], - "description": "Standard interfaces for event handling.", + "description": "Semver library that offers utilities, version constraint parsing and validation.", "keywords": [ - "events", - "psr", - "psr-14" + "semantic", + "semver", + "validation", + "versioning" ], "support": { - "issues": "https://github.com/php-fig/event-dispatcher/issues", - "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/3.4.4" }, - "time": "2019-01-08T18:20:26+00:00" + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + } + ], + "time": "2025-08-20T19:15:30+00:00" }, { - "name": "psr/http-factory", - "version": "1.1.0", + "name": "composer/xdebug-handler", + "version": "3.0.5", "source": { "type": "git", - "url": "https://github.com/php-fig/http-factory.git", - "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", - "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef", "shasum": "" }, "require": { - "php": ">=7.1", - "psr/http-message": "^1.0 || ^2.0" + "composer/pcre": "^1 || ^2 || ^3", + "php": "^7.2.5 || ^8.0", + "psr/log": "^1 || ^2 || ^3" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } + "require-dev": { + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-strict-rules": "^1.1", + "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" }, + "type": "library", "autoload": { "psr-4": { - "Psr\\Http\\Message\\": "src/" + "Composer\\XdebugHandler\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -3337,375 +3436,391 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" } ], - "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", + "description": "Restarts a process without Xdebug.", "keywords": [ - "factory", - "http", - "message", - "psr", - "psr-17", - "psr-7", - "request", - "response" + "Xdebug", + "performance" ], "support": { - "source": "https://github.com/php-fig/http-factory" + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/xdebug-handler/issues", + "source": "https://github.com/composer/xdebug-handler/tree/3.0.5" }, - "time": "2024-04-15T12:06:14+00:00" + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2024-05-06T16:37:16+00:00" }, { - "name": "psr/http-message", - "version": "2.0", + "name": "danog/advanced-json-rpc", + "version": "v3.2.3", "source": { "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" + "url": "https://github.com/danog/php-advanced-json-rpc.git", + "reference": "ae703ea7b4811797a10590b6078de05b3b33dd91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", - "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "url": "https://api.github.com/repos/danog/php-advanced-json-rpc/zipball/ae703ea7b4811797a10590b6078de05b3b33dd91", + "reference": "ae703ea7b4811797a10590b6078de05b3b33dd91", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "netresearch/jsonmapper": "^5", + "php": ">=8.1", + "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0 || ^6" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } + "replace": { + "felixfbecker/php-advanced-json-rpc": "^3" + }, + "require-dev": { + "phpunit/phpunit": "^9" }, + "type": "library", "autoload": { "psr-4": { - "Psr\\Http\\Message\\": "src/" + "AdvancedJsonRpc\\": "lib/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "ISC" ], "authors": [ { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" + "name": "Felix Becker", + "email": "felix.b@outlook.com" + }, + { + "name": "Daniil Gentili", + "email": "daniil@daniil.it" } ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", - "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" - ], + "description": "A more advanced JSONRPC implementation", "support": { - "source": "https://github.com/php-fig/http-message/tree/2.0" + "issues": "https://github.com/danog/php-advanced-json-rpc/issues", + "source": "https://github.com/danog/php-advanced-json-rpc/tree/v3.2.3" }, - "time": "2023-04-04T09:54:51+00:00" + "time": "2026-01-12T21:07:10+00:00" }, { - "name": "psr/log", - "version": "3.0.2", + "name": "daverandom/libdns", + "version": "v2.1.0", "source": { "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" + "url": "https://github.com/DaveRandom/LibDNS.git", + "reference": "b84c94e8fe6b7ee4aecfe121bfe3b6177d303c8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", - "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "url": "https://api.github.com/repos/DaveRandom/LibDNS/zipball/b84c94e8fe6b7ee4aecfe121bfe3b6177d303c8a", + "reference": "b84c94e8fe6b7ee4aecfe121bfe3b6177d303c8a", "shasum": "" }, "require": { - "php": ">=8.0.0" + "ext-ctype": "*", + "php": ">=7.1" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } + "suggest": { + "ext-intl": "Required for IDN support" }, + "type": "library", "autoload": { + "files": [ + "src/functions.php" + ], "psr-4": { - "Psr\\Log\\": "src" + "LibDNS\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", + "description": "DNS protocol implementation written in pure PHP", "keywords": [ - "log", - "psr", - "psr-3" + "dns" ], "support": { - "source": "https://github.com/php-fig/log/tree/3.0.2" + "issues": "https://github.com/DaveRandom/LibDNS/issues", + "source": "https://github.com/DaveRandom/LibDNS/tree/v2.1.0" }, - "time": "2024-09-11T13:17:53+00:00" + "time": "2024-04-12T12:12:48+00:00" }, { - "name": "psy/psysh", - "version": "v0.12.24", + "name": "dnoegel/php-xdg-base-dir", + "version": "v0.1.1", "source": { "type": "git", - "url": "https://github.com/bobthecow/psysh.git", - "reference": "ca0fdcf8a7617afa3adfdf1b5fef573dffb69ca1" + "url": "https://github.com/dnoegel/php-xdg-base-dir.git", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/ca0fdcf8a7617afa3adfdf1b5fef573dffb69ca1", - "reference": "ca0fdcf8a7617afa3adfdf1b5fef573dffb69ca1", + "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", "shasum": "" }, "require": { - "ext-json": "*", - "ext-tokenizer": "*", - "nikic/php-parser": "^5.0 || ^4.0", - "php": "^8.0 || ^7.4", - "symfony/console": "^8.0 || ^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4", - "symfony/var-dumper": "^8.0 || ^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4" + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" + }, + "type": "library", + "autoload": { + "psr-4": { + "XdgBaseDir\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "implementation of xdg base directory specification for php", + "support": { + "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues", + "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1" + }, + "time": "2019-12-04T15:06:13+00:00" + }, + { + "name": "doctrine/deprecations", + "version": "1.1.6", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", + "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" }, "conflict": { - "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" + "phpunit/phpunit": "<=7.5 || >=14" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.2", - "composer/class-map-generator": "^1.6" + "doctrine/coding-standard": "^9 || ^12 || ^14", + "phpstan/phpstan": "1.4.10 || 2.1.30", + "phpstan/phpstan-phpunit": "^1.0 || ^2", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12.4 || ^13.0", + "psr/log": "^1 || ^2 || ^3" }, "suggest": { - "composer/class-map-generator": "Improved tab completion performance with better class discovery.", - "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", - "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well." + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" }, - "bin": [ - "bin/psysh" - ], "type": "library", - "extra": { - "bamarni-bin": { - "bin-links": false, - "forward-command": false - }, - "branch-alias": { - "dev-main": "0.12.x-dev" - } - }, "autoload": { - "files": [ - "src/functions.php" - ], "psr-4": { - "Psy\\": "src/" + "Doctrine\\Deprecations\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Justin Hileman", - "email": "justin@justinhileman.info" - } - ], - "description": "An interactive shell for modern PHP.", - "homepage": "https://psysh.org", - "keywords": [ - "REPL", - "console", - "interactive", - "shell" - ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", "support": { - "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.12.24" + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/1.1.6" }, - "time": "2026-06-29T15:41:09+00:00" + "time": "2026-02-07T07:09:04+00:00" }, { - "name": "revolt/event-loop", - "version": "v1.0.9", + "name": "felixfbecker/language-server-protocol", + "version": "v1.5.3", "source": { "type": "git", - "url": "https://github.com/revoltphp/event-loop.git", - "reference": "44061cf513e53c6200372fc935ac42271566295d" + "url": "https://github.com/felixfbecker/php-language-server-protocol.git", + "reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/revoltphp/event-loop/zipball/44061cf513e53c6200372fc935ac42271566295d", - "reference": "44061cf513e53c6200372fc935ac42271566295d", + "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/a9e113dbc7d849e35b8776da39edaf4313b7b6c9", + "reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=7.1" }, "require-dev": { - "ext-json": "*", - "jetbrains/phpstorm-stubs": "^2019.3", - "phpunit/phpunit": "^9", - "psalm/phar": "6.16.*" + "phpstan/phpstan": "*", + "squizlabs/php_codesniffer": "^3.1", + "vimeo/psalm": "^4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { "psr-4": { - "Revolt\\": "src" + "LanguageServerProtocol\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "ISC" ], "authors": [ { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" - }, - { - "name": "Cees-Jan Kiewiet", - "email": "ceesjank@gmail.com" - }, - { - "name": "Christian Lück", - "email": "christian@clue.engineering" - }, - { - "name": "Niklas Keller", - "email": "me@kelunik.com" + "name": "Felix Becker", + "email": "felix.b@outlook.com" } ], - "description": "Rock-solid event loop for concurrent PHP applications.", + "description": "PHP classes for the Language Server Protocol", "keywords": [ - "async", - "asynchronous", - "concurrency", - "event", - "event-loop", - "non-blocking", - "scheduler" + "language", + "microsoft", + "php", + "server" ], "support": { - "issues": "https://github.com/revoltphp/event-loop/issues", - "source": "https://github.com/revoltphp/event-loop/tree/v1.0.9" + "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues", + "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.3" }, - "time": "2026-05-16T17:55:38+00:00" + "time": "2024-04-30T00:40:11+00:00" }, { - "name": "sebastian/diff", - "version": "6.0.2", + "name": "fidry/console", + "version": "0.6.11", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544" + "url": "https://github.com/theofidry/console.git", + "reference": "bea8316beae874fc5b8be679d67dd3169c7e205f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544", - "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544", + "url": "https://api.github.com/repos/theofidry/console/zipball/bea8316beae874fc5b8be679d67dd3169c7e205f", + "reference": "bea8316beae874fc5b8be679d67dd3169c7e205f", "shasum": "" }, "require": { - "php": ">=8.2" + "php": "^8.2", + "psr/log": "^1.0 || ^2.0 || ^3.0", + "symfony/console": "^6.4 || ^7.2", + "symfony/deprecation-contracts": "^3.4", + "symfony/event-dispatcher-contracts": "^2.5 || ^3.0", + "symfony/polyfill-php84": "^1.31", + "symfony/service-contracts": "^2.5 || ^3.0", + "thecodingmachine/safe": "^2.0 || ^3.0", + "webmozart/assert": "^1.11" + }, + "conflict": { + "symfony/dependency-injection": "<6.4.0 || >=7.0.0 <7.2.0", + "symfony/framework-bundle": "<6.4.0 || >=7.0.0 <7.2.0", + "symfony/http-kernel": "<6.4.0 || >=7.0.0 <7.2.0" }, "require-dev": { - "phpunit/phpunit": "^11.0", - "symfony/process": "^4.2 || ^5" + "bamarni/composer-bin-plugin": "^1.8.2", + "composer/semver": "^3.3.2", + "ergebnis/composer-normalize": "^2.33", + "fidry/makefile": "^0.2.1 || ^1.0.0", + "infection/infection": "^0.28", + "phpunit/phpunit": "^10.2", + "symfony/dependency-injection": "^6.4 || ^7.2", + "symfony/flex": "^2.4.0", + "symfony/framework-bundle": "^6.4 || ^7.2", + "symfony/http-kernel": "^6.4 || ^7.2", + "symfony/yaml": "^6.4 || ^7.2" }, "type": "library", "extra": { + "bamarni-bin": { + "bin-links": false, + "forward-command": false + }, "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "1.0.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Fidry\\Console\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" + "name": "Théo Fidry", + "email": "theo.fidry@gmail.com" } ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", + "description": "Library to create CLI applications", "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" + "cli", + "console", + "symfony" ], "support": { - "issues": "https://github.com/sebastianbergmann/diff/issues", - "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2" + "issues": "https://github.com/theofidry/console/issues", + "source": "https://github.com/theofidry/console/tree/0.6.11" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://github.com/theofidry", "type": "github" } ], - "time": "2024-07-03T04:53:05+00:00" + "time": "2025-02-14T11:06:15+00:00" }, { - "name": "seld/jsonlint", - "version": "1.12.1", + "name": "fidry/cpu-core-counter", + "version": "1.3.0", "source": { "type": "git", - "url": "https://github.com/Seldaek/jsonlint.git", - "reference": "9a90eb5d32d5a500296bf43f946d60246444d5f7" + "url": "https://github.com/theofidry/cpu-core-counter.git", + "reference": "db9508f7b1474469d9d3c53b86f817e344732678" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/9a90eb5d32d5a500296bf43f946d60246444d5f7", - "reference": "9a90eb5d32d5a500296bf43f946d60246444d5f7", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/db9508f7b1474469d9d3c53b86f817e344732678", + "reference": "db9508f7b1474469d9d3c53b86f817e344732678", "shasum": "" }, "require": { - "php": "^5.3 || ^7.0 || ^8.0" + "php": "^7.2 || ^8.0" }, "require-dev": { - "phpstan/phpstan": "^1.11", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^8.5.13" - }, - "bin": [ - "bin/jsonlint" - ], - "type": "library", + "fidry/makefile": "^0.2.0", + "fidry/php-cs-fixer-config": "^1.1.2", + "phpstan/extension-installer": "^1.2.0", + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-deprecation-rules": "^2.0.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpstan/phpstan-strict-rules": "^2.0", + "phpunit/phpunit": "^8.5.31 || ^9.5.26", + "webmozarts/strict-phpunit": "^7.5" + }, + "type": "library", "autoload": { "psr-4": { - "Seld\\JsonLint\\": "src/Seld/JsonLint/" + "Fidry\\CpuCoreCounter\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -3714,134 +3829,119 @@ ], "authors": [ { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "https://seld.be" + "name": "Théo FIDRY", + "email": "theo.fidry@gmail.com" } ], - "description": "JSON Linter", + "description": "Tiny utility to get the number of CPU cores.", "keywords": [ - "json", - "linter", - "parser", - "validator" + "CPU", + "core" ], "support": { - "issues": "https://github.com/Seldaek/jsonlint/issues", - "source": "https://github.com/Seldaek/jsonlint/tree/1.12.1" + "issues": "https://github.com/theofidry/cpu-core-counter/issues", + "source": "https://github.com/theofidry/cpu-core-counter/tree/1.3.0" }, "funding": [ { - "url": "https://github.com/Seldaek", + "url": "https://github.com/theofidry", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint", - "type": "tidelift" } ], - "time": "2026-06-12T11:32:29+00:00" + "time": "2025-08-14T07:29:31+00:00" }, { - "name": "seld/phar-utils", - "version": "1.2.2", + "name": "fidry/filesystem", + "version": "1.2.3", "source": { "type": "git", - "url": "https://github.com/Seldaek/phar-utils.git", - "reference": "990bbd0e92caa216d52eca0935f6e35e589bfaa5" + "url": "https://github.com/theofidry/filesystem.git", + "reference": "3e1f9cac40f807b7c4196013ab77cc1b9416e3e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/990bbd0e92caa216d52eca0935f6e35e589bfaa5", - "reference": "990bbd0e92caa216d52eca0935f6e35e589bfaa5", + "url": "https://api.github.com/repos/theofidry/filesystem/zipball/3e1f9cac40f807b7c4196013ab77cc1b9416e3e5", + "reference": "3e1f9cac40f807b7c4196013ab77cc1b9416e3e5", "shasum": "" }, "require": { - "php": ">=5.3" + "php": "^8.1", + "symfony/filesystem": "^6.4 || ^7.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4", + "ergebnis/composer-normalize": "^2.28", + "infection/infection": ">=0.26", + "phpunit/phpunit": "^10.3", + "symfony/finder": "^6.4 || ^7.0" }, "type": "library", "extra": { + "bamarni-bin": { + "bin-links": false, + "forward-command": false + }, "branch-alias": { - "dev-master": "1.x-dev" + "dev-main": "1.0.x-dev" } }, "autoload": { "psr-4": { - "Seld\\PharUtils\\": "src/" + "Fidry\\FileSystem\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be" + "name": "Théo Fidry", + "email": "theo.fidry@gmail.com" } ], - "description": "PHAR file format utilities, for when PHP phars you up", + "description": "Symfony Filesystem with a few more utilities.", "keywords": [ - "phar" + "filesystem" ], "support": { - "issues": "https://github.com/Seldaek/phar-utils/issues", - "source": "https://github.com/Seldaek/phar-utils/tree/1.2.2" + "issues": "https://github.com/theofidry/filesystem/issues", + "source": "https://github.com/theofidry/filesystem/tree/1.2.3" }, - "time": "2026-08-01T12:48:55+00:00" + "funding": [ + { + "url": "https://github.com/theofidry", + "type": "github" + } + ], + "time": "2025-02-13T22:58:51+00:00" }, { - "name": "symfony/console", - "version": "v7.4.19", + "name": "graham-campbell/result-type", + "version": "v1.2.0", "source": { "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "3a1973458b153f566a8d7499bc06ece323d60063" + "url": "https://github.com/GrahamCampbell/Result-Type.git", + "reference": "adccca3324eece92ca35463648c12b9e6293c05b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/3a1973458b153f566a8d7499bc06ece323d60063", - "reference": "3a1973458b153f566a8d7499bc06ece323d60063", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/adccca3324eece92ca35463648c12b9e6293c05b", + "reference": "adccca3324eece92ca35463648c12b9e6293c05b", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^7.2|^8.0" - }, - "conflict": { - "symfony/dependency-injection": "<6.4", - "symfony/dotenv": "<6.4", - "symfony/event-dispatcher": "<6.4", - "symfony/lock": "<6.4", - "symfony/process": "<6.4" - }, - "provide": { - "psr/log-implementation": "1.0|2.0|3.0" + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.10" }, "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0|^8.0", - "symfony/dependency-injection": "^6.4|^7.0|^8.0", - "symfony/event-dispatcher": "^6.4|^7.0|^8.0", - "symfony/http-foundation": "^6.4|^7.0|^8.0", - "symfony/http-kernel": "^6.4|^7.0|^8.0", - "symfony/lock": "^6.4|^7.0|^8.0", - "symfony/messenger": "^6.4|^7.0|^8.0", - "symfony/process": "^6.4|^7.0|^8.0", - "symfony/stopwatch": "^6.4|^7.0|^8.0", - "symfony/var-dumper": "^6.4|^7.0|^8.0" + "phpunit/phpunit": "^8.5.52 || ^9.6.34 || ^10.5.63 || ^11.5.55 || ^12.5.14" }, "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "GrahamCampbell\\ResultType\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3849,76 +3949,87 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" } ], - "description": "Eases the creation of beautiful and testable command line interfaces", - "homepage": "https://symfony.com", + "description": "An Implementation Of The Result Type", "keywords": [ - "cli", - "command-line", - "console", - "terminal" + "Graham Campbell", + "GrahamCampbell", + "Result Type", + "Result-Type", + "result" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.4.19" + "issues": "https://github.com/GrahamCampbell/Result-Type/issues", + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.2.0" }, "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", + "url": "https://github.com/GrahamCampbell", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type", "type": "tidelift" } ], - "time": "2026-09-13T10:38:41+00:00" + "time": "2026-08-24T09:06:52+00:00" }, { - "name": "symfony/deprecation-contracts", - "version": "v3.7.1", + "name": "guzzlehttp/guzzle", + "version": "8.2.0", "source": { "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d" + "url": "https://github.com/guzzle/guzzle.git", + "reference": "93939470950a9b11e2e84204166ef5e048c55fe4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/f3202fa1b5097b0af062dc978b32ecf63404e31d", - "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/93939470950a9b11e2e84204166ef5e048c55fe4", + "reference": "93939470950a9b11e2e84204166ef5e048c55fe4", "shasum": "" }, "require": { - "php": ">=8.1" + "ext-json": "*", + "guzzlehttp/promises": "^3.0.2", + "guzzlehttp/psr7": "^3.1", + "php": "^7.4 || ^8.0", + "psr/http-client": "^1.0", + "psr/http-factory": "^1.0", + "symfony/polyfill-php80": "^1.25", + "symfony/polyfill-php82": "^1.27" + }, + "provide": { + "psr/http-client-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "ext-curl": "*", + "guzzle/client-integration-tests": "4.0.1", + "guzzlehttp/test-server": "^1.0.1", + "php-http/message-factory": "^1.1", + "phpunit/phpunit": "^9.6.34", + "psr/log": "^1.1 || ^2.0 || ^3.0" + }, + "suggest": { + "ext-curl": "Required for CURL handler support", + "ext-intl": "Required for Internationalized Domain Name (IDN) support", + "psr/log": "Required for using the Log middleware" }, "type": "library", "extra": { - "thanks": { - "url": "https://github.com/symfony/contracts", - "name": "symfony/contracts" - }, - "branch-alias": { - "dev-main": "3.7-dev" + "bamarni-bin": { + "bin-links": true, + "forward-command": false } }, "autoload": { - "files": [ - "function.php" - ] + "psr-4": { + "GuzzleHttp\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3926,70 +4037,104 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "A generic function and convention to trigger deprecation notices", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.1" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" }, { - "url": "https://github.com/fabpot", - "type": "github" + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" }, { - "url": "https://github.com/nicolas-grekas", + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "psr-18", + "psr-7", + "rest", + "web service" + ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/8.2.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", "type": "tidelift" } ], - "time": "2026-06-05T06:23:12+00:00" + "time": "2026-09-06T13:55:09+00:00" }, { - "name": "symfony/event-dispatcher-contracts", - "version": "v3.7.1", + "name": "guzzlehttp/promises", + "version": "3.0.2", "source": { "type": "git", - "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "c7de7a00ffb67842132da02ea92988a39ccd9f4e" + "url": "https://github.com/guzzle/promises.git", + "reference": "42118e66a53c492effaf92bc357e931985d5c6f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c7de7a00ffb67842132da02ea92988a39ccd9f4e", - "reference": "c7de7a00ffb67842132da02ea92988a39ccd9f4e", + "url": "https://api.github.com/repos/guzzle/promises/zipball/42118e66a53c492effaf92bc357e931985d5c6f9", + "reference": "42118e66a53c492effaf92bc357e931985d5c6f9", "shasum": "" }, "require": { - "php": ">=8.1", - "psr/event-dispatcher": "^1" + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^9.6.34" }, "type": "library", "extra": { - "thanks": { - "url": "https://github.com/symfony/contracts", - "name": "symfony/contracts" - }, - "branch-alias": { - "dev-main": "3.7-dev" + "bamarni-bin": { + "bin-links": true, + "forward-command": false } }, "autoload": { "psr-4": { - "Symfony\\Contracts\\EventDispatcher\\": "" + "GuzzleHttp\\Promise\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -3998,77 +4143,96 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" } ], - "description": "Generic abstractions related to dispatching event", - "homepage": "https://symfony.com", + "description": "Guzzle promises library", "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" + "promise" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.7.1" + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/3.0.2" }, "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", + "url": "https://github.com/GrahamCampbell", "type": "github" }, { - "url": "https://github.com/nicolas-grekas", + "url": "https://github.com/Nyholm", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", "type": "tidelift" } ], - "time": "2026-06-05T06:23:12+00:00" + "time": "2026-08-24T10:00:26+00:00" }, { - "name": "symfony/filesystem", - "version": "v7.4.18", + "name": "guzzlehttp/psr7", + "version": "3.1.0", "source": { "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "90d412aa5277c6819db39e7605aa46b1019e3232" + "url": "https://github.com/guzzle/psr7.git", + "reference": "a3059ba1a84c9139c4ae03cf0f45bea276c97c74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/90d412aa5277c6819db39e7605aa46b1019e3232", - "reference": "90d412aa5277c6819db39e7605aa46b1019e3232", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/a3059ba1a84c9139c4ae03cf0f45bea276c97c74", + "reference": "a3059ba1a84c9139c4ae03cf0f45bea276c97c74", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.8" + "php": "^7.4 || ^8.0", + "psr/http-factory": "^1.1", + "psr/http-message": "^2.0", + "symfony/polyfill-php80": "^1.25", + "symfony/polyfill-php82": "^1.27" + }, + "provide": { + "psr/http-factory-implementation": "1.1", + "psr/http-message-implementation": "2.0" }, "require-dev": { - "symfony/process": "^6.4|^7.0|^8.0" + "bamarni/composer-bin-plugin": "^1.8.2", + "http-interop/http-factory-tests": "1.1.0", + "jshttp/mime-db": "1.54.0.1", + "php-http/psr7-integration-tests": "^1.5.1", + "phpunit/phpunit": "^9.6.34" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" }, "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, "autoload": { "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "GuzzleHttp\\Psr7\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4076,67 +4240,160 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" } ], - "description": "Provides basic utilities for the filesystem", - "homepage": "https://symfony.com", + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.4.18" + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/3.1.0" }, "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", + "url": "https://github.com/GrahamCampbell", "type": "github" }, { - "url": "https://github.com/nicolas-grekas", + "url": "https://github.com/Nyholm", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", "type": "tidelift" } ], - "time": "2026-08-23T10:03:40+00:00" + "time": "2026-08-24T11:02:13+00:00" }, { - "name": "symfony/finder", - "version": "v7.4.19", + "name": "humbug/box", + "version": "4.7.0", "source": { "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "1b900bc6ae5ba60c5eee69c11ba44566190576fe" + "url": "https://github.com/box-project/box.git", + "reference": "9c2a430118f61ba4a20bc4969931494503f5da6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/1b900bc6ae5ba60c5eee69c11ba44566190576fe", - "reference": "1b900bc6ae5ba60c5eee69c11ba44566190576fe", + "url": "https://api.github.com/repos/box-project/box/zipball/9c2a430118f61ba4a20bc4969931494503f5da6a", + "reference": "9c2a430118f61ba4a20bc4969931494503f5da6a", "shasum": "" }, "require": { - "php": ">=8.2" - }, - "require-dev": { - "symfony/filesystem": "^6.4|^7.0|^8.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Finder\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "amphp/parallel": "^2.0", + "composer-plugin-api": "^2.2", + "composer/semver": "^3.3.2", + "composer/xdebug-handler": "^3.0.3", + "ext-iconv": "*", + "ext-mbstring": "*", + "ext-phar": "*", + "fidry/console": "^0.6.0", + "fidry/filesystem": "^1.2.1", + "humbug/php-scoper": "^0.18.14", + "justinrainbow/json-schema": "^6.2.0", + "nikic/iter": "^2.2", + "php": "^8.2", + "phpdocumentor/reflection-docblock": "^5.4", + "phpdocumentor/type-resolver": "^1.7", + "psr/log": "^3.0", + "sebastian/diff": "^5.0 || ^6.0 || ^7.0", + "seld/jsonlint": "^1.10.2", + "seld/phar-utils": "^1.2", + "symfony/finder": "^6.4.0 || ^7.0.0", + "symfony/polyfill-iconv": "^1.28", + "symfony/polyfill-mbstring": "^1.28", + "symfony/process": "^6.4.0 || ^7.0.0", + "symfony/var-dumper": "^6.4.0 || ^7.0.0", + "thecodingmachine/safe": "^2.5 || ^3.0", + "webmozart/assert": "^1.12" + }, + "conflict": { + "marc-mabe/php-enum": "<4.4" + }, + "replace": { + "symfony/polyfill-php80": "*", + "symfony/polyfill-php81": "*", + "symfony/polyfill-php82": "*" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "ergebnis/composer-normalize": "^2.29", + "ext-xml": "*", + "fidry/makefile": "^1.0.1", + "mikey179/vfsstream": "^1.6.11", + "phpspec/prophecy": "^1.18", + "phpspec/prophecy-phpunit": "^2.1.0", + "phpunit/phpunit": "^10.5.2", + "symfony/yaml": "^6.4.0 || ^7.0.0" + }, + "suggest": { + "ext-openssl": "To accelerate private key generation." + }, + "bin": [ + "bin/box" + ], + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": false, + "forward-command": false + }, + "branch-alias": { + "dev-main": "4.x-dev" + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "KevinGH\\Box\\": "src" + }, + "exclude-from-classmap": [ + "/Test/", + "vendor/humbug/php-scoper/vendor-hotfix" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4144,76 +4401,83 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Kevin Herrera", + "email": "kevin@herrera.io", + "homepage": "http://kevin.herrera.io" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Théo Fidry", + "email": "theo.fidry@gmail.com" } ], - "description": "Finds files and directories via an intuitive fluent interface", - "homepage": "https://symfony.com", + "description": "Fast, zero config application bundler with PHARs.", + "keywords": [ + "phar" + ], "support": { - "source": "https://github.com/symfony/finder/tree/v7.4.19" + "issues": "https://github.com/box-project/box/issues", + "source": "https://github.com/box-project/box/tree/4.7.0" }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-09-10T19:14:10+00:00" + "time": "2026-03-18T09:34:43+00:00" }, { - "name": "symfony/polyfill-ctype", - "version": "v1.37.0", + "name": "humbug/php-scoper", + "version": "0.18.18", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "141046a8f9477948ff284fa65be2095baafb94f2" + "url": "https://github.com/humbug/php-scoper.git", + "reference": "dd55d01a937602c9473cfbe0ecab9521cb9740aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/141046a8f9477948ff284fa65be2095baafb94f2", - "reference": "141046a8f9477948ff284fa65be2095baafb94f2", + "url": "https://api.github.com/repos/humbug/php-scoper/zipball/dd55d01a937602c9473cfbe0ecab9521cb9740aa", + "reference": "dd55d01a937602c9473cfbe0ecab9521cb9740aa", "shasum": "" }, "require": { - "php": ">=7.2" - }, - "provide": { - "ext-ctype": "*" + "fidry/console": "^0.6.10", + "fidry/filesystem": "^1.1", + "jetbrains/phpstorm-stubs": "^2024.1", + "nikic/php-parser": "^5.0", + "php": "^8.2", + "symfony/console": "^6.4 || ^7.0", + "symfony/filesystem": "^6.4 || ^7.0", + "symfony/finder": "^6.4 || ^7.0", + "symfony/var-dumper": "^7.1", + "thecodingmachine/safe": "^3.0" }, - "suggest": { - "ext-ctype": "For best performance" + "require-dev": { + "bamarni/composer-bin-plugin": "^1.1", + "ergebnis/composer-normalize": "^2.28", + "fidry/makefile": "^1.0", + "humbug/box": "^4.6.2", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^10.0 || ^11.0", + "symfony/yaml": "^6.4 || ^7.0" }, + "bin": [ + "bin/php-scoper" + ], "type": "library", "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" + "bamarni-bin": { + "bin-links": false, + "forward-command": false + }, + "branch-alias": { + "dev-master": "1.0-dev" } }, "autoload": { "files": [ - "bootstrap.php" + "src/functions.php" ], "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - } + "Humbug\\PhpScoper\\": "src/" + }, + "classmap": [ + "vendor-hotfix/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4221,162 +4485,112 @@ ], "authors": [ { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.37.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" }, { - "url": "https://github.com/nicolas-grekas", - "type": "github" + "name": "Théo Fidry", + "email": "theo.fidry@gmail.com" }, { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" + "name": "Pádraic Brady", + "email": "padraic.brady@gmail.com" } ], - "time": "2026-04-10T16:19:22+00:00" + "description": "Prefixes all PHP namespaces in a file or directory.", + "support": { + "issues": "https://github.com/humbug/php-scoper/issues", + "source": "https://github.com/humbug/php-scoper/tree/0.18.18" + }, + "time": "2025-10-15T15:29:47+00:00" }, { - "name": "symfony/polyfill-iconv", - "version": "v1.37.0", + "name": "jetbrains/phpstorm-stubs", + "version": "v2024.3", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "2c5729fd241b4b22f6e4b436bc3354a4f262df57" + "url": "https://github.com/JetBrains/phpstorm-stubs.git", + "reference": "0e82bdfe850c71857ee4ee3501ed82a9fc5d043c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/2c5729fd241b4b22f6e4b436bc3354a4f262df57", - "reference": "2c5729fd241b4b22f6e4b436bc3354a4f262df57", + "url": "https://api.github.com/repos/JetBrains/phpstorm-stubs/zipball/0e82bdfe850c71857ee4ee3501ed82a9fc5d043c", + "reference": "0e82bdfe850c71857ee4ee3501ed82a9fc5d043c", "shasum": "" }, - "require": { - "php": ">=7.2" - }, - "provide": { - "ext-iconv": "*" - }, - "suggest": { - "ext-iconv": "For best performance" + "require-dev": { + "friendsofphp/php-cs-fixer": "v3.64.0", + "nikic/php-parser": "v5.3.1", + "phpdocumentor/reflection-docblock": "5.6.0", + "phpunit/phpunit": "11.4.3" }, "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, "autoload": { "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Iconv\\": "" - } + "PhpStormStubsMap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "Apache-2.0" ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Iconv extension", - "homepage": "https://symfony.com", + "description": "PHP runtime & extensions header files for PhpStorm", + "homepage": "https://www.jetbrains.com/phpstorm", "keywords": [ - "compatibility", - "iconv", - "polyfill", - "portable", - "shim" + "autocomplete", + "code", + "inference", + "inspection", + "jetbrains", + "phpstorm", + "stubs", + "type" ], "support": { - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.37.0" + "source": "https://github.com/JetBrains/phpstorm-stubs/tree/v2024.3" }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-04-10T16:19:22+00:00" + "time": "2024-12-14T08:03:12+00:00" }, { - "name": "symfony/polyfill-intl-grapheme", - "version": "v1.41.0", + "name": "justinrainbow/json-schema", + "version": "6.13.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d" + "url": "https://github.com/jsonrainbow/json-schema.git", + "reference": "30de5e9b3fa04253af272a7d932a38cd026c311b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", - "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", + "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/30de5e9b3fa04253af272a7d932a38cd026c311b", + "reference": "30de5e9b3fa04253af272a7d932a38cd026c311b", "shasum": "" }, "require": { - "php": ">=7.2" + "ext-filter": "*", + "ext-json": "*", + "marc-mabe/php-enum": "^4.4", + "php": "^7.2 || ^8.0" }, - "suggest": { - "ext-intl": "For best performance" + "require-dev": { + "friendsofphp/php-cs-fixer": "3.3.0", + "json-schema/json-schema-test-suite": "dev-main", + "marc-mabe/php-enum-phpstan": "^2.0", + "phpspec/prophecy": "^1.19", + "phpstan/phpstan": "^1.12", + "phpunit/phpunit": "^8.5" }, + "bin": [ + "bin/validate-json" + ], "type": "library", "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" + "branch-alias": { + "dev-master": "6.x-dev" } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + "JsonSchema\\": "src/JsonSchema/" } }, "notification-url": "https://packagist.org/downloads/", @@ -4385,84 +4599,55 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Danny van der Sluijs", + "email": "danny.vandersluijs@icloud.com", + "role": "Maintainer" } ], - "description": "Symfony polyfill for intl's grapheme_* functions", - "homepage": "https://symfony.com", + "description": "A library to validate a json schema.", + "homepage": "https://github.com/jsonrainbow/json-schema", "keywords": [ - "compatibility", - "grapheme", - "intl", - "polyfill", - "portable", - "shim" + "json", + "schema" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.41.0" + "issues": "https://github.com/jsonrainbow/json-schema/issues", + "source": "https://github.com/jsonrainbow/json-schema/tree/6.13.0" }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-07-28T08:25:59+00:00" + "time": "2026-09-23T19:46:42+00:00" }, { - "name": "symfony/polyfill-intl-normalizer", - "version": "v1.42.0", + "name": "kelunik/certificate", + "version": "v1.1.3", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502" + "url": "https://github.com/kelunik/certificate.git", + "reference": "7e00d498c264d5eb4f78c69f41c8bd6719c0199e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/aa20edea75bd9c48cfecc8360922e5a6e5c44502", - "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502", + "url": "https://api.github.com/repos/kelunik/certificate/zipball/7e00d498c264d5eb4f78c69f41c8bd6719c0199e", + "reference": "7e00d498c264d5eb4f78c69f41c8bd6719c0199e", "shasum": "" }, "require": { - "php": ">=7.2" + "ext-openssl": "*", + "php": ">=7.0" }, - "suggest": { - "ext-intl": "For best performance" + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "phpunit/phpunit": "^6 | 7 | ^8 | ^9" }, "type": "library", "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" + "branch-alias": { + "dev-master": "1.x-dev" } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, - "classmap": [ - "Resources/stubs" - ] + "Kelunik\\Certificate\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4470,84 +4655,70 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], - "description": "Symfony polyfill for intl's Normalizer class and related functions", - "homepage": "https://symfony.com", + "description": "Access certificate details and transform between different formats.", "keywords": [ - "compatibility", - "intl", - "normalizer", - "polyfill", - "portable", - "shim" + "DER", + "certificate", + "certificates", + "openssl", + "pem", + "x509" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.42.0" + "issues": "https://github.com/kelunik/certificate/issues", + "source": "https://github.com/kelunik/certificate/tree/v1.1.3" }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-08-07T06:33:24+00:00" + "time": "2023-02-03T21:26:53+00:00" }, { - "name": "symfony/polyfill-mbstring", - "version": "v1.38.2", + "name": "league/uri", + "version": "7.8.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6" + "url": "https://github.com/thephpleague/uri.git", + "reference": "08cf38e3924d4f56238125547b5720496fac8fd4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", - "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", + "url": "https://api.github.com/repos/thephpleague/uri/zipball/08cf38e3924d4f56238125547b5720496fac8fd4", + "reference": "08cf38e3924d4f56238125547b5720496fac8fd4", "shasum": "" }, "require": { - "ext-iconv": "*", - "php": ">=7.2" + "league/uri-interfaces": "^7.8.1", + "php": "^8.1", + "psr/http-factory": "^1" }, - "provide": { - "ext-mbstring": "*" + "conflict": { + "league/uri-schemes": "^1.0" }, "suggest": { - "ext-mbstring": "For best performance" + "ext-bcmath": "to improve IPV4 host parsing", + "ext-dom": "to convert the URI into an HTML anchor tag", + "ext-fileinfo": "to create Data URI from file contennts", + "ext-gmp": "to improve IPV4 host parsing", + "ext-intl": "to handle IDN host with the best performance", + "ext-uri": "to use the PHP native URI class", + "jeremykendall/php-domain-parser": "to further parse the URI host and resolve its Public Suffix and Top Level Domain", + "league/uri-components": "to provide additional tools to manipulate URI objects components", + "league/uri-polyfill": "to backport the PHP URI extension for older versions of PHP", + "php-64bit": "to improve IPV4 host parsing", + "rowbot/url": "to handle URLs using the WHATWG URL Living Standard specification", + "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" }, "type": "library", "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" + "branch-alias": { + "dev-master": "7.x-dev" } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" + "League\\Uri\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -4556,80 +4727,88 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" } ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", + "description": "URI manipulation library", + "homepage": "https://uri.thephpleague.com", "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" + "URN", + "data-uri", + "file-uri", + "ftp", + "hostname", + "http", + "https", + "middleware", + "parse_str", + "parse_url", + "psr-7", + "query-string", + "querystring", + "rfc2141", + "rfc3986", + "rfc3987", + "rfc6570", + "rfc8141", + "uri", + "uri-template", + "url", + "ws" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.38.2" + "docs": "https://uri.thephpleague.com", + "forum": "https://thephpleague.slack.com", + "issues": "https://github.com/thephpleague/uri-src/issues", + "source": "https://github.com/thephpleague/uri/tree/7.8.1" }, "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", + "url": "https://github.com/sponsors/nyamsprod", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" } ], - "time": "2026-05-27T06:59:30+00:00" + "time": "2026-03-15T20:22:25+00:00" }, { - "name": "symfony/polyfill-php84", - "version": "v1.38.1", + "name": "league/uri-interfaces", + "version": "7.8.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php84.git", - "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa" + "url": "https://github.com/thephpleague/uri-interfaces.git", + "reference": "85d5c77c5d6d3af6c54db4a78246364908f3c928" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa", - "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa", + "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/85d5c77c5d6d3af6c54db4a78246364908f3c928", + "reference": "85d5c77c5d6d3af6c54db4a78246364908f3c928", "shasum": "" }, "require": { - "php": ">=7.2" + "ext-filter": "*", + "php": "^8.1", + "psr/http-message": "^1.1 || ^2.0" + }, + "suggest": { + "ext-bcmath": "to improve IPV4 host parsing", + "ext-gmp": "to improve IPV4 host parsing", + "ext-intl": "to handle IDN host with the best performance", + "php-64bit": "to improve IPV4 host parsing", + "rowbot/url": "to handle URLs using the WHATWG URL Living Standard specification", + "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" }, "type": "library", "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" + "branch-alias": { + "dev-master": "7.x-dev" } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Php84\\": "" - }, - "classmap": [ - "Resources/stubs" - ] + "League\\Uri\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4637,240 +4816,150 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" } ], - "description": "Symfony polyfill backporting some PHP 8.4+ features to lower PHP versions", - "homepage": "https://symfony.com", + "description": "Common tools for parsing and resolving RFC3987/RFC3986 URI", + "homepage": "https://uri.thephpleague.com", "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" + "data-uri", + "file-uri", + "ftp", + "hostname", + "http", + "https", + "parse_str", + "parse_url", + "psr-7", + "query-string", + "querystring", + "rfc3986", + "rfc3987", + "rfc6570", + "uri", + "url", + "ws" ], "support": { - "source": "https://github.com/symfony/polyfill-php84/tree/v1.38.1" + "docs": "https://uri.thephpleague.com", + "forum": "https://thephpleague.slack.com", + "issues": "https://github.com/thephpleague/uri-src/issues", + "source": "https://github.com/thephpleague/uri-interfaces/tree/7.8.1" }, "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", + "url": "https://github.com/sponsors/nyamsprod", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" } ], - "time": "2026-05-26T12:51:13+00:00" + "time": "2026-03-08T20:05:35+00:00" }, { - "name": "symfony/process", - "version": "v7.4.19", + "name": "marc-mabe/php-enum", + "version": "v4.7.2", "source": { "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "ed0ae095b86994d370d5791612e55984f15aa30e" + "url": "https://github.com/marc-mabe/php-enum.git", + "reference": "bb426fcdd65c60fb3638ef741e8782508fda7eef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/ed0ae095b86994d370d5791612e55984f15aa30e", - "reference": "ed0ae095b86994d370d5791612e55984f15aa30e", + "url": "https://api.github.com/repos/marc-mabe/php-enum/zipball/bb426fcdd65c60fb3638ef741e8782508fda7eef", + "reference": "bb426fcdd65c60fb3638ef741e8782508fda7eef", "shasum": "" }, "require": { - "php": ">=8.2" + "ext-reflection": "*", + "php": "^7.1 | ^8.0" + }, + "require-dev": { + "phpbench/phpbench": "^0.16.10 || ^1.0.4", + "phpstan/phpstan": "^1.3.1", + "phpunit/phpunit": "^7.5.20 | ^8.5.22 | ^9.5.11", + "vimeo/psalm": "^4.17.0 | ^5.26.1" }, "type": "library", + "extra": { + "branch-alias": { + "dev-3.x": "3.2-dev", + "dev-master": "4.7-dev" + } + }, "autoload": { "psr-4": { - "Symfony\\Component\\Process\\": "" + "MabeEnum\\": "src/" }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "stubs/Stringable.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Marc Bennewitz", + "email": "dev@mabe.berlin", + "homepage": "https://mabe.berlin/", + "role": "Lead" } ], - "description": "Executes commands in sub-processes", - "homepage": "https://symfony.com", + "description": "Simple and fast implementation of enumerations with native PHP", + "homepage": "https://github.com/marc-mabe/php-enum", + "keywords": [ + "enum", + "enum-map", + "enum-set", + "enumeration", + "enumerator", + "enummap", + "enumset", + "map", + "set", + "type", + "type-hint", + "typehint" + ], "support": { - "source": "https://github.com/symfony/process/tree/v7.4.19" + "issues": "https://github.com/marc-mabe/php-enum/issues", + "source": "https://github.com/marc-mabe/php-enum/tree/v4.7.2" }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-09-02T12:38:34+00:00" + "time": "2025-09-14T11:18:39+00:00" }, { - "name": "symfony/service-contracts", - "version": "v3.7.3", + "name": "masterminds/html5", + "version": "2.11.0", "source": { "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257" + "url": "https://github.com/Masterminds/html5-php.git", + "reference": "a1e7a2f88ee13635d86fc61cfbdf2306a76ddfc7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", - "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/a1e7a2f88ee13635d86fc61cfbdf2306a76ddfc7", + "reference": "a1e7a2f88ee13635d86fc61cfbdf2306a76ddfc7", "shasum": "" }, "require": { - "php": ">=8.1", - "psr/container": "^1.1|^2.0", - "symfony/deprecation-contracts": "^2.5|^3" + "ext-dom": "*", + "php": ">=7.4" }, - "conflict": { - "ext-psr": "<1.1|>=2" + "require-dev": { + "phpunit/phpunit": "^6 || ^7 || ^8 || ^9 || ^10" }, "type": "library", "extra": { - "thanks": { - "url": "https://github.com/symfony/contracts", - "name": "symfony/contracts" - }, "branch-alias": { - "dev-main": "3.7-dev" + "dev-master": "2.7-dev" } }, "autoload": { "psr-4": { - "Symfony\\Contracts\\Service\\": "" - }, - "exclude-from-classmap": [ - "/Test/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to writing services", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.7.3" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" + "Masterminds\\": "src" } - ], - "time": "2026-07-27T15:39:01+00:00" - }, - { - "name": "symfony/string", - "version": "v7.4.19", - "source": { - "type": "git", - "url": "https://github.com/symfony/string.git", - "reference": "02731ce2bd26514bec9efc0baef2cd0b0cf67f46" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/02731ce2bd26514bec9efc0baef2cd0b0cf67f46", - "reference": "02731ce2bd26514bec9efc0baef2cd0b0cf67f46", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3.0", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.33", - "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/translation-contracts": "<2.5" - }, - "require-dev": { - "symfony/emoji": "^7.1|^8.0", - "symfony/http-client": "^6.4|^7.0|^8.0", - "symfony/intl": "^6.4|^7.0|^8.0", - "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.4|^7.0|^8.0" - }, - "type": "library", - "autoload": { - "files": [ - "Resources/functions.php" - ], - "psr-4": { - "Symfony\\Component\\String\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4878,649 +4967,281 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", - "homepage": "https://symfony.com", - "keywords": [ - "grapheme", - "i18n", - "string", - "unicode", - "utf-8", - "utf8" - ], - "support": { - "source": "https://github.com/symfony/string/tree/v7.4.19" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-09-11T14:46:58+00:00" - }, - { - "name": "symfony/var-dumper", - "version": "v7.4.18", - "source": { - "type": "git", - "url": "https://github.com/symfony/var-dumper.git", - "reference": "e088da50b813f32473a76871616cbb8fa54653a8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/e088da50b813f32473a76871616cbb8fa54653a8", - "reference": "e088da50b813f32473a76871616cbb8fa54653a8", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/console": "<6.4" - }, - "require-dev": { - "symfony/console": "^6.4|^7.0|^8.0", - "symfony/http-kernel": "^6.4|^7.0|^8.0", - "symfony/process": "^6.4|^7.0|^8.0", - "symfony/uid": "^6.4|^7.0|^8.0", - "twig/twig": "^3.12|^4.0" - }, - "bin": [ - "Resources/bin/var-dump-server" - ], - "type": "library", - "autoload": { - "files": [ - "Resources/functions/dump.php" - ], - "psr-4": { - "Symfony\\Component\\VarDumper\\": "" + "name": "Matt Butcher", + "email": "technosophos@gmail.com" }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Matt Farina", + "email": "matt@mattfarina.com" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" } ], - "description": "Provides mechanisms for walking through any arbitrary PHP variable", - "homepage": "https://symfony.com", + "description": "An HTML5 parser and serializer.", + "homepage": "http://masterminds.github.io/html5-php", "keywords": [ - "debug", - "dump" - ], - "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.4.18" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-08-30T20:10:52+00:00" - }, - { - "name": "thecodingmachine/safe", - "version": "v3.4.0", - "source": { - "type": "git", - "url": "https://github.com/thecodingmachine/safe.git", - "reference": "705683a25bacf0d4860c7dea4d7947bfd09eea19" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/705683a25bacf0d4860c7dea4d7947bfd09eea19", - "reference": "705683a25bacf0d4860c7dea4d7947bfd09eea19", - "shasum": "" - }, - "require": { - "php": "^8.1" - }, - "require-dev": { - "php-parallel-lint/php-parallel-lint": "^1.4", - "phpstan/phpstan": "^2", - "phpunit/phpunit": "^10", - "squizlabs/php_codesniffer": "^3.2" - }, - "type": "library", - "autoload": { - "files": [ - "lib/special_cases.php", - "generated/apache.php", - "generated/apcu.php", - "generated/array.php", - "generated/bzip2.php", - "generated/calendar.php", - "generated/classobj.php", - "generated/com.php", - "generated/cubrid.php", - "generated/curl.php", - "generated/datetime.php", - "generated/dir.php", - "generated/eio.php", - "generated/errorfunc.php", - "generated/exec.php", - "generated/fileinfo.php", - "generated/filesystem.php", - "generated/filter.php", - "generated/fpm.php", - "generated/ftp.php", - "generated/funchand.php", - "generated/gettext.php", - "generated/gmp.php", - "generated/gnupg.php", - "generated/hash.php", - "generated/ibase.php", - "generated/ibmDb2.php", - "generated/iconv.php", - "generated/image.php", - "generated/imap.php", - "generated/info.php", - "generated/inotify.php", - "generated/json.php", - "generated/ldap.php", - "generated/libxml.php", - "generated/lzf.php", - "generated/mailparse.php", - "generated/mbstring.php", - "generated/misc.php", - "generated/mysql.php", - "generated/mysqli.php", - "generated/network.php", - "generated/oci8.php", - "generated/opcache.php", - "generated/openssl.php", - "generated/outcontrol.php", - "generated/pcntl.php", - "generated/pcre.php", - "generated/pgsql.php", - "generated/posix.php", - "generated/ps.php", - "generated/pspell.php", - "generated/readline.php", - "generated/rnp.php", - "generated/rpminfo.php", - "generated/rrd.php", - "generated/sem.php", - "generated/session.php", - "generated/shmop.php", - "generated/sockets.php", - "generated/sodium.php", - "generated/solr.php", - "generated/spl.php", - "generated/sqlsrv.php", - "generated/ssdeep.php", - "generated/ssh2.php", - "generated/stream.php", - "generated/strings.php", - "generated/swoole.php", - "generated/uodbc.php", - "generated/uopz.php", - "generated/url.php", - "generated/var.php", - "generated/xdiff.php", - "generated/xml.php", - "generated/xmlrpc.php", - "generated/yaml.php", - "generated/yaz.php", - "generated/zip.php", - "generated/zlib.php" - ], - "classmap": [ - "lib/DateTime.php", - "lib/DateTimeImmutable.php", - "lib/Exceptions/", - "generated/Exceptions/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" + "HTML5", + "dom", + "html", + "parser", + "querypath", + "serializer", + "xml" ], - "description": "PHP core functions that throw exceptions instead of returning FALSE on error", "support": { - "issues": "https://github.com/thecodingmachine/safe/issues", - "source": "https://github.com/thecodingmachine/safe/tree/v3.4.0" + "issues": "https://github.com/Masterminds/html5-php/issues", + "source": "https://github.com/Masterminds/html5-php/tree/2.11.0" }, - "funding": [ - { - "url": "https://github.com/OskarStark", - "type": "github" - }, - { - "url": "https://github.com/shish", - "type": "github" - }, - { - "url": "https://github.com/silasjoisten", - "type": "github" - }, - { - "url": "https://github.com/staabm", - "type": "github" - } - ], - "time": "2026-02-04T18:08:13+00:00" + "time": "2026-08-18T06:18:41+00:00" }, { - "name": "vlucas/phpdotenv", - "version": "v5.7.0", + "name": "myclabs/deep-copy", + "version": "1.14.0", "source": { "type": "git", - "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "301c07936b16d88628b126b01d082ba153cf4c40" + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "8680aa248f8e07bc8fb43f56f0f5fc77a0c96aae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/301c07936b16d88628b126b01d082ba153cf4c40", - "reference": "301c07936b16d88628b126b01d082ba153cf4c40", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/8680aa248f8e07bc8fb43f56f0f5fc77a0c96aae", + "reference": "8680aa248f8e07bc8fb43f56f0f5fc77a0c96aae", "shasum": "" }, "require": { - "ext-pcre": "*", - "graham-campbell/result-type": "^1.2", - "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.10", - "symfony/polyfill-ctype": "^1.26", - "symfony/polyfill-mbstring": "^1.26", - "symfony/polyfill-php80": "^1.26" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.2", - "ext-filter": "*", - "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" + "php": "^8.0" }, - "suggest": { - "ext-filter": "Required to use the boolean validator." + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3 <3.2.2" }, - "type": "library", - "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": false - }, - "branch-alias": { - "dev-master": "5.6-dev" - } + "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", "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], "psr-4": { - "Dotenv\\": "src/" + "DeepCopy\\": "src/DeepCopy/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Vance Lucas", - "email": "vance@vancelucas.com", - "homepage": "https://github.com/vlucas" - } + "MIT" ], - "description": "Loads environment variables from `.env` to `$_ENV` and `$_SERVER` automagically, and optionally to `getenv()`.", + "description": "Create deep copies (clones) of your objects", "keywords": [ - "dotenv", - "env", - "environment" + "clone", + "copy", + "duplicate", + "object", + "object graph" ], "support": { - "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v5.7.0" + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.14.0" }, "funding": [ { - "url": "https://github.com/GrahamCampbell", + "url": "https://github.com/mnapoli", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv", - "type": "tidelift" } ], - "time": "2026-08-24T18:07:49+00:00" + "time": "2026-08-11T10:17:44+00:00" }, { - "name": "webmozart/assert", - "version": "1.12.1", + "name": "netresearch/jsonmapper", + "version": "v5.0.1", "source": { "type": "git", - "url": "https://github.com/webmozarts/assert.git", - "reference": "9be6926d8b485f55b9229203f962b51ed377ba68" + "url": "https://github.com/cweiske/jsonmapper.git", + "reference": "980674efdda65913492d29a8fd51c82270dd37bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/9be6926d8b485f55b9229203f962b51ed377ba68", - "reference": "9be6926d8b485f55b9229203f962b51ed377ba68", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/980674efdda65913492d29a8fd51c82270dd37bb", + "reference": "980674efdda65913492d29a8fd51c82270dd37bb", "shasum": "" }, "require": { - "ext-ctype": "*", - "ext-date": "*", - "ext-filter": "*", - "php": "^7.2 || ^8.0" + "ext-json": "*", + "ext-pcre": "*", + "ext-reflection": "*", + "ext-spl": "*", + "php": ">=7.1" }, - "suggest": { - "ext-intl": "", - "ext-simplexml": "", - "ext-spl": "" + "require-dev": { + "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0 || ~10.0", + "squizlabs/php_codesniffer": "~3.5" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.10-dev" - } - }, "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" + "psr-0": { + "JsonMapper": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "OSL-3.0" ], "authors": [ { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" + "name": "Christian Weiske", + "email": "cweiske@cweiske.de", + "homepage": "http://github.com/cweiske/jsonmapper/", + "role": "Developer" } ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], + "description": "Map nested JSON structures onto PHP classes", "support": { - "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/1.12.1" + "email": "cweiske@cweiske.de", + "issues": "https://github.com/cweiske/jsonmapper/issues", + "source": "https://github.com/cweiske/jsonmapper/tree/v5.0.1" }, - "time": "2025-10-29T15:56:20+00:00" - } - ], - "packages-dev": [ + "time": "2026-02-22T16:28:03+00:00" + }, { - "name": "behat/gherkin", - "version": "v4.17.0", + "name": "nikic/iter", + "version": "v2.4.1", "source": { "type": "git", - "url": "https://github.com/Behat/Gherkin.git", - "reference": "5c8b3149fac39b5a79942b64eeec59a5ee4001c0" + "url": "https://github.com/nikic/iter.git", + "reference": "3f031ae08d82c4394410e76b88b441331a6fa15f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Gherkin/zipball/5c8b3149fac39b5a79942b64eeec59a5ee4001c0", - "reference": "5c8b3149fac39b5a79942b64eeec59a5ee4001c0", + "url": "https://api.github.com/repos/nikic/iter/zipball/3f031ae08d82c4394410e76b88b441331a6fa15f", + "reference": "3f031ae08d82c4394410e76b88b441331a6fa15f", "shasum": "" }, "require": { - "composer-runtime-api": "^2.2", - "php": ">=8.1 <8.6" + "php": ">=7.1" }, "require-dev": { - "cucumber/gherkin-monorepo": "dev-gherkin-v39.1.0", - "friendsofphp/php-cs-fixer": "^3.77", - "mikey179/vfsstream": "^1.6", - "phpstan/extension-installer": "^1", - "phpstan/phpstan": "^2", - "phpstan/phpstan-phpunit": "^2", - "phpunit/phpunit": "^10.5", - "symfony/yaml": "^5.4 || ^6.4 || ^7.0" - }, - "suggest": { - "symfony/yaml": "If you want to parse features, represented in YAML files" + "phpstan/phpstan": "^1.4", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", + "vimeo/psalm": "^4.18 || ^5.13" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.x-dev" - } - }, "autoload": { - "psr-4": { - "Behat\\Gherkin\\": "src/" - } + "files": [ + "src/iter.func.php", + "src/iter.php", + "src/iter.rewindable.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "https://everzet.com" + "name": "Nikita Popov", + "email": "nikic@php.net" } ], - "description": "Gherkin DSL parser for PHP", - "homepage": "https://behat.org/", + "description": "Iteration primitives using generators", "keywords": [ - "BDD", - "Behat", - "Cucumber", - "DSL", - "gherkin", - "parser" + "functional", + "generator", + "iterator" ], "support": { - "issues": "https://github.com/Behat/Gherkin/issues", - "source": "https://github.com/Behat/Gherkin/tree/v4.17.0" + "issues": "https://github.com/nikic/iter/issues", + "source": "https://github.com/nikic/iter/tree/v2.4.1" }, - "funding": [ - { - "url": "https://github.com/acoulton", - "type": "github" - }, - { - "url": "https://github.com/carlos-granados", - "type": "github" - }, - { - "url": "https://github.com/stof", - "type": "github" - } - ], - "time": "2026-05-18T09:33:47+00:00" + "time": "2024-03-19T20:45:05+00:00" }, { - "name": "codeception/codeception", - "version": "5.3.5", + "name": "phar-io/manifest", + "version": "2.0.4", "source": { "type": "git", - "url": "https://github.com/Codeception/Codeception.git", - "reference": "83c2986ec2abe594cee2f706d9ec7aca2878fbe0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Codeception/Codeception/zipball/83c2986ec2abe594cee2f706d9ec7aca2878fbe0", - "reference": "83c2986ec2abe594cee2f706d9ec7aca2878fbe0", - "shasum": "" - }, - "require": { - "behat/gherkin": "^4.12", - "codeception/lib-asserts": "^2.2 | ^3.0.1", - "codeception/stub": "^4.1", - "ext-curl": "*", - "ext-json": "*", - "ext-mbstring": "*", - "php": "^8.2", - "phpunit/php-code-coverage": "^9.2 | ^10.0 | ^11.0 | ^12.0 | ^13.0", - "phpunit/php-text-template": "^2.0 | ^3.0 | ^4.0 | ^5.0 | ^6.0", - "phpunit/php-timer": "^5.0.3 | ^6.0 | ^7.0 | ^8.0 | ^9.0", - "phpunit/phpunit": "^9.5.20 | ^10.0 | ^11.0 | ^12.0 | ^13.0", - "psy/psysh": "^0.11.2 | ^0.12", - "sebastian/comparator": "^4.0.5 | ^5.0 | ^6.0 | ^7.0 | ^8.0", - "sebastian/diff": "^4.0.3 | ^5.0 | ^6.0 | ^7.0 | ^8.0", - "symfony/console": ">=5.4.24 <9.0", - "symfony/css-selector": ">=5.4.24 <9.0", - "symfony/event-dispatcher": ">=5.4.24 <9.0", - "symfony/finder": ">=5.4.24 <9.0", - "symfony/var-dumper": ">=5.4.24 <9.0", - "symfony/yaml": ">=5.4.24 <9.0" - }, - "conflict": { - "codeception/lib-innerbrowser": "<3.1.3", - "codeception/module-filesystem": "<3.0", - "codeception/module-phpbrowser": "<2.5" - }, - "replace": { - "codeception/phpunit-wrapper": "*" - }, - "require-dev": { - "codeception/lib-innerbrowser": "*@dev", - "codeception/lib-web": "*@dev", - "codeception/module-asserts": "dev-master", - "codeception/module-cli": "*@dev", - "codeception/module-db": "*@dev", - "codeception/module-filesystem": "*@dev", - "codeception/module-phpbrowser": "*@dev", - "codeception/module-webdriver": "*@dev", - "codeception/util-universalframework": "*@dev", - "doctrine/orm": "^3.3", - "ext-simplexml": "*", - "jetbrains/phpstorm-attributes": "^1.0", - "laravel-zero/phar-updater": "^1.4", - "php-webdriver/webdriver": "^1.15", - "stecman/symfony-console-completion": "^0.14 || ^0.15", - "symfony/dotenv": ">=5.4.24 <9.0", - "symfony/error-handler": ">=5.4.24 <9.0", - "symfony/process": ">=5.4.24 <9.0", - "vlucas/phpdotenv": "^5.1" + "url": "https://github.com/phar-io/manifest.git", + "reference": "54750ef60c58e43759730615a392c31c80e23176" }, - "suggest": { - "codeception/specify": "BDD-style code blocks", - "codeception/verify": "BDD-style assertions", - "ext-simplexml": "For loading params from XML files", - "stecman/symfony-console-completion": "For BASH autocompletion", - "symfony/dotenv": "For loading params from .env files", - "symfony/phpunit-bridge": "For phpunit-bridge support", - "vlucas/phpdotenv": "For loading params from .env files" + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", + "reference": "54750ef60c58e43759730615a392c31c80e23176", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" }, - "bin": [ - "codecept" - ], "type": "library", "extra": { "branch-alias": { - "dev-main": "5.3.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { - "files": [ - "functions.php" - ], - "psr-4": { - "Codeception\\": "src/Codeception", - "Codeception\\Extension\\": "ext" - }, "classmap": [ - "src/PHPUnit/TestCase.php" + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Michael Bodnarchuk", - "email": "davert.ua@gmail.com", - "homepage": "https://codeception.com" + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" } ], - "description": "All-in-one PHP Testing Framework", - "homepage": "https://codeception.com/", - "keywords": [ - "BDD", - "TDD", - "acceptance testing", - "functional testing", - "unit testing" - ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", "support": { - "issues": "https://github.com/Codeception/Codeception/issues", - "source": "https://github.com/Codeception/Codeception/tree/5.3.5" + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.4" }, "funding": [ { - "url": "https://opencollective.com/codeception", - "type": "open_collective" + "url": "https://github.com/theseer", + "type": "github" } ], - "time": "2026-02-18T06:18:00+00:00" + "time": "2024-03-03T12:33:53+00:00" }, { - "name": "codeception/lib-asserts", - "version": "3.2.0", + "name": "phar-io/version", + "version": "3.2.1", "source": { "type": "git", - "url": "https://github.com/Codeception/lib-asserts.git", - "reference": "f161e5d3a9e5ae573ca01cfb3b5601ff5303df03" + "url": "https://github.com/phar-io/version.git", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/lib-asserts/zipball/f161e5d3a9e5ae573ca01cfb3b5601ff5303df03", - "reference": "f161e5d3a9e5ae573ca01cfb3b5601ff5303df03", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", "shasum": "" }, "require": { - "ext-dom": "*", - "php": "^8.2 || ^8.3 || ^8.4 || ^8.5", - "phpunit/phpunit": "^11.5 || ^12.0 || ^13.0" + "php": "^7.2 || ^8.0" }, "type": "library", "autoload": { @@ -5530,66 +5251,127 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Michael Bodnarchuk", - "email": "davert@mail.ua", - "homepage": "http://codegyre.com" + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" }, { - "name": "Gintautas Miselis" + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" }, { - "name": "Gustavo Nieves", - "homepage": "https://medium.com/@ganieves" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" } ], - "description": "Assertion methods used by Codeception core and Asserts module", - "homepage": "https://codeception.com/", + "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", "keywords": [ - "codeception" + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" ], "support": { - "issues": "https://github.com/Codeception/lib-asserts/issues", - "source": "https://github.com/Codeception/lib-asserts/tree/3.2.0" + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" }, - "time": "2026-02-06T15:19:32+00:00" + "time": "2020-06-27T09:03:43+00:00" }, { - "name": "codeception/lib-innerbrowser", - "version": "4.1.1", + "name": "phpdocumentor/reflection-docblock", + "version": "5.6.7", "source": { "type": "git", - "url": "https://github.com/Codeception/lib-innerbrowser.git", - "reference": "0fa80deaed7da6a92a0cd4117338394c69196ec6" + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "31a105931bc8ffa3a123383829772e832fd8d903" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/lib-innerbrowser/zipball/0fa80deaed7da6a92a0cd4117338394c69196ec6", - "reference": "0fa80deaed7da6a92a0cd4117338394c69196ec6", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/31a105931bc8ffa3a123383829772e832fd8d903", + "reference": "31a105931bc8ffa3a123383829772e832fd8d903", "shasum": "" }, "require": { - "codeception/codeception": "^5.0.8", - "codeception/lib-web": "^1.0.1 || ^2", - "ext-dom": "*", - "ext-json": "*", - "ext-mbstring": "*", - "php": "^8.1", - "phpunit/phpunit": "^10.0 || ^11.0 || ^12.0 || ^13.0", - "symfony/browser-kit": "^4.4.24 || ^5.4 || ^6.0 || ^7.0 || ^8.0", - "symfony/dom-crawler": "^4.4.30 || ^5.4 || ^6.0 || ^7.0 || ^8.0" + "doctrine/deprecations": "^1.1", + "ext-filter": "*", + "php": "^7.4 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.7", + "phpstan/phpdoc-parser": "^1.7|^2.0", + "webmozart/assert": "^1.9.1 || ^2" }, "require-dev": { - "codeception/util-universalframework": "^1.0 || ^2.0" + "mockery/mockery": "~1.3.5 || ~1.6.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-webmozart-assert": "^1.2", + "phpunit/phpunit": "^9.5", + "psalm/phar": "^5.26" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5597,57 +5379,61 @@ ], "authors": [ { - "name": "Michael Bodnarchuk", - "email": "davert@mail.ua", - "homepage": "https://codegyre.com" + "name": "Mike van Riel", + "email": "me@mikevanriel.com" }, { - "name": "Gintautas Miselis" + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" } ], - "description": "Parent library for all Codeception framework modules and PhpBrowser", - "homepage": "https://codeception.com/", - "keywords": [ - "codeception" - ], + "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/Codeception/lib-innerbrowser/issues", - "source": "https://github.com/Codeception/lib-innerbrowser/tree/4.1.1" + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.7" }, - "time": "2026-06-26T22:06:27+00:00" + "time": "2026-03-18T20:47:46+00:00" }, { - "name": "codeception/lib-web", - "version": "2.1.1", + "name": "phpdocumentor/type-resolver", + "version": "1.12.0", "source": { "type": "git", - "url": "https://github.com/Codeception/lib-web.git", - "reference": "b630c3a296685d20e8ea5c4a17b11f47ec381d91" + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "92a98ada2b93d9b201a613cb5a33584dde25f195" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/lib-web/zipball/b630c3a296685d20e8ea5c4a17b11f47ec381d91", - "reference": "b630c3a296685d20e8ea5c4a17b11f47ec381d91", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/92a98ada2b93d9b201a613cb5a33584dde25f195", + "reference": "92a98ada2b93d9b201a613cb5a33584dde25f195", "shasum": "" }, "require": { - "ext-mbstring": "*", - "guzzlehttp/psr7": "^2.0 | ^3.0", - "php": "^8.2", - "phpunit/phpunit": "^11.5 | ^12 | ^13", - "symfony/css-selector": ">=4.4.24 <9.0" - }, - "conflict": { - "codeception/codeception": "<5.0.0-alpha3" + "doctrine/deprecations": "^1.0", + "php": "^7.3 || ^8.0", + "phpdocumentor/reflection-common": "^2.0", + "phpstan/phpdoc-parser": "^1.18|^2.0" }, "require-dev": { - "php-webdriver/webdriver": "^1.12" + "ext-tokenizer": "*", + "phpbench/phpbench": "^1.2", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^9.5", + "rector/rector": "^0.13.9", + "vimeo/psalm": "^4.25" }, "type": "library", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + } + }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5655,151 +5441,162 @@ ], "authors": [ { - "name": "Gintautas Miselis" + "name": "Mike van Riel", + "email": "me@mikevanriel.com" } ], - "description": "Library containing files used by module-webdriver and lib-innerbrowser or module-phpbrowser", - "homepage": "https://codeception.com/", - "keywords": [ - "codeception" - ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { - "issues": "https://github.com/Codeception/lib-web/issues", - "source": "https://github.com/Codeception/lib-web/tree/2.1.1" + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.12.0" }, - "time": "2026-07-22T06:33:17+00:00" + "time": "2025-11-21T15:09:14+00:00" }, { - "name": "codeception/module-asserts", - "version": "3.3.0", + "name": "phpoption/phpoption", + "version": "1.10.0", "source": { "type": "git", - "url": "https://github.com/Codeception/module-asserts.git", - "reference": "3b4ec5dc771a135e13c79f7e9a6eacd74779e4ad" + "url": "https://github.com/schmittjoh/php-option.git", + "reference": "67b192b6a42ec03944b972d6e633ddec78ad2c6d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/module-asserts/zipball/3b4ec5dc771a135e13c79f7e9a6eacd74779e4ad", - "reference": "3b4ec5dc771a135e13c79f7e9a6eacd74779e4ad", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/67b192b6a42ec03944b972d6e633ddec78ad2c6d", + "reference": "67b192b6a42ec03944b972d6e633ddec78ad2c6d", "shasum": "" }, "require": { - "codeception/codeception": "*@dev", - "codeception/lib-asserts": "^3.1", - "php": "^8.2" + "php": "^7.2.5 || ^8.0" }, - "conflict": { - "codeception/codeception": "<5.0" + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.54 || ^9.6.36 || ^10.5.64 || ^11.5.56 || ^12.5.33" }, "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + }, + "branch-alias": { + "dev-master": "1.9-dev" + } + }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "PhpOption\\": "src/PhpOption/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "Apache-2.0" ], "authors": [ { - "name": "Michael Bodnarchuk" - }, - { - "name": "Gintautas Miselis" + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com", + "homepage": "https://github.com/schmittjoh" }, { - "name": "Gustavo Nieves", - "homepage": "https://medium.com/@ganieves" + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" } ], - "description": "Codeception module containing various assertions", - "homepage": "https://codeception.com/", + "description": "Option Type for PHP", "keywords": [ - "assertions", - "asserts", - "codeception" + "language", + "option", + "php", + "type" ], "support": { - "issues": "https://github.com/Codeception/module-asserts/issues", - "source": "https://github.com/Codeception/module-asserts/tree/3.3.0" + "issues": "https://github.com/schmittjoh/php-option/issues", + "source": "https://github.com/schmittjoh/php-option/tree/1.10.0" }, - "time": "2025-12-23T21:16:13+00:00" + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption", + "type": "tidelift" + } + ], + "time": "2026-08-24T00:54:40+00:00" }, { - "name": "codeception/module-cli", - "version": "2.0.1", + "name": "phpstan/phpdoc-parser", + "version": "2.3.5", "source": { "type": "git", - "url": "https://github.com/Codeception/module-cli.git", - "reference": "a3a101fae4049fa2f810107f7bd5db3b3266ce63" + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "148cefffaf0233e4c08cc13db8a195a56dd6dfe9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/module-cli/zipball/a3a101fae4049fa2f810107f7bd5db3b3266ce63", - "reference": "a3a101fae4049fa2f810107f7bd5db3b3266ce63", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/148cefffaf0233e4c08cc13db8a195a56dd6dfe9", + "reference": "148cefffaf0233e4c08cc13db8a195a56dd6dfe9", "shasum": "" }, "require": { - "codeception/codeception": "*@dev", - "codeception/module-asserts": "*", "php": "^7.4 || ^8.0" }, - "conflict": { - "codeception/codeception": "<4.0" + "require-dev": { + "doctrine/annotations": "^2.0", + "nikic/php-parser": "^5.3.0", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpstan/phpstan-strict-rules": "^2.0", + "phpunit/phpunit": "^9.6", + "symfony/process": "^5.2" }, "type": "library", "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Michael Bodnarchuk" - } - ], - "description": "Codeception module for testing basic shell commands and shell output", - "homepage": "https://codeception.com/", - "keywords": [ - "codeception" - ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { - "issues": "https://github.com/Codeception/module-cli/issues", - "source": "https://github.com/Codeception/module-cli/tree/2.0.1" + "issues": "https://github.com/phpstan/phpdoc-parser/issues", + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.5" }, - "time": "2023-01-13T18:41:03+00:00" + "time": "2026-08-31T16:05:28+00:00" }, { - "name": "codeception/module-filesystem", - "version": "3.0.2", - "source": { - "type": "git", - "url": "https://github.com/Codeception/module-filesystem.git", - "reference": "2a81b5534a6679b4f17256f8275ca0048add6ef8" - }, + "name": "phpstan/phpstan", + "version": "2.2.15", "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/module-filesystem/zipball/2a81b5534a6679b4f17256f8275ca0048add6ef8", - "reference": "2a81b5534a6679b4f17256f8275ca0048add6ef8", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/b158556ffd26825cf615a1c1f72fb5157a2301b7", + "reference": "b158556ffd26825cf615a1c1f72fb5157a2301b7", "shasum": "" }, "require": { - "codeception/codeception": "*@dev", - "php": "^8.2", - "symfony/finder": "^4.4 || ^5.4 || ^6.0 || ^7.0 || ^8.0" + "php": "^7.4|^8.0" }, "conflict": { - "codeception/codeception": "<5.0" + "phpstan/phpstan-shim": "*" }, + "bin": [ + "phpstan", + "phpstan.phar" + ], "type": "library", "autoload": { - "classmap": [ - "src/" + "files": [ + "bootstrap.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -5808,496 +5605,506 @@ ], "authors": [ { - "name": "Michael Bodnarchuk" + "name": "Ondřej Mirtes" }, { - "name": "Gintautas Miselis" + "name": "Markus Staab" + }, + { + "name": "Vincent Langlet" } ], - "description": "Codeception module for testing local filesystem", - "homepage": "https://codeception.com/", + "description": "PHPStan - PHP Static Analysis Tool", "keywords": [ - "codeception", - "filesystem" + "dev", + "static analysis" ], "support": { - "issues": "https://github.com/Codeception/module-filesystem/issues", - "source": "https://github.com/Codeception/module-filesystem/tree/3.0.2" - }, - "time": "2025-11-28T11:47:18+00:00" - }, - { - "name": "codeception/module-phpbrowser", - "version": "4.1.0", - "source": { - "type": "git", - "url": "https://github.com/Codeception/module-phpbrowser.git", - "reference": "56903df98e29dedb51dd9f8d2dc00b05063c2135" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Codeception/module-phpbrowser/zipball/56903df98e29dedb51dd9f8d2dc00b05063c2135", - "reference": "56903df98e29dedb51dd9f8d2dc00b05063c2135", - "shasum": "" - }, - "require": { - "codeception/codeception": "*@dev", - "codeception/lib-innerbrowser": "*@dev", - "ext-json": "*", - "guzzlehttp/guzzle": "^7.8.2 | ^8.0", - "guzzlehttp/psr7": "^2.6.3 | ^3.0", - "php": "^8.2", - "symfony/browser-kit": "^5.4 | ^6.0 | ^7.0 | ^8.0" - }, - "conflict": { - "codeception/codeception": "<5.0", - "codeception/lib-innerbrowser": "<3.0" - }, - "require-dev": { - "aws/aws-sdk-php": "^3.199", - "codeception/module-rest": "^2.0 | *@dev", - "ext-curl": "*", - "phpstan/phpstan": "^2.2.6", - "squizlabs/php_codesniffer": "^3.10" - }, - "suggest": { - "codeception/phpbuiltinserver": "Start and stop PHP built-in web server for your tests" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] + "docs": "https://phpstan.org/user-guide/getting-started", + "forum": "https://github.com/phpstan/phpstan/discussions", + "issues": "https://github.com/phpstan/phpstan/issues", + "security": "https://github.com/phpstan/phpstan/security/policy", + "source": "https://github.com/phpstan/phpstan-src" }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ + "funding": [ { - "name": "Michael Bodnarchuk" + "url": "https://github.com/ondrejmirtes", + "type": "github" }, { - "name": "Gintautas Miselis" + "url": "https://github.com/phpstan", + "type": "github" } ], - "description": "Codeception module for testing web application over HTTP", - "homepage": "https://codeception.com/", - "keywords": [ - "codeception", - "functional-testing", - "http" - ], - "support": { - "issues": "https://github.com/Codeception/module-phpbrowser/issues", - "source": "https://github.com/Codeception/module-phpbrowser/tree/4.1.0" - }, - "time": "2026-07-27T06:11:37+00:00" + "time": "2026-09-23T12:23:07+00:00" }, { - "name": "codeception/stub", - "version": "4.3.0", + "name": "phpunit/php-code-coverage", + "version": "11.0.12", "source": { "type": "git", - "url": "https://github.com/Codeception/Stub.git", - "reference": "6305b97eaf6ea9bdaed29a5bd4d6f2948f577d8f" + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "2c1ed04922802c15e1de5d7447b4856de949cf56" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Stub/zipball/6305b97eaf6ea9bdaed29a5bd4d6f2948f577d8f", - "reference": "6305b97eaf6ea9bdaed29a5bd4d6f2948f577d8f", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2c1ed04922802c15e1de5d7447b4856de949cf56", + "reference": "2c1ed04922802c15e1de5d7447b4856de949cf56", "shasum": "" }, "require": { - "php": "^8.1", - "phpunit/phpunit": "^8.4 | ^9.0 | ^10.0 | ^11 | ^12 | ^13" - }, - "conflict": { - "codeception/codeception": "<5.0.6" + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^5.7.0", + "php": ">=8.2", + "phpunit/php-file-iterator": "^5.1.0", + "phpunit/php-text-template": "^4.0.1", + "sebastian/code-unit-reverse-lookup": "^4.0.1", + "sebastian/complexity": "^4.0.1", + "sebastian/environment": "^7.2.1", + "sebastian/lines-of-code": "^3.0.1", + "sebastian/version": "^5.0.2", + "theseer/tokenizer": "^1.3.1" }, "require-dev": { - "consolidation/robo": "^4.0" + "phpunit/phpunit": "^11.5.46" + }, + "suggest": { + "ext-pcov": "PHP extension that provides line coverage", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" }, "type": "library", - "autoload": { - "psr-4": { - "Codeception\\": "src/" + "extra": { + "branch-alias": { + "dev-main": "11.0.x-dev" } }, + "autoload": { + "classmap": [ + "src/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" ], - "description": "Flexible Stub wrapper for PHPUnit's Mock Builder", "support": { - "issues": "https://github.com/Codeception/Stub/issues", - "source": "https://github.com/Codeception/Stub/tree/4.3.0" + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.12" }, - "time": "2026-02-06T15:19:04+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/php-code-coverage", + "type": "tidelift" + } + ], + "time": "2025-12-24T07:01:01+00:00" }, { - "name": "danog/advanced-json-rpc", - "version": "v3.2.3", + "name": "phpunit/php-file-iterator", + "version": "5.1.1", "source": { "type": "git", - "url": "https://github.com/danog/php-advanced-json-rpc.git", - "reference": "ae703ea7b4811797a10590b6078de05b3b33dd91" + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "2f3a64888c814fc235386b7387dd5b5ed92ad903" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/danog/php-advanced-json-rpc/zipball/ae703ea7b4811797a10590b6078de05b3b33dd91", - "reference": "ae703ea7b4811797a10590b6078de05b3b33dd91", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/2f3a64888c814fc235386b7387dd5b5ed92ad903", + "reference": "2f3a64888c814fc235386b7387dd5b5ed92ad903", "shasum": "" }, "require": { - "netresearch/jsonmapper": "^5", - "php": ">=8.1", - "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0 || ^6" - }, - "replace": { - "felixfbecker/php-advanced-json-rpc": "^3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9" + "phpunit/phpunit": "^11.3" }, "type": "library", - "autoload": { - "psr-4": { - "AdvancedJsonRpc\\": "lib/" + "extra": { + "branch-alias": { + "dev-main": "5.1-dev" } }, + "autoload": { + "classmap": [ + "src/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "ISC" + "BSD-3-Clause" ], "authors": [ { - "name": "Felix Becker", - "email": "felix.b@outlook.com" - }, - { - "name": "Daniil Gentili", - "email": "daniil@daniil.it" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "A more advanced JSONRPC implementation", + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], "support": { - "issues": "https://github.com/danog/php-advanced-json-rpc/issues", - "source": "https://github.com/danog/php-advanced-json-rpc/tree/v3.2.3" + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.1" }, - "time": "2026-01-12T21:07:10+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/php-file-iterator", + "type": "tidelift" + } + ], + "time": "2026-02-02T13:52:54+00:00" }, { - "name": "dnoegel/php-xdg-base-dir", - "version": "v0.1.1", + "name": "phpunit/php-invoker", + "version": "5.0.1", "source": { "type": "git", - "url": "https://github.com/dnoegel/php-xdg-base-dir.git", - "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", - "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/c1ca3814734c07492b3d4c5f794f4b0995333da2", + "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2", "shasum": "" }, "require": { - "php": ">=5.3.2" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" + "ext-pcntl": "*", + "phpunit/phpunit": "^11.0" + }, + "suggest": { + "ext-pcntl": "*" }, "type": "library", - "autoload": { - "psr-4": { - "XdgBaseDir\\": "src/" + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" } }, + "autoload": { + "classmap": [ + "src/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" ], - "description": "implementation of xdg base directory specification for php", "support": { - "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues", - "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1" + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "security": "https://github.com/sebastianbergmann/php-invoker/security/policy", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/5.0.1" }, - "time": "2019-12-04T15:06:13+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T05:07:44+00:00" }, { - "name": "felixfbecker/language-server-protocol", - "version": "v1.5.3", + "name": "phpunit/php-text-template", + "version": "4.0.1", "source": { - "type": "git", - "url": "https://github.com/felixfbecker/php-language-server-protocol.git", - "reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9" + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/a9e113dbc7d849e35b8776da39edaf4313b7b6c9", - "reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/3e0404dc6b300e6bf56415467ebcb3fe4f33e964", + "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.2" }, "require-dev": { - "phpstan/phpstan": "*", - "squizlabs/php_codesniffer": "^3.1", - "vimeo/psalm": "^4.0" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-main": "4.0-dev" } }, "autoload": { - "psr-4": { - "LanguageServerProtocol\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "ISC" + "BSD-3-Clause" ], "authors": [ { - "name": "Felix Becker", - "email": "felix.b@outlook.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "PHP classes for the Language Server Protocol", + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", "keywords": [ - "language", - "microsoft", - "php", - "server" + "template" ], "support": { - "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues", - "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.3" + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/4.0.1" }, - "time": "2024-04-30T00:40:11+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T05:08:43+00:00" }, { - "name": "fidry/cpu-core-counter", - "version": "1.3.0", + "name": "phpunit/php-timer", + "version": "7.0.1", "source": { "type": "git", - "url": "https://github.com/theofidry/cpu-core-counter.git", - "reference": "db9508f7b1474469d9d3c53b86f817e344732678" + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/db9508f7b1474469d9d3c53b86f817e344732678", - "reference": "db9508f7b1474469d9d3c53b86f817e344732678", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", + "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": ">=8.2" }, "require-dev": { - "fidry/makefile": "^0.2.0", - "fidry/php-cs-fixer-config": "^1.1.2", - "phpstan/extension-installer": "^1.2.0", - "phpstan/phpstan": "^2.0", - "phpstan/phpstan-deprecation-rules": "^2.0.0", - "phpstan/phpstan-phpunit": "^2.0", - "phpstan/phpstan-strict-rules": "^2.0", - "phpunit/phpunit": "^8.5.31 || ^9.5.26", - "webmozarts/strict-phpunit": "^7.5" + "phpunit/phpunit": "^11.0" }, "type": "library", - "autoload": { - "psr-4": { - "Fidry\\CpuCoreCounter\\": "src/" + "extra": { + "branch-alias": { + "dev-main": "7.0-dev" } }, + "autoload": { + "classmap": [ + "src/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Théo FIDRY", - "email": "theo.fidry@gmail.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Tiny utility to get the number of CPU cores.", + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", "keywords": [ - "CPU", - "core" + "timer" ], "support": { - "issues": "https://github.com/theofidry/cpu-core-counter/issues", - "source": "https://github.com/theofidry/cpu-core-counter/tree/1.3.0" + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "security": "https://github.com/sebastianbergmann/php-timer/security/policy", + "source": "https://github.com/sebastianbergmann/php-timer/tree/7.0.1" }, "funding": [ { - "url": "https://github.com/theofidry", + "url": "https://github.com/sebastianbergmann", "type": "github" } ], - "time": "2025-08-14T07:29:31+00:00" + "time": "2024-07-03T05:09:35+00:00" }, { - "name": "guzzlehttp/guzzle", - "version": "8.2.0", + "name": "phpunit/phpunit", + "version": "11.5.56", "source": { "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "93939470950a9b11e2e84204166ef5e048c55fe4" + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "5f83edffa6967c3db468d48a695ec7bcb02e9256" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/93939470950a9b11e2e84204166ef5e048c55fe4", - "reference": "93939470950a9b11e2e84204166ef5e048c55fe4", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/5f83edffa6967c3db468d48a695ec7bcb02e9256", + "reference": "5f83edffa6967c3db468d48a695ec7bcb02e9256", "shasum": "" }, "require": { + "ext-dom": "*", + "ext-filter": "*", "ext-json": "*", - "guzzlehttp/promises": "^3.0.2", - "guzzlehttp/psr7": "^3.1", - "php": "^7.4 || ^8.0", - "psr/http-client": "^1.0", - "psr/http-factory": "^1.0", - "symfony/polyfill-php80": "^1.25", - "symfony/polyfill-php82": "^1.27" - }, - "provide": { - "psr/http-client-implementation": "1.0" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.2", - "ext-curl": "*", - "guzzle/client-integration-tests": "4.0.1", - "guzzlehttp/test-server": "^1.0.1", - "php-http/message-factory": "^1.1", - "phpunit/phpunit": "^9.6.34", - "psr/log": "^1.1 || ^2.0 || ^3.0" + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.13.4", + "phar-io/manifest": "^2.0.4", + "phar-io/version": "^3.2.1", + "php": ">=8.2", + "phpunit/php-code-coverage": "^11.0.12", + "phpunit/php-file-iterator": "^5.1.1", + "phpunit/php-invoker": "^5.0.1", + "phpunit/php-text-template": "^4.0.1", + "phpunit/php-timer": "^7.0.1", + "sebastian/cli-parser": "^3.0.2", + "sebastian/code-unit": "^3.0.3", + "sebastian/comparator": "^6.3.3", + "sebastian/diff": "^6.0.2", + "sebastian/environment": "^7.2.1", + "sebastian/exporter": "^6.3.2", + "sebastian/global-state": "^7.0.2", + "sebastian/object-enumerator": "^6.0.1", + "sebastian/recursion-context": "^6.0.3", + "sebastian/type": "^5.1.3", + "sebastian/version": "^5.0.2", + "staabm/side-effects-detector": "^1.0.5" }, "suggest": { - "ext-curl": "Required for CURL handler support", - "ext-intl": "Required for Internationalized Domain Name (IDN) support", - "psr/log": "Required for using the Log middleware" + "ext-soap": "To be able to generate mocks based on WSDL files" }, + "bin": [ + "phpunit" + ], "type": "library", "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": false + "branch-alias": { + "dev-main": "11.5-dev" } }, "autoload": { - "psr-4": { - "GuzzleHttp\\": "src/" - } + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Jeremy Lindblom", - "email": "jeremeamia@gmail.com", - "homepage": "https://github.com/jeremeamia" - }, - { - "name": "George Mponos", - "email": "gmponos@gmail.com", - "homepage": "https://github.com/gmponos" - }, - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://github.com/sagikazarmark" - }, - { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Guzzle is a PHP HTTP client library", + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", "keywords": [ - "client", - "curl", - "framework", - "http", - "http client", - "psr-18", - "psr-7", - "rest", - "web service" + "phpunit", + "testing", + "xunit" ], "support": { - "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/8.2.0" + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.56" }, "funding": [ { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", - "type": "tidelift" + "url": "https://phpunit.de/sponsoring.html", + "type": "other" } ], - "time": "2026-09-06T13:55:09+00:00" + "time": "2026-07-06T14:52:39+00:00" }, { - "name": "guzzlehttp/promises", - "version": "3.0.2", + "name": "psr/event-dispatcher", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/guzzle/promises.git", - "reference": "42118e66a53c492effaf92bc357e931985d5c6f9" + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/42118e66a53c492effaf92bc357e931985d5c6f9", - "reference": "42118e66a53c492effaf92bc357e931985d5c6f9", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", "shasum": "" }, "require": { - "php": "^7.4 || ^8.0" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^9.6.34" + "php": ">=7.2.0" }, "type": "library", "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": false + "branch-alias": { + "dev-master": "1.0.x-dev" } }, "autoload": { "psr-4": { - "GuzzleHttp\\Promise\\": "src/" + "Psr\\EventDispatcher\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -6306,95 +6113,49 @@ ], "authors": [ { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" - }, - { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" } ], - "description": "Guzzle promises library", + "description": "Standard interfaces for event handling.", "keywords": [ - "promise" + "events", + "psr", + "psr-14" ], "support": { - "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/3.0.2" + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", - "type": "tidelift" - } - ], - "time": "2026-08-24T10:00:26+00:00" + "time": "2019-01-08T18:20:26+00:00" }, { - "name": "guzzlehttp/psr7", - "version": "3.1.0", + "name": "psr/http-client", + "version": "1.0.3", "source": { "type": "git", - "url": "https://github.com/guzzle/psr7.git", - "reference": "a3059ba1a84c9139c4ae03cf0f45bea276c97c74" + "url": "https://github.com/php-fig/http-client.git", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/a3059ba1a84c9139c4ae03cf0f45bea276c97c74", - "reference": "a3059ba1a84c9139c4ae03cf0f45bea276c97c74", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", "shasum": "" }, "require": { - "php": "^7.4 || ^8.0", - "psr/http-factory": "^1.1", - "psr/http-message": "^2.0", - "symfony/polyfill-php80": "^1.25", - "symfony/polyfill-php82": "^1.27" - }, - "provide": { - "psr/http-factory-implementation": "1.1", - "psr/http-message-implementation": "2.0" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.2", - "http-interop/http-factory-tests": "1.1.0", - "jshttp/mime-db": "1.54.0.1", - "php-http/psr7-integration-tests": "^1.5.1", - "phpunit/phpunit": "^9.6.34" - }, - "suggest": { - "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0 || ^2.0" }, "type": "library", "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": false + "branch-alias": { + "dev-master": "1.0.x-dev" } }, "autoload": { "psr-4": { - "GuzzleHttp\\Psr7\\": "src/" + "Psr\\Http\\Client\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -6403,102 +6164,50 @@ ], "authors": [ { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "George Mponos", - "email": "gmponos@gmail.com", - "homepage": "https://github.com/gmponos" - }, - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://github.com/sagikazarmark" - }, - { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://sagikazarmark.hu" + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" } ], - "description": "PSR-7 message implementation that also provides common utility methods", + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", "keywords": [ "http", - "message", - "psr-7", - "request", - "response", - "stream", - "uri", - "url" + "http-client", + "psr", + "psr-18" ], "support": { - "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/3.1.0" + "source": "https://github.com/php-fig/http-client" }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", - "type": "tidelift" - } - ], - "time": "2026-08-24T11:02:13+00:00" + "time": "2023-09-23T14:17:50+00:00" }, { - "name": "masterminds/html5", - "version": "2.11.0", + "name": "psr/http-factory", + "version": "1.1.0", "source": { "type": "git", - "url": "https://github.com/Masterminds/html5-php.git", - "reference": "a1e7a2f88ee13635d86fc61cfbdf2306a76ddfc7" + "url": "https://github.com/php-fig/http-factory.git", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/a1e7a2f88ee13635d86fc61cfbdf2306a76ddfc7", - "reference": "a1e7a2f88ee13635d86fc61cfbdf2306a76ddfc7", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", "shasum": "" }, "require": { - "ext-dom": "*", - "php": ">=7.4" - }, - "require-dev": { - "phpunit/phpunit": "^6 || ^7 || ^8 || ^9 || ^10" + "php": ">=7.1", + "psr/http-message": "^1.0 || ^2.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.7-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { "psr-4": { - "Masterminds\\": "src" + "Psr\\Http\\Message\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -6507,231 +6216,227 @@ ], "authors": [ { - "name": "Matt Butcher", - "email": "technosophos@gmail.com" - }, - { - "name": "Matt Farina", - "email": "matt@mattfarina.com" - }, - { - "name": "Asmir Mustafic", - "email": "goetas@gmail.com" + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" } ], - "description": "An HTML5 parser and serializer.", - "homepage": "http://masterminds.github.io/html5-php", + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", "keywords": [ - "HTML5", - "dom", - "html", - "parser", - "querypath", - "serializer", - "xml" + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" ], "support": { - "issues": "https://github.com/Masterminds/html5-php/issues", - "source": "https://github.com/Masterminds/html5-php/tree/2.11.0" + "source": "https://github.com/php-fig/http-factory" }, - "time": "2026-08-18T06:18:41+00:00" + "time": "2024-04-15T12:06:14+00:00" }, { - "name": "myclabs/deep-copy", - "version": "1.14.0", + "name": "psr/http-message", + "version": "2.0", "source": { "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "8680aa248f8e07bc8fb43f56f0f5fc77a0c96aae" + "url": "https://github.com/php-fig/http-message.git", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/8680aa248f8e07bc8fb43f56f0f5fc77a0c96aae", - "reference": "8680aa248f8e07bc8fb43f56f0f5fc77a0c96aae", - "shasum": "" - }, - "require": { - "php": "^8.0" - }, - "conflict": { - "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3 <3.2.2" + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "shasum": "" }, - "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" + "require": { + "php": "^7.2 || ^8.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, "autoload": { - "files": [ - "src/DeepCopy/deep_copy.php" - ], "psr-4": { - "DeepCopy\\": "src/DeepCopy/" + "Psr\\Http\\Message\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "Create deep copies (clones) of your objects", + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" ], "support": { - "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.14.0" + "source": "https://github.com/php-fig/http-message/tree/2.0" }, - "funding": [ - { - "url": "https://github.com/mnapoli", - "type": "github" - } - ], - "time": "2026-08-11T10:17:44+00:00" + "time": "2023-04-04T09:54:51+00:00" }, { - "name": "netresearch/jsonmapper", - "version": "v5.0.1", + "name": "psr/log", + "version": "3.0.2", "source": { "type": "git", - "url": "https://github.com/cweiske/jsonmapper.git", - "reference": "980674efdda65913492d29a8fd51c82270dd37bb" + "url": "https://github.com/php-fig/log.git", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/980674efdda65913492d29a8fd51c82270dd37bb", - "reference": "980674efdda65913492d29a8fd51c82270dd37bb", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", "shasum": "" }, "require": { - "ext-json": "*", - "ext-pcre": "*", - "ext-reflection": "*", - "ext-spl": "*", - "php": ">=7.1" - }, - "require-dev": { - "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0 || ~10.0", - "squizlabs/php_codesniffer": "~3.5" + "php": ">=8.0.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, "autoload": { - "psr-0": { - "JsonMapper": "src/" + "psr-4": { + "Psr\\Log\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "OSL-3.0" + "MIT" ], "authors": [ { - "name": "Christian Weiske", - "email": "cweiske@cweiske.de", - "homepage": "http://github.com/cweiske/jsonmapper/", - "role": "Developer" + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" } ], - "description": "Map nested JSON structures onto PHP classes", + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], "support": { - "email": "cweiske@cweiske.de", - "issues": "https://github.com/cweiske/jsonmapper/issues", - "source": "https://github.com/cweiske/jsonmapper/tree/v5.0.1" + "source": "https://github.com/php-fig/log/tree/3.0.2" }, - "time": "2026-02-22T16:28:03+00:00" + "time": "2024-09-11T13:17:53+00:00" }, { - "name": "phar-io/manifest", - "version": "2.0.4", + "name": "revolt/event-loop", + "version": "v1.0.9", "source": { "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "54750ef60c58e43759730615a392c31c80e23176" + "url": "https://github.com/revoltphp/event-loop.git", + "reference": "44061cf513e53c6200372fc935ac42271566295d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", - "reference": "54750ef60c58e43759730615a392c31c80e23176", + "url": "https://api.github.com/repos/revoltphp/event-loop/zipball/44061cf513e53c6200372fc935ac42271566295d", + "reference": "44061cf513e53c6200372fc935ac42271566295d", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-libxml": "*", - "ext-phar": "*", - "ext-xmlwriter": "*", - "phar-io/version": "^3.0.1", - "php": "^7.2 || ^8.0" + "php": ">=8.1" + }, + "require-dev": { + "ext-json": "*", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^9", + "psalm/phar": "6.16.*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-main": "1.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Revolt\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" }, { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" + "name": "Cees-Jan Kiewiet", + "email": "ceesjank@gmail.com" }, { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" + "name": "Christian Lück", + "email": "christian@clue.engineering" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" } ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "description": "Rock-solid event loop for concurrent PHP applications.", + "keywords": [ + "async", + "asynchronous", + "concurrency", + "event", + "event-loop", + "non-blocking", + "scheduler" + ], "support": { - "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.4" + "issues": "https://github.com/revoltphp/event-loop/issues", + "source": "https://github.com/revoltphp/event-loop/tree/v1.0.9" }, - "funding": [ - { - "url": "https://github.com/theseer", - "type": "github" - } - ], - "time": "2024-03-03T12:33:53+00:00" + "time": "2026-05-16T17:55:38+00:00" }, { - "name": "phar-io/version", - "version": "3.2.1", + "name": "sebastian/cli-parser", + "version": "3.0.2", "source": { "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/15c5dd40dc4f38794d383bb95465193f5e0ae180", + "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -6742,133 +6447,108 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de", - "role": "Developer" + "role": "lead" } ], - "description": "Library for handling version information and constraints", + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", "support": { - "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/3.2.1" + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/3.0.2" }, - "time": "2022-02-21T01:04:05+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T04:41:36+00:00" }, { - "name": "phpstan/phpstan", - "version": "2.2.15", + "name": "sebastian/code-unit", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64" + }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/b158556ffd26825cf615a1c1f72fb5157a2301b7", - "reference": "b158556ffd26825cf615a1c1f72fb5157a2301b7", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/54391c61e4af8078e5b276ab082b6d3c54c9ad64", + "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64", "shasum": "" }, "require": { - "php": "^7.4|^8.0" + "php": ">=8.2" }, - "conflict": { - "phpstan/phpstan-shim": "*" + "require-dev": { + "phpunit/phpunit": "^11.5" }, - "bin": [ - "phpstan", - "phpstan.phar" - ], "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, "autoload": { - "files": [ - "bootstrap.php" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Ondřej Mirtes" - }, - { - "name": "Markus Staab" - }, - { - "name": "Vincent Langlet" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "PHPStan - PHP Static Analysis Tool", - "keywords": [ - "dev", - "static analysis" - ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", "support": { - "docs": "https://phpstan.org/user-guide/getting-started", - "forum": "https://github.com/phpstan/phpstan/discussions", - "issues": "https://github.com/phpstan/phpstan/issues", - "security": "https://github.com/phpstan/phpstan/security/policy", - "source": "https://github.com/phpstan/phpstan-src" + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "security": "https://github.com/sebastianbergmann/code-unit/security/policy", + "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.3" }, "funding": [ { - "url": "https://github.com/ondrejmirtes", - "type": "github" - }, - { - "url": "https://github.com/phpstan", + "url": "https://github.com/sebastianbergmann", "type": "github" } ], - "time": "2026-09-23T12:23:07+00:00" + "time": "2025-03-19T07:56:08+00:00" }, { - "name": "phpunit/php-code-coverage", - "version": "11.0.12", + "name": "sebastian/code-unit-reverse-lookup", + "version": "4.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "2c1ed04922802c15e1de5d7447b4856de949cf56" + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "183a9b2632194febd219bb9246eee421dad8d45e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2c1ed04922802c15e1de5d7447b4856de949cf56", - "reference": "2c1ed04922802c15e1de5d7447b4856de949cf56", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/183a9b2632194febd219bb9246eee421dad8d45e", + "reference": "183a9b2632194febd219bb9246eee421dad8d45e", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-libxml": "*", - "ext-xmlwriter": "*", - "nikic/php-parser": "^5.7.0", - "php": ">=8.2", - "phpunit/php-file-iterator": "^5.1.0", - "phpunit/php-text-template": "^4.0.1", - "sebastian/code-unit-reverse-lookup": "^4.0.1", - "sebastian/complexity": "^4.0.1", - "sebastian/environment": "^7.2.1", - "sebastian/lines-of-code": "^3.0.1", - "sebastian/version": "^5.0.2", - "theseer/tokenizer": "^1.3.1" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^11.5.46" - }, - "suggest": { - "ext-pcov": "PHP extension that provides line coverage", - "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "11.0.x-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -6883,66 +6563,55 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "email": "sebastian@phpunit.de" } ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", "support": { - "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.12" + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/4.0.1" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpunit/php-code-coverage", - "type": "tidelift" } ], - "time": "2025-12-24T07:01:01+00:00" + "time": "2024-07-03T04:45:54+00:00" }, { - "name": "phpunit/php-file-iterator", - "version": "5.1.1", + "name": "sebastian/comparator", + "version": "6.3.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "2f3a64888c814fc235386b7387dd5b5ed92ad903" + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "2c95e1e86cb8dd41beb8d502057d1081ccc8eca9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/2f3a64888c814fc235386b7387dd5b5ed92ad903", - "reference": "2f3a64888c814fc235386b7387dd5b5ed92ad903", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2c95e1e86cb8dd41beb8d502057d1081ccc8eca9", + "reference": "2c95e1e86cb8dd41beb8d502057d1081ccc8eca9", "shasum": "" }, "require": { - "php": ">=8.2" + "ext-dom": "*", + "ext-mbstring": "*", + "php": ">=8.2", + "sebastian/diff": "^6.0", + "sebastian/exporter": "^6.0" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^11.4" + }, + "suggest": { + "ext-bcmath": "For comparing BcMath\\Number objects" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.1-dev" + "dev-main": "6.3-dev" } }, "autoload": { @@ -6957,20 +6626,32 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" } ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", "keywords": [ - "filesystem", - "iterator" + "comparator", + "compare", + "equality" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.1" + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "security": "https://github.com/sebastianbergmann/comparator/security/policy", + "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.3" }, "funding": [ { @@ -6986,40 +6667,37 @@ "type": "thanks_dev" }, { - "url": "https://tidelift.com/funding/github/packagist/phpunit/php-file-iterator", + "url": "https://tidelift.com/funding/github/packagist/sebastian/comparator", "type": "tidelift" } ], - "time": "2026-02-02T13:52:54+00:00" + "time": "2026-01-24T09:26:40+00:00" }, { - "name": "phpunit/php-invoker", - "version": "5.0.1", + "name": "sebastian/complexity", + "version": "4.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2" + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "ee41d384ab1906c68852636b6de493846e13e5a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/c1ca3814734c07492b3d4c5f794f4b0995333da2", - "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/ee41d384ab1906c68852636b6de493846e13e5a0", + "reference": "ee41d384ab1906c68852636b6de493846e13e5a0", "shasum": "" }, "require": { + "nikic/php-parser": "^5.0", "php": ">=8.2" }, "require-dev": { - "ext-pcntl": "*", "phpunit/phpunit": "^11.0" }, - "suggest": { - "ext-pcntl": "*" - }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -7038,15 +6716,12 @@ "role": "lead" } ], - "description": "Invoke callables with a timeout", - "homepage": "https://github.com/sebastianbergmann/php-invoker/", - "keywords": [ - "process" - ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", "support": { - "issues": "https://github.com/sebastianbergmann/php-invoker/issues", - "security": "https://github.com/sebastianbergmann/php-invoker/security/policy", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/5.0.1" + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "security": "https://github.com/sebastianbergmann/complexity/security/policy", + "source": "https://github.com/sebastianbergmann/complexity/tree/4.0.1" }, "funding": [ { @@ -7054,32 +6729,33 @@ "type": "github" } ], - "time": "2024-07-03T05:07:44+00:00" + "time": "2024-07-03T04:49:50+00:00" }, { - "name": "phpunit/php-text-template", - "version": "4.0.1", + "name": "sebastian/diff", + "version": "6.0.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964" + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/3e0404dc6b300e6bf56415467ebcb3fe4f33e964", - "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544", + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544", "shasum": "" }, "require": { "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^11.0", + "symfony/process": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -7094,19 +6770,25 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" } ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", "keywords": [ - "template" + "diff", + "udiff", + "unidiff", + "unified diff" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/4.0.1" + "issues": "https://github.com/sebastianbergmann/diff/issues", + "security": "https://github.com/sebastianbergmann/diff/security/policy", + "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2" }, "funding": [ { @@ -7114,32 +6796,35 @@ "type": "github" } ], - "time": "2024-07-03T05:08:43+00:00" + "time": "2024-07-03T04:53:05+00:00" }, { - "name": "phpunit/php-timer", - "version": "7.0.1", + "name": "sebastian/environment", + "version": "7.2.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3" + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", - "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/a5c75038693ad2e8d4b6c15ba2403532647830c4", + "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4", "shasum": "" }, "require": { "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^11.3" + }, + "suggest": { + "ext-posix": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "7.0-dev" + "dev-main": "7.2-dev" } }, "autoload": { @@ -7154,87 +6839,70 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "email": "sebastian@phpunit.de" } ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "https://github.com/sebastianbergmann/environment", "keywords": [ - "timer" + "Xdebug", + "environment", + "hhvm" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "security": "https://github.com/sebastianbergmann/php-timer/security/policy", - "source": "https://github.com/sebastianbergmann/php-timer/tree/7.0.1" + "issues": "https://github.com/sebastianbergmann/environment/issues", + "security": "https://github.com/sebastianbergmann/environment/security/policy", + "source": "https://github.com/sebastianbergmann/environment/tree/7.2.1" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/environment", + "type": "tidelift" } ], - "time": "2024-07-03T05:09:35+00:00" + "time": "2025-05-21T11:55:47+00:00" }, { - "name": "phpunit/phpunit", - "version": "11.5.56", + "name": "sebastian/exporter", + "version": "6.3.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "5f83edffa6967c3db468d48a695ec7bcb02e9256" + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "70a298763b40b213ec087c51c739efcaa90bcd74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/5f83edffa6967c3db468d48a695ec7bcb02e9256", - "reference": "5f83edffa6967c3db468d48a695ec7bcb02e9256", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/70a298763b40b213ec087c51c739efcaa90bcd74", + "reference": "70a298763b40b213ec087c51c739efcaa90bcd74", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-filter": "*", - "ext-json": "*", - "ext-libxml": "*", "ext-mbstring": "*", - "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.13.4", - "phar-io/manifest": "^2.0.4", - "phar-io/version": "^3.2.1", "php": ">=8.2", - "phpunit/php-code-coverage": "^11.0.12", - "phpunit/php-file-iterator": "^5.1.1", - "phpunit/php-invoker": "^5.0.1", - "phpunit/php-text-template": "^4.0.1", - "phpunit/php-timer": "^7.0.1", - "sebastian/cli-parser": "^3.0.2", - "sebastian/code-unit": "^3.0.3", - "sebastian/comparator": "^6.3.3", - "sebastian/diff": "^6.0.2", - "sebastian/environment": "^7.2.1", - "sebastian/exporter": "^6.3.2", - "sebastian/global-state": "^7.0.2", - "sebastian/object-enumerator": "^6.0.1", - "sebastian/recursion-context": "^6.0.3", - "sebastian/type": "^5.1.3", - "sebastian/version": "^5.0.2", - "staabm/side-effects-detector": "^1.0.5" + "sebastian/recursion-context": "^6.0" }, - "suggest": { - "ext-soap": "To be able to generate mocks based on WSDL files" + "require-dev": { + "phpunit/phpunit": "^11.3" }, - "bin": [ - "phpunit" - ], "type": "library", "extra": { "branch-alias": { - "dev-main": "11.5-dev" + "dev-main": "6.3-dev" } }, "autoload": { - "files": [ - "src/Framework/Assert/Functions.php" - ], "classmap": [ "src/" ] @@ -7246,97 +6914,134 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" } ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "https://www.github.com/sebastianbergmann/exporter", "keywords": [ - "phpunit", - "testing", - "xunit" + "export", + "exporter" ], "support": { - "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.56" + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "security": "https://github.com/sebastianbergmann/exporter/security/policy", + "source": "https://github.com/sebastianbergmann/exporter/tree/6.3.2" }, "funding": [ { - "url": "https://phpunit.de/sponsoring.html", - "type": "other" + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter", + "type": "tidelift" } ], - "time": "2026-07-06T14:52:39+00:00" + "time": "2025-09-24T06:12:51+00:00" }, { - "name": "psr/http-client", - "version": "1.0.3", + "name": "sebastian/global-state", + "version": "7.0.2", "source": { "type": "git", - "url": "https://github.com/php-fig/http-client.git", - "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "3be331570a721f9a4b5917f4209773de17f747d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", - "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/3be331570a721f9a4b5917f4209773de17f747d7", + "reference": "3be331570a721f9a4b5917f4209773de17f747d7", "shasum": "" }, "require": { - "php": "^7.0 || ^8.0", - "psr/http-message": "^1.0 || ^2.0" + "php": ">=8.2", + "sebastian/object-reflector": "^4.0", + "sebastian/recursion-context": "^6.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-main": "7.0-dev" } }, "autoload": { - "psr-4": { - "Psr\\Http\\Client\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Common interface for HTTP clients", - "homepage": "https://github.com/php-fig/http-client", + "description": "Snapshotting of global state", + "homepage": "https://www.github.com/sebastianbergmann/global-state", "keywords": [ - "http", - "http-client", - "psr", - "psr-18" + "global state" ], "support": { - "source": "https://github.com/php-fig/http-client" + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "security": "https://github.com/sebastianbergmann/global-state/security/policy", + "source": "https://github.com/sebastianbergmann/global-state/tree/7.0.2" }, - "time": "2023-09-23T14:17:50+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T04:57:36+00:00" }, { - "name": "sebastian/cli-parser", - "version": "3.0.2", + "name": "sebastian/lines-of-code", + "version": "3.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180" + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/15c5dd40dc4f38794d383bb95465193f5e0ae180", - "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d36ad0d782e5756913e42ad87cb2890f4ffe467a", + "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a", "shasum": "" }, "require": { + "nikic/php-parser": "^5.0", "php": ">=8.2" }, "require-dev": { @@ -7364,12 +7069,12 @@ "role": "lead" } ], - "description": "Library for parsing CLI options", - "homepage": "https://github.com/sebastianbergmann/cli-parser", + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", "support": { - "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/3.0.2" + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/3.0.1" }, "funding": [ { @@ -7377,32 +7082,34 @@ "type": "github" } ], - "time": "2024-07-03T04:41:36+00:00" + "time": "2024-07-03T04:58:38+00:00" }, { - "name": "sebastian/code-unit", - "version": "3.0.3", + "name": "sebastian/object-enumerator", + "version": "6.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64" + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "f5b498e631a74204185071eb41f33f38d64608aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/54391c61e4af8078e5b276ab082b6d3c54c9ad64", - "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f5b498e631a74204185071eb41f33f38d64608aa", + "reference": "f5b498e631a74204185071eb41f33f38d64608aa", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.2", + "sebastian/object-reflector": "^4.0", + "sebastian/recursion-context": "^6.0" }, "require-dev": { - "phpunit/phpunit": "^11.5" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -7417,16 +7124,15 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "email": "sebastian@phpunit.de" } ], - "description": "Collection of value objects that represent the PHP code units", - "homepage": "https://github.com/sebastianbergmann/code-unit", + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", "support": { - "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "security": "https://github.com/sebastianbergmann/code-unit/security/policy", - "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.3" + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/6.0.1" }, "funding": [ { @@ -7434,20 +7140,20 @@ "type": "github" } ], - "time": "2025-03-19T07:56:08+00:00" + "time": "2024-07-03T05:00:13+00:00" }, { - "name": "sebastian/code-unit-reverse-lookup", + "name": "sebastian/object-reflector", "version": "4.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "183a9b2632194febd219bb9246eee421dad8d45e" + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/183a9b2632194febd219bb9246eee421dad8d45e", - "reference": "183a9b2632194febd219bb9246eee421dad8d45e", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/6e1a43b411b2ad34146dee7524cb13a068bb35f9", + "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9", "shasum": "" }, "require": { @@ -7477,12 +7183,12 @@ "email": "sebastian@phpunit.de" } ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", "support": { - "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/4.0.1" + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "security": "https://github.com/sebastianbergmann/object-reflector/security/policy", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/4.0.1" }, "funding": [ { @@ -7490,39 +7196,32 @@ "type": "github" } ], - "time": "2024-07-03T04:45:54+00:00" + "time": "2024-07-03T05:01:32+00:00" }, { - "name": "sebastian/comparator", - "version": "6.3.3", + "name": "sebastian/recursion-context", + "version": "6.0.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "2c95e1e86cb8dd41beb8d502057d1081ccc8eca9" + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2c95e1e86cb8dd41beb8d502057d1081ccc8eca9", - "reference": "2c95e1e86cb8dd41beb8d502057d1081ccc8eca9", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/f6458abbf32a6c8174f8f26261475dc133b3d9dc", + "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-mbstring": "*", - "php": ">=8.2", - "sebastian/diff": "^6.0", - "sebastian/exporter": "^6.0" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^11.4" - }, - "suggest": { - "ext-bcmath": "For comparing BcMath\\Number objects" + "phpunit/phpunit": "^11.3" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.3-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -7544,25 +7243,16 @@ "email": "whatthejeff@gmail.com" }, { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" + "name": "Adam Harvey", + "email": "aharvey@php.net" } ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "https://github.com/sebastianbergmann/recursion-context", "support": { - "issues": "https://github.com/sebastianbergmann/comparator/issues", - "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.3" + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.3" }, "funding": [ { @@ -7578,37 +7268,36 @@ "type": "thanks_dev" }, { - "url": "https://tidelift.com/funding/github/packagist/sebastian/comparator", + "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context", "type": "tidelift" } ], - "time": "2026-01-24T09:26:40+00:00" + "time": "2025-08-13T04:42:22+00:00" }, { - "name": "sebastian/complexity", - "version": "4.0.1", + "name": "sebastian/type", + "version": "5.1.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "ee41d384ab1906c68852636b6de493846e13e5a0" + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/ee41d384ab1906c68852636b6de493846e13e5a0", - "reference": "ee41d384ab1906c68852636b6de493846e13e5a0", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/f77d2d4e78738c98d9a68d2596fe5e8fa380f449", + "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449", "shasum": "" }, "require": { - "nikic/php-parser": "^5.0", "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^11.3" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.1-dev" } }, "autoload": { @@ -7627,48 +7316,54 @@ "role": "lead" } ], - "description": "Library for calculating the complexity of PHP code units", - "homepage": "https://github.com/sebastianbergmann/complexity", + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", "support": { - "issues": "https://github.com/sebastianbergmann/complexity/issues", - "security": "https://github.com/sebastianbergmann/complexity/security/policy", - "source": "https://github.com/sebastianbergmann/complexity/tree/4.0.1" + "issues": "https://github.com/sebastianbergmann/type/issues", + "security": "https://github.com/sebastianbergmann/type/security/policy", + "source": "https://github.com/sebastianbergmann/type/tree/5.1.3" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/type", + "type": "tidelift" } ], - "time": "2024-07-03T04:49:50+00:00" + "time": "2025-08-09T06:55:48+00:00" }, { - "name": "sebastian/environment", - "version": "7.2.1", + "name": "sebastian/version", + "version": "5.0.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4" + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/a5c75038693ad2e8d4b6c15ba2403532647830c4", - "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c687e3387b99f5b03b6caa64c74b63e2936ff874", + "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874", "shasum": "" }, "require": { "php": ">=8.2" }, - "require-dev": { - "phpunit/phpunit": "^11.3" - }, - "suggest": { - "ext-posix": "*" - }, "type": "library", "extra": { "branch-alias": { - "dev-main": "7.2-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -7683,597 +7378,745 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "https://github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", "support": { - "issues": "https://github.com/sebastianbergmann/environment/issues", - "security": "https://github.com/sebastianbergmann/environment/security/policy", - "source": "https://github.com/sebastianbergmann/environment/tree/7.2.1" + "issues": "https://github.com/sebastianbergmann/version/issues", + "security": "https://github.com/sebastianbergmann/version/security/policy", + "source": "https://github.com/sebastianbergmann/version/tree/5.0.2" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" - }, + } + ], + "time": "2024-10-09T05:16:32+00:00" + }, + { + "name": "seld/jsonlint", + "version": "1.12.1", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/jsonlint.git", + "reference": "9a90eb5d32d5a500296bf43f946d60246444d5f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/9a90eb5d32d5a500296bf43f946d60246444d5f7", + "reference": "9a90eb5d32d5a500296bf43f946d60246444d5f7", + "shasum": "" + }, + "require": { + "php": "^5.3 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.11", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^8.5.13" + }, + "bin": [ + "bin/jsonlint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Seld\\JsonLint\\": "src/Seld/JsonLint/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" + } + ], + "description": "JSON Linter", + "keywords": [ + "json", + "linter", + "parser", + "validator" + ], + "support": { + "issues": "https://github.com/Seldaek/jsonlint/issues", + "source": "https://github.com/Seldaek/jsonlint/tree/1.12.1" + }, + "funding": [ { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" + "url": "https://github.com/Seldaek", + "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/sebastian/environment", + "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint", "type": "tidelift" } ], - "time": "2025-05-21T11:55:47+00:00" + "time": "2026-06-12T11:32:29+00:00" + }, + { + "name": "seld/phar-utils", + "version": "1.2.2", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/phar-utils.git", + "reference": "990bbd0e92caa216d52eca0935f6e35e589bfaa5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/990bbd0e92caa216d52eca0935f6e35e589bfaa5", + "reference": "990bbd0e92caa216d52eca0935f6e35e589bfaa5", + "shasum": "" + }, + "require": { + "php": ">=5.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Seld\\PharUtils\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" + } + ], + "description": "PHAR file format utilities, for when PHP phars you up", + "keywords": [ + "phar" + ], + "support": { + "issues": "https://github.com/Seldaek/phar-utils/issues", + "source": "https://github.com/Seldaek/phar-utils/tree/1.2.2" + }, + "time": "2026-08-01T12:48:55+00:00" }, { - "name": "sebastian/exporter", - "version": "6.3.2", + "name": "spatie/array-to-xml", + "version": "3.4.4", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "70a298763b40b213ec087c51c739efcaa90bcd74" + "url": "https://github.com/spatie/array-to-xml.git", + "reference": "88b2f3852a922dd73177a68938f8eb2ec70c7224" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/70a298763b40b213ec087c51c739efcaa90bcd74", - "reference": "70a298763b40b213ec087c51c739efcaa90bcd74", + "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/88b2f3852a922dd73177a68938f8eb2ec70c7224", + "reference": "88b2f3852a922dd73177a68938f8eb2ec70c7224", "shasum": "" }, "require": { - "ext-mbstring": "*", - "php": ">=8.2", - "sebastian/recursion-context": "^6.0" + "ext-dom": "*", + "php": "^8.0" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "mockery/mockery": "^1.2", + "pestphp/pest": "^1.21", + "spatie/pest-plugin-snapshots": "^1.1" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.3-dev" + "dev-main": "3.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Spatie\\ArrayToXml\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://freek.dev", + "role": "Developer" } ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "https://www.github.com/sebastianbergmann/exporter", + "description": "Convert an array to xml", + "homepage": "https://github.com/spatie/array-to-xml", "keywords": [ - "export", - "exporter" + "array", + "convert", + "xml" ], "support": { - "issues": "https://github.com/sebastianbergmann/exporter/issues", - "security": "https://github.com/sebastianbergmann/exporter/security/policy", - "source": "https://github.com/sebastianbergmann/exporter/tree/6.3.2" + "source": "https://github.com/spatie/array-to-xml/tree/3.4.4" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" + "url": "https://spatie.be/open-source/support-us", + "type": "custom" }, { - "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter", - "type": "tidelift" + "url": "https://github.com/spatie", + "type": "github" } ], - "time": "2025-09-24T06:12:51+00:00" + "time": "2025-12-15T09:00:41+00:00" }, { - "name": "sebastian/global-state", - "version": "7.0.2", + "name": "squizlabs/php_codesniffer", + "version": "3.13.6", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "3be331570a721f9a4b5917f4209773de17f747d7" + "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", + "reference": "4c378e1a528ea066890fc2397cbdd2f94eb2fc91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/3be331570a721f9a4b5917f4209773de17f747d7", - "reference": "3be331570a721f9a4b5917f4209773de17f747d7", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/4c378e1a528ea066890fc2397cbdd2f94eb2fc91", + "reference": "4c378e1a528ea066890fc2397cbdd2f94eb2fc91", "shasum": "" }, "require": { - "php": ">=8.2", - "sebastian/object-reflector": "^4.0", - "sebastian/recursion-context": "^6.0" + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" }, "require-dev": { - "ext-dom": "*", - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" }, + "bin": [ + "bin/phpcbf", + "bin/phpcs" + ], "type": "library", - "extra": { - "branch-alias": { - "dev-main": "7.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Greg Sherwood", + "role": "Former lead" + }, + { + "name": "Juliette Reinders Folmer", + "role": "Current lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors" } ], - "description": "Snapshotting of global state", - "homepage": "https://www.github.com/sebastianbergmann/global-state", + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer", "keywords": [ - "global state" + "phpcs", + "standards", + "static analysis" ], "support": { - "issues": "https://github.com/sebastianbergmann/global-state/issues", - "security": "https://github.com/sebastianbergmann/global-state/security/policy", - "source": "https://github.com/sebastianbergmann/global-state/tree/7.0.2" + "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues", + "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy", + "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer", + "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://github.com/PHPCSStandards", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + }, + { + "url": "https://thanks.dev/u/gh/phpcsstandards", + "type": "thanks_dev" } ], - "time": "2024-07-03T04:57:36+00:00" + "time": "2026-08-06T00:17:32+00:00" }, { - "name": "sebastian/lines-of-code", - "version": "3.0.1", + "name": "staabm/side-effects-detector", + "version": "1.0.5", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a" + "url": "https://github.com/staabm/side-effects-detector.git", + "reference": "d8334211a140ce329c13726d4a715adbddd0a163" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d36ad0d782e5756913e42ad87cb2890f4ffe467a", - "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a", + "url": "https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163", + "reference": "d8334211a140ce329c13726d4a715adbddd0a163", "shasum": "" }, "require": { - "nikic/php-parser": "^5.0", - "php": ">=8.2" + "ext-tokenizer": "*", + "php": "^7.4 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^1.12.6", + "phpunit/phpunit": "^9.6.21", + "symfony/var-dumper": "^5.4.43", + "tomasvotruba/type-coverage": "1.0.0", + "tomasvotruba/unused-public": "1.0.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - } - }, "autoload": { "classmap": [ - "src/" + "lib/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } + "description": "A static analysis tool to detect side effects in PHP code", + "keywords": [ + "static analysis" ], - "description": "Library for counting the lines of code in PHP source code", - "homepage": "https://github.com/sebastianbergmann/lines-of-code", "support": { - "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/3.0.1" + "issues": "https://github.com/staabm/side-effects-detector/issues", + "source": "https://github.com/staabm/side-effects-detector/tree/1.0.5" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://github.com/staabm", "type": "github" } ], - "time": "2024-07-03T04:58:38+00:00" + "time": "2024-10-20T05:08:20+00:00" }, { - "name": "sebastian/object-enumerator", - "version": "6.0.1", + "name": "symfony/browser-kit", + "version": "v7.4.17", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "f5b498e631a74204185071eb41f33f38d64608aa" + "url": "https://github.com/symfony/browser-kit.git", + "reference": "7aff5c4b17a7b04ea6a8390773a93148d15a40b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f5b498e631a74204185071eb41f33f38d64608aa", - "reference": "f5b498e631a74204185071eb41f33f38d64608aa", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/7aff5c4b17a7b04ea6a8390773a93148d15a40b7", + "reference": "7aff5c4b17a7b04ea6a8390773a93148d15a40b7", "shasum": "" }, "require": { "php": ">=8.2", - "sebastian/object-reflector": "^4.0", - "sebastian/recursion-context": "^6.0" + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/dom-crawler": "^6.4|^7.0|^8.0" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "symfony/css-selector": "^6.4|^7.0|^8.0", + "symfony/http-client": "^6.4|^7.0|^8.0", + "symfony/mime": "^6.4|^7.0|^8.0", + "symfony/process": "^6.4|^7.0|^8.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "6.0-dev" - } - }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\BrowserKit\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", + "homepage": "https://symfony.com", "support": { - "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/6.0.1" + "source": "https://github.com/symfony/browser-kit/tree/v7.4.17" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "time": "2024-07-03T05:00:13+00:00" + "time": "2026-08-21T17:40:08+00:00" }, { - "name": "sebastian/object-reflector", - "version": "4.0.1", + "name": "symfony/css-selector", + "version": "v7.4.18", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9" + "url": "https://github.com/symfony/css-selector.git", + "reference": "fecf40067fc8d8880ea87b8ac227600b9aadd1d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/6e1a43b411b2ad34146dee7524cb13a068bb35f9", - "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/fecf40067fc8d8880ea87b8ac227600b9aadd1d0", + "reference": "fecf40067fc8d8880ea87b8ac227600b9aadd1d0", "shasum": "" }, "require": { "php": ">=8.2" }, - "require-dev": { - "phpunit/phpunit": "^11.0" - }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.0-dev" - } - }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "description": "Converts CSS selectors to XPath expressions", + "homepage": "https://symfony.com", "support": { - "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "security": "https://github.com/sebastianbergmann/object-reflector/security/policy", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/4.0.1" + "source": "https://github.com/symfony/css-selector/tree/v7.4.18" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "time": "2024-07-03T05:01:32+00:00" + "time": "2026-08-23T10:03:40+00:00" }, { - "name": "sebastian/recursion-context", - "version": "6.0.3", + "name": "symfony/dom-crawler", + "version": "v7.4.17", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc" + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "6b037d62595666cf65de867073c9a1f00184be0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/f6458abbf32a6c8174f8f26261475dc133b3d9dc", - "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/6b037d62595666cf65de867073c9a1f00184be0c", + "reference": "6b037d62595666cf65de867073c9a1f00184be0c", "shasum": "" }, "require": { - "php": ">=8.2" + "masterminds/html5": "^2.6", + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "symfony/css-selector": "^6.4|^7.0|^8.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "6.0-dev" - } - }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\DomCrawler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { - "name": "Adam Harvey", - "email": "aharvey@php.net" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "https://github.com/sebastianbergmann/recursion-context", + "description": "Eases DOM navigation for HTML and XML documents", + "homepage": "https://symfony.com", "support": { - "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.3" + "source": "https://github.com/symfony/dom-crawler/tree/v7.4.17" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", - "type": "github" + "url": "https://symfony.com/sponsor", + "type": "custom" }, { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" + "url": "https://github.com/fabpot", + "type": "github" }, { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" + "url": "https://github.com/nicolas-grekas", + "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context", + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-08-13T04:42:22+00:00" + "time": "2026-08-21T17:40:08+00:00" }, { - "name": "sebastian/type", - "version": "5.1.3", + "name": "symfony/event-dispatcher", + "version": "v7.4.17", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/type.git", - "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449" + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "d269974ee93c61d03620ffee358355bfdb471d66" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/f77d2d4e78738c98d9a68d2596fe5e8fa380f449", - "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d269974ee93c61d03620ffee358355bfdb471d66", + "reference": "d269974ee93c61d03620ffee358355bfdb471d66", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.2", + "symfony/event-dispatcher-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/dependency-injection": "<6.4", + "symfony/service-contracts": "<2.5" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "2.0|3.0" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "psr/log": "^1|^2|^3", + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/error-handler": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/framework-bundle": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/stopwatch": "^6.4|^7.0|^8.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "5.1-dev" - } - }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Collection of value objects that represent the types of the PHP type system", - "homepage": "https://github.com/sebastianbergmann/type", + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "homepage": "https://symfony.com", "support": { - "issues": "https://github.com/sebastianbergmann/type/issues", - "security": "https://github.com/sebastianbergmann/type/security/policy", - "source": "https://github.com/sebastianbergmann/type/tree/5.1.3" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.4.17" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", - "type": "github" + "url": "https://symfony.com/sponsor", + "type": "custom" }, { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" + "url": "https://github.com/fabpot", + "type": "github" }, { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" + "url": "https://github.com/nicolas-grekas", + "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/sebastian/type", + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-08-09T06:55:48+00:00" + "time": "2026-08-21T17:40:08+00:00" }, { - "name": "sebastian/version", - "version": "5.0.2", + "name": "symfony/event-dispatcher-contracts", + "version": "v3.7.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874" + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "c7de7a00ffb67842132da02ea92988a39ccd9f4e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c687e3387b99f5b03b6caa64c74b63e2936ff874", - "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c7de7a00ffb67842132da02ea92988a39ccd9f4e", + "reference": "c7de7a00ffb67842132da02ea92988a39ccd9f4e", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.1", + "psr/event-dispatcher": "^1" }, "type": "library", "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "3.7-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], "support": { - "issues": "https://github.com/sebastianbergmann/version/issues", - "security": "https://github.com/sebastianbergmann/version/security/policy", - "source": "https://github.com/sebastianbergmann/version/tree/5.0.2" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.7.1" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "time": "2024-10-09T05:16:32+00:00" + "time": "2026-06-05T06:23:12+00:00" }, { - "name": "spatie/array-to-xml", - "version": "3.4.4", + "name": "symfony/filesystem", + "version": "v7.4.18", "source": { "type": "git", - "url": "https://github.com/spatie/array-to-xml.git", - "reference": "88b2f3852a922dd73177a68938f8eb2ec70c7224" + "url": "https://github.com/symfony/filesystem.git", + "reference": "90d412aa5277c6819db39e7605aa46b1019e3232" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/88b2f3852a922dd73177a68938f8eb2ec70c7224", - "reference": "88b2f3852a922dd73177a68938f8eb2ec70c7224", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/90d412aa5277c6819db39e7605aa46b1019e3232", + "reference": "90d412aa5277c6819db39e7605aa46b1019e3232", "shasum": "" }, "require": { - "ext-dom": "*", - "php": "^8.0" + "php": ">=8.2", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8" }, "require-dev": { - "mockery/mockery": "^1.2", - "pestphp/pest": "^1.21", - "spatie/pest-plugin-snapshots": "^1.1" + "symfony/process": "^6.4|^7.0|^8.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, "autoload": { "psr-4": { - "Spatie\\ArrayToXml\\": "src" - } + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -8281,197 +8124,224 @@ ], "authors": [ { - "name": "Freek Van der Herten", - "email": "freek@spatie.be", - "homepage": "https://freek.dev", - "role": "Developer" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Convert an array to xml", - "homepage": "https://github.com/spatie/array-to-xml", - "keywords": [ - "array", - "convert", - "xml" - ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", "support": { - "source": "https://github.com/spatie/array-to-xml/tree/3.4.4" + "source": "https://github.com/symfony/filesystem/tree/v7.4.18" }, "funding": [ { - "url": "https://spatie.be/open-source/support-us", + "url": "https://symfony.com/sponsor", "type": "custom" }, { - "url": "https://github.com/spatie", + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "time": "2025-12-15T09:00:41+00:00" + "time": "2026-08-23T10:03:40+00:00" }, { - "name": "squizlabs/php_codesniffer", - "version": "3.13.6", + "name": "symfony/finder", + "version": "v7.4.19", "source": { "type": "git", - "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "4c378e1a528ea066890fc2397cbdd2f94eb2fc91" + "url": "https://github.com/symfony/finder.git", + "reference": "1b900bc6ae5ba60c5eee69c11ba44566190576fe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/4c378e1a528ea066890fc2397cbdd2f94eb2fc91", - "reference": "4c378e1a528ea066890fc2397cbdd2f94eb2fc91", + "url": "https://api.github.com/repos/symfony/finder/zipball/1b900bc6ae5ba60c5eee69c11ba44566190576fe", + "reference": "1b900bc6ae5ba60c5eee69c11ba44566190576fe", "shasum": "" }, "require": { - "ext-simplexml": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": ">=5.4.0" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" + "symfony/filesystem": "^6.4|^7.0|^8.0" }, - "bin": [ - "bin/phpcbf", - "bin/phpcs" - ], "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Greg Sherwood", - "role": "Former lead" - }, - { - "name": "Juliette Reinders Folmer", - "role": "Current lead" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { - "name": "Contributors", - "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", - "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer", - "keywords": [ - "phpcs", - "standards", - "static analysis" - ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", "support": { - "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues", - "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy", - "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer", - "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki" + "source": "https://github.com/symfony/finder/tree/v7.4.19" }, "funding": [ { - "url": "https://github.com/PHPCSStandards", - "type": "github" + "url": "https://symfony.com/sponsor", + "type": "custom" }, { - "url": "https://github.com/jrfnl", + "url": "https://github.com/fabpot", "type": "github" }, { - "url": "https://opencollective.com/php_codesniffer", - "type": "open_collective" + "url": "https://github.com/nicolas-grekas", + "type": "github" }, { - "url": "https://thanks.dev/u/gh/phpcsstandards", - "type": "thanks_dev" + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "time": "2026-08-06T00:17:32+00:00" + "time": "2026-09-10T19:14:10+00:00" }, { - "name": "staabm/side-effects-detector", - "version": "1.0.5", + "name": "symfony/polyfill-iconv", + "version": "v1.37.0", "source": { "type": "git", - "url": "https://github.com/staabm/side-effects-detector.git", - "reference": "d8334211a140ce329c13726d4a715adbddd0a163" + "url": "https://github.com/symfony/polyfill-iconv.git", + "reference": "2c5729fd241b4b22f6e4b436bc3354a4f262df57" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163", - "reference": "d8334211a140ce329c13726d4a715adbddd0a163", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/2c5729fd241b4b22f6e4b436bc3354a4f262df57", + "reference": "2c5729fd241b4b22f6e4b436bc3354a4f262df57", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "php": "^7.4 || ^8.0" + "php": ">=7.2" }, - "require-dev": { - "phpstan/extension-installer": "^1.4.3", - "phpstan/phpstan": "^1.12.6", - "phpunit/phpunit": "^9.6.21", - "symfony/var-dumper": "^5.4.43", - "tomasvotruba/type-coverage": "1.0.0", - "tomasvotruba/unused-public": "1.0.0" + "provide": { + "ext-iconv": "*" + }, + "suggest": { + "ext-iconv": "For best performance" }, "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, "autoload": { - "classmap": [ - "lib/" - ] + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Iconv\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "A static analysis tool to detect side effects in PHP code", + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Iconv extension", + "homepage": "https://symfony.com", "keywords": [ - "static analysis" + "compatibility", + "iconv", + "polyfill", + "portable", + "shim" ], "support": { - "issues": "https://github.com/staabm/side-effects-detector/issues", - "source": "https://github.com/staabm/side-effects-detector/tree/1.0.5" + "source": "https://github.com/symfony/polyfill-iconv/tree/v1.37.0" }, "funding": [ { - "url": "https://github.com/staabm", + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "time": "2024-10-20T05:08:20+00:00" + "time": "2026-04-10T16:19:22+00:00" }, { - "name": "symfony/browser-kit", - "version": "v7.4.17", + "name": "symfony/polyfill-php84", + "version": "v1.38.1", "source": { "type": "git", - "url": "https://github.com/symfony/browser-kit.git", - "reference": "7aff5c4b17a7b04ea6a8390773a93148d15a40b7" + "url": "https://github.com/symfony/polyfill-php84.git", + "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/7aff5c4b17a7b04ea6a8390773a93148d15a40b7", - "reference": "7aff5c4b17a7b04ea6a8390773a93148d15a40b7", + "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa", + "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/dom-crawler": "^6.4|^7.0|^8.0" - }, - "require-dev": { - "symfony/css-selector": "^6.4|^7.0|^8.0", - "symfony/http-client": "^6.4|^7.0|^8.0", - "symfony/mime": "^6.4|^7.0|^8.0", - "symfony/process": "^6.4|^7.0|^8.0" + "php": ">=7.2" }, "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, "autoload": { + "files": [ + "bootstrap.php" + ], "psr-4": { - "Symfony\\Component\\BrowserKit\\": "" + "Symfony\\Polyfill\\Php84\\": "" }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "Resources/stubs" ] }, "notification-url": "https://packagist.org/downloads/", @@ -8480,18 +8350,24 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", + "description": "Symfony polyfill backporting some PHP 8.4+ features to lower PHP versions", "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], "support": { - "source": "https://github.com/symfony/browser-kit/tree/v7.4.17" + "source": "https://github.com/symfony/polyfill-php84/tree/v1.38.1" }, "funding": [ { @@ -8511,20 +8387,20 @@ "type": "tidelift" } ], - "time": "2026-08-21T17:40:08+00:00" + "time": "2026-05-26T12:51:13+00:00" }, { - "name": "symfony/css-selector", - "version": "v7.4.18", + "name": "symfony/process", + "version": "v7.4.19", "source": { "type": "git", - "url": "https://github.com/symfony/css-selector.git", - "reference": "fecf40067fc8d8880ea87b8ac227600b9aadd1d0" + "url": "https://github.com/symfony/process.git", + "reference": "ed0ae095b86994d370d5791612e55984f15aa30e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/fecf40067fc8d8880ea87b8ac227600b9aadd1d0", - "reference": "fecf40067fc8d8880ea87b8ac227600b9aadd1d0", + "url": "https://api.github.com/repos/symfony/process/zipball/ed0ae095b86994d370d5791612e55984f15aa30e", + "reference": "ed0ae095b86994d370d5791612e55984f15aa30e", "shasum": "" }, "require": { @@ -8533,7 +8409,7 @@ "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\CssSelector\\": "" + "Symfony\\Component\\Process\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -8548,19 +8424,15 @@ "name": "Fabien Potencier", "email": "fabien@symfony.com" }, - { - "name": "Jean-François Simon", - "email": "jeanfrancois.simon@sensiolabs.com" - }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Converts CSS selectors to XPath expressions", + "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v7.4.18" + "source": "https://github.com/symfony/process/tree/v7.4.19" }, "funding": [ { @@ -8580,36 +8452,40 @@ "type": "tidelift" } ], - "time": "2026-08-23T10:03:40+00:00" + "time": "2026-09-02T12:38:34+00:00" }, { - "name": "symfony/dom-crawler", - "version": "v7.4.17", + "name": "symfony/yaml", + "version": "v7.4.18", "source": { "type": "git", - "url": "https://github.com/symfony/dom-crawler.git", - "reference": "6b037d62595666cf65de867073c9a1f00184be0c" + "url": "https://github.com/symfony/yaml.git", + "reference": "4cef939e55b8a21c5780418de0d98ab00d0736e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/6b037d62595666cf65de867073c9a1f00184be0c", - "reference": "6b037d62595666cf65de867073c9a1f00184be0c", + "url": "https://api.github.com/repos/symfony/yaml/zipball/4cef939e55b8a21c5780418de0d98ab00d0736e1", + "reference": "4cef939e55b8a21c5780418de0d98ab00d0736e1", "shasum": "" }, "require": { - "masterminds/html5": "^2.6", "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0" + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/console": "<6.4" }, "require-dev": { - "symfony/css-selector": "^6.4|^7.0|^8.0" + "symfony/console": "^6.4|^7.0|^8.0" }, + "bin": [ + "Resources/bin/yaml-lint" + ], "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\DomCrawler\\": "" + "Symfony\\Component\\Yaml\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -8629,10 +8505,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Eases DOM navigation for HTML and XML documents", + "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v7.4.17" + "source": "https://github.com/symfony/yaml/tree/v7.4.18" }, "funding": [ { @@ -8652,168 +8528,150 @@ "type": "tidelift" } ], - "time": "2026-08-21T17:40:08+00:00" + "time": "2026-08-30T00:47:26+00:00" }, { - "name": "symfony/event-dispatcher", - "version": "v7.4.17", + "name": "thecodingmachine/safe", + "version": "v3.4.0", "source": { "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "d269974ee93c61d03620ffee358355bfdb471d66" + "url": "https://github.com/thecodingmachine/safe.git", + "reference": "705683a25bacf0d4860c7dea4d7947bfd09eea19" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d269974ee93c61d03620ffee358355bfdb471d66", - "reference": "d269974ee93c61d03620ffee358355bfdb471d66", + "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/705683a25bacf0d4860c7dea4d7947bfd09eea19", + "reference": "705683a25bacf0d4860c7dea4d7947bfd09eea19", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/event-dispatcher-contracts": "^2.5|^3" - }, - "conflict": { - "symfony/dependency-injection": "<6.4", - "symfony/service-contracts": "<2.5" - }, - "provide": { - "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "2.0|3.0" + "php": "^8.1" }, "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0|^8.0", - "symfony/dependency-injection": "^6.4|^7.0|^8.0", - "symfony/error-handler": "^6.4|^7.0|^8.0", - "symfony/expression-language": "^6.4|^7.0|^8.0", - "symfony/framework-bundle": "^6.4|^7.0|^8.0", - "symfony/http-foundation": "^6.4|^7.0|^8.0", - "symfony/service-contracts": "^2.5|^3", - "symfony/stopwatch": "^6.4|^7.0|^8.0" + "php-parallel-lint/php-parallel-lint": "^1.4", + "phpstan/phpstan": "^2", + "phpunit/phpunit": "^10", + "squizlabs/php_codesniffer": "^3.2" }, "type": "library", "autoload": { - "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "files": [ + "lib/special_cases.php", + "generated/apache.php", + "generated/apcu.php", + "generated/array.php", + "generated/bzip2.php", + "generated/calendar.php", + "generated/classobj.php", + "generated/com.php", + "generated/cubrid.php", + "generated/curl.php", + "generated/datetime.php", + "generated/dir.php", + "generated/eio.php", + "generated/errorfunc.php", + "generated/exec.php", + "generated/fileinfo.php", + "generated/filesystem.php", + "generated/filter.php", + "generated/fpm.php", + "generated/ftp.php", + "generated/funchand.php", + "generated/gettext.php", + "generated/gmp.php", + "generated/gnupg.php", + "generated/hash.php", + "generated/ibase.php", + "generated/ibmDb2.php", + "generated/iconv.php", + "generated/image.php", + "generated/imap.php", + "generated/info.php", + "generated/inotify.php", + "generated/json.php", + "generated/ldap.php", + "generated/libxml.php", + "generated/lzf.php", + "generated/mailparse.php", + "generated/mbstring.php", + "generated/misc.php", + "generated/mysql.php", + "generated/mysqli.php", + "generated/network.php", + "generated/oci8.php", + "generated/opcache.php", + "generated/openssl.php", + "generated/outcontrol.php", + "generated/pcntl.php", + "generated/pcre.php", + "generated/pgsql.php", + "generated/posix.php", + "generated/ps.php", + "generated/pspell.php", + "generated/readline.php", + "generated/rnp.php", + "generated/rpminfo.php", + "generated/rrd.php", + "generated/sem.php", + "generated/session.php", + "generated/shmop.php", + "generated/sockets.php", + "generated/sodium.php", + "generated/solr.php", + "generated/spl.php", + "generated/sqlsrv.php", + "generated/ssdeep.php", + "generated/ssh2.php", + "generated/stream.php", + "generated/strings.php", + "generated/swoole.php", + "generated/uodbc.php", + "generated/uopz.php", + "generated/url.php", + "generated/var.php", + "generated/xdiff.php", + "generated/xml.php", + "generated/xmlrpc.php", + "generated/yaml.php", + "generated/yaz.php", + "generated/zip.php", + "generated/zlib.php" + ], + "classmap": [ + "lib/DateTime.php", + "lib/DateTimeImmutable.php", + "lib/Exceptions/", + "generated/Exceptions/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", - "homepage": "https://symfony.com", + "description": "PHP core functions that throw exceptions instead of returning FALSE on error", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v7.4.17" + "issues": "https://github.com/thecodingmachine/safe/issues", + "source": "https://github.com/thecodingmachine/safe/tree/v3.4.0" }, "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", + "url": "https://github.com/OskarStark", "type": "github" }, { - "url": "https://github.com/nicolas-grekas", + "url": "https://github.com/shish", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-08-21T17:40:08+00:00" - }, - { - "name": "symfony/yaml", - "version": "v7.4.18", - "source": { - "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "4cef939e55b8a21c5780418de0d98ab00d0736e1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/4cef939e55b8a21c5780418de0d98ab00d0736e1", - "reference": "4cef939e55b8a21c5780418de0d98ab00d0736e1", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-ctype": "^1.8" - }, - "conflict": { - "symfony/console": "<6.4" - }, - "require-dev": { - "symfony/console": "^6.4|^7.0|^8.0" - }, - "bin": [ - "Resources/bin/yaml-lint" - ], - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Loads and dumps YAML files", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/yaml/tree/v7.4.18" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", + "url": "https://github.com/silasjoisten", "type": "github" }, { - "url": "https://github.com/nicolas-grekas", + "url": "https://github.com/staabm", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" } ], - "time": "2026-08-30T00:47:26+00:00" + "time": "2026-02-04T18:08:13+00:00" }, { "name": "theseer/tokenizer", @@ -8982,6 +8840,148 @@ "source": "https://github.com/vimeo/psalm" }, "time": "2026-09-21T08:32:57+00:00" + }, + { + "name": "vlucas/phpdotenv", + "version": "v5.7.0", + "source": { + "type": "git", + "url": "https://github.com/vlucas/phpdotenv.git", + "reference": "301c07936b16d88628b126b01d082ba153cf4c40" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/301c07936b16d88628b126b01d082ba153cf4c40", + "reference": "301c07936b16d88628b126b01d082ba153cf4c40", + "shasum": "" + }, + "require": { + "ext-pcre": "*", + "graham-campbell/result-type": "^1.2", + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.10", + "symfony/polyfill-ctype": "^1.26", + "symfony/polyfill-mbstring": "^1.26", + "symfony/polyfill-php80": "^1.26" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "ext-filter": "*", + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" + }, + "suggest": { + "ext-filter": "Required to use the boolean validator." + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + }, + "branch-alias": { + "dev-master": "5.6-dev" + } + }, + "autoload": { + "psr-4": { + "Dotenv\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Vance Lucas", + "email": "vance@vancelucas.com", + "homepage": "https://github.com/vlucas" + } + ], + "description": "Loads environment variables from `.env` to `$_ENV` and `$_SERVER` automagically, and optionally to `getenv()`.", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "support": { + "issues": "https://github.com/vlucas/phpdotenv/issues", + "source": "https://github.com/vlucas/phpdotenv/tree/v5.7.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv", + "type": "tidelift" + } + ], + "time": "2026-08-24T18:07:49+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.12.1", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "9be6926d8b485f55b9229203f962b51ed377ba68" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/9be6926d8b485f55b9229203f962b51ed377ba68", + "reference": "9be6926d8b485f55b9229203f962b51ed377ba68", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-date": "*", + "ext-filter": "*", + "php": "^7.2 || ^8.0" + }, + "suggest": { + "ext-intl": "", + "ext-simplexml": "", + "ext-spl": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.12.1" + }, + "time": "2025-10-29T15:56:20+00:00" } ], "aliases": [], From 2f3ef69b4183e11e1574d61048e7f5577671261f Mon Sep 17 00:00:00 2001 From: Romeo Manzur Date: Thu, 24 Sep 2026 14:06:02 -0600 Subject: [PATCH 13/15] Fix migrations v4 configuration handling Assisted-by: ChatGPT --- src/Commands/Builtin/Migration.php | 9 +++-- tests/console/MigrationCept.php | 53 ++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 3 deletions(-) create mode 100644 tests/console/MigrationCept.php diff --git a/src/Commands/Builtin/Migration.php b/src/Commands/Builtin/Migration.php index 9b37b70aa..4442ff638 100644 --- a/src/Commands/Builtin/Migration.php +++ b/src/Commands/Builtin/Migration.php @@ -18,6 +18,7 @@ use Phalcon\DevTools\Script\Color; use Phalcon\Migrations\Migrations; use Phalcon\Migrations\Script\ScriptException; +use Phalcon\Migrations\Utils\Config as MigrationsConfig; use Phalcon\Mvc\Model\Exception; /** @@ -73,6 +74,8 @@ public function run(array $parameters): void $config = $this->getConfig($path); } + $migrationsConfig = MigrationsConfig::fromArray($config->toArray()); + $exportDataFromTables= []; if ($this->isReceivedOption('exportDataFromTables')) { $exportDataFromTables = explode(',', $this->getOption('exportDataFromTables')); @@ -140,7 +143,7 @@ public function run(array $parameters): void 'version' => $this->getOption('version'), 'force' => $this->isReceivedOption('force'), 'noAutoIncrement' => $this->isReceivedOption('no-auto-increment'), - 'config' => $config, + 'config' => $migrationsConfig, 'descr' => $this->getOption('descr'), 'verbose' => $this->isReceivedOption('dry'), ]); @@ -152,7 +155,7 @@ public function run(array $parameters): void 'migrationsDir' => $migrationsDir, 'force' => $this->isReceivedOption('force'), 'tsBased' => $migrationsTsBased, - 'config' => $config, + 'config' => $migrationsConfig, 'version' => $this->getOption('version'), 'migrationsInDb' => $migrationsInDb, 'verbose' => $this->isReceivedOption('verbose'), @@ -165,7 +168,7 @@ public function run(array $parameters): void 'migrationsDir' => $migrationsDir, 'force' => $this->isReceivedOption('force'), 'tsBased' => $migrationsTsBased, - 'config' => $config, + 'config' => $migrationsConfig, 'version' => $this->getOption('version'), 'migrationsInDb' => $migrationsInDb, ]); diff --git a/tests/console/MigrationCept.php b/tests/console/MigrationCept.php new file mode 100644 index 000000000..d3cc37e96 --- /dev/null +++ b/tests/console/MigrationCept.php @@ -0,0 +1,53 @@ + + * + * For the full copyright and license information, please view + * the LICENSE file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Phalcon\DevTools\Tests\Console; + +use Codeception\Scenario; +use ConsoleTester; + +/** + * @var Scenario $scenario + */ + +$I = new ConsoleTester($scenario); + +$I->wantToTest('Generating and listing migrations'); +$I->amInPath(dirname(app_path())); + +$migrationsTestDir = app_path('migrations_test'); + +if (is_dir($migrationsTestDir)) { + $I->deleteDir($migrationsTestDir); +} + +$I->runShellCommand( + 'phalcon migration generate --config=app/mysql/config.php --migrations=app/migrations_test ' . + '--table=customers --version=1.0.0 --force' +); + +$I->seeInShellOutput('Success: Version 1.0.0 was successfully generated'); + +$migrationFile = app_path('migrations_test/1.0.0/customers.php'); + +$I->seeFileFound($migrationFile); + +$I->runShellCommand( + 'phalcon migration list --config=app/mysql/config.php --migrations=app/migrations_test' +); + +$I->seeInShellOutput('Version'); +$I->seeInShellOutput('Was applied'); +$I->seeInShellOutput('1.0.0'); + +$I->deleteDir($migrationsTestDir); \ No newline at end of file From acab58562a25709e4ee1fe550abbd29180dd3ee1 Mon Sep 17 00:00:00 2001 From: Romeo Manzur Date: Thu, 24 Sep 2026 21:23:31 -0600 Subject: [PATCH 14/15] Align migration options with migrations v4 Assisted-by: ChatGPT --- src/Commands/Builtin/Migration.php | 52 +++++++++++-------- tests/console/MigrationCept.php | 83 +++++++++++++++++++++++++++++- 2 files changed, 113 insertions(+), 22 deletions(-) diff --git a/src/Commands/Builtin/Migration.php b/src/Commands/Builtin/Migration.php index 4442ff638..43f5c213d 100644 --- a/src/Commands/Builtin/Migration.php +++ b/src/Commands/Builtin/Migration.php @@ -76,7 +76,15 @@ public function run(array $parameters): void $migrationsConfig = MigrationsConfig::fromArray($config->toArray()); - $exportDataFromTables= []; + $noAutoIncrement = $migrationsConfig->noAutoIncrement + || $this->isReceivedOption('no-auto-increment'); + + $descr = $migrationsConfig->descr ?? $this->getOption('descr'); + + $skipRefSchema = $migrationsConfig->skipRefSchema; + $skipForeignChecks = $migrationsConfig->skipForeignChecks; + + $exportDataFromTables = []; if ($this->isReceivedOption('exportDataFromTables')) { $exportDataFromTables = explode(',', $this->getOption('exportDataFromTables')); } elseif (isset($config['application']['exportDataFromTables'])) { @@ -135,30 +143,32 @@ public function run(array $parameters): void switch ($action) { case 'generate': Migrations::generate([ - 'directory' => $path, - 'tableName' => $tableName, - 'exportData' => $this->getOption('data'), - 'exportDataFromTables' => $exportDataFromTables, - 'migrationsDir' => $migrationsDir, - 'version' => $this->getOption('version'), - 'force' => $this->isReceivedOption('force'), - 'noAutoIncrement' => $this->isReceivedOption('no-auto-increment'), - 'config' => $migrationsConfig, - 'descr' => $this->getOption('descr'), - 'verbose' => $this->isReceivedOption('dry'), + 'directory' => $path, + 'tableName' => $tableName, + 'exportData' => $this->getOption('data'), + 'exportDataFromTables' => $exportDataFromTables, + 'migrationsDir' => $migrationsDir, + 'version' => $this->getOption('version'), + 'force' => $this->isReceivedOption('force'), + 'noAutoIncrement' => $noAutoIncrement, + 'config' => $migrationsConfig, + 'descr' => $descr, + 'verbose' => $this->isReceivedOption('dry'), + 'skip-ref-schema' => $skipRefSchema, ]); break; case 'run': Migrations::run([ - 'directory' => $path, - 'tableName' => $tableName, - 'migrationsDir' => $migrationsDir, - 'force' => $this->isReceivedOption('force'), - 'tsBased' => $migrationsTsBased, - 'config' => $migrationsConfig, - 'version' => $this->getOption('version'), - 'migrationsInDb' => $migrationsInDb, - 'verbose' => $this->isReceivedOption('verbose'), + 'directory' => $path, + 'tableName' => $tableName, + 'migrationsDir' => $migrationsDir, + 'force' => $this->isReceivedOption('force'), + 'tsBased' => $migrationsTsBased, + 'config' => $migrationsConfig, + 'version' => $this->getOption('version'), + 'migrationsInDb' => $migrationsInDb, + 'verbose' => $this->isReceivedOption('verbose'), + 'skip-foreign-checks' => $skipForeignChecks, ]); break; case 'list': diff --git a/tests/console/MigrationCept.php b/tests/console/MigrationCept.php index d3cc37e96..cef06bf5a 100644 --- a/tests/console/MigrationCept.php +++ b/tests/console/MigrationCept.php @@ -26,11 +26,27 @@ $I->amInPath(dirname(app_path())); $migrationsTestDir = app_path('migrations_test'); +$configFile = app_path('mysql/config-migrations.php'); +$noAutoIncrementDir = app_path('migrations_no_auto_increment_test'); +/** + * Clean up leftovers from previous failed/incomplete test runs. + */ if (is_dir($migrationsTestDir)) { $I->deleteDir($migrationsTestDir); } +if (is_dir($noAutoIncrementDir)) { + $I->deleteDir($noAutoIncrementDir); +} + +if (is_file($configFile)) { + $I->deleteFile($configFile); +} + +/** + * Generate a regular migration. + */ $I->runShellCommand( 'phalcon migration generate --config=app/mysql/config.php --migrations=app/migrations_test ' . '--table=customers --version=1.0.0 --force' @@ -42,6 +58,12 @@ $I->seeFileFound($migrationFile); +$I->openFile($migrationFile); +$I->seeInThisFile("'autoIncrement' => true"); + +/** + * List generated migrations. + */ $I->runShellCommand( 'phalcon migration list --config=app/mysql/config.php --migrations=app/migrations_test' ); @@ -50,4 +72,63 @@ $I->seeInShellOutput('Was applied'); $I->seeInShellOutput('1.0.0'); -$I->deleteDir($migrationsTestDir); \ No newline at end of file +/** + * Create a migration configuration that disables preserving the current + * AUTO_INCREMENT table value. + */ +$I->haveFile( + $configFile, + <<<'PHP' + [ + 'adapter' => 'Mysql', + 'host' => env('MYSQL_DB_HOST') ?: '127.0.0.1', + 'username' => env('MYSQL_DB_USERNAME') ?: 'root', + 'password' => env('MYSQL_DB_PASSWORD') ?: '', + 'dbname' => env('MYSQL_DB_NAME') ?: 'devtools', + 'port' => (int) (env('MYSQL_DB_PORT') ?: 3306), + ], + 'application' => [ + 'no-auto-increment' => true, + ], +]); +PHP +); + +/** + * Generate another migration using no-auto-increment from the config file. + */ +$I->runShellCommand( + 'phalcon migration generate --config=app/mysql/config-migrations.php ' . + '--migrations=app/migrations_no_auto_increment_test ' . + '--table=customers --version=1.0.0 --force' +); + +$I->seeInShellOutput('Success: Version 1.0.0 was successfully generated'); + +$noAutoIncrementFile = app_path( + 'migrations_no_auto_increment_test/1.0.0/customers.php' +); + +$I->seeFileFound($noAutoIncrementFile); + +$I->openFile($noAutoIncrementFile); + +/** + * no-auto-increment does not remove the AUTO_INCREMENT attribute from + * the column. It prevents the current table AUTO_INCREMENT counter from + * being preserved in the generated migration. + */ +$I->seeInThisFile("'autoIncrement' => true"); +$I->seeInThisFile("'AUTO_INCREMENT' => ''"); + +/** + * Clean up generated test files. + */ +$I->deleteDir($noAutoIncrementDir); +$I->deleteFile($configFile); +$I->deleteDir($migrationsTestDir); From cb18b95a5834df4b9609867e902a98a595e7b172 Mon Sep 17 00:00:00 2001 From: Romeo Manzur Date: Thu, 24 Sep 2026 21:54:33 -0600 Subject: [PATCH 15/15] Update documentation and release workflow for Phalcon 6 Assisted-by: ChatGPT --- .github/workflows/release-phar.yml | 51 +++-- CHANGELOG.md | 26 +++ CONTRIBUTING.md | 99 ++++++---- README.md | 305 +++++++++++++++++++---------- composer.json | 2 +- 5 files changed, 317 insertions(+), 166 deletions(-) diff --git a/.github/workflows/release-phar.yml b/.github/workflows/release-phar.yml index a56cf9356..fc10d5599 100644 --- a/.github/workflows/release-phar.yml +++ b/.github/workflows/release-phar.yml @@ -1,39 +1,48 @@ +name: Append phalcon.phar to release + on: release: types: - created -name: Append phalcon.phar to release +permissions: + contents: write jobs: build: - name: Compile and upload Phar - runs-on: ubuntu-18.04 + name: Compile and upload PHAR + runs-on: ubuntu-24.04 + steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v7 + with: + fetch-depth: 0 - - name: Set PHP 7.4 + - name: Setup PHP 8.2 uses: shivammathur/setup-php@v2 with: - php-version: '7.4' - extensions: phalcon-5.1.2 + php-version: '8.2' + extensions: mbstring, intl, zip, pdo + coverage: none + tools: composer:v2 + + - name: Install dependencies + run: composer install --no-interaction --prefer-dist --no-progress --optimize-autoloader + + - name: Validate Box configuration + run: vendor/bin/box validate - name: Compile phalcon.phar - run: | - composer install - wget https://github.com/box-project/box/releases/download/3.9.1/box.phar - php box.phar compile + run: vendor/bin/box compile -v - - name: Check existence of compiled .phar - run: test -e phalcon.phar && exit 0 || exit 10 + - name: Verify compiled PHAR + run: test -f phalcon.phar - - name: Upload to Release - uses: actions/upload-release-asset@v1 + - name: Smoke test compiled PHAR + run: php phalcon.phar --version + + - name: Upload PHAR to release env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ github.event.release.upload_url }} - asset_path: ./phalcon.phar - asset_name: phalcon.phar - asset_content_type: application/octet-stream + GH_TOKEN: ${{ github.token }} + run: gh release upload "${{ github.event.release.tag_name }}" phalcon.phar --clobber diff --git a/CHANGELOG.md b/CHANGELOG.md index 837a41c24..4010a0858 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,29 @@ +# Unreleased + +## Added + +- Added Phalcon 6 runtime support using the Composer-based `phalcon/phalcon` package. +- Added PHP 8.2, 8.3 and 8.4 CI coverage. +- Added Codeception 5 console coverage for migrations. +- Added PHPStan and Psalm static-analysis coverage for the Phalcon 6 codebase. + +## Changed + +- Updated runtime requirements to PHP 8.2+ and Phalcon 6. +- Updated project, model, scaffold and WebTools generation for Phalcon 6. +- Updated migration support for `phalcon/migrations` v4. +- Modernized Codeception, PHPUnit, PHPStan, Psalm and PHP_CodeSniffer tooling. +- Reduced runtime dependencies so development-only packages are excluded from consumer installations. +- Updated migrations to use `Phalcon\Migrations\Utils\Config`. +- Updated migration configuration handling for Phalcon Migrations v4. + +## Fixed + +- Fixed model metadata namespace handling under Phalcon 6. +- Fixed migration `generate`, `run` and `list` compatibility with `phalcon/migrations` v4. +- Fixed migration options loaded from application configuration. +- Fixed compatibility issues exposed by PHP 8.4. + # [4.1.0](https://github.com/phalcon/cphalcon/releases/tag/v4.1.0) ## Fixed - Fixed column annotation bugs on model creation [1425](https://github.com/phalcon/phalcon-devtools/issues/1425) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4697bfcf3..47c1a44e6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,65 +1,84 @@ # Contributing to Phalcon Developer Tools -Phalcon Developer Tools is an open source project and a volunteer effort. -Phalcon Developer Tools welcomes contribution from everyone. +Phalcon Developer Tools is an open-source project and a volunteer effort. + +Contributions from everyone are welcome. ## Contributions -Contributions to Phalcon Developer Tools should be made in the form of [GitHub pull requests][pr]. -Each pull request will be reviewed by a core contributor (someone with permission to land patches) and either landed in -the main tree or given feedback for changes that would be required before it can be merged. All contributions should -follow this format, even those from core contributors. +Contributions to Phalcon Developer Tools should be submitted as GitHub pull requests. + +Each pull request will be reviewed by a project contributor and will either be merged or receive feedback describing any changes required before it can be accepted. + +Before starting a significant feature or architectural change, consider discussing the proposal with the Phalcon team first. ## Questions & Support -*We only accept bug reports, new feature requests and pull requests in GitHub*. -For questions regarding the usage of the Phalcon Developer Tools or support requests please visit the -[official forums][forum]. IDE stubs must not be modified manually, if you want to improve them please submit a PR -to [Phalcon Framework][cphalcon]. +GitHub issues are intended for bug reports and feature requests. + +For questions about using Phalcon or Phalcon Developer Tools, please use the official Phalcon Discussions or Discord support channels. ## Bug Report Checklist -- Make sure you are using the latest released version of Phalcon Framework and Phalcon Developer Tools - before submitting a bug report. Bugs in versions older than the latest released one will not be addressed by the - core team +Before submitting a bug report: -- If you have found a bug it is important to add relevant reproducibility information to your issue to allow us - to reproduce the bug and fix it quicker. Add a script, small program or repository providing the necessary code to - make everyone reproduce the issue reported easily. If a bug cannot be reproduced by the development it would be - difficult provide corrections and solutions. [Submit Reproducible Test][srt] for more information. +- Make sure you are using the latest applicable version of Phalcon Framework and Phalcon Developer Tools. +- Include enough information to reproduce the issue. +- Include the operating system, PHP version, Phalcon version and Phalcon DevTools version. +- Include database type and version when the issue involves database functionality. +- Provide a minimal reproducer, failing test or small repository whenever possible. -- Be sure that information such as OS, Phalcon Framework and Phalcon Developer Tools versions and PHP version are - part of the bug report +## Pull Request Checklist -- If you're submitting a Segmentation Fault error, we would require a backtrace, please see [Generating a Backtrace][gb] +Create your branch from the appropriate source branch for the change. Do not assume that `master` is the correct target branch. -## Pull Request Checklist +Before submitting a pull request: + +- Rebase your branch when necessary. +- Keep the change focused on the purpose of the pull request. +- Add or update automated tests for behavior changes and bug fixes. +- Update documentation when behavior or requirements change. +- Update `CHANGELOG.md` when appropriate. +- Avoid unrelated dependency or lock-file changes. +- Make sure the code follows the project's coding standards. +- Run the relevant test suites and static-analysis tools. + +The Phalcon contribution guidelines also require disclosure when AI coding assistants materially contribute to a change. Review the current Phalcon AI Development guidelines before submitting your pull request. + +## Development Checks -- Don't submit your pull requests to the `master` branch. Branch from the required branch and, - if needed, rebase to the proper branch before submitting your pull request. - If it doesn't merge cleanly with master you may be asked to rebase your changes - -- Don't put submodule updates, composer.lock, etc in your pull request unless they are to landed commits +Run the available Codeception test suites: -- Make sure that the code you write fits with the general style and coding standards of the [Accepted PHP Standards][psr] +```bash +vendor/bin/codecept run +``` + +Run PHPStan: + +```bash +vendor/bin/phpstan analyse +``` + +Run Psalm: + +```bash +vendor/bin/psalm --threads=1 +``` + +Run PHP_CodeSniffer: + +```bash +vendor/bin/phpcs +``` ## Getting Support -If you have a question about how to use Phalcon, please see the [support page][support]. +For questions about using Phalcon, use the official Phalcon Discussions or Discord support channels. ## Requesting Features -If you have a change or new feature in mind, please fill an [NFR][nfr]. - -Thanks!
-Phalcon Team +For significant new functionality, review the current Phalcon New Feature Request guidelines before implementation. +Thanks! -[pr]: https://help.github.com/articles/about-pull-requests/ -[forum]: https://forum.phalcon.io/ -[cphalcon]: https://github.com/phalcon/cphalcon -[srt]: https://docs.phalcon.io/en/latest/reproducible-tests -[gb]: https://docs.phalcon.io/en/latest/generating-backtrace -[support]: https://phalcon.io/en/support/ -[nfr]: https://docs.phalcon.io/en/latest/new-feature-request -[psr]: https://www.php-fig.org/psr/ +Phalcon Team diff --git a/README.md b/README.md index b1a316593..2f8041ec8 100644 --- a/README.md +++ b/README.md @@ -1,183 +1,280 @@ -# Phalcon Devtools +# Phalcon DevTools -[![codecov](https://codecov.io/gh/phalcon/phalcon-devtools/branch/4.0.x/graph/badge.svg)](https://codecov.io/gh/phalcon/phalcon-devtools) +[![Tests](https://github.com/phalcon/phalcon-devtools/actions/workflows/tests.yml/badge.svg?branch=5.0.x)](https://github.com/phalcon/phalcon-devtools/actions/workflows/tests.yml) +[![codecov](https://codecov.io/gh/phalcon/phalcon-devtools/branch/5.0.x/graph/badge.svg)](https://codecov.io/gh/phalcon/phalcon-devtools) [![Latest Version](https://img.shields.io/packagist/v/phalcon/devtools.svg?style=flat-square)][:devtools:] [![Software License](https://img.shields.io/badge/license-BSD--3-brightgreen.svg?style=flat-square)][:license:] [![Total Downloads](https://img.shields.io/packagist/dt/phalcon/devtools.svg?style=flat-square)][:packagist:] [![Daily Downloads](https://img.shields.io/packagist/dd/phalcon/devtools.svg?style=flat-square)][:packagist:] -[![Build Status](https://api.travis-ci.org/phalcon/phalcon-devtools.svg?branch=master)][:travis:] -![Phalcon WebTools](http://i.imgur.com/B3V2uSf.png) +## What's Phalcon? +Phalcon is an open-source PHP framework focused on performance, low overhead, and a clean, expressive API. -## What's Phalcon? +Phalcon 6 is consumed through Composer using the `phalcon/phalcon` package. This version of Phalcon DevTools does not require the legacy `ext-phalcon` extension. -Phalcon PHP is a web framework delivered as a C extension providing high performance and lower resource consumption. +## What are DevTools? -## What are Devtools? +Phalcon DevTools provides command-line utilities and development tools for applications built with the Phalcon Framework. -This tools provide you useful scripts to generate code helping to develop faster and easy applications that use -with Phalcon framework. +It includes commands for generating projects, controllers, models, scaffolds and migrations, as well as WebTools and an interactive console. ## Requirements -* PHP >= 7.4.1 -* Phalcon >= 5.0.0 +- PHP `>= 8.2 < 9.0` +- Composer 2 +- PDO (`ext-pdo`) +- Phalcon 6 (`phalcon/phalcon`) + +Database-related commands also require the appropriate PDO driver, such as `pdo_mysql`, `pdo_pgsql`, or `pdo_sqlite`. ## Installing via Composer -Install composer in a common location or in your project: +The Phalcon 6-compatible DevTools work is currently available from the active development branch. + +Some Phalcon companion packages used by DevTools are still published as development versions, so Composer must allow development dependencies while preferring stable packages: ```bash -curl -s http://getcomposer.org/installer | php +composer config minimum-stability dev +composer config prefer-stable true +composer require --dev phalcon/devtools:5.0.x-dev ``` -Create the composer.json file as follows: +Composer exposes the DevTools executable in your project's `vendor/bin` directory: -```json -{ - "require-dev": { - "phalcon/devtools": "~5.0" - } -} +```bash +vendor/bin/phalcon --help ``` -If you are still using Phalcon 4.2.x, create a `composer.json` with the following instead: +Once a stable Phalcon 6-compatible DevTools release is published, projects will be able to use the corresponding stable version constraint instead. -```json -{ - "require-dev": { - "phalcon/devtools": "^4.2" - } -} +## Installation via Git + +Clone the repository and install its dependencies: + +```bash +git clone https://github.com/phalcon/phalcon-devtools.git +cd phalcon-devtools +composer install ``` -Run the composer installer: +Run DevTools directly: ```bash -php composer.phar install +./phalcon --help ``` -## Build `.phar` +You can also create a symlink in a directory available in your `PATH`: -Install composer and box in a common location or in your project: ```bash -curl -s http://getcomposer.org/installer | php -bin/composer install +sudo ln -s "$(pwd)/phalcon" /usr/local/bin/phalcon ``` -Build phar file `phalcon-devtools` +Then DevTools can be invoked globally: + ```bash -bin/box build -v -chmod +xr ./phalcon.phar -# Test it! -php ./phalcon.phar +phalcon --help ``` -## Installation via Git +## Usage + +To list the available commands: -Phalcon Devtools can be installed by using Git. +```bash +phalcon commands help +``` -Just clone the repo and checkout the current branch: +The available commands include: + +```text +info (alias of: i) +commands (alias of: list, enumerate) +controller (alias of: create-controller) +module (alias of: create-module) +model (alias of: create-model) +all-models (alias of: create-all-models) +project (alias of: create-project) +scaffold (alias of: create-scaffold) +migration (alias of: create-migration) +webtools (alias of: create-webtools) +serve (alias of: server) +console (alias of: shell, psysh) +``` + +Run command-specific help when additional options are needed: ```bash -cd ~ -git clone https://github.com/phalcon/phalcon-devtools.git -cd phalcon-devtools +phalcon model --help +phalcon scaffold --help +phalcon migration --help +``` + +## Database configuration + +Commands that interact with a database require a database configuration. + +For MySQL: + +```php + [ + 'adapter' => 'Mysql', + 'host' => '127.0.0.1', + 'username' => 'root', + 'password' => '', + 'dbname' => 'application', + 'port' => 3306, + ], +]); ``` -This method requires a little bit more of setup. Probably the best way would be to symlink -the `phalcon` file to a directory in your `PATH`, so you can issue phalcon commands in each directory -where a phalcon project resides. +For PostgreSQL: + +```php + [ + 'adapter' => 'Postgresql', + 'host' => '127.0.0.1', + 'username' => 'postgres', + 'password' => '', + 'dbname' => 'application', + 'port' => 5432, + ], +]); +``` + +## Migrations + +Phalcon DevTools integrates with `phalcon/migrations` v4. + +Common migration commands include: ```bash -cd phalcon-devtools -composer install -ln -s $(pwd)/phalcon /usr/bin/phalcon -chmod ugo+x /usr/bin/phalcon +phalcon migration generate +phalcon migration list +phalcon migration run +``` + +Migration behavior can also be configured in the application's configuration: + +```php +'application' => [ + 'migrationsDir' => 'app/migrations', + 'migrationsTsBased' => false, + 'logInDb' => false, + 'no-auto-increment' => false, + 'skip-ref-schema' => false, + 'skip-foreign-checks' => false, +], +``` + +## DevTools configuration + +A project-level DevTools configuration can define default options for individual commands. + +For example: + +```json +{ + "migration": { + "migrations": "App/Migrations", + "config": "App/Config/db.php" + }, + "controller": { + "namespace": "App\\Controllers", + "directory": "App/Controllers", + "base-class": "App\\Controllers\\BaseController" + } +} ``` -If you get a `"phalcon: command not found"` message while creating the symlink, make an alias. +Command-line arguments override values defined in the DevTools configuration. + +For example: ```bash -alias phalcon=/home/[USERNAME]/phalcon-devtools/phalcon +phalcon migration run +phalcon controller SomeClass ``` -## Usage +## Build `phalcon.phar` -To get a list of available commands just execute following: +Install the development dependencies: ```bash -phalcon commands help +composer install +``` + +Validate the Box configuration: + +```bash +vendor/bin/box validate ``` -This command should display something similar to: +Build the PHAR: -```sh -$ phalcon --help +```bash +vendor/bin/box compile -v +``` + +Verify the generated PHAR: + +```bash +php phalcon.phar --version +``` -Phalcon DevTools (5.0.0) +The release workflow performs the same validation, compilation, and smoke test before attaching `phalcon.phar` to a GitHub Release. -Help: - Lists the commands available in Phalcon DevTools +## Development -Available commands: - info (alias of: i) - commands (alias of: list, enumerate) - controller (alias of: create-controller) - module (alias of: create-module) - model (alias of: create-model) - all-models (alias of: create-all-models) - project (alias of: create-project) - scaffold (alias of: create-scaffold) - migration (alias of: create-migration) - webtools (alias of: create-webtools) - serve (alias of: server) - console (alias of: shell, psysh) +Install all dependencies: + +```bash +composer install ``` -## Database adapter +Run the test suites: -Should add `adapter` parameter in your `db` config file (if you use not MySQL database). +```bash +vendor/bin/codecept run +``` -For PostgreSQL it will be something like: +Run PHPStan: -```php -$config = [ - 'host' => 'localhost', - 'dbname' => 'my_db_name', - 'username' => 'my_db_user', - 'password' => 'my_db_user_password', - 'adapter' => 'Postgresql' -]; +```bash +vendor/bin/phpstan analyse ``` -## Configuration file +Run Psalm: -By creating **config.json** or any other configuration file called **config** in root project you can set options for all possible commands, for example: +```bash +vendor/bin/psalm --threads=1 +``` -```json -{ - "migration" : { - "migrations": "App/Migrations", - "config": "App/Config/db.ini" - }, - "controller" : { - "namespace": "Phalcon\\Test", - "directory": "App/Controllers", - "base-class": "App\\MyAbstractController" - } -} +Run PHP_CodeSniffer: + +```bash +vendor/bin/phpcs ``` -And then you can use `phalcon migration run` or `phalcon controller SomeClass` and those commands will be executed with options from file. Arguments provided by developer from command line will overwrite existing one in a file. +## Contributing + +Contributions are welcome. Please read [CONTRIBUTING.md](CONTRIBUTING.md) before opening a pull request. ## License -Phalcon Developer Tools is open source software licensed under the [New BSD License][:license:].
+Phalcon Developer Tools is open-source software licensed under the [New BSD License][:license:]. + © Phalcon Framework Team and contributors [:packagist:]: https://packagist.org/packages/phalcon/devtools [:devtools:]: https://github.com/phalcon/phalcon-devtools -[:license:]: https://github.com/phalcon/phalcon-devtools/blob/master/LICENSE.txt -[:travis:]: https://travis-ci.org/phalcon/phalcon-devtools +[:license:]: LICENSE.txt diff --git a/composer.json b/composer.json index 373bb8518..c2048e0e2 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { "name": "phalcon/devtools", "type": "library", - "description": "This tools provide you useful scripts to generate code helping to develop faster and easy applications that use with Phalcon framework.", + "description": "Development tools for the Phalcon Framework, including code generators, migrations, WebTools, and console utilities.", "keywords": [ "framework", "phalcon",