From 1ee9a0110bbb5dbf0671339049c9d86ea99f1429 Mon Sep 17 00:00:00 2001 From: Charles Date: Tue, 5 Aug 2025 09:13:04 +0200 Subject: [PATCH] AWS --- .env | 5 + .idea/Easy_solution.iml | 9 + .idea/php.xml | 9 + composer.json | 1 + composer.lock | 1500 ++++++++++++++++++++------ config/bundles.php | 1 + config/packages/aws.yaml | 11 + config/services.yaml | 5 + migrations/Version20250804121445.php | 32 + src/Service/AwsService.php | 206 ++++ symfony.lock | 12 + 11 files changed, 1478 insertions(+), 313 deletions(-) create mode 100644 config/packages/aws.yaml create mode 100644 migrations/Version20250804121445.php create mode 100644 src/Service/AwsService.php diff --git a/.env b/.env index c360865..31d9655 100644 --- a/.env +++ b/.env @@ -62,3 +62,8 @@ MERCURE_PUBLIC_URL=https://example.com/.well-known/mercure # The secret used to sign the JWTs MERCURE_JWT_SECRET="!ChangeThisMercureHubJWTSecretKey!" ###< symfony/mercure-bundle ### + +###> aws/aws-sdk-php-symfony ### +AWS_KEY=not-a-real-key +AWS_SECRET=@@not-a-real-secret +###< aws/aws-sdk-php-symfony ### diff --git a/.idea/Easy_solution.iml b/.idea/Easy_solution.iml index 8731bcf..38c7f27 100644 --- a/.idea/Easy_solution.iml +++ b/.idea/Easy_solution.iml @@ -8,7 +8,16 @@ + + + + + + + + + diff --git a/.idea/php.xml b/.idea/php.xml index ee12199..5aec874 100644 --- a/.idea/php.xml +++ b/.idea/php.xml @@ -164,6 +164,15 @@ + + + + + + + + + diff --git a/composer.json b/composer.json index 1b37bc3..6e099eb 100644 --- a/composer.json +++ b/composer.json @@ -8,6 +8,7 @@ "ext-ctype": "*", "ext-iconv": "*", "ext-openssl": "*", + "aws/aws-sdk-php-symfony": "^2.8", "doctrine/dbal": "^3", "doctrine/doctrine-bundle": "^2.14", "doctrine/doctrine-migrations-bundle": "^3.4", diff --git a/composer.lock b/composer.lock index b6dfda6..de33137 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,216 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "51f33a9cb3451faf4b58c6984f46bb5d", + "content-hash": "2e4c0342c6040486970857205e1e8d75", "packages": [ + { + "name": "aws/aws-crt-php", + "version": "v1.2.7", + "source": { + "type": "git", + "url": "https://github.com/awslabs/aws-crt-php.git", + "reference": "d71d9906c7bb63a28295447ba12e74723bd3730e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/d71d9906c7bb63a28295447ba12e74723bd3730e", + "reference": "d71d9906c7bb63a28295447ba12e74723bd3730e", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35||^5.6.3||^9.5", + "yoast/phpunit-polyfills": "^1.0" + }, + "suggest": { + "ext-awscrt": "Make sure you install awscrt native extension to use any of the functionality." + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "AWS SDK Common Runtime Team", + "email": "aws-sdk-common-runtime@amazon.com" + } + ], + "description": "AWS Common Runtime for PHP", + "homepage": "https://github.com/awslabs/aws-crt-php", + "keywords": [ + "amazon", + "aws", + "crt", + "sdk" + ], + "support": { + "issues": "https://github.com/awslabs/aws-crt-php/issues", + "source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.7" + }, + "time": "2024-10-18T22:15:13+00:00" + }, + { + "name": "aws/aws-sdk-php", + "version": "3.352.0", + "source": { + "type": "git", + "url": "https://github.com/aws/aws-sdk-php.git", + "reference": "7f3ad0da2545b24259273ea7ab892188bae7d91b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/7f3ad0da2545b24259273ea7ab892188bae7d91b", + "reference": "7f3ad0da2545b24259273ea7ab892188bae7d91b", + "shasum": "" + }, + "require": { + "aws/aws-crt-php": "^1.2.3", + "ext-json": "*", + "ext-pcre": "*", + "ext-simplexml": "*", + "guzzlehttp/guzzle": "^7.4.5", + "guzzlehttp/promises": "^2.0", + "guzzlehttp/psr7": "^2.4.5", + "mtdowling/jmespath.php": "^2.8.0", + "php": ">=8.1", + "psr/http-message": "^2.0" + }, + "require-dev": { + "andrewsville/php-token-reflection": "^1.4", + "aws/aws-php-sns-message-validator": "~1.0", + "behat/behat": "~3.0", + "composer/composer": "^2.7.8", + "dms/phpunit-arraysubset-asserts": "^0.4.0", + "doctrine/cache": "~1.4", + "ext-dom": "*", + "ext-openssl": "*", + "ext-pcntl": "*", + "ext-sockets": "*", + "phpunit/phpunit": "^5.6.3 || ^8.5 || ^9.5", + "psr/cache": "^2.0 || ^3.0", + "psr/simple-cache": "^2.0 || ^3.0", + "sebastian/comparator": "^1.2.3 || ^4.0 || ^5.0", + "symfony/filesystem": "^v6.4.0 || ^v7.1.0", + "yoast/phpunit-polyfills": "^2.0" + }, + "suggest": { + "aws/aws-php-sns-message-validator": "To validate incoming SNS notifications", + "doctrine/cache": "To use the DoctrineCacheAdapter", + "ext-curl": "To send requests using cURL", + "ext-openssl": "Allows working with CloudFront private distributions and verifying received SNS messages", + "ext-sockets": "To use client-side monitoring" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Aws\\": "src/" + }, + "exclude-from-classmap": [ + "src/data/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Amazon Web Services", + "homepage": "http://aws.amazon.com" + } + ], + "description": "AWS SDK for PHP - Use Amazon Web Services in your PHP project", + "homepage": "http://aws.amazon.com/sdkforphp", + "keywords": [ + "amazon", + "aws", + "cloud", + "dynamodb", + "ec2", + "glacier", + "s3", + "sdk" + ], + "support": { + "forum": "https://github.com/aws/aws-sdk-php/discussions", + "issues": "https://github.com/aws/aws-sdk-php/issues", + "source": "https://github.com/aws/aws-sdk-php/tree/3.352.0" + }, + "time": "2025-08-01T18:04:23+00:00" + }, + { + "name": "aws/aws-sdk-php-symfony", + "version": "2.8.0", + "source": { + "type": "git", + "url": "https://github.com/aws/aws-sdk-php-symfony.git", + "reference": "0b05008e381297d6520d714cd06bc478702f5d28" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/aws/aws-sdk-php-symfony/zipball/0b05008e381297d6520d714cd06bc478702f5d28", + "reference": "0b05008e381297d6520d714cd06bc478702f5d28", + "shasum": "" + }, + "require": { + "aws/aws-sdk-php": "^3.338.0", + "php": ">=8.1", + "symfony/config": "~5.0|~6.0|~7.0", + "symfony/dependency-injection": "~5.0|~6.0|~7.0", + "symfony/http-kernel": "~5.0|~6.0|~7.0" + }, + "require-dev": { + "phpunit/phpunit": "^8.5|^9.5", + "symfony/framework-bundle": "~5.0|~6.0|~7.0", + "symfony/yaml": "~5.0|~6.0|~7.0" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Aws\\Symfony\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Amazon Web Services", + "homepage": "http://aws.amazon.com" + } + ], + "description": "A Symfony bundle for v3 of the AWS SDK for PHP", + "keywords": [ + "Symfony2", + "amazon", + "aws", + "sdk", + "symfony", + "symfony3" + ], + "support": { + "issues": "https://github.com/aws/aws-sdk-php-symfony/issues", + "source": "https://github.com/aws/aws-sdk-php-symfony/tree/2.8.0" + }, + "time": "2025-02-27T21:21:05+00:00" + }, { "name": "composer/semver", "version": "3.4.3", @@ -404,16 +612,16 @@ }, { "name": "doctrine/doctrine-bundle", - "version": "2.15.0", + "version": "2.15.1", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineBundle.git", - "reference": "d88294521a1bca943240adca65fa19ca8a7288c6" + "reference": "5a305c5e776f9d3eb87f5b94d40d50aff439211d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/d88294521a1bca943240adca65fa19ca8a7288c6", - "reference": "d88294521a1bca943240adca65fa19ca8a7288c6", + "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/5a305c5e776f9d3eb87f5b94d40d50aff439211d", + "reference": "5a305c5e776f9d3eb87f5b94d40d50aff439211d", "shasum": "" }, "require": { @@ -506,7 +714,7 @@ ], "support": { "issues": "https://github.com/doctrine/DoctrineBundle/issues", - "source": "https://github.com/doctrine/DoctrineBundle/tree/2.15.0" + "source": "https://github.com/doctrine/DoctrineBundle/tree/2.15.1" }, "funding": [ { @@ -522,7 +730,7 @@ "type": "tidelift" } ], - "time": "2025-06-16T19:53:58+00:00" + "time": "2025-07-30T15:48:28+00:00" }, { "name": "doctrine/doctrine-migrations-bundle", @@ -940,16 +1148,16 @@ }, { "name": "doctrine/migrations", - "version": "3.9.1", + "version": "3.9.2", "source": { "type": "git", "url": "https://github.com/doctrine/migrations.git", - "reference": "0f1e0c960ac29866d648a4f50142a74fe1cb6999" + "reference": "fa94c6f06b1bc6d4759481ec20b8b81d13e861be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/migrations/zipball/0f1e0c960ac29866d648a4f50142a74fe1cb6999", - "reference": "0f1e0c960ac29866d648a4f50142a74fe1cb6999", + "url": "https://api.github.com/repos/doctrine/migrations/zipball/fa94c6f06b1bc6d4759481ec20b8b81d13e861be", + "reference": "fa94c6f06b1bc6d4759481ec20b8b81d13e861be", "shasum": "" }, "require": { @@ -967,18 +1175,18 @@ "doctrine/orm": "<2.12 || >=4" }, "require-dev": { - "doctrine/coding-standard": "^12", + "doctrine/coding-standard": "^13", "doctrine/orm": "^2.13 || ^3", "doctrine/persistence": "^2 || ^3 || ^4", "doctrine/sql-formatter": "^1.0", "ext-pdo_sqlite": "*", "fig/log-test": "^1", - "phpstan/phpstan": "^1.10", - "phpstan/phpstan-deprecation-rules": "^1.1", - "phpstan/phpstan-phpunit": "^1.3", - "phpstan/phpstan-strict-rules": "^1.4", - "phpstan/phpstan-symfony": "^1.3", - "phpunit/phpunit": "^10.3", + "phpstan/phpstan": "^2", + "phpstan/phpstan-deprecation-rules": "^2", + "phpstan/phpstan-phpunit": "^2", + "phpstan/phpstan-strict-rules": "^2", + "phpstan/phpstan-symfony": "^2", + "phpunit/phpunit": "^10.3 || ^11.0 || ^12.0", "symfony/cache": "^5.4 || ^6.0 || ^7.0", "symfony/process": "^5.4 || ^6.0 || ^7.0", "symfony/yaml": "^5.4 || ^6.0 || ^7.0" @@ -1023,7 +1231,7 @@ ], "support": { "issues": "https://github.com/doctrine/migrations/issues", - "source": "https://github.com/doctrine/migrations/tree/3.9.1" + "source": "https://github.com/doctrine/migrations/tree/3.9.2" }, "funding": [ { @@ -1039,7 +1247,7 @@ "type": "tidelift" } ], - "time": "2025-06-27T07:19:23+00:00" + "time": "2025-07-29T11:36:14+00:00" }, { "name": "doctrine/orm", @@ -1411,6 +1619,331 @@ }, "time": "2025-04-09T20:32:01+00:00" }, + { + "name": "guzzlehttp/guzzle", + "version": "7.9.3", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7b2f29fe81dc4da0ca0ea7d42107a0845946ea77", + "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.5.3 || ^2.0.3", + "guzzlehttp/psr7": "^2.7.0", + "php": "^7.2.5 || ^8.0", + "psr/http-client": "^1.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "provide": { + "psr/http-client-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "ext-curl": "*", + "guzzle/client-integration-tests": "3.0.2", + "php-http/message-factory": "^1.1", + "phpunit/phpunit": "^8.5.39 || ^9.6.20", + "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 + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "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" + } + ], + "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/7.9.3" + }, + "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": "2025-03-27T13:37:11+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/7c69f28996b0a6920945dd20b3857e499d9ca96c", + "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.39 || ^9.6.20" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "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" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/2.2.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": "2025-03-27T13:27:01+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "2.7.1", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/c2270caaabe631b3b44c85f99e5a04bbb8060d16", + "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16", + "shasum": "" + }, + "require": { + "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": { + "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": { + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "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" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/2.7.1" + }, + "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": "2025-03-27T12:30:47+00:00" + }, { "name": "knplabs/knp-time-bundle", "version": "v2.4.0", @@ -2131,6 +2664,72 @@ ], "time": "2025-03-24T10:02:05+00:00" }, + { + "name": "mtdowling/jmespath.php", + "version": "2.8.0", + "source": { + "type": "git", + "url": "https://github.com/jmespath/jmespath.php.git", + "reference": "a2a865e05d5f420b50cc2f85bb78d565db12a6bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/a2a865e05d5f420b50cc2f85bb78d565db12a6bc", + "reference": "a2a865e05d5f420b50cc2f85bb78d565db12a6bc", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "symfony/polyfill-mbstring": "^1.17" + }, + "require-dev": { + "composer/xdebug-handler": "^3.0.3", + "phpunit/phpunit": "^8.5.33" + }, + "bin": [ + "bin/jp.php" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.8-dev" + } + }, + "autoload": { + "files": [ + "src/JmesPath.php" + ], + "psr-4": { + "JmesPath\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "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" + } + ], + "description": "Declaratively specify how to extract elements from a JSON document", + "keywords": [ + "json", + "jsonpath" + ], + "support": { + "issues": "https://github.com/jmespath/jmespath.php/issues", + "source": "https://github.com/jmespath/jmespath.php/tree/2.8.0" + }, + "time": "2024-09-04T18:46:31+00:00" + }, { "name": "nelmio/cors-bundle", "version": "2.5.0", @@ -2743,6 +3342,58 @@ }, "time": "2019-01-08T18:20:26+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", @@ -3070,6 +3721,50 @@ }, "time": "2024-09-11T13:17:53+00:00" }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, { "name": "symfony/asset", "version": "v7.2.0", @@ -3141,16 +3836,16 @@ }, { "name": "symfony/asset-mapper", - "version": "v7.2.5", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/asset-mapper.git", - "reference": "6428e4b6d8cff9c5fe6f40ddbee4c9f6bfdaa0b8" + "reference": "037b6c86d99357785c7b377773f23589509f8315" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/asset-mapper/zipball/6428e4b6d8cff9c5fe6f40ddbee4c9f6bfdaa0b8", - "reference": "6428e4b6d8cff9c5fe6f40ddbee4c9f6bfdaa0b8", + "url": "https://api.github.com/repos/symfony/asset-mapper/zipball/037b6c86d99357785c7b377773f23589509f8315", + "reference": "037b6c86d99357785c7b377773f23589509f8315", "shasum": "" }, "require": { @@ -3200,7 +3895,7 @@ "description": "Maps directories of assets & makes them available in a public directory with versioned filenames.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/asset-mapper/tree/v7.2.5" + "source": "https://github.com/symfony/asset-mapper/tree/v7.2.9" }, "funding": [ { @@ -3211,25 +3906,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": "2025-03-26T11:29:07+00:00" + "time": "2025-07-15T11:30:57+00:00" }, { "name": "symfony/cache", - "version": "v7.2.8", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "7bc97a8d8cae01605e551773e72f5647e2337ae4" + "reference": "e874746cea6893d4b91943eab8376a0fe7528de6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/7bc97a8d8cae01605e551773e72f5647e2337ae4", - "reference": "7bc97a8d8cae01605e551773e72f5647e2337ae4", + "url": "https://api.github.com/repos/symfony/cache/zipball/e874746cea6893d4b91943eab8376a0fe7528de6", + "reference": "e874746cea6893d4b91943eab8376a0fe7528de6", "shasum": "" }, "require": { @@ -3298,7 +3997,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v7.2.8" + "source": "https://github.com/symfony/cache/tree/v7.2.9" }, "funding": [ { @@ -3309,12 +4008,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": "2025-06-27T19:53:16+00:00" + "time": "2025-07-30T17:03:27+00:00" }, { "name": "symfony/cache-contracts", @@ -3468,16 +4171,16 @@ }, { "name": "symfony/config", - "version": "v7.2.7", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "0ef100572f10e760c7e4b3606224fdbd724e3212" + "reference": "4cfed7041ac389c242122e60884d4a9fc5376cb3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/0ef100572f10e760c7e4b3606224fdbd724e3212", - "reference": "0ef100572f10e760c7e4b3606224fdbd724e3212", + "url": "https://api.github.com/repos/symfony/config/zipball/4cfed7041ac389c242122e60884d4a9fc5376cb3", + "reference": "4cfed7041ac389c242122e60884d4a9fc5376cb3", "shasum": "" }, "require": { @@ -3523,7 +4226,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v7.2.7" + "source": "https://github.com/symfony/config/tree/v7.2.9" }, "funding": [ { @@ -3534,25 +4237,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": "2025-05-15T09:03:48+00:00" + "time": "2025-07-26T13:54:51+00:00" }, { "name": "symfony/console", - "version": "v7.2.8", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "a08090dc8d5b6360bf9af0cb0622e8d7279d988f" + "reference": "93518c2ff7ce9c1818224c6effed3cf2429c63d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/a08090dc8d5b6360bf9af0cb0622e8d7279d988f", - "reference": "a08090dc8d5b6360bf9af0cb0622e8d7279d988f", + "url": "https://api.github.com/repos/symfony/console/zipball/93518c2ff7ce9c1818224c6effed3cf2429c63d7", + "reference": "93518c2ff7ce9c1818224c6effed3cf2429c63d7", "shasum": "" }, "require": { @@ -3616,7 +4323,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.2.8" + "source": "https://github.com/symfony/console/tree/v7.2.9" }, "funding": [ { @@ -3627,25 +4334,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": "2025-06-27T19:53:16+00:00" + "time": "2025-07-30T17:03:27+00:00" }, { "name": "symfony/dependency-injection", - "version": "v7.2.8", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "9b9ddcb60730ee4ae4f1f98c8e3a409d3ae6111c" + "reference": "fae0971f518e81fd1ccbfb6218aef410392ac701" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/9b9ddcb60730ee4ae4f1f98c8e3a409d3ae6111c", - "reference": "9b9ddcb60730ee4ae4f1f98c8e3a409d3ae6111c", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/fae0971f518e81fd1ccbfb6218aef410392ac701", + "reference": "fae0971f518e81fd1ccbfb6218aef410392ac701", "shasum": "" }, "require": { @@ -3696,7 +4407,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v7.2.8" + "source": "https://github.com/symfony/dependency-injection/tree/v7.2.9" }, "funding": [ { @@ -3707,12 +4418,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": "2025-06-24T04:04:14+00:00" + "time": "2025-07-30T17:31:35+00:00" }, { "name": "symfony/deprecation-contracts", @@ -3783,16 +4498,16 @@ }, { "name": "symfony/doctrine-bridge", - "version": "v7.2.8", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/doctrine-bridge.git", - "reference": "d52dc3419f41c3f0d429fa317e85042bcb546d1a" + "reference": "ef8b21518615585e91ae7ab552265f04fcfa9dcf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/d52dc3419f41c3f0d429fa317e85042bcb546d1a", - "reference": "d52dc3419f41c3f0d429fa317e85042bcb546d1a", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/ef8b21518615585e91ae7ab552265f04fcfa9dcf", + "reference": "ef8b21518615585e91ae7ab552265f04fcfa9dcf", "shasum": "" }, "require": { @@ -3841,7 +4556,7 @@ "symfony/security-core": "^6.4|^7.0", "symfony/stopwatch": "^6.4|^7.0", "symfony/translation": "^6.4|^7.0", - "symfony/type-info": "^7.1", + "symfony/type-info": "^7.1.8", "symfony/uid": "^6.4|^7.0", "symfony/validator": "^6.4|^7.0", "symfony/var-dumper": "^6.4|^7.0" @@ -3872,7 +4587,7 @@ "description": "Provides integration for Doctrine with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/doctrine-bridge/tree/v7.2.8" + "source": "https://github.com/symfony/doctrine-bridge/tree/v7.2.9" }, "funding": [ { @@ -3883,25 +4598,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": "2025-06-26T12:42:33+00:00" + "time": "2025-07-15T09:47:02+00:00" }, { "name": "symfony/doctrine-messenger", - "version": "v7.2.5", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/doctrine-messenger.git", - "reference": "c353e6ee6b41748d8ea6faa2d0b84ac501e3ec0c" + "reference": "368de12551994631816e7d72d958e0a58a218fd9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-messenger/zipball/c353e6ee6b41748d8ea6faa2d0b84ac501e3ec0c", - "reference": "c353e6ee6b41748d8ea6faa2d0b84ac501e3ec0c", + "url": "https://api.github.com/repos/symfony/doctrine-messenger/zipball/368de12551994631816e7d72d958e0a58a218fd9", + "reference": "368de12551994631816e7d72d958e0a58a218fd9", "shasum": "" }, "require": { @@ -3944,7 +4663,7 @@ "description": "Symfony Doctrine Messenger Bridge", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/doctrine-messenger/tree/v7.2.5" + "source": "https://github.com/symfony/doctrine-messenger/tree/v7.2.9" }, "funding": [ { @@ -3955,25 +4674,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": "2025-03-25T15:54:33+00:00" + "time": "2025-07-30T17:03:27+00:00" }, { "name": "symfony/dotenv", - "version": "v7.2.0", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/dotenv.git", - "reference": "28347a897771d0c28e99b75166dd2689099f3045" + "reference": "2192790a11f9e22cbcf9dc705a3ff22a5503923a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/28347a897771d0c28e99b75166dd2689099f3045", - "reference": "28347a897771d0c28e99b75166dd2689099f3045", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/2192790a11f9e22cbcf9dc705a3ff22a5503923a", + "reference": "2192790a11f9e22cbcf9dc705a3ff22a5503923a", "shasum": "" }, "require": { @@ -4018,7 +4741,7 @@ "environment" ], "support": { - "source": "https://github.com/symfony/dotenv/tree/v7.2.0" + "source": "https://github.com/symfony/dotenv/tree/v7.2.9" }, "funding": [ { @@ -4029,25 +4752,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-27T11:18:42+00:00" + "time": "2025-07-10T08:29:33+00:00" }, { "name": "symfony/error-handler", - "version": "v7.2.8", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "7cfa5d20bc9ca4c2a90f30fa731dd203a0a6aded" + "reference": "df98c90e43fa8267da4a64a88dd9427e0277773a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/7cfa5d20bc9ca4c2a90f30fa731dd203a0a6aded", - "reference": "7cfa5d20bc9ca4c2a90f30fa731dd203a0a6aded", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/df98c90e43fa8267da4a64a88dd9427e0277773a", + "reference": "df98c90e43fa8267da4a64a88dd9427e0277773a", "shasum": "" }, "require": { @@ -4093,7 +4820,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v7.2.8" + "source": "https://github.com/symfony/error-handler/tree/v7.2.9" }, "funding": [ { @@ -4104,12 +4831,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": "2025-06-13T07:47:28+00:00" + "time": "2025-07-07T08:17:47+00:00" }, { "name": "symfony/event-dispatcher", @@ -4269,16 +5000,16 @@ }, { "name": "symfony/expression-language", - "version": "v7.2.0", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/expression-language.git", - "reference": "26f4884a455e755e630a5fc372df124a3578da2e" + "reference": "32d2d19c62e58767e6552166c32fb259975d2b23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/expression-language/zipball/26f4884a455e755e630a5fc372df124a3578da2e", - "reference": "26f4884a455e755e630a5fc372df124a3578da2e", + "url": "https://api.github.com/repos/symfony/expression-language/zipball/32d2d19c62e58767e6552166c32fb259975d2b23", + "reference": "32d2d19c62e58767e6552166c32fb259975d2b23", "shasum": "" }, "require": { @@ -4313,7 +5044,7 @@ "description": "Provides an engine that can compile and evaluate expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/expression-language/tree/v7.2.0" + "source": "https://github.com/symfony/expression-language/tree/v7.2.9" }, "funding": [ { @@ -4324,25 +5055,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-10-15T11:52:45+00:00" + "time": "2025-07-10T08:29:33+00:00" }, { "name": "symfony/filesystem", - "version": "v7.2.0", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "b8dce482de9d7c9fe2891155035a7248ab5c7fdb" + "reference": "edcbb768a186b5c3f25d0643159a787d3e63b7fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/b8dce482de9d7c9fe2891155035a7248ab5c7fdb", - "reference": "b8dce482de9d7c9fe2891155035a7248ab5c7fdb", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/edcbb768a186b5c3f25d0643159a787d3e63b7fd", + "reference": "edcbb768a186b5c3f25d0643159a787d3e63b7fd", "shasum": "" }, "require": { @@ -4379,7 +5114,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.2.0" + "source": "https://github.com/symfony/filesystem/tree/v7.2.9" }, "funding": [ { @@ -4390,25 +5125,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-10-25T15:15:23+00:00" + "time": "2025-07-07T08:17:47+00:00" }, { "name": "symfony/finder", - "version": "v7.2.2", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "87a71856f2f56e4100373e92529eed3171695cfb" + "reference": "2a6614966ba1074fa93dae0bc804227422df4dfe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/87a71856f2f56e4100373e92529eed3171695cfb", - "reference": "87a71856f2f56e4100373e92529eed3171695cfb", + "url": "https://api.github.com/repos/symfony/finder/zipball/2a6614966ba1074fa93dae0bc804227422df4dfe", + "reference": "2a6614966ba1074fa93dae0bc804227422df4dfe", "shasum": "" }, "require": { @@ -4443,7 +5182,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.2.2" + "source": "https://github.com/symfony/finder/tree/v7.2.9" }, "funding": [ { @@ -4454,12 +5193,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-12-30T19:00:17+00:00" + "time": "2025-07-15T13:41:35+00:00" }, { "name": "symfony/flex", @@ -4531,16 +5274,16 @@ }, { "name": "symfony/form", - "version": "v7.2.8", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/form.git", - "reference": "4798286b41df22482cd37b95e753ae45c9ed738c" + "reference": "72dfbaf14138f0c857659536dd65af85f36b546c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/form/zipball/4798286b41df22482cd37b95e753ae45c9ed738c", - "reference": "4798286b41df22482cd37b95e753ae45c9ed738c", + "url": "https://api.github.com/repos/symfony/form/zipball/72dfbaf14138f0c857659536dd65af85f36b546c", + "reference": "72dfbaf14138f0c857659536dd65af85f36b546c", "shasum": "" }, "require": { @@ -4608,7 +5351,7 @@ "description": "Allows to easily create, process and reuse HTML forms", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/form/tree/v7.2.8" + "source": "https://github.com/symfony/form/tree/v7.2.9" }, "funding": [ { @@ -4619,25 +5362,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": "2025-06-11T08:44:29+00:00" + "time": "2025-07-24T11:52:02+00:00" }, { "name": "symfony/framework-bundle", - "version": "v7.2.8", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "89a21b5fc1e5c698712b70724af41416aa1109ae" + "reference": "42ac8bbbf10d3113c335ba8af39fad63db96e4e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/89a21b5fc1e5c698712b70724af41416aa1109ae", - "reference": "89a21b5fc1e5c698712b70724af41416aa1109ae", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/42ac8bbbf10d3113c335ba8af39fad63db96e4e2", + "reference": "42ac8bbbf10d3113c335ba8af39fad63db96e4e2", "shasum": "" }, "require": { @@ -4723,7 +5470,7 @@ "symfony/string": "^6.4|^7.0", "symfony/translation": "^6.4|^7.0", "symfony/twig-bundle": "^6.4|^7.0", - "symfony/type-info": "^7.1", + "symfony/type-info": "^7.1.8", "symfony/uid": "^6.4|^7.0", "symfony/validator": "^6.4|^7.0", "symfony/web-link": "^6.4|^7.0", @@ -4758,7 +5505,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v7.2.8" + "source": "https://github.com/symfony/framework-bundle/tree/v7.2.9" }, "funding": [ { @@ -4769,25 +5516,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": "2025-06-27T19:54:19+00:00" + "time": "2025-07-30T17:03:27+00:00" }, { "name": "symfony/http-client", - "version": "v7.2.8", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "f604d01d5bddeba9730df6e2745a2bdadb6a0af9" + "reference": "e26182d286135dad99f58ad57c56eef41362d452" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/f604d01d5bddeba9730df6e2745a2bdadb6a0af9", - "reference": "f604d01d5bddeba9730df6e2745a2bdadb6a0af9", + "url": "https://api.github.com/repos/symfony/http-client/zipball/e26182d286135dad99f58ad57c56eef41362d452", + "reference": "e26182d286135dad99f58ad57c56eef41362d452", "shasum": "" }, "require": { @@ -4853,7 +5604,7 @@ "http" ], "support": { - "source": "https://github.com/symfony/http-client/tree/v7.2.8" + "source": "https://github.com/symfony/http-client/tree/v7.2.9" }, "funding": [ { @@ -4864,12 +5615,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": "2025-06-28T07:58:33+00:00" + "time": "2025-07-15T11:30:57+00:00" }, { "name": "symfony/http-client-contracts", @@ -4951,16 +5706,16 @@ }, { "name": "symfony/http-foundation", - "version": "v7.2.8", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "dc58f9480a7456bdfddc46c9dcc4ae68acd76312" + "reference": "7d81b8184601176dff995cf959d3def142309049" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/dc58f9480a7456bdfddc46c9dcc4ae68acd76312", - "reference": "dc58f9480a7456bdfddc46c9dcc4ae68acd76312", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/7d81b8184601176dff995cf959d3def142309049", + "reference": "7d81b8184601176dff995cf959d3def142309049", "shasum": "" }, "require": { @@ -5009,7 +5764,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v7.2.8" + "source": "https://github.com/symfony/http-foundation/tree/v7.2.9" }, "funding": [ { @@ -5020,25 +5775,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": "2025-06-01T17:30:28+00:00" + "time": "2025-07-10T08:29:33+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.2.8", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "3f461ff845e4529e0fa14f9639a7b6898367aa34" + "reference": "d0cc0295c9c2fd5e053fee2b2a143001f2d0c33c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/3f461ff845e4529e0fa14f9639a7b6898367aa34", - "reference": "3f461ff845e4529e0fa14f9639a7b6898367aa34", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/d0cc0295c9c2fd5e053fee2b2a143001f2d0c33c", + "reference": "d0cc0295c9c2fd5e053fee2b2a143001f2d0c33c", "shasum": "" }, "require": { @@ -5123,7 +5882,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v7.2.8" + "source": "https://github.com/symfony/http-kernel/tree/v7.2.9" }, "funding": [ { @@ -5134,25 +5893,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": "2025-06-28T08:20:39+00:00" + "time": "2025-07-31T09:36:38+00:00" }, { "name": "symfony/intl", - "version": "v7.2.8", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/intl.git", - "reference": "9d14eef4a9da8fc326eb752ae7f9d6310c834457" + "reference": "fdc4c87872b43af23a613a1c576109c51f63a36c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/9d14eef4a9da8fc326eb752ae7f9d6310c834457", - "reference": "9d14eef4a9da8fc326eb752ae7f9d6310c834457", + "url": "https://api.github.com/repos/symfony/intl/zipball/fdc4c87872b43af23a613a1c576109c51f63a36c", + "reference": "fdc4c87872b43af23a613a1c576109c51f63a36c", "shasum": "" }, "require": { @@ -5209,7 +5972,7 @@ "localization" ], "support": { - "source": "https://github.com/symfony/intl/tree/v7.2.8" + "source": "https://github.com/symfony/intl/tree/v7.2.9" }, "funding": [ { @@ -5220,25 +5983,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": "2025-06-06T16:09:58+00:00" + "time": "2025-07-10T08:29:33+00:00" }, { "name": "symfony/mailer", - "version": "v7.2.8", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "3de468732617dbefa23738240349e3eebe5e837c" + "reference": "aa8d1d5df027626c3cbe2f5f185118cc461fe4ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/3de468732617dbefa23738240349e3eebe5e837c", - "reference": "3de468732617dbefa23738240349e3eebe5e837c", + "url": "https://api.github.com/repos/symfony/mailer/zipball/aa8d1d5df027626c3cbe2f5f185118cc461fe4ea", + "reference": "aa8d1d5df027626c3cbe2f5f185118cc461fe4ea", "shasum": "" }, "require": { @@ -5289,7 +6056,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v7.2.8" + "source": "https://github.com/symfony/mailer/tree/v7.2.9" }, "funding": [ { @@ -5300,12 +6067,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": "2025-06-27T19:53:16+00:00" + "time": "2025-07-15T11:30:57+00:00" }, { "name": "symfony/mercure", @@ -5476,16 +6247,16 @@ }, { "name": "symfony/messenger", - "version": "v7.2.8", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/messenger.git", - "reference": "429f3ee8640d1c199e7c8ca5a84a33009b3d28fc" + "reference": "3fd1638aa11ef6f342ed6b10b930a1757c25417c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/messenger/zipball/429f3ee8640d1c199e7c8ca5a84a33009b3d28fc", - "reference": "429f3ee8640d1c199e7c8ca5a84a33009b3d28fc", + "url": "https://api.github.com/repos/symfony/messenger/zipball/3fd1638aa11ef6f342ed6b10b930a1757c25417c", + "reference": "3fd1638aa11ef6f342ed6b10b930a1757c25417c", "shasum": "" }, "require": { @@ -5543,7 +6314,7 @@ "description": "Helps applications send and receive messages to/from other applications or via message queues", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/messenger/tree/v7.2.8" + "source": "https://github.com/symfony/messenger/tree/v7.2.9" }, "funding": [ { @@ -5554,25 +6325,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": "2025-06-27T19:53:16+00:00" + "time": "2025-07-15T11:30:57+00:00" }, { "name": "symfony/mime", - "version": "v7.2.6", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "706e65c72d402539a072d0d6ad105fff6c161ef1" + "reference": "e0a0f859148daf1edf6c60b398eb40bfc96697d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/706e65c72d402539a072d0d6ad105fff6c161ef1", - "reference": "706e65c72d402539a072d0d6ad105fff6c161ef1", + "url": "https://api.github.com/repos/symfony/mime/zipball/e0a0f859148daf1edf6c60b398eb40bfc96697d1", + "reference": "e0a0f859148daf1edf6c60b398eb40bfc96697d1", "shasum": "" }, "require": { @@ -5627,7 +6402,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.2.6" + "source": "https://github.com/symfony/mime/tree/v7.2.9" }, "funding": [ { @@ -5638,12 +6413,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": "2025-04-27T13:34:41+00:00" + "time": "2025-07-15T13:41:35+00:00" }, { "name": "symfony/monolog-bridge", @@ -5806,16 +6585,16 @@ }, { "name": "symfony/notifier", - "version": "v7.2.6", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/notifier.git", - "reference": "2ef5e49009bd6a35666f10a27eb1b3aff4ae793e" + "reference": "ac5d6e77b73b6a8b5576524026f97606c3ff3040" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/notifier/zipball/2ef5e49009bd6a35666f10a27eb1b3aff4ae793e", - "reference": "2ef5e49009bd6a35666f10a27eb1b3aff4ae793e", + "url": "https://api.github.com/repos/symfony/notifier/zipball/ac5d6e77b73b6a8b5576524026f97606c3ff3040", + "reference": "ac5d6e77b73b6a8b5576524026f97606c3ff3040", "shasum": "" }, "require": { @@ -5864,7 +6643,7 @@ "notifier" ], "support": { - "source": "https://github.com/symfony/notifier/tree/v7.2.6" + "source": "https://github.com/symfony/notifier/tree/v7.2.9" }, "funding": [ { @@ -5875,25 +6654,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": "2025-04-30T07:52:47+00:00" + "time": "2025-07-10T08:29:33+00:00" }, { "name": "symfony/options-resolver", - "version": "v7.2.0", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "7da8fbac9dcfef75ffc212235d76b2754ce0cf50" + "reference": "b48517d1cef0d533e241cb03801014f1bb832775" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/7da8fbac9dcfef75ffc212235d76b2754ce0cf50", - "reference": "7da8fbac9dcfef75ffc212235d76b2754ce0cf50", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/b48517d1cef0d533e241cb03801014f1bb832775", + "reference": "b48517d1cef0d533e241cb03801014f1bb832775", "shasum": "" }, "require": { @@ -5931,7 +6714,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v7.2.0" + "source": "https://github.com/symfony/options-resolver/tree/v7.2.9" }, "funding": [ { @@ -5942,12 +6725,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-20T11:17:29+00:00" + "time": "2025-07-15T11:30:57+00:00" }, { "name": "symfony/password-hasher", @@ -6582,16 +7369,16 @@ }, { "name": "symfony/process", - "version": "v7.2.5", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "87b7c93e57df9d8e39a093d32587702380ff045d" + "reference": "e0a87c9a60045a354b041db2ea3cf047bf0b15f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/87b7c93e57df9d8e39a093d32587702380ff045d", - "reference": "87b7c93e57df9d8e39a093d32587702380ff045d", + "url": "https://api.github.com/repos/symfony/process/zipball/e0a87c9a60045a354b041db2ea3cf047bf0b15f5", + "reference": "e0a87c9a60045a354b041db2ea3cf047bf0b15f5", "shasum": "" }, "require": { @@ -6623,7 +7410,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.2.5" + "source": "https://github.com/symfony/process/tree/v7.2.9" }, "funding": [ { @@ -6634,25 +7421,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": "2025-03-13T12:21:46+00:00" + "time": "2025-07-10T08:29:33+00:00" }, { "name": "symfony/property-access", - "version": "v7.2.8", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "192091dd3449f04595561632240c838f4688a15e" + "reference": "9858acdf18abac17b9ab254706454d0cc0de7641" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/192091dd3449f04595561632240c838f4688a15e", - "reference": "192091dd3449f04595561632240c838f4688a15e", + "url": "https://api.github.com/repos/symfony/property-access/zipball/9858acdf18abac17b9ab254706454d0cc0de7641", + "reference": "9858acdf18abac17b9ab254706454d0cc0de7641", "shasum": "" }, "require": { @@ -6699,7 +7490,7 @@ "reflection" ], "support": { - "source": "https://github.com/symfony/property-access/tree/v7.2.8" + "source": "https://github.com/symfony/property-access/tree/v7.2.9" }, "funding": [ { @@ -6710,25 +7501,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": "2025-06-20T21:20:17+00:00" + "time": "2025-07-15T13:41:35+00:00" }, { "name": "symfony/property-info", - "version": "v7.2.8", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "3e35e45af2aec794e08937ccee51105c0cc51d69" + "reference": "16bb9e15292f9f07c28a6f955d4f14c680d1e0b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/3e35e45af2aec794e08937ccee51105c0cc51d69", - "reference": "3e35e45af2aec794e08937ccee51105c0cc51d69", + "url": "https://api.github.com/repos/symfony/property-info/zipball/16bb9e15292f9f07c28a6f955d4f14c680d1e0b5", + "reference": "16bb9e15292f9f07c28a6f955d4f14c680d1e0b5", "shasum": "" }, "require": { @@ -6784,7 +7579,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v7.2.8" + "source": "https://github.com/symfony/property-info/tree/v7.2.9" }, "funding": [ { @@ -6795,12 +7590,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": "2025-06-27T15:23:12+00:00" + "time": "2025-07-10T08:29:33+00:00" }, { "name": "symfony/psr-http-message-bridge", @@ -6887,16 +7686,16 @@ }, { "name": "symfony/routing", - "version": "v7.2.3", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "ee9a67edc6baa33e5fae662f94f91fd262930996" + "reference": "d5a038e972be748e3f057c884897a41b1111e4a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/ee9a67edc6baa33e5fae662f94f91fd262930996", - "reference": "ee9a67edc6baa33e5fae662f94f91fd262930996", + "url": "https://api.github.com/repos/symfony/routing/zipball/d5a038e972be748e3f057c884897a41b1111e4a0", + "reference": "d5a038e972be748e3f057c884897a41b1111e4a0", "shasum": "" }, "require": { @@ -6948,7 +7747,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.2.3" + "source": "https://github.com/symfony/routing/tree/v7.2.9" }, "funding": [ { @@ -6959,12 +7758,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": "2025-01-17T10:56:55+00:00" + "time": "2025-07-15T11:30:57+00:00" }, { "name": "symfony/runtime", @@ -7047,16 +7850,16 @@ }, { "name": "symfony/security-bundle", - "version": "v7.2.8", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/security-bundle.git", - "reference": "4a92c570e26ec6b01eb719313673d7ad7d6067a4" + "reference": "4661890f7d2571e9ef58431401a390c2dde68c78" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-bundle/zipball/4a92c570e26ec6b01eb719313673d7ad7d6067a4", - "reference": "4a92c570e26ec6b01eb719313673d7ad7d6067a4", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/4661890f7d2571e9ef58431401a390c2dde68c78", + "reference": "4661890f7d2571e9ef58431401a390c2dde68c78", "shasum": "" }, "require": { @@ -7133,7 +7936,7 @@ "description": "Provides a tight integration of the Security component into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-bundle/tree/v7.2.8" + "source": "https://github.com/symfony/security-bundle/tree/v7.2.9" }, "funding": [ { @@ -7144,25 +7947,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": "2025-06-24T04:04:14+00:00" + "time": "2025-07-22T07:39:44+00:00" }, { "name": "symfony/security-core", - "version": "v7.2.8", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/security-core.git", - "reference": "adebb44c99188e8e5423e52e9140427e6ee18fbb" + "reference": "28ec042a6aff580693cce7aa820778e6dfa5e5ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-core/zipball/adebb44c99188e8e5423e52e9140427e6ee18fbb", - "reference": "adebb44c99188e8e5423e52e9140427e6ee18fbb", + "url": "https://api.github.com/repos/symfony/security-core/zipball/28ec042a6aff580693cce7aa820778e6dfa5e5ef", + "reference": "28ec042a6aff580693cce7aa820778e6dfa5e5ef", "shasum": "" }, "require": { @@ -7220,7 +8027,7 @@ "description": "Symfony Security Component - Core Library", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-core/tree/v7.2.8" + "source": "https://github.com/symfony/security-core/tree/v7.2.9" }, "funding": [ { @@ -7231,12 +8038,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": "2025-06-01T17:30:28+00:00" + "time": "2025-07-22T08:39:58+00:00" }, { "name": "symfony/security-csrf", @@ -7310,16 +8121,16 @@ }, { "name": "symfony/security-http", - "version": "v7.2.8", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/security-http.git", - "reference": "611d69543497b36e4fa1556e3fe7277bf5359215" + "reference": "972dd874c2ce65e4c58dbf59054d2bf7ad70ec54" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-http/zipball/611d69543497b36e4fa1556e3fe7277bf5359215", - "reference": "611d69543497b36e4fa1556e3fe7277bf5359215", + "url": "https://api.github.com/repos/symfony/security-http/zipball/972dd874c2ce65e4c58dbf59054d2bf7ad70ec54", + "reference": "972dd874c2ce65e4c58dbf59054d2bf7ad70ec54", "shasum": "" }, "require": { @@ -7378,7 +8189,7 @@ "description": "Symfony Security Component - HTTP Integration", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-http/tree/v7.2.8" + "source": "https://github.com/symfony/security-http/tree/v7.2.9" }, "funding": [ { @@ -7389,25 +8200,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": "2025-06-24T04:04:14+00:00" + "time": "2025-07-10T08:29:33+00:00" }, { "name": "symfony/serializer", - "version": "v7.2.8", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "d84f0b7f447dadb9e800017f97970342ff642aae" + "reference": "91b01d65b553a6687c7b13432da1c0f4af1bf875" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/d84f0b7f447dadb9e800017f97970342ff642aae", - "reference": "d84f0b7f447dadb9e800017f97970342ff642aae", + "url": "https://api.github.com/repos/symfony/serializer/zipball/91b01d65b553a6687c7b13432da1c0f4af1bf875", + "reference": "91b01d65b553a6687c7b13432da1c0f4af1bf875", "shasum": "" }, "require": { @@ -7443,7 +8258,7 @@ "symfony/property-access": "^6.4|^7.0", "symfony/property-info": "^6.4|^7.0", "symfony/translation-contracts": "^2.5|^3", - "symfony/type-info": "^7.1", + "symfony/type-info": "^7.1.8", "symfony/uid": "^6.4|^7.0", "symfony/validator": "^6.4|^7.0", "symfony/var-dumper": "^6.4|^7.0", @@ -7476,7 +8291,7 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/serializer/tree/v7.2.8" + "source": "https://github.com/symfony/serializer/tree/v7.2.9" }, "funding": [ { @@ -7487,12 +8302,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": "2025-06-27T19:53:16+00:00" + "time": "2025-07-26T12:59:07+00:00" }, { "name": "symfony/service-contracts", @@ -7579,16 +8398,16 @@ }, { "name": "symfony/stimulus-bundle", - "version": "v2.27.0", + "version": "v2.28.2", "source": { "type": "git", "url": "https://github.com/symfony/stimulus-bundle.git", - "reference": "defaeb91bd366f9f43dbe54dbdfd9bc3c4138814" + "reference": "4ebef4b41e2524b7b797a103144256e5f7b39226" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stimulus-bundle/zipball/defaeb91bd366f9f43dbe54dbdfd9bc3c4138814", - "reference": "defaeb91bd366f9f43dbe54dbdfd9bc3c4138814", + "url": "https://api.github.com/repos/symfony/stimulus-bundle/zipball/4ebef4b41e2524b7b797a103144256e5f7b39226", + "reference": "4ebef4b41e2524b7b797a103144256e5f7b39226", "shasum": "" }, "require": { @@ -7628,7 +8447,7 @@ "symfony-ux" ], "support": { - "source": "https://github.com/symfony/stimulus-bundle/tree/v2.27.0" + "source": "https://github.com/symfony/stimulus-bundle/tree/v2.28.2" }, "funding": [ { @@ -7639,12 +8458,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": "2025-06-22T19:07:55+00:00" + "time": "2025-07-29T15:18:27+00:00" }, { "name": "symfony/stopwatch", @@ -7710,16 +8533,16 @@ }, { "name": "symfony/string", - "version": "v7.2.6", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "a214fe7d62bd4df2a76447c67c6b26e1d5e74931" + "reference": "de5189e4def141dbdca2f2ce7a653cc6364f58e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/a214fe7d62bd4df2a76447c67c6b26e1d5e74931", - "reference": "a214fe7d62bd4df2a76447c67c6b26e1d5e74931", + "url": "https://api.github.com/repos/symfony/string/zipball/de5189e4def141dbdca2f2ce7a653cc6364f58e6", + "reference": "de5189e4def141dbdca2f2ce7a653cc6364f58e6", "shasum": "" }, "require": { @@ -7777,7 +8600,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.2.6" + "source": "https://github.com/symfony/string/tree/v7.2.9" }, "funding": [ { @@ -7788,25 +8611,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": "2025-04-20T20:18:16+00:00" + "time": "2025-07-10T08:29:33+00:00" }, { "name": "symfony/translation", - "version": "v7.2.8", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "3d0a549438da132d6c8aca723939a4a49fa48030" + "reference": "00b927b4948d49afbf5013411c0a91a1cea8b087" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/3d0a549438da132d6c8aca723939a4a49fa48030", - "reference": "3d0a549438da132d6c8aca723939a4a49fa48030", + "url": "https://api.github.com/repos/symfony/translation/zipball/00b927b4948d49afbf5013411c0a91a1cea8b087", + "reference": "00b927b4948d49afbf5013411c0a91a1cea8b087", "shasum": "" }, "require": { @@ -7872,7 +8699,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v7.2.8" + "source": "https://github.com/symfony/translation/tree/v7.2.9" }, "funding": [ { @@ -7883,12 +8710,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": "2025-06-27T19:53:16+00:00" + "time": "2025-07-30T17:31:35+00:00" }, { "name": "symfony/translation-contracts", @@ -7970,16 +8801,16 @@ }, { "name": "symfony/twig-bridge", - "version": "v7.2.7", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "b2b0c03d1a7baf5686acb54d60e174731b0800ec" + "reference": "e62144411b277877d0e8583b48202673c36941d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/b2b0c03d1a7baf5686acb54d60e174731b0800ec", - "reference": "b2b0c03d1a7baf5686acb54d60e174731b0800ec", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/e62144411b277877d0e8583b48202673c36941d7", + "reference": "e62144411b277877d0e8583b48202673c36941d7", "shasum": "" }, "require": { @@ -8060,7 +8891,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v7.2.7" + "source": "https://github.com/symfony/twig-bridge/tree/v7.2.9" }, "funding": [ { @@ -8071,25 +8902,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": "2025-05-19T13:28:18+00:00" + "time": "2025-07-26T14:12:01+00:00" }, { "name": "symfony/twig-bundle", - "version": "v7.2.8", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/twig-bundle.git", - "reference": "dbe38d614868fa14d56468c44b654f6cc52c71c6" + "reference": "157de579a9ec25d5dfeb7ee3b3e9b57d2e635c39" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/dbe38d614868fa14d56468c44b654f6cc52c71c6", - "reference": "dbe38d614868fa14d56468c44b654f6cc52c71c6", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/157de579a9ec25d5dfeb7ee3b3e9b57d2e635c39", + "reference": "157de579a9ec25d5dfeb7ee3b3e9b57d2e635c39", "shasum": "" }, "require": { @@ -8144,7 +8979,7 @@ "description": "Provides a tight integration of Twig into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bundle/tree/v7.2.8" + "source": "https://github.com/symfony/twig-bundle/tree/v7.2.9" }, "funding": [ { @@ -8155,12 +8990,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": "2025-06-24T04:04:14+00:00" + "time": "2025-07-10T08:29:33+00:00" }, { "name": "symfony/type-info", @@ -8239,16 +9078,16 @@ }, { "name": "symfony/ux-icons", - "version": "v2.27.0", + "version": "v2.28.2", "source": { "type": "git", "url": "https://github.com/symfony/ux-icons.git", - "reference": "af6d09779e786717c6e3b5a8a004e8c18ce3ef00" + "reference": "5aea8f29e6f169e6b8c87a664b40c0bf9384e0ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/ux-icons/zipball/af6d09779e786717c6e3b5a8a004e8c18ce3ef00", - "reference": "af6d09779e786717c6e3b5a8a004e8c18ce3ef00", + "url": "https://api.github.com/repos/symfony/ux-icons/zipball/5aea8f29e6f169e6b8c87a664b40c0bf9384e0ec", + "reference": "5aea8f29e6f169e6b8c87a664b40c0bf9384e0ec", "shasum": "" }, "require": { @@ -8308,7 +9147,7 @@ "twig" ], "support": { - "source": "https://github.com/symfony/ux-icons/tree/v2.27.0" + "source": "https://github.com/symfony/ux-icons/tree/v2.28.2" }, "funding": [ { @@ -8319,25 +9158,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": "2025-06-17T06:15:15+00:00" + "time": "2025-07-30T06:14:01+00:00" }, { "name": "symfony/ux-toggle-password", - "version": "v2.27.0", + "version": "v2.28.2", "source": { "type": "git", "url": "https://github.com/symfony/ux-toggle-password.git", - "reference": "9753f554d00e0f86f44726165f9af6e6513086b7" + "reference": "4234ec3b63a0abab4aa27ea8166aaef4b9726904" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/ux-toggle-password/zipball/9753f554d00e0f86f44726165f9af6e6513086b7", - "reference": "9753f554d00e0f86f44726165f9af6e6513086b7", + "url": "https://api.github.com/repos/symfony/ux-toggle-password/zipball/4234ec3b63a0abab4aa27ea8166aaef4b9726904", + "reference": "4234ec3b63a0abab4aa27ea8166aaef4b9726904", "shasum": "" }, "require": { @@ -8388,7 +9231,7 @@ "symfony-ux" ], "support": { - "source": "https://github.com/symfony/ux-toggle-password/tree/v2.27.0" + "source": "https://github.com/symfony/ux-toggle-password/tree/v2.28.2" }, "funding": [ { @@ -8399,25 +9242,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": "2025-06-06T20:27:21+00:00" + "time": "2025-07-29T15:18:27+00:00" }, { "name": "symfony/ux-turbo", - "version": "v2.27.0", + "version": "v2.28.2", "source": { "type": "git", "url": "https://github.com/symfony/ux-turbo.git", - "reference": "b9ce9b30a9cf9bbd090c7ad290bdaf84a0e100b2" + "reference": "6094406d9cddc4bf2b583cef86c20edce1d534fa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/ux-turbo/zipball/b9ce9b30a9cf9bbd090c7ad290bdaf84a0e100b2", - "reference": "b9ce9b30a9cf9bbd090c7ad290bdaf84a0e100b2", + "url": "https://api.github.com/repos/symfony/ux-turbo/zipball/6094406d9cddc4bf2b583cef86c20edce1d534fa", + "reference": "6094406d9cddc4bf2b583cef86c20edce1d534fa", "shasum": "" }, "require": { @@ -8487,7 +9334,7 @@ "turbo-stream" ], "support": { - "source": "https://github.com/symfony/ux-turbo/tree/v2.27.0" + "source": "https://github.com/symfony/ux-turbo/tree/v2.28.2" }, "funding": [ { @@ -8498,25 +9345,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": "2025-06-06T20:27:21+00:00" + "time": "2025-07-29T15:18:27+00:00" }, { "name": "symfony/validator", - "version": "v7.2.8", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "06ad8f98851d3e2a051137b0d9c1ba34ec09eb0c" + "reference": "b5410782f69892acf828e0eec7943a2caca46ed6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/06ad8f98851d3e2a051137b0d9c1ba34ec09eb0c", - "reference": "06ad8f98851d3e2a051137b0d9c1ba34ec09eb0c", + "url": "https://api.github.com/repos/symfony/validator/zipball/b5410782f69892acf828e0eec7943a2caca46ed6", + "reference": "b5410782f69892acf828e0eec7943a2caca46ed6", "shasum": "" }, "require": { @@ -8554,7 +9405,7 @@ "symfony/property-access": "^6.4|^7.0", "symfony/property-info": "^6.4|^7.0", "symfony/translation": "^6.4.3|^7.0.3", - "symfony/type-info": "^7.1", + "symfony/type-info": "^7.1.8", "symfony/yaml": "^6.4|^7.0" }, "type": "library", @@ -8584,7 +9435,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v7.2.8" + "source": "https://github.com/symfony/validator/tree/v7.2.9" }, "funding": [ { @@ -8595,25 +9446,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": "2025-06-26T07:29:25+00:00" + "time": "2025-07-29T19:57:35+00:00" }, { "name": "symfony/var-dumper", - "version": "v7.2.8", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "eb2a9537910b3a5040efc0a7860f8128d4b259aa" + "reference": "67ad2a16e50f052c80fe03ccb6a8721bbeffe032" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/eb2a9537910b3a5040efc0a7860f8128d4b259aa", - "reference": "eb2a9537910b3a5040efc0a7860f8128d4b259aa", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/67ad2a16e50f052c80fe03ccb6a8721bbeffe032", + "reference": "67ad2a16e50f052c80fe03ccb6a8721bbeffe032", "shasum": "" }, "require": { @@ -8624,7 +9479,6 @@ "symfony/console": "<6.4" }, "require-dev": { - "ext-iconv": "*", "symfony/console": "^6.4|^7.0", "symfony/http-kernel": "^6.4|^7.0", "symfony/process": "^6.4|^7.0", @@ -8667,7 +9521,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.2.8" + "source": "https://github.com/symfony/var-dumper/tree/v7.2.9" }, "funding": [ { @@ -8678,25 +9532,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": "2025-06-27T19:53:16+00:00" + "time": "2025-07-29T19:57:35+00:00" }, { "name": "symfony/var-exporter", - "version": "v7.2.7", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "785cff5a2f878bdbc5301965c1271e839aeb9a10" + "reference": "1aab3e8e2e63f7586dd9951746eababe339d3978" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/785cff5a2f878bdbc5301965c1271e839aeb9a10", - "reference": "785cff5a2f878bdbc5301965c1271e839aeb9a10", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/1aab3e8e2e63f7586dd9951746eababe339d3978", + "reference": "1aab3e8e2e63f7586dd9951746eababe339d3978", "shasum": "" }, "require": { @@ -8743,7 +9601,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v7.2.7" + "source": "https://github.com/symfony/var-exporter/tree/v7.2.9" }, "funding": [ { @@ -8754,12 +9612,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": "2025-05-15T09:03:48+00:00" + "time": "2025-07-10T08:29:33+00:00" }, { "name": "symfony/web-link", @@ -8846,16 +9708,16 @@ }, { "name": "symfony/yaml", - "version": "v7.2.8", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "262cbc0765a2fa4793efbdad500236dda66106b1" + "reference": "0df1031b6a03b9bef3cd052a59e270e006731e90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/262cbc0765a2fa4793efbdad500236dda66106b1", - "reference": "262cbc0765a2fa4793efbdad500236dda66106b1", + "url": "https://api.github.com/repos/symfony/yaml/zipball/0df1031b6a03b9bef3cd052a59e270e006731e90", + "reference": "0df1031b6a03b9bef3cd052a59e270e006731e90", "shasum": "" }, "require": { @@ -8898,7 +9760,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.2.8" + "source": "https://github.com/symfony/yaml/tree/v7.2.9" }, "funding": [ { @@ -8909,12 +9771,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": "2025-06-03T06:57:06+00:00" + "time": "2025-07-10T08:29:33+00:00" }, { "name": "twig/twig", @@ -9057,16 +9923,16 @@ "packages-dev": [ { "name": "masterminds/html5", - "version": "2.9.0", + "version": "2.10.0", "source": { "type": "git", "url": "https://github.com/Masterminds/html5-php.git", - "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6" + "reference": "fcf91eb64359852f00d921887b219479b4f21251" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f5ac2c0b0a2eefca70b2ce32a5809992227e75a6", - "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/fcf91eb64359852f00d921887b219479b4f21251", + "reference": "fcf91eb64359852f00d921887b219479b4f21251", "shasum": "" }, "require": { @@ -9118,22 +9984,22 @@ ], "support": { "issues": "https://github.com/Masterminds/html5-php/issues", - "source": "https://github.com/Masterminds/html5-php/tree/2.9.0" + "source": "https://github.com/Masterminds/html5-php/tree/2.10.0" }, - "time": "2024-03-31T07:05:07+00:00" + "time": "2025-07-25T09:04:22+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.13.3", + "version": "1.13.4", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "faed855a7b5f4d4637717c2b3863e277116beb36" + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/faed855a7b5f4d4637717c2b3863e277116beb36", - "reference": "faed855a7b5f4d4637717c2b3863e277116beb36", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a", + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a", "shasum": "" }, "require": { @@ -9172,7 +10038,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.13.3" + "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4" }, "funding": [ { @@ -9180,20 +10046,20 @@ "type": "tidelift" } ], - "time": "2025-07-05T12:25:42+00:00" + "time": "2025-08-01T08:46:24+00:00" }, { "name": "nikic/php-parser", - "version": "v5.5.0", + "version": "v5.6.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "ae59794362fe85e051a58ad36b289443f57be7a9" + "reference": "221b0d0fdf1369c71047ad1d18bb5880017bbc56" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/ae59794362fe85e051a58ad36b289443f57be7a9", - "reference": "ae59794362fe85e051a58ad36b289443f57be7a9", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/221b0d0fdf1369c71047ad1d18bb5880017bbc56", + "reference": "221b0d0fdf1369c71047ad1d18bb5880017bbc56", "shasum": "" }, "require": { @@ -9236,9 +10102,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.5.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.6.0" }, - "time": "2025-05-31T08:24:38+00:00" + "time": "2025-07-27T20:03:57+00:00" }, { "name": "phar-io/manifest", @@ -10753,16 +11619,16 @@ }, { "name": "symfony/browser-kit", - "version": "v7.2.4", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "8ce0ee23857d87d5be493abba2d52d1f9e49da61" + "reference": "776d81d0c4859453aa35c316a542d74d0616330f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/8ce0ee23857d87d5be493abba2d52d1f9e49da61", - "reference": "8ce0ee23857d87d5be493abba2d52d1f9e49da61", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/776d81d0c4859453aa35c316a542d74d0616330f", + "reference": "776d81d0c4859453aa35c316a542d74d0616330f", "shasum": "" }, "require": { @@ -10801,7 +11667,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/v7.2.4" + "source": "https://github.com/symfony/browser-kit/tree/v7.2.9" }, "funding": [ { @@ -10812,12 +11678,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": "2025-02-14T14:27:24+00:00" + "time": "2025-07-10T08:29:33+00:00" }, { "name": "symfony/css-selector", @@ -11205,16 +12075,16 @@ }, { "name": "symfony/web-profiler-bundle", - "version": "v7.2.4", + "version": "v7.2.9", "source": { "type": "git", "url": "https://github.com/symfony/web-profiler-bundle.git", - "reference": "4ffde1c860a100533b02697d9aaf5f45759ec26a" + "reference": "ac9d18238b37e7855ef1b0267b3540565cc95f5d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/4ffde1c860a100533b02697d9aaf5f45759ec26a", - "reference": "4ffde1c860a100533b02697d9aaf5f45759ec26a", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/ac9d18238b37e7855ef1b0267b3540565cc95f5d", + "reference": "ac9d18238b37e7855ef1b0267b3540565cc95f5d", "shasum": "" }, "require": { @@ -11267,7 +12137,7 @@ "dev" ], "support": { - "source": "https://github.com/symfony/web-profiler-bundle/tree/v7.2.4" + "source": "https://github.com/symfony/web-profiler-bundle/tree/v7.2.9" }, "funding": [ { @@ -11278,12 +12148,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": "2025-02-14T14:27:24+00:00" + "time": "2025-07-26T14:12:01+00:00" }, { "name": "theseer/tokenizer", diff --git a/config/bundles.php b/config/bundles.php index 2958f8b..d17bbf8 100644 --- a/config/bundles.php +++ b/config/bundles.php @@ -18,4 +18,5 @@ return [ Nelmio\CorsBundle\NelmioCorsBundle::class => ['all' => true], Symfony\Bundle\MercureBundle\MercureBundle::class => ['all' => true], Knp\Bundle\TimeBundle\KnpTimeBundle::class => ['all' => true], + Aws\Symfony\AwsBundle::class => ['all' => true], ]; diff --git a/config/packages/aws.yaml b/config/packages/aws.yaml new file mode 100644 index 0000000..66f07b5 --- /dev/null +++ b/config/packages/aws.yaml @@ -0,0 +1,11 @@ +aws: + version: latest + region: "%env(AWS_REGION)%" + credentials: + key: "%env(AWS_KEY)%" + secret: "%env(AWS_SECRET)%" + S3: + region: "%env(AWS_REGION)%" + endpoint: "%env(AWS_ENDPOINT)%" + use_path_style_endpoint: true + signature_version: 'v4' \ No newline at end of file diff --git a/config/services.yaml b/config/services.yaml index 03eba4c..d7c311e 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -4,6 +4,8 @@ # Put parameters here that don't need to change on each machine where the app is deployed # https://symfony.com/doc/current/best_practices.html#use-parameters-for-application-configuration parameters: + aws_url: '%env(AWS_ENDPOINT)%' + aws_public_url: '%env(AWS_ENDPOINT)%' services: # default configuration for services in *this* file @@ -22,6 +24,9 @@ services: App\EventSubscriber\: resource: '../src/EventSubscriber/' tags: ['kernel.event_subscriber'] + App\Service\AwsService: + arguments: + $awsPublicUrl: '%aws_public_url%' App\EventSubscriber\ScopeResolveListener: tags: - { name: kernel.event_listener, event: league.oauth2_server.event.scope_resolve, method: onScopeResolve } diff --git a/migrations/Version20250804121445.php b/migrations/Version20250804121445.php new file mode 100644 index 0000000..e90419c --- /dev/null +++ b/migrations/Version20250804121445.php @@ -0,0 +1,32 @@ +addSql('ALTER TABLE apps ADD description_small VARCHAR(255) DEFAULT NULL'); + } + + public function down(Schema $schema): void + { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql('CREATE SCHEMA public'); + $this->addSql('ALTER TABLE apps DROP description_small'); + } +} diff --git a/src/Service/AwsService.php b/src/Service/AwsService.php new file mode 100644 index 0000000..2b79b3f --- /dev/null +++ b/src/Service/AwsService.php @@ -0,0 +1,206 @@ +awsPublicUrl, $bucket.'.', 8, 0); + $publicUrl .= '/'; + + return $publicUrl; + } + + /** + * CREATE bucket S3 for new project + * + * @return string|array + */ + public function createBucket(): string|array{ + + $bucket = $this->generateUUIDv4(); + + $result = $this->s3Client->createBucket([ + 'Bucket' => $bucket, + 'ObjectOwnership' => 'BucketOwnerPreferred' + ]); + + if ( $result['@metadata']['statusCode'] == 200){ + return $bucket; + }else{ + return $result['@metadata']; + } + + } + + /** + * DELETE bucket S3 + * + * @param string $bucket nom du conteneur S3 + * @return string|array + */ + public function DeleteBucket(string $bucket): string|array{ + + $result = $this->s3Client->deleteBucket([ + 'Bucket' => $bucket, + + ]); + + if ( $result['@metadata']['statusCode'] == 200){ + return $bucket; + }else{ + return $result['@metadata']; + } + + } + + /** + * Get list files infos in the Bucket S3 + * If prefix NULL get ALL FILES else get FILES in this prefix + * + * @param string $bucket nom du conteneur S3 + * @param string|null $prefix arborescence dans le bucket + * @return array|null + */ + public function getListObject(string $bucket, string|null $prefix = null):array|null{ + + $results = $this->s3Client->listObjectsV2([ + 'Bucket' => $bucket, + 'Prefix' => $prefix + ]); + + if( isset($results['Contents']) ){ + $return = $results['Contents']; + } + + return $return; + } + + /** + * PUT file Object in bucket S3 + * + * @param string $bucket nom du conteneur S3 + * @param object $file fichier à déposer dans le bucket + * @param string $filename nom du fichier enregistré dans la bdd métier + * @param string $mimeType type du fichier + * @param string|null $prefix arborescence dans le bucket + * @return bool + */ + public function PutDocObj(string $bucket, object $file, string $filename, $mimeType, string|null $prefix = null): int{ + + $body = fopen( $file, 'r'); + $hashRaw = hash_file('sha256', $file, true); + $hash = base64_encode($hashRaw); + + rewind($body); + + $doc = $this->s3Client->putObject([ + 'Bucket' => $bucket, + 'ChecksumAlgorithm' => 'SHA256', + 'ChecksumSHA256' => $hash, + 'Key' => $prefix.$filename, + 'Body' => $body, + 'ACL' => 'public-read', + 'ContentType' => $mimeType // pour rendre l'image publique si besoin + ]); + + return $doc['@metadata']['statusCode']; + } + + /** + * DELETE file Object in bucket S3 + * + * @param string $bucket nom du conteneur S3 + * @param string $filename nom du fichier + * @param string|null $prefix arborescence dans le bucket + * @return bool + */ + public function DeleteDocObj(string $bucket, string $filename, string|null $prefix = null): int{ + + $doc = $this->s3Client->deleteObject([ + 'Bucket' => $bucket, + 'Key' => $prefix.$filename, + ]); + + return $doc['@metadata']['statusCode']; + } + + /** + * RENAME file Object in bucket S3 + * + * @param string $bucket nom du conteneur S3 + * @param string $filename nom du fichier + * @param string $newFilename + * @param string|null $prefix arborescence dans le bucket + * @return bool + */ + public function renameDocObj(string $bucket, string $filename, string $newFilename, string|null $prefix = null): int{ + + $doc = $this->s3Client->copyObject([ + 'Bucket' => $bucket, + 'CopySource' => $prefix.$filename, + 'Key' => $prefix.$newFilename, + ]); + + $this->DeleteDocObj($bucket, $filename, $prefix); + + return $doc['@metadata']['statusCode']; + } + + /** + * MOVE file Object in bucket S3 + * + * @param string $bucket nom du conteneur S3 + * @param string $filename nom du fichier + * @param string|null $prefix arborescence dans le bucket + * @param string|null $newPrefix nouvel emplacement dans le bucket + * @return bool + */ + public function moveDocObj(string $bucket, string $filename, string|null $prefix = null, string|null $newPrefix = null): int{ + + $doc = $this->s3Client->copyObject([ + 'Bucket' => $bucket, + 'CopySource' => $prefix.$filename, + 'Key' => $newPrefix.$filename, + ]); + + $this->DeleteDocObj($bucket, $filename, $prefix); + + return $doc['@metadata']['statusCode']; + } +} diff --git a/symfony.lock b/symfony.lock index bc91fb8..ef4308d 100644 --- a/symfony.lock +++ b/symfony.lock @@ -1,4 +1,16 @@ { + "aws/aws-sdk-php-symfony": { + "version": "2.8", + "recipe": { + "repo": "github.com/symfony/recipes-contrib", + "branch": "main", + "version": "1.3", + "ref": "d1753f9e2a669c464b2b0618af9b0123426b67b4" + }, + "files": [ + "config/packages/aws.yaml" + ] + }, "doctrine/deprecations": { "version": "1.1", "recipe": {