diff --git a/application/Espo/Core/Mail/Message/MailMimeParser/Part.php b/application/Espo/Core/Mail/Message/MailMimeParser/Part.php index 7f0844d77b..6b750f5b7f 100644 --- a/application/Espo/Core/Mail/Message/MailMimeParser/Part.php +++ b/application/Espo/Core/Mail/Message/MailMimeParser/Part.php @@ -31,13 +31,13 @@ namespace Espo\Core\Mail\Message\MailMimeParser; use Espo\Core\Mail\Message\Part as PartInterface; -use ZBateson\MailMimeParser\Message\Part\MessagePart; +use ZBateson\MailMimeParser\Message\IMessagePart; class Part implements PartInterface { - private MessagePart $part; + private IMessagePart $part; - public function __construct(MessagePart $part) + public function __construct(IMessagePart $part) { $this->part = $part; } diff --git a/application/Espo/Core/Mail/Parsers/MailMimeParser.php b/application/Espo/Core/Mail/Parsers/MailMimeParser.php index d5e911ed52..26ea9febf9 100644 --- a/application/Espo/Core/Mail/Parsers/MailMimeParser.php +++ b/application/Espo/Core/Mail/Parsers/MailMimeParser.php @@ -40,10 +40,10 @@ use Espo\Core\Mail\Message\MailMimeParser\Part as WrapperPart; use Psr\Http\Message\StreamInterface; use ZBateson\MailMimeParser\Header\AddressHeader; +use ZBateson\MailMimeParser\IMessage; use ZBateson\MailMimeParser\MailMimeParser as WrappeeParser; -use ZBateson\MailMimeParser\Message\Part\MessagePart; -use ZBateson\MailMimeParser\Message\Part\MimePart; -use ZBateson\MailMimeParser\Message as ParserMessage; +use ZBateson\MailMimeParser\Message\MessagePart; +use ZBateson\MailMimeParser\Message\MimePart; use stdClass; @@ -68,7 +68,7 @@ class MailMimeParser implements Parser private const DISPOSITION_INLINE = 'inline'; - /** @var array */ + /** @var array */ private array $messageHash = []; public function __construct(private EntityManager $entityManager) @@ -89,12 +89,11 @@ class MailMimeParser implements Parser $key = spl_object_hash($message); - $this->messageHash[$key] = $this->getParser()->parse($raw); + $this->messageHash[$key] = $this->getParser()->parse($raw, false); } - /** - * @return ParserMessage + * @return IMessage */ private function getMessage(Message $message) { @@ -107,7 +106,7 @@ class MailMimeParser implements Parser $raw = $message->getFullRawContent(); } - $this->messageHash[$key] = $this->getParser()->parse($raw); + $this->messageHash[$key] = $this->getParser()->parse($raw, false); } return $this->messageHash[$key]; @@ -256,7 +255,7 @@ class MailMimeParser implements Parser $inlinePart = $this->getMessage($message)->getHtmlPart($i); - $bodyHtml .= $inlinePart->getContent(); + $bodyHtml .= $inlinePart?->getContent() ?? ''; } for ($i = 0; $i < $textPartCount; $i++) { @@ -266,7 +265,7 @@ class MailMimeParser implements Parser $inlinePart = $this->getMessage($message)->getTextPart($i); - $bodyPlain .= $inlinePart->getContent(); + $bodyPlain .= $inlinePart?->getContent() ?? ''; } if ($bodyHtml) { diff --git a/application/Espo/Core/WebSocket/Pusher.php b/application/Espo/Core/WebSocket/Pusher.php index db4737c92e..bb27841a0e 100644 --- a/application/Espo/Core/WebSocket/Pusher.php +++ b/application/Espo/Core/WebSocket/Pusher.php @@ -29,6 +29,8 @@ namespace Espo\Core\WebSocket; +use GuzzleHttp\Psr7\Query; + use Ratchet\ConnectionInterface; use Ratchet\Wamp\Topic; use Ratchet\Wamp\WampServerInterface; @@ -385,7 +387,7 @@ class Pusher implements WampServerInterface $query = $httpRequest->getUri()->getQuery(); - $params = \GuzzleHttp\Psr7\parse_query($query ?: ''); + $params = Query::parse($query ?: ''); if (empty($params['userId']) || empty($params['authToken'])) { $this->closeConnection($connection); diff --git a/composer.json b/composer.json index a92514cd26..a1378bd66c 100644 --- a/composer.json +++ b/composer.json @@ -35,11 +35,11 @@ "symfony/routing": "6.0.*", "cboden/ratchet": "^0.4.4", "react/zmq": "^0.4.0", - "guzzlehttp/psr7": "^1.9.1", + "guzzlehttp/psr7": "^2.7.0", "michelf/php-markdown": "^1.9", "robthree/twofactorauth": "^1.6", "nesbot/carbon": "^2.62", - "zbateson/mail-mime-parser": "1.3.*", + "zbateson/mail-mime-parser": "^3.0.2", "phpoffice/phpspreadsheet": "^1.16", "doctrine/dbal": "^3.5.3", "league/flysystem-async-aws-s3": "^3.0", diff --git a/composer.lock b/composer.lock index 7933d280ce..5e5bac5688 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": "c9ba40700e3c077689a1b222e3b749c1", + "content-hash": "ec45187cd1774562b435c8a589aeeee6", "packages": [ { "name": "async-aws/core", @@ -1232,38 +1232,44 @@ }, { "name": "guzzlehttp/psr7", - "version": "1.9.1", + "version": "2.7.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "e4490cabc77465aaee90b20cfc9a770f8c04be6b" + "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/e4490cabc77465aaee90b20cfc9a770f8c04be6b", - "reference": "e4490cabc77465aaee90b20cfc9a770f8c04be6b", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201", + "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201", "shasum": "" }, "require": { - "php": ">=5.4.0", - "psr/http-message": "~1.0", - "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" + "php": "^7.2.5 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.1 || ^2.0", + "ralouphie/getallheaders": "^3.0" }, "provide": { + "psr/http-factory-implementation": "1.0", "psr/http-message-implementation": "1.0" }, "require-dev": { - "ext-zlib": "*", - "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" + "bamarni/composer-bin-plugin": "^1.8.2", + "http-interop/http-factory-tests": "0.9.0", + "phpunit/phpunit": "^8.5.39 || ^9.6.20" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" }, "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, "autoload": { - "files": [ - "src/functions_include.php" - ], "psr-4": { "GuzzleHttp\\Psr7\\": "src/" } @@ -1302,6 +1308,11 @@ "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": "PSR-7 message implementation that also provides common utility methods", @@ -1317,7 +1328,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/1.9.1" + "source": "https://github.com/guzzle/psr7/tree/2.7.0" }, "funding": [ { @@ -1333,7 +1344,7 @@ "type": "tidelift" } ], - "time": "2023-04-17T16:00:37+00:00" + "time": "2024-07-18T11:15:46+00:00" }, { "name": "intervention/image", @@ -2108,16 +2119,16 @@ }, { "name": "laravel/serializable-closure", - "version": "v1.2.2", + "version": "v1.3.3", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "47afb7fae28ed29057fdca37e16a84f90cc62fae" + "reference": "3dbf8a8e914634c48d389c1234552666b3d43754" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/47afb7fae28ed29057fdca37e16a84f90cc62fae", - "reference": "47afb7fae28ed29057fdca37e16a84f90cc62fae", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/3dbf8a8e914634c48d389c1234552666b3d43754", + "reference": "3dbf8a8e914634c48d389c1234552666b3d43754", "shasum": "" }, "require": { @@ -2164,7 +2175,7 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2022-09-08T13:45:54+00:00" + "time": "2023-11-08T14:08:06+00:00" }, { "name": "lasserafn/php-initial-avatar-generator", @@ -3645,6 +3656,134 @@ }, "time": "2024-02-07T12:49:40+00:00" }, + { + "name": "php-di/invoker", + "version": "2.3.4", + "source": { + "type": "git", + "url": "https://github.com/PHP-DI/Invoker.git", + "reference": "33234b32dafa8eb69202f950a1fc92055ed76a86" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHP-DI/Invoker/zipball/33234b32dafa8eb69202f950a1fc92055ed76a86", + "reference": "33234b32dafa8eb69202f950a1fc92055ed76a86", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "psr/container": "^1.0|^2.0" + }, + "require-dev": { + "athletic/athletic": "~0.1.8", + "mnapoli/hard-mode": "~0.3.0", + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Invoker\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Generic and extensible callable invoker", + "homepage": "https://github.com/PHP-DI/Invoker", + "keywords": [ + "callable", + "dependency", + "dependency-injection", + "injection", + "invoke", + "invoker" + ], + "support": { + "issues": "https://github.com/PHP-DI/Invoker/issues", + "source": "https://github.com/PHP-DI/Invoker/tree/2.3.4" + }, + "funding": [ + { + "url": "https://github.com/mnapoli", + "type": "github" + } + ], + "time": "2023-09-08T09:24:21+00:00" + }, + { + "name": "php-di/php-di", + "version": "7.0.7", + "source": { + "type": "git", + "url": "https://github.com/PHP-DI/PHP-DI.git", + "reference": "e87435e3c0e8f22977adc5af0d5cdcc467e15cf1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/e87435e3c0e8f22977adc5af0d5cdcc467e15cf1", + "reference": "e87435e3c0e8f22977adc5af0d5cdcc467e15cf1", + "shasum": "" + }, + "require": { + "laravel/serializable-closure": "^1.0", + "php": ">=8.0", + "php-di/invoker": "^2.0", + "psr/container": "^1.1 || ^2.0" + }, + "provide": { + "psr/container-implementation": "^1.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3", + "friendsofphp/proxy-manager-lts": "^1", + "mnapoli/phpunit-easymock": "^1.3", + "phpunit/phpunit": "^9.5", + "vimeo/psalm": "^4.6" + }, + "suggest": { + "friendsofphp/proxy-manager-lts": "Install it if you want to use lazy injection (version ^1)" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "DI\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "The dependency injection container for humans", + "homepage": "https://php-di.org/", + "keywords": [ + "PSR-11", + "container", + "container-interop", + "dependency injection", + "di", + "ioc", + "psr11" + ], + "support": { + "issues": "https://github.com/PHP-DI/PHP-DI/issues", + "source": "https://github.com/PHP-DI/PHP-DI/tree/7.0.7" + }, + "funding": [ + { + "url": "https://github.com/mnapoli", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/php-di/php-di", + "type": "tidelift" + } + ], + "time": "2024-07-21T15:55:45+00:00" + }, { "name": "phpoffice/phpspreadsheet", "version": "1.16.0", @@ -4094,20 +4233,20 @@ }, { "name": "psr/http-factory", - "version": "1.0.2", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/php-fig/http-factory.git", - "reference": "e616d01114759c4c489f93b099585439f795fe35" + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35", - "reference": "e616d01114759c4c489f93b099585439f795fe35", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", "shasum": "" }, "require": { - "php": ">=7.0.0", + "php": ">=7.1", "psr/http-message": "^1.0 || ^2.0" }, "type": "library", @@ -4131,7 +4270,7 @@ "homepage": "https://www.php-fig.org/" } ], - "description": "Common interfaces for PSR-7 HTTP message factories", + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", "keywords": [ "factory", "http", @@ -4143,9 +4282,9 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-factory/tree/1.0.2" + "source": "https://github.com/php-fig/http-factory" }, - "time": "2023-04-10T20:10:41+00:00" + "time": "2024-04-15T12:06:14+00:00" }, { "name": "psr/http-message", @@ -5711,29 +5850,29 @@ }, { "name": "symfony/polyfill-iconv", - "version": "v1.20.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "c536646fdb4f29104dd26effc2fdcb9a5b085024" + "reference": "c027e6a3c6aee334663ec21f5852e89738abc805" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/c536646fdb4f29104dd26effc2fdcb9a5b085024", - "reference": "c536646fdb4f29104dd26effc2fdcb9a5b085024", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/c027e6a3c6aee334663ec21f5852e89738abc805", + "reference": "c027e6a3c6aee334663ec21f5852e89738abc805", "shasum": "" }, "require": { "php": ">=7.1" }, + "provide": { + "ext-iconv": "*" + }, "suggest": { "ext-iconv": "For best performance" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.20-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -5771,7 +5910,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.20.0" + "source": "https://github.com/symfony/polyfill-iconv/tree/v1.30.0" }, "funding": [ { @@ -5787,7 +5926,7 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2024-05-31T15:07:36+00:00" }, { "name": "symfony/polyfill-intl-idn", @@ -5962,16 +6101,16 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.28.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "42292d99c55abe617799667f454222c54c60e229" + "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", - "reference": "42292d99c55abe617799667f454222c54c60e229", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fd22ab50000ef01661e2a31d850ebaa297f8e03c", + "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c", "shasum": "" }, "require": { @@ -5985,9 +6124,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -6025,7 +6161,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.30.0" }, "funding": [ { @@ -6041,7 +6177,7 @@ "type": "tidelift" } ], - "time": "2023-07-28T09:04:16+00:00" + "time": "2024-06-19T12:30:46+00:00" }, { "name": "symfony/polyfill-php72", @@ -6722,30 +6858,31 @@ }, { "name": "zbateson/mail-mime-parser", - "version": "1.3.1", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/zbateson/mail-mime-parser.git", - "reference": "706964d904798b8c22d63f62f0ec5f5bc84e30d9" + "reference": "9a240522ae5e4eaeb7bf72c9bc88fe89dfb014a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zbateson/mail-mime-parser/zipball/706964d904798b8c22d63f62f0ec5f5bc84e30d9", - "reference": "706964d904798b8c22d63f62f0ec5f5bc84e30d9", + "url": "https://api.github.com/repos/zbateson/mail-mime-parser/zipball/9a240522ae5e4eaeb7bf72c9bc88fe89dfb014a3", + "reference": "9a240522ae5e4eaeb7bf72c9bc88fe89dfb014a3", "shasum": "" }, "require": { - "guzzlehttp/psr7": "^1.0", - "php": ">=5.4", - "zbateson/mb-wrapper": "^1.0.1", - "zbateson/stream-decorators": "^1.0.4" + "guzzlehttp/psr7": "^2.5", + "php": ">=8.0", + "php-di/php-di": "^6.0|^7.0", + "psr/log": "^1|^2|^3", + "zbateson/mb-wrapper": "^2.0", + "zbateson/stream-decorators": "^2.1" }, "require-dev": { - "jms/serializer": "^1.1", - "mikey179/vfsstream": "^1.6.0", - "phing/phing": "^2.15.0", - "phpdocumentor/phpdocumentor": "^2.9.0", - "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5 || ^7.5" + "friendsofphp/php-cs-fixer": "*", + "monolog/monolog": "^2|^3", + "phpstan/phpstan": "*", + "phpunit/phpunit": "^9.6" }, "suggest": { "ext-iconv": "For best support/performance", @@ -6793,29 +6930,31 @@ "type": "github" } ], - "time": "2020-12-02T21:55:45+00:00" + "time": "2024-05-01T16:49:29+00:00" }, { "name": "zbateson/mb-wrapper", - "version": "1.0.1", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/zbateson/mb-wrapper.git", - "reference": "721b3dfbf7ab75fee5ac60a542d7923ffe59ef6d" + "reference": "9e4373a153585d12b6c621ac4a6bb143264d4619" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zbateson/mb-wrapper/zipball/721b3dfbf7ab75fee5ac60a542d7923ffe59ef6d", - "reference": "721b3dfbf7ab75fee5ac60a542d7923ffe59ef6d", + "url": "https://api.github.com/repos/zbateson/mb-wrapper/zipball/9e4373a153585d12b6c621ac4a6bb143264d4619", + "reference": "9e4373a153585d12b6c621ac4a6bb143264d4619", "shasum": "" }, "require": { - "php": ">=5.4", + "php": ">=8.0", "symfony/polyfill-iconv": "^1.9", "symfony/polyfill-mbstring": "^1.9" }, "require-dev": { - "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5" + "friendsofphp/php-cs-fixer": "*", + "phpstan/phpstan": "*", + "phpunit/phpunit": "<10.0" }, "suggest": { "ext-iconv": "For best support/performance", @@ -6852,7 +6991,7 @@ ], "support": { "issues": "https://github.com/zbateson/mb-wrapper/issues", - "source": "https://github.com/zbateson/mb-wrapper/tree/1.0.1" + "source": "https://github.com/zbateson/mb-wrapper/tree/2.0.0" }, "funding": [ { @@ -6860,29 +6999,31 @@ "type": "github" } ], - "time": "2020-10-21T22:14:27+00:00" + "time": "2024-03-20T01:38:07+00:00" }, { "name": "zbateson/stream-decorators", - "version": "1.0.4", + "version": "2.1.1", "source": { "type": "git", "url": "https://github.com/zbateson/stream-decorators.git", - "reference": "6f54738dfecc65e1d5bfb855035836748083a6dd" + "reference": "32a2a62fb0f26313395c996ebd658d33c3f9c4e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zbateson/stream-decorators/zipball/6f54738dfecc65e1d5bfb855035836748083a6dd", - "reference": "6f54738dfecc65e1d5bfb855035836748083a6dd", + "url": "https://api.github.com/repos/zbateson/stream-decorators/zipball/32a2a62fb0f26313395c996ebd658d33c3f9c4e5", + "reference": "32a2a62fb0f26313395c996ebd658d33c3f9c4e5", "shasum": "" }, "require": { - "guzzlehttp/psr7": "^1.0.0", - "php": ">=5.4", - "zbateson/mb-wrapper": "^1.0.0" + "guzzlehttp/psr7": "^2.5", + "php": ">=8.0", + "zbateson/mb-wrapper": "^2.0" }, "require-dev": { - "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5 || ^7.5" + "friendsofphp/php-cs-fixer": "*", + "phpstan/phpstan": "*", + "phpunit/phpunit": "^9.6|^10.0" }, "type": "library", "autoload": { @@ -6913,7 +7054,7 @@ ], "support": { "issues": "https://github.com/zbateson/stream-decorators/issues", - "source": "https://github.com/zbateson/stream-decorators/tree/master" + "source": "https://github.com/zbateson/stream-decorators/tree/2.1.1" }, "funding": [ { @@ -6921,7 +7062,7 @@ "type": "github" } ], - "time": "2020-08-10T18:59:43+00:00" + "time": "2024-04-29T21:42:39+00:00" }, { "name": "zordius/lightncandy", @@ -7096,21 +7237,21 @@ }, { "name": "nikic/php-parser", - "version": "v4.15.1", + "version": "v4.19.1", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900" + "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", - "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4e1b88d21c69391150ace211e9eaf05810858d0b", + "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": ">=7.0" + "php": ">=7.1" }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", @@ -7146,9 +7287,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.1" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.1" }, - "time": "2022-09-04T07:30:47+00:00" + "time": "2024-03-17T08:10:35+00:00" }, { "name": "phar-io/manifest",