update mailmimeparser with dependencies

This commit is contained in:
Yuri Kuznetsov
2024-07-31 15:03:58 +03:00
parent e51a9621f3
commit d97b9be4c9
5 changed files with 243 additions and 101 deletions
@@ -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;
}
@@ -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<string, ParserMessage> */
/** @var array<string, IMessage> */
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) {
+3 -1
View File
@@ -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);
+2 -2
View File
@@ -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",
Generated
+226 -85
View File
@@ -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",