diff --git a/.gitignore b/.gitignore
index f62dea1..4a4c28c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,3 +26,4 @@ npm-debug.log
yarn-error.log
###< symfony/webpack-encore-bundle ###
auth.json
+config/routes/billing.yaml
diff --git a/assets/js/layout/AppMenu.vue b/assets/js/layout/AppMenu.vue
index ad67c5f..215d037 100644
--- a/assets/js/layout/AppMenu.vue
+++ b/assets/js/layout/AppMenu.vue
@@ -1,35 +1,78 @@
diff --git a/assets/js/layout/AppMenuItem.vue b/assets/js/layout/AppMenuItem.vue
index 65ae9a0..d43ceb5 100644
--- a/assets/js/layout/AppMenuItem.vue
+++ b/assets/js/layout/AppMenuItem.vue
@@ -1,6 +1,6 @@
-
-
-
+
+
+
-
+
-
+
diff --git a/assets/js/views/ProjectManagement.vue b/assets/js/views/ProjectManagement.vue
index 5ee0712..f46a7ac 100644
--- a/assets/js/views/ProjectManagement.vue
+++ b/assets/js/views/ProjectManagement.vue
@@ -1051,7 +1051,7 @@ onMounted(async () => {
async function loadCustomers() {
try {
- const response = await fetch('/api/contacts?pagination=false')
+ const response = await fetch('/api/contacts?itemsPerPage=5000')
if (!response.ok) throw new Error('Fehler beim Laden der Kunden')
const data = await response.json()
@@ -1174,7 +1174,7 @@ async function loadGitRepositories(projectId) {
async function loadProjectTasks(projectId) {
try {
- const response = await fetch(`/api/project_tasks?project=${projectId}`)
+ const response = await fetch(`/api/project_tasks?project=/api/projects/${projectId}`)
if (!response.ok) throw new Error('Fehler beim Laden der Tätigkeiten')
const data = await response.json()
diff --git a/composer.json b/composer.json
index e6ccceb..371e667 100644
--- a/composer.json
+++ b/composer.json
@@ -7,8 +7,7 @@
"php": ">=8.2",
"ext-ctype": "*",
"ext-iconv": "*",
- "api-platform/doctrine-orm": "*",
- "api-platform/symfony": "*",
+ "api-platform/core": "^4.1",
"doctrine/dbal": "^3",
"doctrine/doctrine-bundle": "^2.18",
"doctrine/doctrine-migrations-bundle": "^3.6",
@@ -19,37 +18,37 @@
"nelmio/cors-bundle": "^2.6",
"phpdocumentor/reflection-docblock": "^5.6",
"phpstan/phpdoc-parser": "^2.3",
- "symfony/asset": "7.1.*",
- "symfony/asset-mapper": "7.1.*",
- "symfony/cache": "7.1.*",
- "symfony/console": "7.1.*",
- "symfony/doctrine-messenger": "7.1.*",
- "symfony/dotenv": "7.1.*",
- "symfony/expression-language": "7.1.*",
+ "symfony/asset": "7.3.*",
+ "symfony/asset-mapper": "7.3.*",
+ "symfony/cache": "7.3.*",
+ "symfony/console": "7.3.*",
+ "symfony/doctrine-messenger": "7.3.*",
+ "symfony/dotenv": "7.3.*",
+ "symfony/expression-language": "7.3.*",
"symfony/flex": "^2",
- "symfony/form": "7.1.*",
- "symfony/framework-bundle": "7.1.*",
- "symfony/http-client": "7.1.*",
- "symfony/intl": "7.1.*",
- "symfony/mailer": "7.1.*",
- "symfony/mime": "7.1.*",
+ "symfony/form": "7.3.*",
+ "symfony/framework-bundle": "7.3.*",
+ "symfony/http-client": "7.3.*",
+ "symfony/intl": "7.3.*",
+ "symfony/mailer": "7.3.*",
+ "symfony/mime": "7.3.*",
"symfony/monolog-bundle": "^3.0",
- "symfony/notifier": "7.1.*",
- "symfony/process": "7.1.*",
- "symfony/property-access": "7.1.*",
- "symfony/property-info": "7.1.*",
- "symfony/runtime": "7.1.*",
- "symfony/security-bundle": "7.1.*",
- "symfony/serializer": "7.1.*",
+ "symfony/notifier": "7.3.*",
+ "symfony/process": "7.3.*",
+ "symfony/property-access": "7.3.*",
+ "symfony/property-info": "7.3.*",
+ "symfony/runtime": "7.3.*",
+ "symfony/security-bundle": "7.3.*",
+ "symfony/serializer": "7.3.*",
"symfony/stimulus-bundle": "^2.31",
- "symfony/string": "7.1.*",
- "symfony/translation": "7.1.*",
- "symfony/twig-bundle": "7.1.*",
+ "symfony/string": "7.3.*",
+ "symfony/translation": "7.3.*",
+ "symfony/twig-bundle": "7.3.*",
"symfony/ux-turbo": "^2.31",
- "symfony/validator": "7.1.*",
- "symfony/web-link": "7.1.*",
+ "symfony/validator": "7.3.*",
+ "symfony/web-link": "7.3.*",
"symfony/webpack-encore-bundle": "^2.3",
- "symfony/yaml": "7.1.*",
+ "symfony/yaml": "7.3.*",
"twig/extra-bundle": "^2.12|^3.0",
"twig/twig": "^2.12|^3.0"
},
@@ -99,19 +98,19 @@
"extra": {
"symfony": {
"allow-contrib": false,
- "require": "7.1.*",
+ "require": "7.3.*",
"docker": true
}
},
"require-dev": {
"doctrine/doctrine-fixtures-bundle": "*",
"phpunit/phpunit": "^12.4",
- "symfony/browser-kit": "7.1.*",
- "symfony/css-selector": "7.1.*",
- "symfony/debug-bundle": "7.1.*",
+ "symfony/browser-kit": "7.3.*",
+ "symfony/css-selector": "7.3.*",
+ "symfony/debug-bundle": "7.3.*",
"symfony/maker-bundle": "^1.0",
- "symfony/stopwatch": "7.1.*",
- "symfony/web-profiler-bundle": "7.1.*"
+ "symfony/stopwatch": "7.3.*",
+ "symfony/web-profiler-bundle": "7.3.*"
},
"repositories": {
"mycrm-test-module": {
diff --git a/composer.lock b/composer.lock
index 1b4b627..24d0d26 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,526 +4,197 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "a01a1813f02a86f436462cf4966d547f",
+ "content-hash": "c6a26e29660bc18ccd08515b34ee4ae7",
"packages": [
{
- "name": "api-platform/doctrine-common",
- "version": "v4.1.10",
+ "name": "api-platform/core",
+ "version": "v4.2.6",
"source": {
"type": "git",
- "url": "https://github.com/api-platform/doctrine-common.git",
- "reference": "7eb521a58ce54fc1fec4de9a7c8539182b8946b5"
+ "url": "https://github.com/api-platform/core.git",
+ "reference": "bad923f4ced6e62fc3918d501619c9138418f161"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/api-platform/doctrine-common/zipball/7eb521a58ce54fc1fec4de9a7c8539182b8946b5",
- "reference": "7eb521a58ce54fc1fec4de9a7c8539182b8946b5",
+ "url": "https://api.github.com/repos/api-platform/core/zipball/bad923f4ced6e62fc3918d501619c9138418f161",
+ "reference": "bad923f4ced6e62fc3918d501619c9138418f161",
"shasum": ""
},
"require": {
- "api-platform/metadata": "^4.1",
- "api-platform/state": "^4.1.8",
- "doctrine/collections": "^2.1",
- "doctrine/common": "^3.2.2",
- "doctrine/persistence": "^3.2",
- "php": ">=8.2"
- },
- "conflict": {
- "doctrine/persistence": "<1.3"
- },
- "require-dev": {
- "doctrine/mongodb-odm": "^2.10",
- "doctrine/orm": "^2.17 || ^3.0",
- "phpspec/prophecy-phpunit": "^2.2",
- "phpunit/phpunit": "11.5.x-dev"
- },
- "suggest": {
- "api-platform/graphql": "For GraphQl mercure subscriptions.",
- "api-platform/http-cache": "For HTTP cache invalidation.",
- "phpstan/phpdoc-parser": "For PHP documentation support.",
- "symfony/config": "For XML resource configuration.",
- "symfony/mercure-bundle": "For mercure updates publisher.",
- "symfony/yaml": "For YAML resource configuration."
- },
- "type": "library",
- "extra": {
- "thanks": {
- "url": "https://github.com/api-platform/api-platform",
- "name": "api-platform/api-platform"
- },
- "symfony": {
- "require": "^6.4 || ^7.0"
- },
- "branch-alias": {
- "dev-3.4": "3.4.x-dev",
- "dev-main": "4.2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "ApiPlatform\\Doctrine\\Common\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Kévin Dunglas",
- "email": "kevin@dunglas.fr",
- "homepage": "https://dunglas.fr"
- },
- {
- "name": "API Platform Community",
- "homepage": "https://api-platform.com/community/contributors"
- }
- ],
- "description": "Common files used by api-platform/doctrine-orm and api-platform/doctrine-odm",
- "homepage": "https://api-platform.com",
- "keywords": [
- "doctrine",
- "graphql",
- "odm",
- "orm",
- "rest"
- ],
- "support": {
- "source": "https://github.com/api-platform/doctrine-common/tree/v4.1.10"
- },
- "time": "2025-05-14T04:54:42+00:00"
- },
- {
- "name": "api-platform/doctrine-orm",
- "version": "v4.1.10",
- "source": {
- "type": "git",
- "url": "https://github.com/api-platform/doctrine-orm.git",
- "reference": "6380a9518e64eb495fb5e8972902fb78e3be752e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/api-platform/doctrine-orm/zipball/6380a9518e64eb495fb5e8972902fb78e3be752e",
- "reference": "6380a9518e64eb495fb5e8972902fb78e3be752e",
- "shasum": ""
- },
- "require": {
- "api-platform/doctrine-common": "^4.1",
- "api-platform/metadata": "^4.1",
- "api-platform/state": "^4.1.8",
- "doctrine/orm": "^2.17 || ^3.0",
+ "doctrine/inflector": "^2.0",
"php": ">=8.2",
- "symfony/property-info": "^6.4 || ^7.1"
- },
- "require-dev": {
- "doctrine/doctrine-bundle": "^2.11",
- "phpspec/prophecy-phpunit": "^2.2",
- "phpunit/phpunit": "11.5.x-dev",
- "ramsey/uuid": "^4.7",
- "ramsey/uuid-doctrine": "^2.0",
- "symfony/cache": "^6.4 || ^7.0",
- "symfony/framework-bundle": "^6.4 || ^7.0",
+ "psr/cache": "^1.0 || ^2.0 || ^3.0",
+ "psr/container": "^1.0 || ^2.0",
+ "symfony/deprecation-contracts": "^3.1",
+ "symfony/http-foundation": "^6.4.14 || ^7.0",
+ "symfony/http-kernel": "^6.4 || ^7.0",
"symfony/property-access": "^6.4 || ^7.0",
- "symfony/serializer": "^6.4 || ^7.0",
- "symfony/uid": "^6.4 || ^7.0",
- "symfony/validator": "^6.4 || ^7.0",
- "symfony/yaml": "^6.4 || ^7.0"
- },
- "type": "library",
- "extra": {
- "thanks": {
- "url": "https://github.com/api-platform/api-platform",
- "name": "api-platform/api-platform"
- },
- "symfony": {
- "require": "^6.4 || ^7.0"
- },
- "branch-alias": {
- "dev-3.4": "3.4.x-dev",
- "dev-main": "4.2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "ApiPlatform\\Doctrine\\Orm\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Kévin Dunglas",
- "email": "kevin@dunglas.fr",
- "homepage": "https://dunglas.fr"
- },
- {
- "name": "API Platform Community",
- "homepage": "https://api-platform.com/community/contributors"
- }
- ],
- "description": "Doctrine ORM bridge",
- "homepage": "https://api-platform.com",
- "keywords": [
- "api",
- "doctrine",
- "graphql",
- "orm",
- "rest"
- ],
- "support": {
- "source": "https://github.com/api-platform/doctrine-orm/tree/v4.1.10"
- },
- "time": "2025-05-14T04:54:42+00:00"
- },
- {
- "name": "api-platform/documentation",
- "version": "v4.1.10",
- "source": {
- "type": "git",
- "url": "https://github.com/api-platform/documentation.git",
- "reference": "a41c0d6230c0ed60836c6bba60adb4d08b01e6e2"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/api-platform/documentation/zipball/a41c0d6230c0ed60836c6bba60adb4d08b01e6e2",
- "reference": "a41c0d6230c0ed60836c6bba60adb4d08b01e6e2",
- "shasum": ""
- },
- "require": {
- "api-platform/metadata": "^4.1",
- "php": ">=8.2"
- },
- "require-dev": {
- "phpunit/phpunit": "11.5.x-dev"
- },
- "type": "project",
- "extra": {
- "thanks": {
- "url": "https://github.com/api-platform/api-platform",
- "name": "api-platform/api-platform"
- },
- "symfony": {
- "require": "^6.4 || ^7.0"
- },
- "branch-alias": {
- "dev-3.4": "3.4.x-dev",
- "dev-main": "4.2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "ApiPlatform\\Documentation\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Kévin Dunglas",
- "email": "kevin@dunglas.fr",
- "homepage": "https://dunglas.fr"
- },
- {
- "name": "API Platform Community",
- "homepage": "https://api-platform.com/community/contributors"
- }
- ],
- "description": "API Platform documentation controller.",
- "support": {
- "source": "https://github.com/api-platform/documentation/tree/v4.1.10"
- },
- "time": "2025-04-18T08:39:51+00:00"
- },
- {
- "name": "api-platform/http-cache",
- "version": "v4.1.10",
- "source": {
- "type": "git",
- "url": "https://github.com/api-platform/http-cache.git",
- "reference": "053f7373c5bddec65a28135eba7e252659aaf8a1"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/api-platform/http-cache/zipball/053f7373c5bddec65a28135eba7e252659aaf8a1",
- "reference": "053f7373c5bddec65a28135eba7e252659aaf8a1",
- "shasum": ""
- },
- "require": {
- "api-platform/metadata": "^4.1",
- "api-platform/state": "^4.1",
- "php": ">=8.2",
- "symfony/http-foundation": "^6.4 || ^7.0"
- },
- "require-dev": {
- "guzzlehttp/guzzle": "^6.0 || ^7.0",
- "phpspec/prophecy-phpunit": "^2.2",
- "phpunit/phpunit": "11.5.x-dev",
- "symfony/dependency-injection": "^6.4 || ^7.0",
- "symfony/http-client": "^6.4 || ^7.0"
- },
- "type": "library",
- "extra": {
- "thanks": {
- "url": "https://github.com/api-platform/api-platform",
- "name": "api-platform/api-platform"
- },
- "symfony": {
- "require": "^6.4 || ^7.0"
- },
- "branch-alias": {
- "dev-3.4": "3.4.x-dev",
- "dev-main": "4.2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "ApiPlatform\\HttpCache\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Kévin Dunglas",
- "email": "kevin@dunglas.fr",
- "homepage": "https://dunglas.fr"
- },
- {
- "name": "API Platform Community",
- "homepage": "https://api-platform.com/comunnity/contributors"
- }
- ],
- "description": "API Platform HttpCache component",
- "homepage": "https://api-platform.com",
- "keywords": [
- "api",
- "cache",
- "http",
- "rest"
- ],
- "support": {
- "source": "https://github.com/api-platform/http-cache/tree/v4.1.10"
- },
- "time": "2025-04-18T08:39:51+00:00"
- },
- {
- "name": "api-platform/hydra",
- "version": "v4.1.10",
- "source": {
- "type": "git",
- "url": "https://github.com/api-platform/hydra.git",
- "reference": "2689b6e7ec21d8261d8e4a1deb61598c4a898830"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/api-platform/hydra/zipball/2689b6e7ec21d8261d8e4a1deb61598c4a898830",
- "reference": "2689b6e7ec21d8261d8e4a1deb61598c4a898830",
- "shasum": ""
- },
- "require": {
- "api-platform/documentation": "^4.1",
- "api-platform/json-schema": "^4.1",
- "api-platform/jsonld": "^4.1",
- "api-platform/metadata": "^4.1",
- "api-platform/serializer": "^4.1",
- "api-platform/state": "^4.1",
- "php": ">=8.2",
- "symfony/web-link": "^6.4 || ^7.1"
- },
- "require-dev": {
- "api-platform/doctrine-common": "^4.1",
- "api-platform/doctrine-odm": "^4.1",
- "api-platform/doctrine-orm": "^4.1",
- "phpspec/prophecy": "^1.19",
- "phpspec/prophecy-phpunit": "^2.2",
- "phpunit/phpunit": "11.5.x-dev"
- },
- "type": "library",
- "extra": {
- "thanks": {
- "url": "https://github.com/api-platform/api-platform",
- "name": "api-platform/api-platform"
- },
- "symfony": {
- "require": "^6.4 || ^7.0"
- },
- "branch-alias": {
- "dev-3.4": "3.4.x-dev",
- "dev-main": "4.2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "ApiPlatform\\Hydra\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Kévin Dunglas",
- "email": "kevin@dunglas.fr",
- "homepage": "https://dunglas.fr"
- },
- {
- "name": "API Platform Community",
- "homepage": "https://api-platform.com/community/contributors"
- }
- ],
- "description": "API Hydra support",
- "homepage": "https://api-platform.com",
- "keywords": [
- "Hydra",
- "JSON-LD",
- "api",
- "graphql",
- "jsonapi",
- "rest"
- ],
- "support": {
- "source": "https://github.com/api-platform/hydra/tree/v4.1.10"
- },
- "time": "2025-05-19T08:39:54+00:00"
- },
- {
- "name": "api-platform/json-schema",
- "version": "v4.1.10",
- "source": {
- "type": "git",
- "url": "https://github.com/api-platform/json-schema.git",
- "reference": "82b21c0b7a85b0c2c10fdf6f1a88957266a39f8a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/api-platform/json-schema/zipball/82b21c0b7a85b0c2c10fdf6f1a88957266a39f8a",
- "reference": "82b21c0b7a85b0c2c10fdf6f1a88957266a39f8a",
- "shasum": ""
- },
- "require": {
- "api-platform/metadata": "^4.1",
- "php": ">=8.2",
- "symfony/console": "^6.4 || ^7.0",
"symfony/property-info": "^6.4 || ^7.1",
"symfony/serializer": "^6.4 || ^7.0",
- "symfony/uid": "^6.4 || ^7.0"
+ "symfony/translation-contracts": "^3.3",
+ "symfony/type-info": "^7.3 || 7.4.x-dev",
+ "symfony/validator": "^6.4.11 || ^7.1",
+ "symfony/web-link": "^6.4 || ^7.1",
+ "willdurand/negotiation": "^3.1"
+ },
+ "conflict": {
+ "doctrine/common": "<3.2.2",
+ "doctrine/dbal": "<2.10",
+ "doctrine/mongodb-odm": "<2.4",
+ "doctrine/orm": "<2.14.0",
+ "doctrine/persistence": "<1.3",
+ "phpspec/prophecy": "<1.15",
+ "phpunit/phpunit": "<9.5",
+ "symfony/framework-bundle": "6.4.6 || 7.0.6",
+ "symfony/object-mapper": "<7.3.4",
+ "symfony/var-exporter": "<6.1.1"
+ },
+ "replace": {
+ "api-platform/doctrine-common": "self.version",
+ "api-platform/doctrine-odm": "self.version",
+ "api-platform/doctrine-orm": "self.version",
+ "api-platform/documentation": "self.version",
+ "api-platform/elasticsearch": "self.version",
+ "api-platform/graphql": "self.version",
+ "api-platform/http-cache": "self.version",
+ "api-platform/hydra": "self.version",
+ "api-platform/json-api": "self.version",
+ "api-platform/json-hal": "self.version",
+ "api-platform/json-schema": "self.version",
+ "api-platform/jsonld": "self.version",
+ "api-platform/laravel": "self.version",
+ "api-platform/metadata": "self.version",
+ "api-platform/openapi": "self.version",
+ "api-platform/parameter-validator": "self.version",
+ "api-platform/ramsey-uuid": "self.version",
+ "api-platform/serializer": "self.version",
+ "api-platform/state": "self.version",
+ "api-platform/symfony": "self.version",
+ "api-platform/validator": "self.version"
},
"require-dev": {
+ "behat/behat": "^3.11",
+ "behat/mink": "^1.9",
+ "doctrine/cache": "^1.11 || ^2.1",
+ "doctrine/common": "^3.2.2",
+ "doctrine/dbal": "^4.0",
+ "doctrine/doctrine-bundle": "^2.11",
+ "doctrine/mongodb-odm": "^2.10",
+ "doctrine/mongodb-odm-bundle": "^5.0",
+ "doctrine/orm": "^2.17 || ^3.0",
+ "elasticsearch/elasticsearch": "^7.17 || ^8.4 || ^9.0",
+ "ext-mongodb": "^1.21 || ^2.0",
+ "friends-of-behat/mink-browserkit-driver": "^1.3.1",
+ "friends-of-behat/mink-extension": "^2.2",
+ "friends-of-behat/symfony-extension": "^2.1",
+ "guzzlehttp/guzzle": "^6.0 || ^7.0",
+ "illuminate/config": "^11.0 || ^12.0",
+ "illuminate/contracts": "^11.0 || ^12.0",
+ "illuminate/database": "^11.0 || ^12.0",
+ "illuminate/http": "^11.0 || ^12.0",
+ "illuminate/pagination": "^11.0 || ^12.0",
+ "illuminate/routing": "^11.0 || ^12.0",
+ "illuminate/support": "^11.0 || ^12.0",
+ "jangregor/phpstan-prophecy": "^2.1.11",
+ "justinrainbow/json-schema": "^5.2.11",
+ "laravel/framework": "^11.0 || ^12.0",
+ "orchestra/testbench": "^9.1",
"phpspec/prophecy-phpunit": "^2.2",
- "phpunit/phpunit": "11.5.x-dev"
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpdoc-parser": "^1.29 || ^2.0",
+ "phpstan/phpstan": "^2.1",
+ "phpstan/phpstan-doctrine": "^2.0",
+ "phpstan/phpstan-phpunit": "^2.0",
+ "phpstan/phpstan-symfony": "^2.0",
+ "phpunit/phpunit": "11.5.x-dev",
+ "psr/log": "^1.0 || ^2.0 || ^3.0",
+ "ramsey/uuid": "^4.7",
+ "ramsey/uuid-doctrine": "^2.0",
+ "soyuka/contexts": "^3.3.10",
+ "soyuka/pmu": "^0.2.0",
+ "soyuka/stubs-mongodb": "^1.0",
+ "symfony/asset": "^6.4 || ^7.0",
+ "symfony/browser-kit": "^6.4 || ^7.0",
+ "symfony/cache": "^6.4 || ^7.0",
+ "symfony/config": "^6.4 || ^7.0",
+ "symfony/console": "^6.4 || ^7.0",
+ "symfony/css-selector": "^6.4 || ^7.0",
+ "symfony/dependency-injection": "^6.4 || ^7.0",
+ "symfony/doctrine-bridge": "^6.4.2 || ^7.1",
+ "symfony/dom-crawler": "^6.4 || ^7.0",
+ "symfony/error-handler": "^6.4 || ^7.0",
+ "symfony/event-dispatcher": "^6.4 || ^7.0",
+ "symfony/expression-language": "^6.4 || ^7.0",
+ "symfony/finder": "^6.4 || ^7.0",
+ "symfony/form": "^6.4 || ^7.0",
+ "symfony/framework-bundle": "^6.4 || ^7.0 || 7.4.x-dev",
+ "symfony/http-client": "^6.4 || ^7.0",
+ "symfony/intl": "^6.4 || ^7.0",
+ "symfony/json-streamer": "7.4.x-dev",
+ "symfony/maker-bundle": "^1.24",
+ "symfony/mercure-bundle": "*",
+ "symfony/messenger": "^6.4 || ^7.0",
+ "symfony/object-mapper": "^7.3 || 7.4.x-dev",
+ "symfony/routing": "^6.4 || ^7.0",
+ "symfony/security-bundle": "^6.4 || ^7.0",
+ "symfony/security-core": "^6.4 || ^7.0",
+ "symfony/stopwatch": "^6.4 || ^7.0",
+ "symfony/string": "^6.4 || ^7.0",
+ "symfony/twig-bundle": "^6.4 || ^7.0",
+ "symfony/uid": "^6.4 || ^7.0",
+ "symfony/var-exporter": "^7.3 || ^7.4.x-dev",
+ "symfony/web-profiler-bundle": "^6.4 || ^7.0",
+ "symfony/yaml": "^6.4 || ^7.0",
+ "twig/twig": "^1.42.3 || ^2.12 || ^3.0",
+ "webonyx/graphql-php": "^15.0"
+ },
+ "suggest": {
+ "doctrine/mongodb-odm-bundle": "To support MongoDB. Only versions 4.0 and later are supported.",
+ "elasticsearch/elasticsearch": "To support Elasticsearch.",
+ "phpstan/phpdoc-parser": "To support extracting metadata from PHPDoc.",
+ "psr/cache-implementation": "To use metadata caching.",
+ "ramsey/uuid": "To support Ramsey's UUID identifiers.",
+ "symfony/cache": "To have metadata caching when using Symfony integration.",
+ "symfony/config": "To load XML configuration files.",
+ "symfony/expression-language": "To use authorization features.",
+ "symfony/http-client": "To use the HTTP cache invalidation system.",
+ "symfony/json-streamer": "To use the JSON Streamer component.",
+ "symfony/messenger": "To support messenger integration.",
+ "symfony/security": "To use authorization features.",
+ "symfony/twig-bundle": "To use the Swagger UI integration.",
+ "symfony/uid": "To support Symfony UUID/ULID identifiers.",
+ "symfony/web-profiler-bundle": "To use the data collector.",
+ "webonyx/graphql-php": "To support GraphQL."
},
"type": "library",
"extra": {
+ "pmu": {
+ "projects": [
+ "./src/*/composer.json",
+ "src/Doctrine/*/composer.json"
+ ]
+ },
"thanks": {
"url": "https://github.com/api-platform/api-platform",
"name": "api-platform/api-platform"
},
"symfony": {
- "require": "^6.4 || ^7.0"
+ "require": "^6.4 || ^7.1"
},
"branch-alias": {
"dev-3.4": "3.4.x-dev",
- "dev-main": "4.2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "ApiPlatform\\JsonSchema\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Kévin Dunglas",
- "email": "kevin@dunglas.fr",
- "homepage": "https://dunglas.fr"
- },
- {
- "name": "API Platform Community",
- "homepage": "https://api-platform.com/community/contributors"
- }
- ],
- "description": "Generate a JSON Schema from a PHP class",
- "homepage": "https://api-platform.com",
- "keywords": [
- "JSON Schema",
- "api",
- "json",
- "openapi",
- "rest",
- "swagger"
- ],
- "support": {
- "source": "https://github.com/api-platform/json-schema/tree/v4.1.10"
- },
- "time": "2025-05-06T08:38:55+00:00"
- },
- {
- "name": "api-platform/jsonld",
- "version": "v4.1.10",
- "source": {
- "type": "git",
- "url": "https://github.com/api-platform/jsonld.git",
- "reference": "4b13c13b6193492e736b13d249b5145512bedc1a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/api-platform/jsonld/zipball/4b13c13b6193492e736b13d249b5145512bedc1a",
- "reference": "4b13c13b6193492e736b13d249b5145512bedc1a",
- "shasum": ""
- },
- "require": {
- "api-platform/metadata": "^4.1",
- "api-platform/serializer": "^4.1",
- "api-platform/state": "^4.1",
- "php": ">=8.2"
- },
- "require-dev": {
- "phpunit/phpunit": "11.5.x-dev"
- },
- "type": "library",
- "extra": {
- "thanks": {
- "url": "https://github.com/api-platform/api-platform",
- "name": "api-platform/api-platform"
- },
- "symfony": {
- "require": "^6.4 || ^7.0"
- },
- "branch-alias": {
- "dev-3.4": "3.4.x-dev",
- "dev-main": "4.2.x-dev"
+ "dev-4.1": "4.1.x-dev",
+ "dev-4.2": "4.2.x-dev",
+ "dev-main": "4.3.x-dev"
}
},
"autoload": {
"files": [
- "./HydraContext.php"
+ "src/JsonLd/HydraContext.php"
],
"psr-4": {
- "ApiPlatform\\JsonLd\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
+ "ApiPlatform\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -534,493 +205,9 @@
"name": "Kévin Dunglas",
"email": "kevin@dunglas.fr",
"homepage": "https://dunglas.fr"
- },
- {
- "name": "API Platform Community",
- "homepage": "https://api-platform.com/community/contributors"
}
],
- "description": "API JSON-LD support",
- "homepage": "https://api-platform.com",
- "keywords": [
- "Hydra",
- "JSON-LD",
- "api",
- "graphql",
- "rest"
- ],
- "support": {
- "source": "https://github.com/api-platform/jsonld/tree/v4.1.10"
- },
- "time": "2025-04-18T08:39:51+00:00"
- },
- {
- "name": "api-platform/metadata",
- "version": "v4.1.8",
- "source": {
- "type": "git",
- "url": "https://github.com/api-platform/metadata.git",
- "reference": "76a7fd811d147cf60c09d17a046cfd2d85e09cd0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/api-platform/metadata/zipball/76a7fd811d147cf60c09d17a046cfd2d85e09cd0",
- "reference": "76a7fd811d147cf60c09d17a046cfd2d85e09cd0",
- "shasum": ""
- },
- "require": {
- "doctrine/inflector": "^1.0 || ^2.0",
- "php": ">=8.2",
- "psr/cache": "^1.0 || ^2.0 || ^3.0",
- "psr/log": "^1.0 || ^2.0 || ^3.0",
- "symfony/property-info": "^6.4 || ^7.1",
- "symfony/string": "^6.4 || ^7.0",
- "symfony/type-info": "^7.1"
- },
- "require-dev": {
- "api-platform/json-schema": "^4.1",
- "api-platform/openapi": "^4.1",
- "api-platform/state": "^4.1",
- "phpspec/prophecy-phpunit": "^2.2",
- "phpstan/phpdoc-parser": "^1.29 || ^2.0",
- "phpunit/phpunit": "11.5.x-dev",
- "symfony/config": "^6.4 || ^7.0",
- "symfony/routing": "^6.4 || ^7.0",
- "symfony/var-dumper": "^6.4 || ^7.0",
- "symfony/web-link": "^6.4 || ^7.1",
- "symfony/yaml": "^6.4 || ^7.0"
- },
- "suggest": {
- "phpstan/phpdoc-parser": "For PHP documentation support.",
- "symfony/config": "For XML resource configuration.",
- "symfony/yaml": "For YAML resource configuration."
- },
- "type": "library",
- "extra": {
- "thanks": {
- "url": "https://github.com/api-platform/api-platform",
- "name": "api-platform/api-platform"
- },
- "symfony": {
- "require": "^6.4 || ^7.0"
- },
- "branch-alias": {
- "dev-3.4": "3.4.x-dev",
- "dev-main": "4.2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "ApiPlatform\\Metadata\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Kévin Dunglas",
- "email": "kevin@dunglas.fr",
- "homepage": "https://dunglas.fr"
- },
- {
- "name": "API Platform Community",
- "homepage": "https://api-platform.com/community/contributors"
- }
- ],
- "description": "API Resource-oriented metadata attributes and factories",
- "homepage": "https://api-platform.com",
- "keywords": [
- "Hydra",
- "JSON-LD",
- "api",
- "graphql",
- "hal",
- "jsonapi",
- "openapi",
- "rest",
- "swagger"
- ],
- "support": {
- "source": "https://github.com/api-platform/metadata/tree/v4.1.8"
- },
- "time": "2025-05-09T05:54:53+00:00"
- },
- {
- "name": "api-platform/openapi",
- "version": "v4.1.10",
- "source": {
- "type": "git",
- "url": "https://github.com/api-platform/openapi.git",
- "reference": "437b096851f73d0167e8e48c5eb65c2b449dec3f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/api-platform/openapi/zipball/437b096851f73d0167e8e48c5eb65c2b449dec3f",
- "reference": "437b096851f73d0167e8e48c5eb65c2b449dec3f",
- "shasum": ""
- },
- "require": {
- "api-platform/json-schema": "^4.1",
- "api-platform/metadata": "^4.1",
- "api-platform/state": "^4.1",
- "php": ">=8.2",
- "symfony/console": "^6.4 || ^7.0",
- "symfony/filesystem": "^6.4 || ^7.0",
- "symfony/property-access": "^6.4 || ^7.0",
- "symfony/serializer": "^6.4 || ^7.0"
- },
- "require-dev": {
- "api-platform/doctrine-common": "^4.1",
- "api-platform/doctrine-odm": "^4.1",
- "api-platform/doctrine-orm": "^4.1",
- "phpspec/prophecy-phpunit": "^2.2",
- "phpunit/phpunit": "11.5.x-dev"
- },
- "type": "library",
- "extra": {
- "thanks": {
- "url": "https://github.com/api-platform/api-platform",
- "name": "api-platform/api-platform"
- },
- "symfony": {
- "require": "^6.4 || ^7.0"
- },
- "branch-alias": {
- "dev-3.4": "3.4.x-dev",
- "dev-main": "4.2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "ApiPlatform\\OpenApi\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Kévin Dunglas",
- "email": "kevin@dunglas.fr",
- "homepage": "https://dunglas.fr"
- },
- {
- "name": "API Platform Community",
- "homepage": "https://api-platform.com/community/contributors"
- }
- ],
- "description": "Models to build and serialize an OpenAPI specification.",
- "homepage": "https://api-platform.com",
- "keywords": [
- "Hydra",
- "JSON-LD",
- "api",
- "graphql",
- "hal",
- "jsonapi",
- "openapi",
- "rest",
- "swagger"
- ],
- "support": {
- "source": "https://github.com/api-platform/openapi/tree/v4.1.10"
- },
- "time": "2025-05-22T08:28:29+00:00"
- },
- {
- "name": "api-platform/serializer",
- "version": "v4.1.10",
- "source": {
- "type": "git",
- "url": "https://github.com/api-platform/serializer.git",
- "reference": "e496a2ca4e528307530a982a066951332a968b7f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/api-platform/serializer/zipball/e496a2ca4e528307530a982a066951332a968b7f",
- "reference": "e496a2ca4e528307530a982a066951332a968b7f",
- "shasum": ""
- },
- "require": {
- "api-platform/metadata": "^4.1",
- "api-platform/state": "^4.1",
- "php": ">=8.2",
- "symfony/property-access": "^6.4 || ^7.0",
- "symfony/property-info": "^6.4 || ^7.1",
- "symfony/serializer": "^6.4 || ^7.0",
- "symfony/validator": "^6.4 || ^7.0"
- },
- "require-dev": {
- "api-platform/doctrine-common": "^4.1",
- "api-platform/doctrine-odm": "^4.1",
- "api-platform/doctrine-orm": "^4.1",
- "api-platform/json-schema": "^4.1",
- "api-platform/openapi": "^4.1",
- "doctrine/collections": "^2.1",
- "phpspec/prophecy-phpunit": "^2.2",
- "phpunit/phpunit": "11.5.x-dev",
- "symfony/mercure-bundle": "*",
- "symfony/var-dumper": "^6.4 || ^7.0",
- "symfony/yaml": "^6.4 || ^7.0"
- },
- "suggest": {
- "api-platform/doctrine-odm": "To support Doctrine MongoDB ODM state options.",
- "api-platform/doctrine-orm": "To support Doctrine ORM state options."
- },
- "type": "library",
- "extra": {
- "thanks": {
- "url": "https://github.com/api-platform/api-platform",
- "name": "api-platform/api-platform"
- },
- "symfony": {
- "require": "^6.4 || ^7.0"
- },
- "branch-alias": {
- "dev-3.4": "3.4.x-dev",
- "dev-main": "4.2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "ApiPlatform\\Serializer\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Kévin Dunglas",
- "email": "kevin@dunglas.fr",
- "homepage": "https://dunglas.fr"
- },
- {
- "name": "API Platform Community",
- "homepage": "https://api-platform.com/community/contributors"
- }
- ],
- "description": "API Platform core Serializer",
- "homepage": "https://api-platform.com",
- "keywords": [
- "api",
- "graphql",
- "rest",
- "serializer"
- ],
- "support": {
- "source": "https://github.com/api-platform/serializer/tree/v4.1.10"
- },
- "time": "2025-05-22T10:03:44+00:00"
- },
- {
- "name": "api-platform/state",
- "version": "v4.1.10",
- "source": {
- "type": "git",
- "url": "https://github.com/api-platform/state.git",
- "reference": "694be5a11e2819279836a273d5f0ba15bf61bb43"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/api-platform/state/zipball/694be5a11e2819279836a273d5f0ba15bf61bb43",
- "reference": "694be5a11e2819279836a273d5f0ba15bf61bb43",
- "shasum": ""
- },
- "require": {
- "api-platform/metadata": "^4.1",
- "php": ">=8.2",
- "psr/container": "^1.0 || ^2.0",
- "symfony/http-kernel": "^6.4 || ^7.0"
- },
- "require-dev": {
- "api-platform/serializer": "^4.1",
- "api-platform/validator": "^4.1",
- "phpunit/phpunit": "11.5.x-dev",
- "symfony/http-foundation": "^6.4 || ^7.0",
- "symfony/web-link": "^6.4 || ^7.1",
- "willdurand/negotiation": "^3.1"
- },
- "suggest": {
- "api-platform/serializer": "To use API Platform serializer.",
- "api-platform/validator": "To use API Platform validation.",
- "symfony/http-foundation": "To use our HTTP providers and processor.",
- "symfony/web-link": "To support adding web links to the response headers.",
- "willdurand/negotiation": "To use the API Platform content negoatiation provider."
- },
- "type": "library",
- "extra": {
- "thanks": {
- "url": "https://github.com/api-platform/api-platform",
- "name": "api-platform/api-platform"
- },
- "symfony": {
- "require": "^6.4 || ^7.0"
- },
- "branch-alias": {
- "dev-3.4": "3.4.x-dev",
- "dev-main": "4.2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "ApiPlatform\\State\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Kévin Dunglas",
- "email": "kevin@dunglas.fr",
- "homepage": "https://dunglas.fr"
- },
- {
- "name": "API Platform Community",
- "homepage": "https://api-platform.com/community/contributors"
- }
- ],
- "description": "API Platform State component ",
- "homepage": "https://api-platform.com",
- "keywords": [
- "Hydra",
- "JSON-LD",
- "api",
- "graphql",
- "hal",
- "jsonapi",
- "openapi",
- "rest",
- "swagger"
- ],
- "support": {
- "source": "https://github.com/api-platform/state/tree/v4.1.10"
- },
- "time": "2025-05-22T08:56:51+00:00"
- },
- {
- "name": "api-platform/symfony",
- "version": "v4.1.10",
- "source": {
- "type": "git",
- "url": "https://github.com/api-platform/symfony.git",
- "reference": "ddc11da86823cb487c36b5e3a6cdeca4690412a4"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/api-platform/symfony/zipball/ddc11da86823cb487c36b5e3a6cdeca4690412a4",
- "reference": "ddc11da86823cb487c36b5e3a6cdeca4690412a4",
- "shasum": ""
- },
- "require": {
- "api-platform/documentation": "^4.1",
- "api-platform/http-cache": "^4.1",
- "api-platform/hydra": "^4.1",
- "api-platform/json-schema": "^4.1",
- "api-platform/jsonld": "^4.1",
- "api-platform/metadata": "^4.1",
- "api-platform/openapi": "^4.1",
- "api-platform/serializer": "^4.1",
- "api-platform/state": "^4.1",
- "api-platform/validator": "^4.1",
- "php": ">=8.2",
- "symfony/property-access": "^6.4 || ^7.0",
- "symfony/property-info": "^6.4 || ^7.1",
- "symfony/security-core": "^6.4 || ^7.0",
- "symfony/serializer": "^6.4 || ^7.0",
- "willdurand/negotiation": "^3.1"
- },
- "require-dev": {
- "api-platform/doctrine-common": "^4.1",
- "api-platform/doctrine-odm": "^4.1",
- "api-platform/doctrine-orm": "^4.1",
- "api-platform/elasticsearch": "^4.1",
- "api-platform/graphql": "^4.1",
- "api-platform/parameter-validator": "^3.1",
- "phpspec/prophecy-phpunit": "^2.2",
- "phpunit/phpunit": "11.5.x-dev",
- "symfony/expression-language": "^6.4 || ^7.0",
- "symfony/mercure-bundle": "*",
- "symfony/routing": "^6.4 || ^7.0",
- "symfony/validator": "^6.4 || ^7.0",
- "webonyx/graphql-php": "^15.0"
- },
- "suggest": {
- "api-platform/doctrine-odm": "To support MongoDB. Only versions 4.0 and later are supported.",
- "api-platform/doctrine-orm": "To support Doctrine ORM.",
- "api-platform/elasticsearch": "To support Elasticsearch.",
- "api-platform/graphql": "To support GraphQL.",
- "api-platform/ramsey-uuid": "To support Ramsey's UUID identifiers.",
- "ocramius/package-versions": "To display the API Platform's version in the debug bar.",
- "phpstan/phpdoc-parser": "To support extracting metadata from PHPDoc.",
- "psr/cache-implementation": "To use metadata caching.",
- "symfony/cache": "To have metadata caching when using Symfony integration.",
- "symfony/config": "To load XML configuration files.",
- "symfony/expression-language": "To use authorization and mercure advanced features.",
- "symfony/http-client": "To use the HTTP cache invalidation system.",
- "symfony/mercure-bundle": "To support mercure integration.",
- "symfony/messenger": "To support messenger integration and asynchronous Mercure updates.",
- "symfony/security": "To use authorization features.",
- "symfony/twig-bundle": "To use the Swagger UI integration.",
- "symfony/uid": "To support Symfony UUID/ULID identifiers.",
- "symfony/web-profiler-bundle": "To use the data collector."
- },
- "type": "symfony-bundle",
- "extra": {
- "thanks": {
- "url": "https://github.com/api-platform/api-platform",
- "name": "api-platform/api-platform"
- },
- "symfony": {
- "require": "^6.4 || ^7.0"
- },
- "branch-alias": {
- "dev-3.4": "3.4.x-dev",
- "dev-main": "4.2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "ApiPlatform\\Symfony\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Kévin Dunglas",
- "email": "kevin@dunglas.fr",
- "homepage": "https://dunglas.fr"
- },
- {
- "name": "API Platform Community",
- "homepage": "https://api-platform.com/community/contributors"
- }
- ],
- "description": "Symfony API Platform integration",
+ "description": "Build a fully-featured hypermedia or GraphQL API in minutes!",
"homepage": "https://api-platform.com",
"keywords": [
"Hydra",
@@ -1029,88 +216,17 @@
"graphql",
"hal",
"jsonapi",
+ "laravel",
"openapi",
"rest",
"swagger",
"symfony"
],
"support": {
- "source": "https://github.com/api-platform/symfony/tree/v4.1.10"
+ "issues": "https://github.com/api-platform/core/issues",
+ "source": "https://github.com/api-platform/core/tree/v4.2.6"
},
- "time": "2025-05-22T08:55:22+00:00"
- },
- {
- "name": "api-platform/validator",
- "version": "v4.1.8",
- "source": {
- "type": "git",
- "url": "https://github.com/api-platform/validator.git",
- "reference": "80f95b0d5e18d5d483dccf3a796cba6c8edef541"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/api-platform/validator/zipball/80f95b0d5e18d5d483dccf3a796cba6c8edef541",
- "reference": "80f95b0d5e18d5d483dccf3a796cba6c8edef541",
- "shasum": ""
- },
- "require": {
- "api-platform/metadata": "^4.1",
- "php": ">=8.2",
- "symfony/web-link": "^6.4 || ^7.1"
- },
- "require-dev": {
- "phpspec/prophecy-phpunit": "^2.2",
- "phpunit/phpunit": "11.5.x-dev",
- "symfony/http-kernel": "^6.4 || ^7.0",
- "symfony/serializer": "^6.4 || ^7.0",
- "symfony/validator": "^6.4 || ^7.0"
- },
- "type": "library",
- "extra": {
- "thanks": {
- "url": "https://github.com/api-platform/api-platform",
- "name": "api-platform/api-platform"
- },
- "symfony": {
- "require": "^6.4 || ^7.0"
- },
- "branch-alias": {
- "dev-3.4": "3.4.x-dev",
- "dev-main": "4.2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "ApiPlatform\\Validator\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Kévin Dunglas",
- "email": "kevin@dunglas.fr",
- "homepage": "https://dunglas.fr"
- },
- {
- "name": "API Platform Community",
- "homepage": "https://api-platform.com/community/contributors"
- }
- ],
- "description": "API Platform validator component",
- "homepage": "https://api-platform.com",
- "keywords": [
- "api",
- "graphql",
- "rest",
- "validator"
- ],
- "support": {
- "source": "https://github.com/api-platform/validator/tree/v4.1.8"
- },
- "time": "2025-04-18T08:39:51+00:00"
+ "time": "2025-11-17T17:32:37+00:00"
},
{
"name": "composer/semver",
@@ -1275,97 +391,6 @@
],
"time": "2025-10-25T09:18:13+00:00"
},
- {
- "name": "doctrine/common",
- "version": "3.5.0",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/common.git",
- "reference": "d9ea4a54ca2586db781f0265d36bea731ac66ec5"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/common/zipball/d9ea4a54ca2586db781f0265d36bea731ac66ec5",
- "reference": "d9ea4a54ca2586db781f0265d36bea731ac66ec5",
- "shasum": ""
- },
- "require": {
- "doctrine/persistence": "^2.0 || ^3.0 || ^4.0",
- "php": "^7.1 || ^8.0"
- },
- "require-dev": {
- "doctrine/coding-standard": "^9.0 || ^10.0",
- "doctrine/collections": "^1",
- "phpstan/phpstan": "^1.4.1",
- "phpstan/phpstan-phpunit": "^1",
- "phpunit/phpunit": "^7.5.20 || ^8.5 || ^9.0",
- "squizlabs/php_codesniffer": "^3.0",
- "symfony/phpunit-bridge": "^6.1",
- "vimeo/psalm": "^4.4"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Common\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- },
- {
- "name": "Marco Pivetta",
- "email": "ocramius@gmail.com"
- }
- ],
- "description": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, proxies and much more.",
- "homepage": "https://www.doctrine-project.org/projects/common.html",
- "keywords": [
- "common",
- "doctrine",
- "php"
- ],
- "support": {
- "issues": "https://github.com/doctrine/common/issues",
- "source": "https://github.com/doctrine/common/tree/3.5.0"
- },
- "funding": [
- {
- "url": "https://www.doctrine-project.org/sponsorship.html",
- "type": "custom"
- },
- {
- "url": "https://www.patreon.com/phpdoctrine",
- "type": "patreon"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcommon",
- "type": "tidelift"
- }
- ],
- "time": "2025-01-01T22:12:03+00:00"
- },
{
"name": "doctrine/dbal",
"version": "3.10.4",
@@ -1530,16 +555,16 @@
},
{
"name": "doctrine/doctrine-bundle",
- "version": "2.18.1",
+ "version": "2.18.2",
"source": {
"type": "git",
"url": "https://github.com/doctrine/DoctrineBundle.git",
- "reference": "b769877014de053da0e5cbbb63d0ea2f3b2fea76"
+ "reference": "0ff098b29b8b3c68307c8987dcaed7fd829c6546"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/b769877014de053da0e5cbbb63d0ea2f3b2fea76",
- "reference": "b769877014de053da0e5cbbb63d0ea2f3b2fea76",
+ "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/0ff098b29b8b3c68307c8987dcaed7fd829c6546",
+ "reference": "0ff098b29b8b3c68307c8987dcaed7fd829c6546",
"shasum": ""
},
"require": {
@@ -1631,7 +656,7 @@
],
"support": {
"issues": "https://github.com/doctrine/DoctrineBundle/issues",
- "source": "https://github.com/doctrine/DoctrineBundle/tree/2.18.1"
+ "source": "https://github.com/doctrine/DoctrineBundle/tree/2.18.2"
},
"funding": [
{
@@ -1647,7 +672,7 @@
"type": "tidelift"
}
],
- "time": "2025-11-05T14:42:10+00:00"
+ "time": "2025-12-20T21:35:32+00:00"
},
{
"name": "doctrine/doctrine-migrations-bundle",
@@ -2167,16 +1192,16 @@
},
{
"name": "doctrine/orm",
- "version": "3.5.8",
+ "version": "3.6.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/orm.git",
- "reference": "78dd074266e8b47a83bcf60ab5fe06c91a639168"
+ "reference": "d4e9276e79602b1eb4c4029c6c999b0d93478e2f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/orm/zipball/78dd074266e8b47a83bcf60ab5fe06c91a639168",
- "reference": "78dd074266e8b47a83bcf60ab5fe06c91a639168",
+ "url": "https://api.github.com/repos/doctrine/orm/zipball/d4e9276e79602b1eb4c4029c6c999b0d93478e2f",
+ "reference": "d4e9276e79602b1eb4c4029c6c999b0d93478e2f",
"shasum": ""
},
"require": {
@@ -2249,40 +1274,37 @@
],
"support": {
"issues": "https://github.com/doctrine/orm/issues",
- "source": "https://github.com/doctrine/orm/tree/3.5.8"
+ "source": "https://github.com/doctrine/orm/tree/3.6.0"
},
- "time": "2025-11-29T23:11:02+00:00"
+ "time": "2025-12-19T20:36:14+00:00"
},
{
"name": "doctrine/persistence",
- "version": "3.4.3",
+ "version": "4.1.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/persistence.git",
- "reference": "d59e6ef7caffe6a30f4b6f9e9079a75f52c64ae0"
+ "reference": "b9c49ad3558bb77ef973f4e173f2e9c2eca9be09"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/persistence/zipball/d59e6ef7caffe6a30f4b6f9e9079a75f52c64ae0",
- "reference": "d59e6ef7caffe6a30f4b6f9e9079a75f52c64ae0",
+ "url": "https://api.github.com/repos/doctrine/persistence/zipball/b9c49ad3558bb77ef973f4e173f2e9c2eca9be09",
+ "reference": "b9c49ad3558bb77ef973f4e173f2e9c2eca9be09",
"shasum": ""
},
"require": {
"doctrine/event-manager": "^1 || ^2",
- "php": "^7.2 || ^8.0",
+ "php": "^8.1",
"psr/cache": "^1.0 || ^2.0 || ^3.0"
},
- "conflict": {
- "doctrine/common": "<2.10"
- },
"require-dev": {
- "doctrine/coding-standard": "^12 || ^14",
- "doctrine/common": "^3.0",
- "phpstan/phpstan": "^1 || 2.1.30",
- "phpstan/phpstan-phpunit": "^1 || ^2",
- "phpstan/phpstan-strict-rules": "^1 || ^2",
- "phpunit/phpunit": "^8.5.38 || ^9.5",
- "symfony/cache": "^4.4 || ^5.4 || ^6.0 || ^7.0"
+ "doctrine/coding-standard": "^14",
+ "phpstan/phpstan": "2.1.30",
+ "phpstan/phpstan-phpunit": "^2",
+ "phpstan/phpstan-strict-rules": "^2",
+ "phpunit/phpunit": "^10.5.58 || ^12",
+ "symfony/cache": "^4.4 || ^5.4 || ^6.0 || ^7.0",
+ "symfony/finder": "^4.4 || ^5.4 || ^6.0 || ^7.0"
},
"type": "library",
"autoload": {
@@ -2331,7 +1353,7 @@
],
"support": {
"issues": "https://github.com/doctrine/persistence/issues",
- "source": "https://github.com/doctrine/persistence/tree/3.4.3"
+ "source": "https://github.com/doctrine/persistence/tree/4.1.1"
},
"funding": [
{
@@ -2347,7 +1369,7 @@
"type": "tidelift"
}
],
- "time": "2025-10-21T15:21:39+00:00"
+ "time": "2025-10-16T20:13:18+00:00"
},
{
"name": "doctrine/sql-formatter",
@@ -2798,31 +1820,32 @@
},
{
"name": "knpuniversity/oauth2-client-bundle",
- "version": "v2.19.0",
+ "version": "v2.20.1",
"source": {
"type": "git",
"url": "https://github.com/knpuniversity/oauth2-client-bundle.git",
- "reference": "cd1cb6945a46df81be6e94944872546ca4bf335c"
+ "reference": "d59e4dc61484e777b6f19df2efcf8b1bcc03828a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/knpuniversity/oauth2-client-bundle/zipball/cd1cb6945a46df81be6e94944872546ca4bf335c",
- "reference": "cd1cb6945a46df81be6e94944872546ca4bf335c",
+ "url": "https://api.github.com/repos/knpuniversity/oauth2-client-bundle/zipball/d59e4dc61484e777b6f19df2efcf8b1bcc03828a",
+ "reference": "d59e4dc61484e777b6f19df2efcf8b1bcc03828a",
"shasum": ""
},
"require": {
"league/oauth2-client": "^2.0",
"php": ">=8.1",
- "symfony/dependency-injection": "^5.4|^6.0|^7.0",
- "symfony/framework-bundle": "^5.4|^6.0|^7.0",
- "symfony/http-foundation": "^5.4|^6.0|^7.0",
- "symfony/routing": "^5.4|^6.0|^7.0"
+ "symfony/dependency-injection": "^6.4|^7.3|^8.0",
+ "symfony/framework-bundle": "^6.4|^7.3|^8.0",
+ "symfony/http-foundation": "^6.4|^7.3|^8.0",
+ "symfony/routing": "^6.4|^7.3|^8.0",
+ "symfony/security-core": "^6.4|^7.3|^8.0",
+ "symfony/security-http": "^6.4|^7.3|^8.0"
},
"require-dev": {
"league/oauth2-facebook": "^1.1|^2.0",
- "symfony/phpunit-bridge": "^5.4|^6.0|^7.0",
- "symfony/security-guard": "^5.4",
- "symfony/yaml": "^5.4|^6.0|^7.0"
+ "symfony/phpunit-bridge": "^7.3",
+ "symfony/yaml": "^6.4|^7.3|^8.0"
},
"suggest": {
"symfony/security-guard": "For integration with Symfony's Guard Security layer"
@@ -2851,9 +1874,9 @@
],
"support": {
"issues": "https://github.com/knpuniversity/oauth2-client-bundle/issues",
- "source": "https://github.com/knpuniversity/oauth2-client-bundle/tree/v2.19.0"
+ "source": "https://github.com/knpuniversity/oauth2-client-bundle/tree/v2.20.1"
},
- "time": "2025-09-17T15:00:36+00:00"
+ "time": "2025-12-04T15:46:43+00:00"
},
{
"name": "league/oauth2-client",
@@ -3029,7 +2052,7 @@
"source": {
"type": "git",
"url": "https://git.osdata-home.de/mycrm/mycrm-billing-module",
- "reference": "991e589473f79a65e9bcfce725053477e40b8a48"
+ "reference": "a70043acd597e4ff5064a51e639a5f28227e5cd4"
},
"require": {
"doctrine/orm": "^3.0",
@@ -3055,7 +2078,7 @@
"proprietary"
],
"description": "Ausgangsrechnungsverwaltung für myCRM",
- "time": "2025-12-15T09:09:30+00:00"
+ "time": "2025-12-22T08:27:54+00:00"
},
{
"name": "nelmio/cors-bundle",
@@ -3177,16 +2200,16 @@
},
{
"name": "phpdocumentor/reflection-docblock",
- "version": "5.6.5",
+ "version": "5.6.6",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "90614c73d3800e187615e2dd236ad0e2a01bf761"
+ "reference": "5cee1d3dfc2d2aa6599834520911d246f656bcb8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/90614c73d3800e187615e2dd236ad0e2a01bf761",
- "reference": "90614c73d3800e187615e2dd236ad0e2a01bf761",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/5cee1d3dfc2d2aa6599834520911d246f656bcb8",
+ "reference": "5cee1d3dfc2d2aa6599834520911d246f656bcb8",
"shasum": ""
},
"require": {
@@ -3196,7 +2219,7 @@
"phpdocumentor/reflection-common": "^2.2",
"phpdocumentor/type-resolver": "^1.7",
"phpstan/phpdoc-parser": "^1.7|^2.0",
- "webmozart/assert": "^1.9.1"
+ "webmozart/assert": "^1.9.1 || ^2"
},
"require-dev": {
"mockery/mockery": "~1.3.5 || ~1.6.0",
@@ -3235,9 +2258,9 @@
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
"support": {
"issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
- "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.5"
+ "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.6"
},
- "time": "2025-11-27T19:50:05+00:00"
+ "time": "2025-12-22T21:13:58+00:00"
},
{
"name": "phpdocumentor/type-resolver",
@@ -3856,16 +2879,16 @@
},
{
"name": "symfony/asset",
- "version": "v7.1.6",
+ "version": "v7.3.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/asset.git",
- "reference": "0dcd51490d7fc9fbf3c8f5aec6df182920fc0426"
+ "reference": "56c4d9f759247c4e07d8549e3baf7493cb9c3e4b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/asset/zipball/0dcd51490d7fc9fbf3c8f5aec6df182920fc0426",
- "reference": "0dcd51490d7fc9fbf3c8f5aec6df182920fc0426",
+ "url": "https://api.github.com/repos/symfony/asset/zipball/56c4d9f759247c4e07d8549e3baf7493cb9c3e4b",
+ "reference": "56c4d9f759247c4e07d8549e3baf7493cb9c3e4b",
"shasum": ""
},
"require": {
@@ -3905,7 +2928,7 @@
"description": "Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/asset/tree/v7.1.6"
+ "source": "https://github.com/symfony/asset/tree/v7.3.0"
},
"funding": [
{
@@ -3921,20 +2944,20 @@
"type": "tidelift"
}
],
- "time": "2024-10-25T15:11:02+00:00"
+ "time": "2025-03-05T10:15:41+00:00"
},
{
"name": "symfony/asset-mapper",
- "version": "v7.1.11",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/asset-mapper.git",
- "reference": "f30a77372995afb0f9323903b52e8e6527d12451"
+ "reference": "d66dba9dbc1b75289ed3dc45664794891ae881cb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/asset-mapper/zipball/f30a77372995afb0f9323903b52e8e6527d12451",
- "reference": "f30a77372995afb0f9323903b52e8e6527d12451",
+ "url": "https://api.github.com/repos/symfony/asset-mapper/zipball/d66dba9dbc1b75289ed3dc45664794891ae881cb",
+ "reference": "d66dba9dbc1b75289ed3dc45664794891ae881cb",
"shasum": ""
},
"require": {
@@ -3956,6 +2979,7 @@
"symfony/framework-bundle": "^6.4|^7.0",
"symfony/http-foundation": "^6.4|^7.0",
"symfony/http-kernel": "^6.4|^7.0",
+ "symfony/process": "^6.4|^7.0",
"symfony/web-link": "^6.4|^7.0"
},
"type": "library",
@@ -3984,7 +3008,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.1.11"
+ "source": "https://github.com/symfony/asset-mapper/tree/v7.3.8"
},
"funding": [
{
@@ -3995,32 +3019,36 @@
"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-27T10:57:12+00:00"
+ "time": "2025-11-21T13:14:48+00:00"
},
{
"name": "symfony/cache",
- "version": "v7.1.11",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/cache.git",
- "reference": "3828c0375578ff3ca1ddc54cc5c6fa4cc89fb3fb"
+ "reference": "288ea9853bbf6b395ee09bde9ac6da415fffbc8c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/cache/zipball/3828c0375578ff3ca1ddc54cc5c6fa4cc89fb3fb",
- "reference": "3828c0375578ff3ca1ddc54cc5c6fa4cc89fb3fb",
+ "url": "https://api.github.com/repos/symfony/cache/zipball/288ea9853bbf6b395ee09bde9ac6da415fffbc8c",
+ "reference": "288ea9853bbf6b395ee09bde9ac6da415fffbc8c",
"shasum": ""
},
"require": {
"php": ">=8.2",
"psr/cache": "^2.0|^3.0",
"psr/log": "^1.1|^2|^3",
- "symfony/cache-contracts": "^2.5|^3",
+ "symfony/cache-contracts": "^3.6",
"symfony/deprecation-contracts": "^2.5|^3.0",
"symfony/service-contracts": "^2.5|^3",
"symfony/var-exporter": "^6.4|^7.0"
@@ -4041,6 +3069,7 @@
"doctrine/dbal": "^3.6|^4",
"predis/predis": "^1.1|^2.0",
"psr/simple-cache": "^1.0|^2.0|^3.0",
+ "symfony/clock": "^6.4|^7.0",
"symfony/config": "^6.4|^7.0",
"symfony/dependency-injection": "^6.4|^7.0",
"symfony/filesystem": "^6.4|^7.0",
@@ -4081,7 +3110,7 @@
"psr6"
],
"support": {
- "source": "https://github.com/symfony/cache/tree/v7.1.11"
+ "source": "https://github.com/symfony/cache/tree/v7.3.8"
},
"funding": [
{
@@ -4092,12 +3121,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-27T10:57:12+00:00"
+ "time": "2025-12-04T18:07:52+00:00"
},
{
"name": "symfony/cache-contracts",
@@ -4177,16 +3210,16 @@
},
{
"name": "symfony/clock",
- "version": "v7.1.6",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/clock.git",
- "reference": "97bebc53548684c17ed696bc8af016880f0f098d"
+ "reference": "bf3ab8ea07408cb91aef86e3b2761d2d0f011e7c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/clock/zipball/97bebc53548684c17ed696bc8af016880f0f098d",
- "reference": "97bebc53548684c17ed696bc8af016880f0f098d",
+ "url": "https://api.github.com/repos/symfony/clock/zipball/bf3ab8ea07408cb91aef86e3b2761d2d0f011e7c",
+ "reference": "bf3ab8ea07408cb91aef86e3b2761d2d0f011e7c",
"shasum": ""
},
"require": {
@@ -4231,7 +3264,7 @@
"time"
],
"support": {
- "source": "https://github.com/symfony/clock/tree/v7.1.6"
+ "source": "https://github.com/symfony/clock/tree/v7.3.8"
},
"funding": [
{
@@ -4242,25 +3275,29 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2024-09-25T14:20:29+00:00"
+ "time": "2025-11-12T15:21:00+00:00"
},
{
"name": "symfony/config",
- "version": "v7.1.7",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/config.git",
- "reference": "dc373a5cbd345354696f5dfd39c5c7a8ea23f4c8"
+ "reference": "b212ca7cc6486baeaa75f26980a203593aa4a8a9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/config/zipball/dc373a5cbd345354696f5dfd39c5c7a8ea23f4c8",
- "reference": "dc373a5cbd345354696f5dfd39c5c7a8ea23f4c8",
+ "url": "https://api.github.com/repos/symfony/config/zipball/b212ca7cc6486baeaa75f26980a203593aa4a8a9",
+ "reference": "b212ca7cc6486baeaa75f26980a203593aa4a8a9",
"shasum": ""
},
"require": {
@@ -4306,7 +3343,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.1.7"
+ "source": "https://github.com/symfony/config/tree/v7.3.8"
},
"funding": [
{
@@ -4317,32 +3354,37 @@
"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-04T11:34:07+00:00"
+ "time": "2025-11-21T20:53:13+00:00"
},
{
"name": "symfony/console",
- "version": "v7.1.10",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "bb06e2d7f8dd9dffe5eada8a5cbe0f68f1482db7"
+ "reference": "6d0d25cc1138bb7bab0685fbe4184e6289914406"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/bb06e2d7f8dd9dffe5eada8a5cbe0f68f1482db7",
- "reference": "bb06e2d7f8dd9dffe5eada8a5cbe0f68f1482db7",
+ "url": "https://api.github.com/repos/symfony/console/zipball/6d0d25cc1138bb7bab0685fbe4184e6289914406",
+ "reference": "6d0d25cc1138bb7bab0685fbe4184e6289914406",
"shasum": ""
},
"require": {
"php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "~1.0",
"symfony/service-contracts": "^2.5|^3",
- "symfony/string": "^6.4|^7.0"
+ "symfony/string": "^7.2"
},
"conflict": {
"symfony/dependency-injection": "<6.4",
@@ -4399,7 +3441,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v7.1.10"
+ "source": "https://github.com/symfony/console/tree/v7.3.8"
},
"funding": [
{
@@ -4410,25 +3452,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-12-09T07:30:10+00:00"
+ "time": "2025-12-05T13:52:21+00:00"
},
{
"name": "symfony/dependency-injection",
- "version": "v7.1.11",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/dependency-injection.git",
- "reference": "5ebf7d4dfda126b442450effaec421a106c010de"
+ "reference": "6d83d997230971a350bfb0b9bfc43e8dead5ff9a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/5ebf7d4dfda126b442450effaec421a106c010de",
- "reference": "5ebf7d4dfda126b442450effaec421a106c010de",
+ "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/6d83d997230971a350bfb0b9bfc43e8dead5ff9a",
+ "reference": "6d83d997230971a350bfb0b9bfc43e8dead5ff9a",
"shasum": ""
},
"require": {
@@ -4436,7 +3482,7 @@
"psr/container": "^1.1|^2.0",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/service-contracts": "^3.5",
- "symfony/var-exporter": "^6.4|^7.0"
+ "symfony/var-exporter": "^6.4.20|^7.2.5"
},
"conflict": {
"ext-psr": "<1.1|>=2",
@@ -4479,7 +3525,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.1.11"
+ "source": "https://github.com/symfony/dependency-injection/tree/v7.3.8"
},
"funding": [
{
@@ -4490,12 +3536,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-10T09:29:52+00:00"
+ "time": "2025-12-07T09:35:41+00:00"
},
{
"name": "symfony/deprecation-contracts",
@@ -4566,16 +3616,16 @@
},
{
"name": "symfony/doctrine-bridge",
- "version": "v7.1.11",
+ "version": "v7.3.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/doctrine-bridge.git",
- "reference": "b0247c25b71409c23c0cf3e090030950a86cc61b"
+ "reference": "e7d308bd44ff8673a259e2727d13af6a93a5d83e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/b0247c25b71409c23c0cf3e090030950a86cc61b",
- "reference": "b0247c25b71409c23c0cf3e090030950a86cc61b",
+ "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/e7d308bd44ff8673a259e2727d13af6a93a5d83e",
+ "reference": "e7d308bd44ff8673a259e2727d13af6a93a5d83e",
"shasum": ""
},
"require": {
@@ -4588,6 +3638,7 @@
"symfony/service-contracts": "^2.5|^3"
},
"conflict": {
+ "doctrine/collections": "<1.8",
"doctrine/dbal": "<3.6",
"doctrine/lexer": "<1.1",
"doctrine/orm": "<2.15",
@@ -4604,7 +3655,7 @@
"symfony/validator": "<6.4"
},
"require-dev": {
- "doctrine/collections": "^1.0|^2.0",
+ "doctrine/collections": "^1.8|^2.0",
"doctrine/data-fixtures": "^1.1|^2",
"doctrine/dbal": "^3.6|^4",
"doctrine/orm": "^2.15|^3",
@@ -4623,7 +3674,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"
@@ -4654,7 +3705,7 @@
"description": "Provides integration for Doctrine with various Symfony components",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/doctrine-bridge/tree/v7.1.11"
+ "source": "https://github.com/symfony/doctrine-bridge/tree/v7.3.5"
},
"funding": [
{
@@ -4665,31 +3716,35 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2025-01-27T10:57:12+00:00"
+ "time": "2025-09-27T09:00:46+00:00"
},
{
"name": "symfony/doctrine-messenger",
- "version": "v7.1.11",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/doctrine-messenger.git",
- "reference": "a7813f3cfc8c66bd5930f15fcf591a1dee27b089"
+ "reference": "f5d6c8ea82b9378221186393e8dff9c32ea09d10"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/doctrine-messenger/zipball/a7813f3cfc8c66bd5930f15fcf591a1dee27b089",
- "reference": "a7813f3cfc8c66bd5930f15fcf591a1dee27b089",
+ "url": "https://api.github.com/repos/symfony/doctrine-messenger/zipball/f5d6c8ea82b9378221186393e8dff9c32ea09d10",
+ "reference": "f5d6c8ea82b9378221186393e8dff9c32ea09d10",
"shasum": ""
},
"require": {
"doctrine/dbal": "^3.6|^4",
"php": ">=8.2",
- "symfony/messenger": "^6.4|^7.0",
+ "symfony/messenger": "^7.2",
"symfony/service-contracts": "^2.5|^3"
},
"conflict": {
@@ -4726,7 +3781,7 @@
"description": "Symfony Doctrine Messenger Bridge",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/doctrine-messenger/tree/v7.1.11"
+ "source": "https://github.com/symfony/doctrine-messenger/tree/v7.3.8"
},
"funding": [
{
@@ -4737,25 +3792,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-01-07T09:23:14+00:00"
+ "time": "2025-12-05T13:52:21+00:00"
},
{
"name": "symfony/dotenv",
- "version": "v7.1.9",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/dotenv.git",
- "reference": "245d1afe223664d2276afb75177d8988c328fb78"
+ "reference": "8c53fef39685ce76f208b4ccdc1e224f7e626c3f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dotenv/zipball/245d1afe223664d2276afb75177d8988c328fb78",
- "reference": "245d1afe223664d2276afb75177d8988c328fb78",
+ "url": "https://api.github.com/repos/symfony/dotenv/zipball/8c53fef39685ce76f208b4ccdc1e224f7e626c3f",
+ "reference": "8c53fef39685ce76f208b4ccdc1e224f7e626c3f",
"shasum": ""
},
"require": {
@@ -4800,7 +3859,7 @@
"environment"
],
"support": {
- "source": "https://github.com/symfony/dotenv/tree/v7.1.9"
+ "source": "https://github.com/symfony/dotenv/tree/v7.3.8"
},
"funding": [
{
@@ -4811,25 +3870,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:17:28+00:00"
+ "time": "2025-11-16T10:09:06+00:00"
},
{
"name": "symfony/error-handler",
- "version": "v7.1.11",
+ "version": "v7.3.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
- "reference": "f4d1fd1bcb4bce9983d034111b7ea3edc88e1a57"
+ "reference": "bbe40bfab84323d99dab491b716ff142410a92a8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/error-handler/zipball/f4d1fd1bcb4bce9983d034111b7ea3edc88e1a57",
- "reference": "f4d1fd1bcb4bce9983d034111b7ea3edc88e1a57",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/bbe40bfab84323d99dab491b716ff142410a92a8",
+ "reference": "bbe40bfab84323d99dab491b716ff142410a92a8",
"shasum": ""
},
"require": {
@@ -4842,9 +3905,11 @@
"symfony/http-kernel": "<6.4"
},
"require-dev": {
+ "symfony/console": "^6.4|^7.0",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/http-kernel": "^6.4|^7.0",
- "symfony/serializer": "^6.4|^7.0"
+ "symfony/serializer": "^6.4|^7.0",
+ "symfony/webpack-encore-bundle": "^1.0|^2.0"
},
"bin": [
"Resources/bin/patch-type-declarations"
@@ -4875,7 +3940,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.1.11"
+ "source": "https://github.com/symfony/error-handler/tree/v7.3.6"
},
"funding": [
{
@@ -4886,25 +3951,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-01-07T09:23:14+00:00"
+ "time": "2025-10-31T19:12:50+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v7.1.6",
+ "version": "v7.3.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "87254c78dd50721cfd015b62277a8281c5589702"
+ "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/87254c78dd50721cfd015b62277a8281c5589702",
- "reference": "87254c78dd50721cfd015b62277a8281c5589702",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b7dc69e71de420ac04bc9ab830cf3ffebba48191",
+ "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191",
"shasum": ""
},
"require": {
@@ -4955,7 +4024,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v7.1.6"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v7.3.3"
},
"funding": [
{
@@ -4966,12 +4035,16 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2024-09-25T14:20:29+00:00"
+ "time": "2025-08-13T11:49:31+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
@@ -5051,16 +4124,16 @@
},
{
"name": "symfony/expression-language",
- "version": "v7.1.6",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/expression-language.git",
- "reference": "c3a1224bc144b36cd79149b42c1aecd5f81395a5"
+ "reference": "cd878672ea59470d048e93279140bb96c320af76"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/expression-language/zipball/c3a1224bc144b36cd79149b42c1aecd5f81395a5",
- "reference": "c3a1224bc144b36cd79149b42c1aecd5f81395a5",
+ "url": "https://api.github.com/repos/symfony/expression-language/zipball/cd878672ea59470d048e93279140bb96c320af76",
+ "reference": "cd878672ea59470d048e93279140bb96c320af76",
"shasum": ""
},
"require": {
@@ -5095,7 +4168,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.1.6"
+ "source": "https://github.com/symfony/expression-language/tree/v7.3.8"
},
"funding": [
{
@@ -5106,25 +4179,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-09T08:46:59+00:00"
+ "time": "2025-11-12T15:21:00+00:00"
},
{
"name": "symfony/filesystem",
- "version": "v7.1.6",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
- "reference": "c835867b3c62bb05c7fe3d637c871c7ae52024d4"
+ "reference": "ce0b94a0e57b7499520d9e5150da9716d729a645"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/c835867b3c62bb05c7fe3d637c871c7ae52024d4",
- "reference": "c835867b3c62bb05c7fe3d637c871c7ae52024d4",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/ce0b94a0e57b7499520d9e5150da9716d729a645",
+ "reference": "ce0b94a0e57b7499520d9e5150da9716d729a645",
"shasum": ""
},
"require": {
@@ -5161,7 +4238,7 @@
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/filesystem/tree/v7.1.6"
+ "source": "https://github.com/symfony/filesystem/tree/v7.3.8"
},
"funding": [
{
@@ -5172,25 +4249,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:11:02+00:00"
+ "time": "2025-11-26T15:55:45+00:00"
},
{
"name": "symfony/finder",
- "version": "v7.1.10",
+ "version": "v7.3.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "b8b526e051ac0b33feabbec7893adcab96b23bf3"
+ "reference": "9f696d2f1e340484b4683f7853b273abff94421f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/b8b526e051ac0b33feabbec7893adcab96b23bf3",
- "reference": "b8b526e051ac0b33feabbec7893adcab96b23bf3",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/9f696d2f1e340484b4683f7853b273abff94421f",
+ "reference": "9f696d2f1e340484b4683f7853b273abff94421f",
"shasum": ""
},
"require": {
@@ -5225,7 +4306,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v7.1.10"
+ "source": "https://github.com/symfony/finder/tree/v7.3.5"
},
"funding": [
{
@@ -5236,12 +4317,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-30T18:59:46+00:00"
+ "time": "2025-10-15T18:45:57+00:00"
},
{
"name": "symfony/flex",
@@ -5318,23 +4403,23 @@
},
{
"name": "symfony/form",
- "version": "v7.1.6",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/form.git",
- "reference": "7a48dda96fe16711fc042df38ca1a7dd4d9d6387"
+ "reference": "008a7b331d7f42ac68f8f979566000f1aa0fbe0c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/form/zipball/7a48dda96fe16711fc042df38ca1a7dd4d9d6387",
- "reference": "7a48dda96fe16711fc042df38ca1a7dd4d9d6387",
+ "url": "https://api.github.com/repos/symfony/form/zipball/008a7b331d7f42ac68f8f979566000f1aa0fbe0c",
+ "reference": "008a7b331d7f42ac68f8f979566000f1aa0fbe0c",
"shasum": ""
},
"require": {
"php": ">=8.2",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/event-dispatcher": "^6.4|^7.0",
- "symfony/options-resolver": "^6.4|^7.0",
+ "symfony/options-resolver": "^7.3",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-intl-icu": "^1.21",
"symfony/polyfill-mbstring": "~1.0",
@@ -5395,7 +4480,7 @@
"description": "Allows to easily create, process and reuse HTML forms",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/form/tree/v7.1.6"
+ "source": "https://github.com/symfony/form/tree/v7.3.8"
},
"funding": [
{
@@ -5406,25 +4491,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-09T08:46:59+00:00"
+ "time": "2025-12-05T13:52:21+00:00"
},
{
"name": "symfony/framework-bundle",
- "version": "v7.1.11",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/framework-bundle.git",
- "reference": "1eae7a4e095a2a3851cb41ac2aea9aa60fba1df8"
+ "reference": "5d2e60f301dbafba1408e62b9838fdb58920c2ca"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/1eae7a4e095a2a3851cb41ac2aea9aa60fba1df8",
- "reference": "1eae7a4e095a2a3851cb41ac2aea9aa60fba1df8",
+ "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/5d2e60f301dbafba1408e62b9838fdb58920c2ca",
+ "reference": "5d2e60f301dbafba1408e62b9838fdb58920c2ca",
"shasum": ""
},
"require": {
@@ -5432,15 +4521,15 @@
"ext-xml": "*",
"php": ">=8.2",
"symfony/cache": "^6.4|^7.0",
- "symfony/config": "^6.4|^7.0",
- "symfony/dependency-injection": "^7.1.5",
+ "symfony/config": "^7.3",
+ "symfony/dependency-injection": "^7.2",
"symfony/deprecation-contracts": "^2.5|^3",
- "symfony/error-handler": "^6.4|^7.0",
+ "symfony/error-handler": "^7.3",
"symfony/event-dispatcher": "^6.4|^7.0",
"symfony/filesystem": "^7.1",
"symfony/finder": "^6.4|^7.0",
- "symfony/http-foundation": "^6.4|^7.0",
- "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/http-foundation": "^7.3",
+ "symfony/http-kernel": "^7.2",
"symfony/polyfill-mbstring": "~1.0",
"symfony/routing": "^6.4|^7.0"
},
@@ -5456,24 +4545,27 @@
"symfony/dotenv": "<6.4",
"symfony/form": "<6.4",
"symfony/http-client": "<6.4",
+ "symfony/json-streamer": ">=7.4",
"symfony/lock": "<6.4",
"symfony/mailer": "<6.4",
"symfony/messenger": "<6.4",
"symfony/mime": "<6.4",
+ "symfony/object-mapper": ">=7.4",
"symfony/property-access": "<6.4",
"symfony/property-info": "<6.4",
"symfony/runtime": "<6.4.13|>=7.0,<7.1.6",
"symfony/scheduler": "<6.4.4|>=7.0.0,<7.0.4",
"symfony/security-core": "<6.4",
- "symfony/security-csrf": "<6.4",
- "symfony/serializer": "<6.4",
+ "symfony/security-csrf": "<7.2",
+ "symfony/serializer": "<7.2.5",
"symfony/stopwatch": "<6.4",
- "symfony/translation": "<6.4",
+ "symfony/translation": "<7.3",
"symfony/twig-bridge": "<6.4",
"symfony/twig-bundle": "<6.4",
"symfony/validator": "<6.4",
"symfony/web-profiler-bundle": "<6.4",
- "symfony/workflow": "<6.4"
+ "symfony/webhook": "<7.2",
+ "symfony/workflow": "<7.3.0-beta2"
},
"require-dev": {
"doctrine/persistence": "^1.3|^2|^3",
@@ -5492,11 +4584,13 @@
"symfony/form": "^6.4|^7.0",
"symfony/html-sanitizer": "^6.4|^7.0",
"symfony/http-client": "^6.4|^7.0",
+ "symfony/json-streamer": "7.3.*",
"symfony/lock": "^6.4|^7.0",
"symfony/mailer": "^6.4|^7.0",
"symfony/messenger": "^6.4|^7.0",
"symfony/mime": "^6.4|^7.0",
"symfony/notifier": "^6.4|^7.0",
+ "symfony/object-mapper": "^v7.3.0-beta2",
"symfony/polyfill-intl-icu": "~1.0",
"symfony/process": "^6.4|^7.0",
"symfony/property-info": "^6.4|^7.0",
@@ -5504,18 +4598,19 @@
"symfony/scheduler": "^6.4.4|^7.0.4",
"symfony/security-bundle": "^6.4|^7.0",
"symfony/semaphore": "^6.4|^7.0",
- "symfony/serializer": "^6.4|^7.0",
+ "symfony/serializer": "^7.2.5",
"symfony/stopwatch": "^6.4|^7.0",
"symfony/string": "^6.4|^7.0",
- "symfony/translation": "^6.4|^7.0",
+ "symfony/translation": "^7.3",
"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",
- "symfony/workflow": "^6.4|^7.0",
+ "symfony/webhook": "^7.2",
+ "symfony/workflow": "^7.3",
"symfony/yaml": "^6.4|^7.0",
- "twig/twig": "^3.0.4"
+ "twig/twig": "^3.12"
},
"type": "symfony-bundle",
"autoload": {
@@ -5543,7 +4638,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.1.11"
+ "source": "https://github.com/symfony/framework-bundle/tree/v7.3.8"
},
"funding": [
{
@@ -5554,25 +4649,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-01-29T07:13:42+00:00"
+ "time": "2025-12-05T13:52:40+00:00"
},
{
"name": "symfony/http-client",
- "version": "v7.1.11",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-client.git",
- "reference": "71632c1f13b36cb4c23ccdd255946dc02753afef"
+ "reference": "3d125854b2f254303d7dfd1d3af15954ac65703b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-client/zipball/71632c1f13b36cb4c23ccdd255946dc02753afef",
- "reference": "71632c1f13b36cb4c23ccdd255946dc02753afef",
+ "url": "https://api.github.com/repos/symfony/http-client/zipball/3d125854b2f254303d7dfd1d3af15954ac65703b",
+ "reference": "3d125854b2f254303d7dfd1d3af15954ac65703b",
"shasum": ""
},
"require": {
@@ -5580,9 +4679,12 @@
"psr/log": "^1|^2|^3",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/http-client-contracts": "~3.4.4|^3.5.2",
+ "symfony/polyfill-php83": "^1.29",
"symfony/service-contracts": "^2.5|^3"
},
"conflict": {
+ "amphp/amp": "<2.5",
+ "amphp/socket": "<1.1",
"php-http/discovery": "<1.15",
"symfony/http-foundation": "<6.4"
},
@@ -5593,14 +4695,13 @@
"symfony/http-client-implementation": "3.0"
},
"require-dev": {
- "amphp/amp": "^2.5",
- "amphp/http-client": "^4.2.1",
- "amphp/http-tunnel": "^1.0",
- "amphp/socket": "^1.1",
+ "amphp/http-client": "^4.2.1|^5.0",
+ "amphp/http-tunnel": "^1.0|^2.0",
"guzzlehttp/promises": "^1.4|^2.0",
"nyholm/psr7": "^1.0",
"php-http/httplug": "^1.0|^2.0",
"psr/http-client": "^1.0",
+ "symfony/amphp-http-client-meta": "^1.0|^2.0",
"symfony/dependency-injection": "^6.4|^7.0",
"symfony/http-kernel": "^6.4|^7.0",
"symfony/messenger": "^6.4|^7.0",
@@ -5637,7 +4738,7 @@
"http"
],
"support": {
- "source": "https://github.com/symfony/http-client/tree/v7.1.11"
+ "source": "https://github.com/symfony/http-client/tree/v7.3.8"
},
"funding": [
{
@@ -5648,12 +4749,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-28T15:50:57+00:00"
+ "time": "2025-12-04T18:07:52+00:00"
},
{
"name": "symfony/http-client-contracts",
@@ -5735,20 +4840,21 @@
},
{
"name": "symfony/http-foundation",
- "version": "v7.1.11",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "7ced01aa123612666a7a4fb72c627f969c01fa8d"
+ "reference": "8cdae4e108673e0d3e4f18ef2ee79ff5023beeac"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/7ced01aa123612666a7a4fb72c627f969c01fa8d",
- "reference": "7ced01aa123612666a7a4fb72c627f969c01fa8d",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/8cdae4e108673e0d3e4f18ef2ee79ff5023beeac",
+ "reference": "8cdae4e108673e0d3e4f18ef2ee79ff5023beeac",
"shasum": ""
},
"require": {
"php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3.0",
"symfony/polyfill-mbstring": "~1.1",
"symfony/polyfill-php83": "^1.27"
},
@@ -5760,6 +4866,7 @@
"doctrine/dbal": "^3.6|^4",
"predis/predis": "^1.1|^2.0",
"symfony/cache": "^6.4.12|^7.1.5",
+ "symfony/clock": "^6.4|^7.0",
"symfony/dependency-injection": "^6.4|^7.0",
"symfony/expression-language": "^6.4|^7.0",
"symfony/http-kernel": "^6.4|^7.0",
@@ -5792,7 +4899,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.1.11"
+ "source": "https://github.com/symfony/http-foundation/tree/v7.3.8"
},
"funding": [
{
@@ -5803,25 +4910,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-01-17T10:33:21+00:00"
+ "time": "2025-12-04T18:07:52+00:00"
},
{
"name": "symfony/http-kernel",
- "version": "v7.1.11",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "576eb3368037dd139f67b8ac71db56c3f69f7d66"
+ "reference": "b4bfe6980782b89a2f9c78e4a0f00f0582c8043e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/576eb3368037dd139f67b8ac71db56c3f69f7d66",
- "reference": "576eb3368037dd139f67b8ac71db56c3f69f7d66",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/b4bfe6980782b89a2f9c78e4a0f00f0582c8043e",
+ "reference": "b4bfe6980782b89a2f9c78e4a0f00f0582c8043e",
"shasum": ""
},
"require": {
@@ -5829,8 +4940,8 @@
"psr/log": "^1|^2|^3",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/error-handler": "^6.4|^7.0",
- "symfony/event-dispatcher": "^6.4|^7.0",
- "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/event-dispatcher": "^7.3",
+ "symfony/http-foundation": "^7.3",
"symfony/polyfill-ctype": "^1.8"
},
"conflict": {
@@ -5850,7 +4961,7 @@
"symfony/twig-bridge": "<6.4",
"symfony/validator": "<6.4",
"symfony/var-dumper": "<6.4",
- "twig/twig": "<3.0.4"
+ "twig/twig": "<3.12"
},
"provide": {
"psr/log-implementation": "1.0|2.0|3.0"
@@ -5878,7 +4989,7 @@
"symfony/validator": "^6.4|^7.0",
"symfony/var-dumper": "^6.4|^7.0",
"symfony/var-exporter": "^6.4|^7.0",
- "twig/twig": "^3.0.4"
+ "twig/twig": "^3.12"
},
"type": "library",
"autoload": {
@@ -5906,7 +5017,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.1.11"
+ "source": "https://github.com/symfony/http-kernel/tree/v7.3.8"
},
"funding": [
{
@@ -5917,25 +5028,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-01-29T07:34:05+00:00"
+ "time": "2025-12-07T16:03:07+00:00"
},
{
"name": "symfony/intl",
- "version": "v7.1.8",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/intl.git",
- "reference": "e56b243fc0afa5a12bd11dace4002ada5a7d99f8"
+ "reference": "14092ddcee0a573013b3bb4c409456cbfa6e7c30"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/intl/zipball/e56b243fc0afa5a12bd11dace4002ada5a7d99f8",
- "reference": "e56b243fc0afa5a12bd11dace4002ada5a7d99f8",
+ "url": "https://api.github.com/repos/symfony/intl/zipball/14092ddcee0a573013b3bb4c409456cbfa6e7c30",
+ "reference": "14092ddcee0a573013b3bb4c409456cbfa6e7c30",
"shasum": ""
},
"require": {
@@ -5992,7 +5107,7 @@
"localization"
],
"support": {
- "source": "https://github.com/symfony/intl/tree/v7.1.8"
+ "source": "https://github.com/symfony/intl/tree/v7.3.8"
},
"funding": [
{
@@ -6003,25 +5118,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-08T15:46:42+00:00"
+ "time": "2025-11-26T15:55:45+00:00"
},
{
"name": "symfony/mailer",
- "version": "v7.1.11",
+ "version": "v7.3.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/mailer.git",
- "reference": "e3790ddd7448cc6797fbd06749db70d147992321"
+ "reference": "fd497c45ba9c10c37864e19466b090dcb60a50ba"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mailer/zipball/e3790ddd7448cc6797fbd06749db70d147992321",
- "reference": "e3790ddd7448cc6797fbd06749db70d147992321",
+ "url": "https://api.github.com/repos/symfony/mailer/zipball/fd497c45ba9c10c37864e19466b090dcb60a50ba",
+ "reference": "fd497c45ba9c10c37864e19466b090dcb60a50ba",
"shasum": ""
},
"require": {
@@ -6030,7 +5149,7 @@
"psr/event-dispatcher": "^1",
"psr/log": "^1|^2|^3",
"symfony/event-dispatcher": "^6.4|^7.0",
- "symfony/mime": "^6.4|^7.0",
+ "symfony/mime": "^7.2",
"symfony/service-contracts": "^2.5|^3"
},
"conflict": {
@@ -6072,7 +5191,7 @@
"description": "Helps sending emails",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/mailer/tree/v7.1.11"
+ "source": "https://github.com/symfony/mailer/tree/v7.3.5"
},
"funding": [
{
@@ -6083,46 +5202,53 @@
"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-27T10:57:12+00:00"
+ "time": "2025-10-24T14:27:20+00:00"
},
{
"name": "symfony/messenger",
- "version": "v7.1.9",
+ "version": "v7.3.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/messenger.git",
- "reference": "51e2b8b6a14b78ad7db60ef5f195ae893c16b9cc"
+ "reference": "58a7efa3bebadbe4cdd8f7577c5856f0e3ea3978"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/messenger/zipball/51e2b8b6a14b78ad7db60ef5f195ae893c16b9cc",
- "reference": "51e2b8b6a14b78ad7db60ef5f195ae893c16b9cc",
+ "url": "https://api.github.com/repos/symfony/messenger/zipball/58a7efa3bebadbe4cdd8f7577c5856f0e3ea3978",
+ "reference": "58a7efa3bebadbe4cdd8f7577c5856f0e3ea3978",
"shasum": ""
},
"require": {
"php": ">=8.2",
"psr/log": "^1|^2|^3",
- "symfony/clock": "^6.4|^7.0"
+ "symfony/clock": "^6.4|^7.0",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
"conflict": {
- "symfony/console": "<6.4",
+ "symfony/console": "<7.2",
"symfony/event-dispatcher": "<6.4",
"symfony/event-dispatcher-contracts": "<2.5",
"symfony/framework-bundle": "<6.4",
"symfony/http-kernel": "<6.4",
+ "symfony/lock": "<6.4",
"symfony/serializer": "<6.4"
},
"require-dev": {
"psr/cache": "^1.0|^2.0|^3.0",
- "symfony/console": "^6.4|^7.0",
+ "symfony/console": "^7.2",
"symfony/dependency-injection": "^6.4|^7.0",
"symfony/event-dispatcher": "^6.4|^7.0",
"symfony/http-kernel": "^6.4|^7.0",
+ "symfony/lock": "^6.4|^7.0",
"symfony/process": "^6.4|^7.0",
"symfony/property-access": "^6.4|^7.0",
"symfony/rate-limiter": "^6.4|^7.0",
@@ -6158,7 +5284,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.1.9"
+ "source": "https://github.com/symfony/messenger/tree/v7.3.6"
},
"funding": [
{
@@ -6169,25 +5295,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-26T09:50:51+00:00"
+ "time": "2025-11-06T11:17:34+00:00"
},
{
"name": "symfony/mime",
- "version": "v7.1.11",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
- "reference": "c252e20d1179dd35a5bfdb4a61a2084387ce97f4"
+ "reference": "0f522136c5af16a83317103fabea28485981df83"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/c252e20d1179dd35a5bfdb4a61a2084387ce97f4",
- "reference": "c252e20d1179dd35a5bfdb4a61a2084387ce97f4",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/0f522136c5af16a83317103fabea28485981df83",
+ "reference": "0f522136c5af16a83317103fabea28485981df83",
"shasum": ""
},
"require": {
@@ -6242,7 +5372,7 @@
"mime-type"
],
"support": {
- "source": "https://github.com/symfony/mime/tree/v7.1.11"
+ "source": "https://github.com/symfony/mime/tree/v7.3.8"
},
"funding": [
{
@@ -6253,25 +5383,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-01-27T10:57:12+00:00"
+ "time": "2025-11-16T10:09:06+00:00"
},
{
"name": "symfony/monolog-bridge",
- "version": "v7.1.6",
+ "version": "v7.3.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/monolog-bridge.git",
- "reference": "e1da878cf5f701df5f5c1799bdbf827acee5a76e"
+ "reference": "48e8542ba35afd2293a8c8fd4bcf8abe46357ddf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/e1da878cf5f701df5f5c1799bdbf827acee5a76e",
- "reference": "e1da878cf5f701df5f5c1799bdbf827acee5a76e",
+ "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/48e8542ba35afd2293a8c8fd4bcf8abe46357ddf",
+ "reference": "48e8542ba35afd2293a8c8fd4bcf8abe46357ddf",
"shasum": ""
},
"require": {
@@ -6320,7 +5454,7 @@
"description": "Provides integration for Monolog with various Symfony components",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/monolog-bridge/tree/v7.1.6"
+ "source": "https://github.com/symfony/monolog-bridge/tree/v7.3.6"
},
"funding": [
{
@@ -6331,12 +5465,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-10-14T08:49:35+00:00"
+ "time": "2025-11-01T09:17:24+00:00"
},
{
"name": "symfony/monolog-bundle",
@@ -6420,16 +5558,16 @@
},
{
"name": "symfony/notifier",
- "version": "v7.1.6",
+ "version": "v7.3.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/notifier.git",
- "reference": "e45a3db2dd184060fa9c0d5c0b94dfa82bc0a13f"
+ "reference": "33e91495d9674b6ba5e2a1de810902ba976156f5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/notifier/zipball/e45a3db2dd184060fa9c0d5c0b94dfa82bc0a13f",
- "reference": "e45a3db2dd184060fa9c0d5c0b94dfa82bc0a13f",
+ "url": "https://api.github.com/repos/symfony/notifier/zipball/33e91495d9674b6ba5e2a1de810902ba976156f5",
+ "reference": "33e91495d9674b6ba5e2a1de810902ba976156f5",
"shasum": ""
},
"require": {
@@ -6478,7 +5616,7 @@
"notifier"
],
"support": {
- "source": "https://github.com/symfony/notifier/tree/v7.1.6"
+ "source": "https://github.com/symfony/notifier/tree/v7.3.3"
},
"funding": [
{
@@ -6489,25 +5627,29 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2024-09-25T14:20:29+00:00"
+ "time": "2025-08-13T11:49:31+00:00"
},
{
"name": "symfony/options-resolver",
- "version": "v7.1.9",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/options-resolver.git",
- "reference": "0f4099f5306a92487d13b2a4589068c36a93c447"
+ "reference": "772dfbe01306d03f759d492f6796dd8c9260bb5c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/options-resolver/zipball/0f4099f5306a92487d13b2a4589068c36a93c447",
- "reference": "0f4099f5306a92487d13b2a4589068c36a93c447",
+ "url": "https://api.github.com/repos/symfony/options-resolver/zipball/772dfbe01306d03f759d492f6796dd8c9260bb5c",
+ "reference": "772dfbe01306d03f759d492f6796dd8c9260bb5c",
"shasum": ""
},
"require": {
@@ -6545,7 +5687,7 @@
"options"
],
"support": {
- "source": "https://github.com/symfony/options-resolver/tree/v7.1.9"
+ "source": "https://github.com/symfony/options-resolver/tree/v7.3.8"
},
"funding": [
{
@@ -6556,25 +5698,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-20T11:08:58+00:00"
+ "time": "2025-11-12T15:21:00+00:00"
},
{
"name": "symfony/password-hasher",
- "version": "v7.1.6",
+ "version": "v7.3.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/password-hasher.git",
- "reference": "2e618d1af51805e5a1fbda326d00b77c6c1037d5"
+ "reference": "31fbe66af859582a20b803f38be96be8accdf2c3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/password-hasher/zipball/2e618d1af51805e5a1fbda326d00b77c6c1037d5",
- "reference": "2e618d1af51805e5a1fbda326d00b77c6c1037d5",
+ "url": "https://api.github.com/repos/symfony/password-hasher/zipball/31fbe66af859582a20b803f38be96be8accdf2c3",
+ "reference": "31fbe66af859582a20b803f38be96be8accdf2c3",
"shasum": ""
},
"require": {
@@ -6617,7 +5763,7 @@
"password"
],
"support": {
- "source": "https://github.com/symfony/password-hasher/tree/v7.1.6"
+ "source": "https://github.com/symfony/password-hasher/tree/v7.3.0"
},
"funding": [
{
@@ -6633,7 +5779,7 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:20:29+00:00"
+ "time": "2025-02-04T08:22:58+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
@@ -7222,101 +6368,18 @@
],
"time": "2025-06-24T13:30:11+00:00"
},
- {
- "name": "symfony/polyfill-uuid",
- "version": "v1.33.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-uuid.git",
- "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/21533be36c24be3f4b1669c4725c7d1d2bab4ae2",
- "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2"
- },
- "provide": {
- "ext-uuid": "*"
- },
- "suggest": {
- "ext-uuid": "For best performance"
- },
- "type": "library",
- "extra": {
- "thanks": {
- "url": "https://github.com/symfony/polyfill",
- "name": "symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Uuid\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Grégoire Pineau",
- "email": "lyrixx@lyrixx.info"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill for uuid functions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "uuid"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-uuid/tree/v1.33.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://github.com/nicolas-grekas",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-09-09T11:45:10+00:00"
- },
{
"name": "symfony/process",
- "version": "v7.1.8",
+ "version": "v7.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "42783370fda6e538771f7c7a36e9fa2ee3a84892"
+ "reference": "f24f8f316367b30810810d4eb30c543d7003ff3b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/42783370fda6e538771f7c7a36e9fa2ee3a84892",
- "reference": "42783370fda6e538771f7c7a36e9fa2ee3a84892",
+ "url": "https://api.github.com/repos/symfony/process/zipball/f24f8f316367b30810810d4eb30c543d7003ff3b",
+ "reference": "f24f8f316367b30810810d4eb30c543d7003ff3b",
"shasum": ""
},
"require": {
@@ -7348,7 +6411,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v7.1.8"
+ "source": "https://github.com/symfony/process/tree/v7.3.4"
},
"funding": [
{
@@ -7359,25 +6422,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-06T14:23:19+00:00"
+ "time": "2025-09-11T10:12:26+00:00"
},
{
"name": "symfony/property-access",
- "version": "v7.1.11",
+ "version": "v7.3.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/property-access.git",
- "reference": "83e46f0266186e76929257426ddaa151248781c6"
+ "reference": "4a4389e5c8bd1d0320d80a23caa6a1ac71cb81a7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/property-access/zipball/83e46f0266186e76929257426ddaa151248781c6",
- "reference": "83e46f0266186e76929257426ddaa151248781c6",
+ "url": "https://api.github.com/repos/symfony/property-access/zipball/4a4389e5c8bd1d0320d80a23caa6a1ac71cb81a7",
+ "reference": "4a4389e5c8bd1d0320d80a23caa6a1ac71cb81a7",
"shasum": ""
},
"require": {
@@ -7424,7 +6491,7 @@
"reflection"
],
"support": {
- "source": "https://github.com/symfony/property-access/tree/v7.1.11"
+ "source": "https://github.com/symfony/property-access/tree/v7.3.3"
},
"funding": [
{
@@ -7435,31 +6502,36 @@
"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-10T14:50:02+00:00"
+ "time": "2025-08-04T15:15:28+00:00"
},
{
"name": "symfony/property-info",
- "version": "v7.1.11",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/property-info.git",
- "reference": "df9002f8381cc074300dc2bf9726075e4bf00458"
+ "reference": "3a0f08e10916364a02780181eb9c2269be114044"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/property-info/zipball/df9002f8381cc074300dc2bf9726075e4bf00458",
- "reference": "df9002f8381cc074300dc2bf9726075e4bf00458",
+ "url": "https://api.github.com/repos/symfony/property-info/zipball/3a0f08e10916364a02780181eb9c2269be114044",
+ "reference": "3a0f08e10916364a02780181eb9c2269be114044",
"shasum": ""
},
"require": {
"php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/string": "^6.4|^7.0",
- "symfony/type-info": "~7.1.9|^7.2.2"
+ "symfony/type-info": "~7.3.8|^7.4.1"
},
"conflict": {
"phpdocumentor/reflection-docblock": "<5.2",
@@ -7509,7 +6581,7 @@
"validator"
],
"support": {
- "source": "https://github.com/symfony/property-info/tree/v7.1.11"
+ "source": "https://github.com/symfony/property-info/tree/v7.3.8"
},
"funding": [
{
@@ -7520,25 +6592,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-01-27T10:57:12+00:00"
+ "time": "2025-12-05T13:52:40+00:00"
},
{
"name": "symfony/routing",
- "version": "v7.1.11",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
- "reference": "07f6463a8ff4377944222b69b126bd5495e9d44e"
+ "reference": "7350aebf3d01e41c0a13245dd6008ace8780b3bb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/07f6463a8ff4377944222b69b126bd5495e9d44e",
- "reference": "07f6463a8ff4377944222b69b126bd5495e9d44e",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/7350aebf3d01e41c0a13245dd6008ace8780b3bb",
+ "reference": "7350aebf3d01e41c0a13245dd6008ace8780b3bb",
"shasum": ""
},
"require": {
@@ -7590,7 +6666,7 @@
"url"
],
"support": {
- "source": "https://github.com/symfony/routing/tree/v7.1.11"
+ "source": "https://github.com/symfony/routing/tree/v7.3.8"
},
"funding": [
{
@@ -7601,25 +6677,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-01-17T10:33:21+00:00"
+ "time": "2025-11-26T15:55:45+00:00"
},
{
"name": "symfony/runtime",
- "version": "v7.1.7",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/runtime.git",
- "reference": "9889783c17e8a68fa5e88c8e8a1a85e802558dba"
+ "reference": "9146981807ca9f0491dea6ccabe36a48e4b12cc0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/runtime/zipball/9889783c17e8a68fa5e88c8e8a1a85e802558dba",
- "reference": "9889783c17e8a68fa5e88c8e8a1a85e802558dba",
+ "url": "https://api.github.com/repos/symfony/runtime/zipball/9146981807ca9f0491dea6ccabe36a48e4b12cc0",
+ "reference": "9146981807ca9f0491dea6ccabe36a48e4b12cc0",
"shasum": ""
},
"require": {
@@ -7669,7 +6749,7 @@
"runtime"
],
"support": {
- "source": "https://github.com/symfony/runtime/tree/v7.1.7"
+ "source": "https://github.com/symfony/runtime/tree/v7.3.8"
},
"funding": [
{
@@ -7680,25 +6760,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-05T16:45:54+00:00"
+ "time": "2025-12-05T13:52:21+00:00"
},
{
"name": "symfony/security-bundle",
- "version": "v7.1.11",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/security-bundle.git",
- "reference": "4012dbc0884fc7cbf555615a5aaa16f7c0d3f222"
+ "reference": "debd211eca305340325e7697c2820c4632325bd9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/security-bundle/zipball/4012dbc0884fc7cbf555615a5aaa16f7c0d3f222",
- "reference": "4012dbc0884fc7cbf555615a5aaa16f7c0d3f222",
+ "url": "https://api.github.com/repos/symfony/security-bundle/zipball/debd211eca305340325e7697c2820c4632325bd9",
+ "reference": "debd211eca305340325e7697c2820c4632325bd9",
"shasum": ""
},
"require": {
@@ -7706,15 +6790,15 @@
"ext-xml": "*",
"php": ">=8.2",
"symfony/clock": "^6.4|^7.0",
- "symfony/config": "^6.4|^7.0",
+ "symfony/config": "^7.3",
"symfony/dependency-injection": "^6.4.11|^7.1.4",
"symfony/event-dispatcher": "^6.4|^7.0",
"symfony/http-foundation": "^6.4|^7.0",
"symfony/http-kernel": "^6.4|^7.0",
"symfony/password-hasher": "^6.4|^7.0",
- "symfony/security-core": "^6.4|^7.0",
+ "symfony/security-core": "^7.3",
"symfony/security-csrf": "^6.4|^7.0",
- "symfony/security-http": "^7.1",
+ "symfony/security-http": "^7.3",
"symfony/service-contracts": "^2.5|^3"
},
"conflict": {
@@ -7746,7 +6830,7 @@
"symfony/twig-bundle": "^6.4|^7.0",
"symfony/validator": "^6.4|^7.0",
"symfony/yaml": "^6.4|^7.0",
- "twig/twig": "^3.0.4",
+ "twig/twig": "^3.12",
"web-token/jwt-library": "^3.3.2|^4.0"
},
"type": "symfony-bundle",
@@ -7775,7 +6859,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.1.11"
+ "source": "https://github.com/symfony/security-bundle/tree/v7.3.8"
},
"funding": [
{
@@ -7786,29 +6870,34 @@
"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-31T17:57:35+00:00"
+ "time": "2025-12-04T18:07:52+00:00"
},
{
"name": "symfony/security-core",
- "version": "v7.1.11",
+ "version": "v7.3.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/security-core.git",
- "reference": "0931c6bb15b696e1a4da8405c255b3a8673dcb3c"
+ "reference": "772a7c1eddd8bf8a977a67e6e8adc59650c604eb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/security-core/zipball/0931c6bb15b696e1a4da8405c255b3a8673dcb3c",
- "reference": "0931c6bb15b696e1a4da8405c255b3a8673dcb3c",
+ "url": "https://api.github.com/repos/symfony/security-core/zipball/772a7c1eddd8bf8a977a67e6e8adc59650c604eb",
+ "reference": "772a7c1eddd8bf8a977a67e6e8adc59650c604eb",
"shasum": ""
},
"require": {
"php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/event-dispatcher-contracts": "^2.5|^3",
"symfony/password-hasher": "^6.4|^7.0",
"symfony/service-contracts": "^2.5|^3"
@@ -7861,7 +6950,7 @@
"description": "Symfony Security Component - Core Library",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/security-core/tree/v7.1.11"
+ "source": "https://github.com/symfony/security-core/tree/v7.3.5"
},
"funding": [
{
@@ -7872,25 +6961,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-01-27T10:57:12+00:00"
+ "time": "2025-10-24T14:27:20+00:00"
},
{
"name": "symfony/security-csrf",
- "version": "v7.1.6",
+ "version": "v7.3.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/security-csrf.git",
- "reference": "23b460d3447fd61970e0ed5ec7a0301296a17f06"
+ "reference": "2b4b0c46c901729e4e90719eacd980381f53e0a3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/security-csrf/zipball/23b460d3447fd61970e0ed5ec7a0301296a17f06",
- "reference": "23b460d3447fd61970e0ed5ec7a0301296a17f06",
+ "url": "https://api.github.com/repos/symfony/security-csrf/zipball/2b4b0c46c901729e4e90719eacd980381f53e0a3",
+ "reference": "2b4b0c46c901729e4e90719eacd980381f53e0a3",
"shasum": ""
},
"require": {
@@ -7901,7 +6994,9 @@
"symfony/http-foundation": "<6.4"
},
"require-dev": {
- "symfony/http-foundation": "^6.4|^7.0"
+ "psr/log": "^1|^2|^3",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -7929,7 +7024,7 @@
"description": "Symfony Security Component - CSRF Library",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/security-csrf/tree/v7.1.6"
+ "source": "https://github.com/symfony/security-csrf/tree/v7.3.0"
},
"funding": [
{
@@ -7945,20 +7040,20 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:20:29+00:00"
+ "time": "2025-01-02T18:42:10+00:00"
},
{
"name": "symfony/security-http",
- "version": "v7.1.11",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/security-http.git",
- "reference": "c5ef4cb3bb013cf02c1d8459d1c51bc9f616cd80"
+ "reference": "64b65f2e35d5443a750ac7729652f4b6676a941b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/security-http/zipball/c5ef4cb3bb013cf02c1d8459d1c51bc9f616cd80",
- "reference": "c5ef4cb3bb013cf02c1d8459d1c51bc9f616cd80",
+ "url": "https://api.github.com/repos/symfony/security-http/zipball/64b65f2e35d5443a750ac7729652f4b6676a941b",
+ "reference": "64b65f2e35d5443a750ac7729652f4b6676a941b",
"shasum": ""
},
"require": {
@@ -7968,7 +7063,7 @@
"symfony/http-kernel": "^6.4|^7.0",
"symfony/polyfill-mbstring": "~1.0",
"symfony/property-access": "^6.4|^7.0",
- "symfony/security-core": "^6.4|^7.0",
+ "symfony/security-core": "^7.3",
"symfony/service-contracts": "^2.5|^3"
},
"conflict": {
@@ -8017,7 +7112,7 @@
"description": "Symfony Security Component - HTTP Integration",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/security-http/tree/v7.1.11"
+ "source": "https://github.com/symfony/security-http/tree/v7.3.8"
},
"funding": [
{
@@ -8028,31 +7123,36 @@
"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-28T15:50:57+00:00"
+ "time": "2025-11-23T02:26:15+00:00"
},
{
"name": "symfony/serializer",
- "version": "v7.1.11",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/serializer.git",
- "reference": "cb88edf0d4d63472c50b5f77bcb3227a103966e6"
+ "reference": "e9f668bb3e69cc43571ddd9c2578fe442b6bc632"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/serializer/zipball/cb88edf0d4d63472c50b5f77bcb3227a103966e6",
- "reference": "cb88edf0d4d63472c50b5f77bcb3227a103966e6",
+ "url": "https://api.github.com/repos/symfony/serializer/zipball/e9f668bb3e69cc43571ddd9c2578fe442b6bc632",
+ "reference": "e9f668bb3e69cc43571ddd9c2578fe442b6bc632",
"shasum": ""
},
"require": {
"php": ">=8.2",
"symfony/deprecation-contracts": "^2.5|^3",
- "symfony/polyfill-ctype": "~1.8"
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-php84": "^1.30"
},
"conflict": {
"phpdocumentor/reflection-docblock": "<3.2.2",
@@ -8060,7 +7160,6 @@
"symfony/dependency-injection": "<6.4",
"symfony/property-access": "<6.4",
"symfony/property-info": "<6.4",
- "symfony/type-info": "<7.1.5",
"symfony/uid": "<6.4",
"symfony/validator": "<6.4",
"symfony/yaml": "<6.4"
@@ -8072,7 +7171,7 @@
"symfony/cache": "^6.4|^7.0",
"symfony/config": "^6.4|^7.0",
"symfony/console": "^6.4|^7.0",
- "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/dependency-injection": "^7.2",
"symfony/error-handler": "^6.4|^7.0",
"symfony/filesystem": "^6.4|^7.0",
"symfony/form": "^6.4|^7.0",
@@ -8083,7 +7182,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.5",
+ "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",
@@ -8116,7 +7215,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.1.11"
+ "source": "https://github.com/symfony/serializer/tree/v7.3.8"
},
"funding": [
{
@@ -8127,12 +7226,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-29T07:13:42+00:00"
+ "time": "2025-11-12T15:21:00+00:00"
},
{
"name": "symfony/service-contracts",
@@ -8296,16 +7399,16 @@
},
{
"name": "symfony/stopwatch",
- "version": "v7.1.6",
+ "version": "v7.3.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/stopwatch.git",
- "reference": "8b4a434e6e7faf6adedffb48783a5c75409a1a05"
+ "reference": "5a49289e2b308214c8b9c2fda4ea454d8b8ad7cd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/stopwatch/zipball/8b4a434e6e7faf6adedffb48783a5c75409a1a05",
- "reference": "8b4a434e6e7faf6adedffb48783a5c75409a1a05",
+ "url": "https://api.github.com/repos/symfony/stopwatch/zipball/5a49289e2b308214c8b9c2fda4ea454d8b8ad7cd",
+ "reference": "5a49289e2b308214c8b9c2fda4ea454d8b8ad7cd",
"shasum": ""
},
"require": {
@@ -8338,7 +7441,7 @@
"description": "Provides a way to profile code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/stopwatch/tree/v7.1.6"
+ "source": "https://github.com/symfony/stopwatch/tree/v7.3.0"
},
"funding": [
{
@@ -8354,20 +7457,20 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:20:29+00:00"
+ "time": "2025-02-24T10:49:57+00:00"
},
{
"name": "symfony/string",
- "version": "v7.1.8",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "591ebd41565f356fcd8b090fe64dbb5878f50281"
+ "reference": "0b1f55d79b9effb940d376799dba7cf6f2dee420"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/591ebd41565f356fcd8b090fe64dbb5878f50281",
- "reference": "591ebd41565f356fcd8b090fe64dbb5878f50281",
+ "url": "https://api.github.com/repos/symfony/string/zipball/0b1f55d79b9effb940d376799dba7cf6f2dee420",
+ "reference": "0b1f55d79b9effb940d376799dba7cf6f2dee420",
"shasum": ""
},
"require": {
@@ -8382,7 +7485,6 @@
},
"require-dev": {
"symfony/emoji": "^7.1",
- "symfony/error-handler": "^6.4|^7.0",
"symfony/http-client": "^6.4|^7.0",
"symfony/intl": "^6.4|^7.0",
"symfony/translation-contracts": "^2.5|^3.0",
@@ -8425,7 +7527,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v7.1.8"
+ "source": "https://github.com/symfony/string/tree/v7.3.8"
},
"funding": [
{
@@ -8436,33 +7538,39 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2024-11-13T13:31:21+00:00"
+ "time": "2025-11-26T15:55:45+00:00"
},
{
"name": "symfony/translation",
- "version": "v7.1.6",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
- "reference": "b9f72ab14efdb6b772f85041fa12f820dee8d55f"
+ "reference": "c586b151e8e06987d905679a11f1dd5cc5bc562b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/b9f72ab14efdb6b772f85041fa12f820dee8d55f",
- "reference": "b9f72ab14efdb6b772f85041fa12f820dee8d55f",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/c586b151e8e06987d905679a11f1dd5cc5bc562b",
+ "reference": "c586b151e8e06987d905679a11f1dd5cc5bc562b",
"shasum": ""
},
"require": {
"php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "~1.0",
"symfony/translation-contracts": "^2.5|^3.0"
},
"conflict": {
+ "nikic/php-parser": "<5.0",
"symfony/config": "<6.4",
"symfony/console": "<6.4",
"symfony/dependency-injection": "<6.4",
@@ -8476,7 +7584,7 @@
"symfony/translation-implementation": "2.3|3.0"
},
"require-dev": {
- "nikic/php-parser": "^4.18|^5.0",
+ "nikic/php-parser": "^5.0",
"psr/log": "^1|^2|^3",
"symfony/config": "^6.4|^7.0",
"symfony/console": "^6.4|^7.0",
@@ -8519,7 +7627,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/translation/tree/v7.1.6"
+ "source": "https://github.com/symfony/translation/tree/v7.3.8"
},
"funding": [
{
@@ -8530,12 +7638,16 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2024-09-28T12:35:13+00:00"
+ "time": "2025-11-26T15:55:45+00:00"
},
{
"name": "symfony/translation-contracts",
@@ -8621,22 +7733,23 @@
},
{
"name": "symfony/twig-bridge",
- "version": "v7.1.10",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/twig-bridge.git",
- "reference": "c027c54611cd194273b924c8d24d9706695171ff"
+ "reference": "2e9f47a405989f8a543f94160c0d530379b51510"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/c027c54611cd194273b924c8d24d9706695171ff",
- "reference": "c027c54611cd194273b924c8d24d9706695171ff",
+ "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/2e9f47a405989f8a543f94160c0d530379b51510",
+ "reference": "2e9f47a405989f8a543f94160c0d530379b51510",
"shasum": ""
},
"require": {
"php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/translation-contracts": "^2.5|^3",
- "twig/twig": "^3.9"
+ "twig/twig": "^3.21"
},
"conflict": {
"phpdocumentor/reflection-docblock": "<3.2.2",
@@ -8661,9 +7774,9 @@
"symfony/emoji": "^7.1",
"symfony/expression-language": "^6.4|^7.0",
"symfony/finder": "^6.4|^7.0",
- "symfony/form": "^6.4|^7.0",
+ "symfony/form": "^6.4.30|~7.3.8|^7.4.1",
"symfony/html-sanitizer": "^6.4|^7.0",
- "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-foundation": "^7.3",
"symfony/http-kernel": "^6.4|^7.0",
"symfony/intl": "^6.4|^7.0",
"symfony/mime": "^6.4|^7.0",
@@ -8677,12 +7790,13 @@
"symfony/serializer": "^6.4.3|^7.0.3",
"symfony/stopwatch": "^6.4|^7.0",
"symfony/translation": "^6.4|^7.0",
+ "symfony/validator": "^6.4|^7.0",
"symfony/web-link": "^6.4|^7.0",
"symfony/workflow": "^6.4|^7.0",
"symfony/yaml": "^6.4|^7.0",
- "twig/cssinliner-extra": "^2.12|^3",
- "twig/inky-extra": "^2.12|^3",
- "twig/markdown-extra": "^2.12|^3"
+ "twig/cssinliner-extra": "^3",
+ "twig/inky-extra": "^3",
+ "twig/markdown-extra": "^3"
},
"type": "symfony-bridge",
"autoload": {
@@ -8710,7 +7824,7 @@
"description": "Provides integration for Twig with various Symfony components",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/twig-bridge/tree/v7.1.10"
+ "source": "https://github.com/symfony/twig-bridge/tree/v7.3.8"
},
"funding": [
{
@@ -8721,36 +7835,40 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2024-12-19T14:23:39+00:00"
+ "time": "2025-12-05T13:52:21+00:00"
},
{
"name": "symfony/twig-bundle",
- "version": "v7.1.6",
+ "version": "v7.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/twig-bundle.git",
- "reference": "af902314a71fb412ae412094f7e1d7e49594507b"
+ "reference": "da5c778a8416fcce5318737c4d944f6fa2bb3f81"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/af902314a71fb412ae412094f7e1d7e49594507b",
- "reference": "af902314a71fb412ae412094f7e1d7e49594507b",
+ "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/da5c778a8416fcce5318737c4d944f6fa2bb3f81",
+ "reference": "da5c778a8416fcce5318737c4d944f6fa2bb3f81",
"shasum": ""
},
"require": {
"composer-runtime-api": ">=2.1",
"php": ">=8.2",
- "symfony/config": "^6.4|^7.0",
+ "symfony/config": "^7.3",
"symfony/dependency-injection": "^6.4|^7.0",
"symfony/http-foundation": "^6.4|^7.0",
"symfony/http-kernel": "^6.4|^7.0",
- "symfony/twig-bridge": "^6.4|^7.0",
- "twig/twig": "^3.0.4"
+ "symfony/twig-bridge": "^7.3",
+ "twig/twig": "^3.12"
},
"conflict": {
"symfony/framework-bundle": "<6.4",
@@ -8794,7 +7912,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.1.6"
+ "source": "https://github.com/symfony/twig-bundle/tree/v7.3.4"
},
"funding": [
{
@@ -8805,40 +7923,41 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2024-09-25T14:20:29+00:00"
+ "time": "2025-09-10T12:00:31+00:00"
},
{
"name": "symfony/type-info",
- "version": "v7.1.10",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/type-info.git",
- "reference": "8f980bdd1d6a2834503afbfcf3f39de8133e48fe"
+ "reference": "126b60ffe2c1e0d63178f2feee031d5ef47e30f8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/type-info/zipball/8f980bdd1d6a2834503afbfcf3f39de8133e48fe",
- "reference": "8f980bdd1d6a2834503afbfcf3f39de8133e48fe",
+ "url": "https://api.github.com/repos/symfony/type-info/zipball/126b60ffe2c1e0d63178f2feee031d5ef47e30f8",
+ "reference": "126b60ffe2c1e0d63178f2feee031d5ef47e30f8",
"shasum": ""
},
"require": {
"php": ">=8.2",
- "psr/container": "^1.1|^2.0"
+ "psr/container": "^1.1|^2.0",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
"conflict": {
- "phpstan/phpdoc-parser": "<1.0",
- "symfony/dependency-injection": "<6.4",
- "symfony/property-info": "<6.4"
+ "phpstan/phpdoc-parser": "<1.30"
},
"require-dev": {
- "phpstan/phpdoc-parser": "^1.0|^2.0",
- "symfony/dependency-injection": "^6.4|^7.0",
- "symfony/property-info": "^6.4|^7.0"
+ "phpstan/phpdoc-parser": "^1.30|^2.0"
},
"type": "library",
"autoload": {
@@ -8876,7 +7995,7 @@
"type"
],
"support": {
- "source": "https://github.com/symfony/type-info/tree/v7.1.10"
+ "source": "https://github.com/symfony/type-info/tree/v7.3.8"
},
"funding": [
{
@@ -8888,77 +8007,7 @@
"type": "github"
},
{
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-12-11T12:11:39+00:00"
- },
- {
- "name": "symfony/uid",
- "version": "v7.1.6",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/uid.git",
- "reference": "65befb3bb2d503bbffbd08c815aa38b472999917"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/uid/zipball/65befb3bb2d503bbffbd08c815aa38b472999917",
- "reference": "65befb3bb2d503bbffbd08c815aa38b472999917",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2",
- "symfony/polyfill-uuid": "^1.15"
- },
- "require-dev": {
- "symfony/console": "^6.4|^7.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Uid\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Grégoire Pineau",
- "email": "lyrixx@lyrixx.info"
- },
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Provides an object-oriented API to generate and represent UIDs",
- "homepage": "https://symfony.com",
- "keywords": [
- "UID",
- "ulid",
- "uuid"
- ],
- "support": {
- "source": "https://github.com/symfony/uid/tree/v7.1.6"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
+ "url": "https://github.com/nicolas-grekas",
"type": "github"
},
{
@@ -8966,7 +8015,7 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:20:29+00:00"
+ "time": "2025-12-05T13:52:40+00:00"
},
{
"name": "symfony/ux-turbo",
@@ -9073,16 +8122,16 @@
},
{
"name": "symfony/validator",
- "version": "v7.1.11",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/validator.git",
- "reference": "bb226e43829a6554cf891bd7c176dc73d49bc6c1"
+ "reference": "f30a6aba4a09d5b5042e06d183ef248e14482313"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/validator/zipball/bb226e43829a6554cf891bd7c176dc73d49bc6c1",
- "reference": "bb226e43829a6554cf891bd7c176dc73d49bc6c1",
+ "url": "https://api.github.com/repos/symfony/validator/zipball/f30a6aba4a09d5b5042e06d183ef248e14482313",
+ "reference": "f30a6aba4a09d5b5042e06d183ef248e14482313",
"shasum": ""
},
"require": {
@@ -9119,8 +8168,9 @@
"symfony/mime": "^6.4|^7.0",
"symfony/property-access": "^6.4|^7.0",
"symfony/property-info": "^6.4|^7.0",
+ "symfony/string": "^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",
@@ -9150,7 +8200,7 @@
"description": "Provides tools to validate values",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/validator/tree/v7.1.11"
+ "source": "https://github.com/symfony/validator/tree/v7.3.8"
},
"funding": [
{
@@ -9161,41 +8211,45 @@
"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-28T15:50:57+00:00"
+ "time": "2025-12-05T13:52:21+00:00"
},
{
"name": "symfony/var-dumper",
- "version": "v7.1.11",
+ "version": "v7.3.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "a563c5aeacb98cd46f9885a63cf241ea7794b307"
+ "reference": "476c4ae17f43a9a36650c69879dcf5b1e6ae724d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/a563c5aeacb98cd46f9885a63cf241ea7794b307",
- "reference": "a563c5aeacb98cd46f9885a63cf241ea7794b307",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/476c4ae17f43a9a36650c69879dcf5b1e6ae724d",
+ "reference": "476c4ae17f43a9a36650c69879dcf5b1e6ae724d",
"shasum": ""
},
"require": {
"php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "~1.0"
},
"conflict": {
"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",
"symfony/uid": "^6.4|^7.0",
- "twig/twig": "^3.0.4"
+ "twig/twig": "^3.12"
},
"bin": [
"Resources/bin/var-dump-server"
@@ -9233,7 +8287,7 @@
"dump"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v7.1.11"
+ "source": "https://github.com/symfony/var-dumper/tree/v7.3.5"
},
"funding": [
{
@@ -9244,29 +8298,34 @@
"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-17T11:38:41+00:00"
+ "time": "2025-09-27T09:00:46+00:00"
},
{
"name": "symfony/var-exporter",
- "version": "v7.1.6",
+ "version": "v7.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-exporter.git",
- "reference": "90173ef89c40e7c8c616653241048705f84130ef"
+ "reference": "0f020b544a30a7fe8ba972e53ee48a74c0bc87f4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-exporter/zipball/90173ef89c40e7c8c616653241048705f84130ef",
- "reference": "90173ef89c40e7c8c616653241048705f84130ef",
+ "url": "https://api.github.com/repos/symfony/var-exporter/zipball/0f020b544a30a7fe8ba972e53ee48a74c0bc87f4",
+ "reference": "0f020b544a30a7fe8ba972e53ee48a74c0bc87f4",
"shasum": ""
},
"require": {
- "php": ">=8.2"
+ "php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
"require-dev": {
"symfony/property-access": "^6.4|^7.0",
@@ -9309,7 +8368,7 @@
"serialize"
],
"support": {
- "source": "https://github.com/symfony/var-exporter/tree/v7.1.6"
+ "source": "https://github.com/symfony/var-exporter/tree/v7.3.4"
},
"funding": [
{
@@ -9320,25 +8379,29 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2024-09-25T14:20:29+00:00"
+ "time": "2025-09-11T10:12:26+00:00"
},
{
"name": "symfony/web-link",
- "version": "v7.1.6",
+ "version": "v7.3.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/web-link.git",
- "reference": "383aa7566f25e3a1ab323732c2cc6a1748120d3a"
+ "reference": "7697f74fce67555665339423ce453cc8216a98ff"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/web-link/zipball/383aa7566f25e3a1ab323732c2cc6a1748120d3a",
- "reference": "383aa7566f25e3a1ab323732c2cc6a1748120d3a",
+ "url": "https://api.github.com/repos/symfony/web-link/zipball/7697f74fce67555665339423ce453cc8216a98ff",
+ "reference": "7697f74fce67555665339423ce453cc8216a98ff",
"shasum": ""
},
"require": {
@@ -9392,7 +8455,7 @@
"push"
],
"support": {
- "source": "https://github.com/symfony/web-link/tree/v7.1.6"
+ "source": "https://github.com/symfony/web-link/tree/v7.3.0"
},
"funding": [
{
@@ -9408,7 +8471,7 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:20:29+00:00"
+ "time": "2025-05-19T13:28:18+00:00"
},
{
"name": "symfony/webpack-encore-bundle",
@@ -9488,20 +8551,21 @@
},
{
"name": "symfony/yaml",
- "version": "v7.1.11",
+ "version": "v7.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "4921b8c1db90c13ba2ee0520080ef6800912b018"
+ "reference": "8892cb1e9925201328e19f83825bf3d2ff6c659a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/4921b8c1db90c13ba2ee0520080ef6800912b018",
- "reference": "4921b8c1db90c13ba2ee0520080ef6800912b018",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/8892cb1e9925201328e19f83825bf3d2ff6c659a",
+ "reference": "8892cb1e9925201328e19f83825bf3d2ff6c659a",
"shasum": ""
},
"require": {
"php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3.0",
"symfony/polyfill-ctype": "^1.8"
},
"conflict": {
@@ -9539,7 +8603,7 @@
"description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/yaml/tree/v7.1.11"
+ "source": "https://github.com/symfony/yaml/tree/v7.3.8"
},
"funding": [
{
@@ -9550,12 +8614,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-07T12:50:05+00:00"
+ "time": "2025-12-04T18:07:52+00:00"
},
{
"name": "twig/extra-bundle",
@@ -9633,16 +8701,16 @@
},
{
"name": "twig/twig",
- "version": "v3.22.1",
+ "version": "v3.22.2",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
- "reference": "1de2ec1fc43ab58a4b7e80b214b96bfc895750f3"
+ "reference": "946ddeafa3c9f4ce279d1f34051af041db0e16f2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/twigphp/Twig/zipball/1de2ec1fc43ab58a4b7e80b214b96bfc895750f3",
- "reference": "1de2ec1fc43ab58a4b7e80b214b96bfc895750f3",
+ "url": "https://api.github.com/repos/twigphp/Twig/zipball/946ddeafa3c9f4ce279d1f34051af041db0e16f2",
+ "reference": "946ddeafa3c9f4ce279d1f34051af041db0e16f2",
"shasum": ""
},
"require": {
@@ -9696,7 +8764,7 @@
],
"support": {
"issues": "https://github.com/twigphp/Twig/issues",
- "source": "https://github.com/twigphp/Twig/tree/v3.22.1"
+ "source": "https://github.com/twigphp/Twig/tree/v3.22.2"
},
"funding": [
{
@@ -9708,27 +8776,27 @@
"type": "tidelift"
}
],
- "time": "2025-11-16T16:01:12+00:00"
+ "time": "2025-12-14T11:28:47+00:00"
},
{
"name": "webmozart/assert",
- "version": "1.12.1",
+ "version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/webmozarts/assert.git",
- "reference": "9be6926d8b485f55b9229203f962b51ed377ba68"
+ "reference": "1b34b004e35a164bc5bb6ebd33c844b2d8069a54"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/webmozarts/assert/zipball/9be6926d8b485f55b9229203f962b51ed377ba68",
- "reference": "9be6926d8b485f55b9229203f962b51ed377ba68",
+ "url": "https://api.github.com/repos/webmozarts/assert/zipball/1b34b004e35a164bc5bb6ebd33c844b2d8069a54",
+ "reference": "1b34b004e35a164bc5bb6ebd33c844b2d8069a54",
"shasum": ""
},
"require": {
"ext-ctype": "*",
"ext-date": "*",
"ext-filter": "*",
- "php": "^7.2 || ^8.0"
+ "php": "^8.2"
},
"suggest": {
"ext-intl": "",
@@ -9738,7 +8806,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.10-dev"
+ "dev-feature/2-0": "2.0-dev"
}
},
"autoload": {
@@ -9754,6 +8822,10 @@
{
"name": "Bernhard Schussek",
"email": "bschussek@gmail.com"
+ },
+ {
+ "name": "Woody Gilk",
+ "email": "woody.gilk@gmail.com"
}
],
"description": "Assertions to validate method input/output with nice error messages.",
@@ -9764,9 +8836,9 @@
],
"support": {
"issues": "https://github.com/webmozarts/assert/issues",
- "source": "https://github.com/webmozarts/assert/tree/1.12.1"
+ "source": "https://github.com/webmozarts/assert/tree/2.0.0"
},
- "time": "2025-10-29T15:56:20+00:00"
+ "time": "2025-12-16T21:36:00+00:00"
},
{
"name": "willdurand/negotiation",
@@ -10300,16 +9372,16 @@
},
{
"name": "phpunit/php-code-coverage",
- "version": "12.5.1",
+ "version": "12.5.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "c467c59a4f6e04b942be422844e7a6352fa01b57"
+ "reference": "4a9739b51cbcb355f6e95659612f92e282a7077b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c467c59a4f6e04b942be422844e7a6352fa01b57",
- "reference": "c467c59a4f6e04b942be422844e7a6352fa01b57",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/4a9739b51cbcb355f6e95659612f92e282a7077b",
+ "reference": "4a9739b51cbcb355f6e95659612f92e282a7077b",
"shasum": ""
},
"require": {
@@ -10324,7 +9396,7 @@
"sebastian/environment": "^8.0.3",
"sebastian/lines-of-code": "^4.0",
"sebastian/version": "^6.0",
- "theseer/tokenizer": "^2.0"
+ "theseer/tokenizer": "^2.0.1"
},
"require-dev": {
"phpunit/phpunit": "^12.5.1"
@@ -10365,7 +9437,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
"security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.5.1"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.5.2"
},
"funding": [
{
@@ -10385,7 +9457,7 @@
"type": "tidelift"
}
],
- "time": "2025-12-08T07:17:58+00:00"
+ "time": "2025-12-24T07:03:04+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -11688,16 +10760,16 @@
},
{
"name": "symfony/browser-kit",
- "version": "v7.1.6",
+ "version": "v7.3.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/browser-kit.git",
- "reference": "714becc9ba9b20115ffededc58f6b7172dc394cf"
+ "reference": "e9a9fd604296b17bf90939c3647069f1f16ef04e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/browser-kit/zipball/714becc9ba9b20115ffededc58f6b7172dc394cf",
- "reference": "714becc9ba9b20115ffededc58f6b7172dc394cf",
+ "url": "https://api.github.com/repos/symfony/browser-kit/zipball/e9a9fd604296b17bf90939c3647069f1f16ef04e",
+ "reference": "e9a9fd604296b17bf90939c3647069f1f16ef04e",
"shasum": ""
},
"require": {
@@ -11736,7 +10808,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.1.6"
+ "source": "https://github.com/symfony/browser-kit/tree/v7.3.6"
},
"funding": [
{
@@ -11747,25 +10819,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:11:02+00:00"
+ "time": "2025-11-05T07:57:47+00:00"
},
{
"name": "symfony/css-selector",
- "version": "v7.1.6",
+ "version": "v7.3.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
- "reference": "4aa4f6b3d6749c14d3aa815eef8226632e7bbc66"
+ "reference": "84321188c4754e64273b46b406081ad9b18e8614"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/4aa4f6b3d6749c14d3aa815eef8226632e7bbc66",
- "reference": "4aa4f6b3d6749c14d3aa815eef8226632e7bbc66",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/84321188c4754e64273b46b406081ad9b18e8614",
+ "reference": "84321188c4754e64273b46b406081ad9b18e8614",
"shasum": ""
},
"require": {
@@ -11801,7 +10877,7 @@
"description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/css-selector/tree/v7.1.6"
+ "source": "https://github.com/symfony/css-selector/tree/v7.3.6"
},
"funding": [
{
@@ -11812,41 +10888,42 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2024-09-25T14:20:29+00:00"
+ "time": "2025-10-29T17:24:25+00:00"
},
{
"name": "symfony/debug-bundle",
- "version": "v7.1.6",
+ "version": "v7.3.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/debug-bundle.git",
- "reference": "c91a650aa390071d22dfaf32c2ff77fda27e9583"
+ "reference": "0aee008fb501677fa5b62ea5f65cabcf041629ef"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/c91a650aa390071d22dfaf32c2ff77fda27e9583",
- "reference": "c91a650aa390071d22dfaf32c2ff77fda27e9583",
+ "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/0aee008fb501677fa5b62ea5f65cabcf041629ef",
+ "reference": "0aee008fb501677fa5b62ea5f65cabcf041629ef",
"shasum": ""
},
"require": {
+ "composer-runtime-api": ">=2.1",
"ext-xml": "*",
"php": ">=8.2",
+ "symfony/config": "^7.3",
"symfony/dependency-injection": "^6.4|^7.0",
"symfony/http-kernel": "^6.4|^7.0",
"symfony/twig-bridge": "^6.4|^7.0",
"symfony/var-dumper": "^6.4|^7.0"
},
- "conflict": {
- "symfony/config": "<6.4",
- "symfony/dependency-injection": "<6.4"
- },
"require-dev": {
- "symfony/config": "^6.4|^7.0",
"symfony/web-profiler-bundle": "^6.4|^7.0"
},
"type": "symfony-bundle",
@@ -11875,7 +10952,7 @@
"description": "Provides a tight integration of the Symfony VarDumper component and the ServerLogCommand from MonologBridge into the Symfony full-stack framework",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/debug-bundle/tree/v7.1.6"
+ "source": "https://github.com/symfony/debug-bundle/tree/v7.3.5"
},
"funding": [
{
@@ -11886,25 +10963,29 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2024-09-25T14:20:29+00:00"
+ "time": "2025-10-13T11:49:56+00:00"
},
{
"name": "symfony/dom-crawler",
- "version": "v7.1.11",
+ "version": "v7.3.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/dom-crawler.git",
- "reference": "7361d8f7e7eecbca17efe68ca1ee677bf23cfe5a"
+ "reference": "efa076ea0eeff504383ff0dcf827ea5ce15690ba"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/7361d8f7e7eecbca17efe68ca1ee677bf23cfe5a",
- "reference": "7361d8f7e7eecbca17efe68ca1ee677bf23cfe5a",
+ "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/efa076ea0eeff504383ff0dcf827ea5ce15690ba",
+ "reference": "efa076ea0eeff504383ff0dcf827ea5ce15690ba",
"shasum": ""
},
"require": {
@@ -11942,7 +11023,7 @@
"description": "Eases DOM navigation for HTML and XML documents",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/dom-crawler/tree/v7.1.11"
+ "source": "https://github.com/symfony/dom-crawler/tree/v7.3.3"
},
"funding": [
{
@@ -11953,12 +11034,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-27T10:57:12+00:00"
+ "time": "2025-08-06T20:13:54+00:00"
},
{
"name": "symfony/maker-bundle",
@@ -12060,31 +11145,35 @@
},
{
"name": "symfony/web-profiler-bundle",
- "version": "v7.1.11",
+ "version": "v7.3.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/web-profiler-bundle.git",
- "reference": "328b2728bb5d85d0d38b18d1458834098202afe2"
+ "reference": "c2ed11cc0e9093fe0425ad52498d26a458842e0c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/328b2728bb5d85d0d38b18d1458834098202afe2",
- "reference": "328b2728bb5d85d0d38b18d1458834098202afe2",
+ "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/c2ed11cc0e9093fe0425ad52498d26a458842e0c",
+ "reference": "c2ed11cc0e9093fe0425ad52498d26a458842e0c",
"shasum": ""
},
"require": {
+ "composer-runtime-api": ">=2.1",
"php": ">=8.2",
- "symfony/config": "^6.4|^7.0",
+ "symfony/config": "^7.3",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/framework-bundle": "^6.4|^7.0",
"symfony/http-kernel": "^6.4|^7.0",
"symfony/routing": "^6.4|^7.0",
"symfony/twig-bundle": "^6.4|^7.0",
- "twig/twig": "^3.10"
+ "twig/twig": "^3.12"
},
"conflict": {
"symfony/form": "<6.4",
"symfony/mailer": "<6.4",
- "symfony/messenger": "<6.4"
+ "symfony/messenger": "<6.4",
+ "symfony/serializer": "<7.2",
+ "symfony/workflow": "<7.3"
},
"require-dev": {
"symfony/browser-kit": "^6.4|^7.0",
@@ -12121,7 +11210,7 @@
"dev"
],
"support": {
- "source": "https://github.com/symfony/web-profiler-bundle/tree/v7.1.11"
+ "source": "https://github.com/symfony/web-profiler-bundle/tree/v7.3.5"
},
"funding": [
{
@@ -12132,12 +11221,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-07T09:23:14+00:00"
+ "time": "2025-10-06T13:36:11+00:00"
},
{
"name": "theseer/tokenizer",
diff --git a/config/bundles.php b/config/bundles.php
index 0ae03ea..9f38bb7 100644
--- a/config/bundles.php
+++ b/config/bundles.php
@@ -14,9 +14,9 @@ return [
Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true],
Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true],
Nelmio\CorsBundle\NelmioCorsBundle::class => ['all' => true],
+ ApiPlatform\Symfony\Bundle\ApiPlatformBundle::class => ['all' => true],
Symfony\WebpackEncoreBundle\WebpackEncoreBundle::class => ['all' => true],
Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['dev' => true, 'test' => true],
KnpU\OAuth2ClientBundle\KnpUOAuth2ClientBundle::class => ['all' => true],
- ApiPlatform\Symfony\Bundle\ApiPlatformBundle::class => ['all' => true],
MyCRM\BillingModule\BillingModuleBundle::class => ['all' => true],
];
diff --git a/config/packages/csrf.yaml b/config/packages/csrf.yaml
new file mode 100644
index 0000000..40d4040
--- /dev/null
+++ b/config/packages/csrf.yaml
@@ -0,0 +1,11 @@
+# Enable stateless CSRF protection for forms and logins/logouts
+framework:
+ form:
+ csrf_protection:
+ token_id: submit
+
+ csrf_protection:
+ stateless_token_ids:
+ - submit
+ - authenticate
+ - logout
diff --git a/config/packages/property_info.yaml b/config/packages/property_info.yaml
new file mode 100644
index 0000000..dd31b9d
--- /dev/null
+++ b/config/packages/property_info.yaml
@@ -0,0 +1,3 @@
+framework:
+ property_info:
+ with_constructor_extractor: true
diff --git a/src/Command/CleanupModulesCommand.php b/src/Command/CleanupModulesCommand.php
new file mode 100644
index 0000000..74779ec
--- /dev/null
+++ b/src/Command/CleanupModulesCommand.php
@@ -0,0 +1,94 @@
+title('Bereinigung von nicht implementierten Modulen');
+
+ // Finde alle Module, die nicht in der Liste der validen Module sind
+ $allModules = $this->moduleRepository->findAll();
+ $deactivatedModules = [];
+ $deletedModules = [];
+
+ foreach ($allModules as $module) {
+ if (!in_array($module->getCode(), self::VALID_MODULES, true)) {
+ // Prüfe, ob das Modul Permissions hat
+ if ($module->getPermissions()->count() > 0) {
+ // Deaktiviere nur, da es noch Referenzen hat
+ $module->setIsActive(false);
+ $deactivatedModules[] = sprintf(
+ '%s (%s) - deaktiviert (hat %d Berechtigungen)',
+ $module->getName(),
+ $module->getCode(),
+ $module->getPermissions()->count()
+ );
+ } else {
+ // Kann sicher gelöscht werden
+ $deletedModules[] = sprintf(
+ '%s (%s)',
+ $module->getName(),
+ $module->getCode()
+ );
+ $this->entityManager->remove($module);
+ }
+ }
+ }
+
+ $this->entityManager->flush();
+
+ if (count($deactivatedModules) > 0) {
+ $io->section('Deaktivierte Module:');
+ $io->listing($deactivatedModules);
+ }
+
+ if (count($deletedModules) > 0) {
+ $io->section('Gelöschte Module:');
+ $io->listing($deletedModules);
+ }
+
+ if (count($deactivatedModules) === 0 && count($deletedModules) === 0) {
+ $io->success('Keine nicht implementierten Module gefunden!');
+ } else {
+ $io->success('Module wurden bereinigt!');
+ $io->note('Sie sollten nun "php bin/console doctrine:fixtures:load" ausführen, um die Datenbank neu zu initialisieren (optional).');
+ }
+
+ return Command::SUCCESS;
+ }
+}
diff --git a/src/Controller/SettingsController.php b/src/Controller/SettingsController.php
index 8d1f101..a14a3c8 100644
--- a/src/Controller/SettingsController.php
+++ b/src/Controller/SettingsController.php
@@ -11,7 +11,6 @@ use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Security\Http\Attribute\IsGranted;
#[Route('/api/settings', name: 'api_settings_')]
-#[IsGranted('ROLE_ADMIN')]
class SettingsController extends AbstractController
{
public function __construct(
@@ -21,6 +20,8 @@ class SettingsController extends AbstractController
#[Route('', name: 'get', methods: ['GET'])]
public function getSettings(): JsonResponse
{
+ $this->denyAccessUnlessGranted('VIEW', 'settings');
+
return $this->json([
'settings' => $this->settingsService->getAllSettings()
]);
@@ -29,6 +30,8 @@ class SettingsController extends AbstractController
#[Route('', name: 'update', methods: ['PUT', 'PATCH'])]
public function updateSettings(Request $request): JsonResponse
{
+ $this->denyAccessUnlessGranted('MANAGE', 'settings');
+
$data = json_decode($request->getContent(), true);
if (!isset($data['settings'])) {
diff --git a/src/DataFixtures/AppFixtures.php b/src/DataFixtures/AppFixtures.php
index 1da8a61..9e823e0 100644
--- a/src/DataFixtures/AppFixtures.php
+++ b/src/DataFixtures/AppFixtures.php
@@ -36,32 +36,39 @@ class AppFixtures extends Fixture
'sortOrder' => 20
],
[
- 'name' => 'Unternehmen',
- 'code' => 'companies',
- 'description' => 'Firmendatenbank',
- 'icon' => 'pi-building',
+ 'name' => 'Projekte',
+ 'code' => 'projects',
+ 'description' => 'Projektverwaltung',
+ 'icon' => 'pi-briefcase',
'sortOrder' => 30
],
[
- 'name' => 'Deals',
- 'code' => 'deals',
- 'description' => 'Sales-Pipeline',
- 'icon' => 'pi-dollar',
+ 'name' => 'Aufgaben',
+ 'code' => 'project_tasks',
+ 'description' => 'Aufgaben- und Task-Management',
+ 'icon' => 'pi-check-square',
'sortOrder' => 40
],
[
- 'name' => 'Aktivitäten',
- 'code' => 'activities',
- 'description' => 'Interaktions-Historie',
- 'icon' => 'pi-calendar',
+ 'name' => 'Dokumente',
+ 'code' => 'documents',
+ 'description' => 'Dokumentenverwaltung',
+ 'icon' => 'pi-file',
'sortOrder' => 50
],
[
- 'name' => 'Berichte',
- 'code' => 'reports',
- 'description' => 'Analytics und Reports',
- 'icon' => 'pi-chart-bar',
- 'sortOrder' => 60
+ 'name' => 'Benutzerverwaltung',
+ 'code' => 'users',
+ 'description' => 'Verwaltung von Benutzern und Zugriffsrechten',
+ 'icon' => 'pi-user',
+ 'sortOrder' => 90
+ ],
+ [
+ 'name' => 'Rollenverwaltung',
+ 'code' => 'roles',
+ 'description' => 'Verwaltung von Rollen und Berechtigungen',
+ 'icon' => 'pi-shield',
+ 'sortOrder' => 91
],
[
'name' => 'Einstellungen',
@@ -108,27 +115,28 @@ class AppFixtures extends Fixture
$manager->persist($permission);
}
- // Erstelle Vertriebsmitarbeiter-Rolle
- $salesRole = new Role();
- $salesRole->setName('Vertriebsmitarbeiter');
- $salesRole->setDescription('Zugriff auf Kontakte, Deals und Aktivitäten');
- $salesRole->setIsSystem(false);
- $manager->persist($salesRole);
+ // Erstelle Projektmanager-Rolle
+ $projectManagerRole = new Role();
+ $projectManagerRole->setName('Projektmanager');
+ $projectManagerRole->setDescription('Zugriff auf Kontakte, Projekte und Aufgaben');
+ $projectManagerRole->setIsSystem(false);
+ $manager->persist($projectManagerRole);
- // Berechtigungen für Vertrieb
- $salesModules = ['dashboard', 'contacts', 'companies', 'deals', 'activities'];
- foreach ($salesModules as $moduleCode) {
+ // Berechtigungen für Projektmanager
+ $projectManagerModules = ['dashboard', 'contacts', 'projects', 'project_tasks', 'documents', 'settings'];
+ foreach ($projectManagerModules as $moduleCode) {
if (isset($moduleEntities[$moduleCode])) {
$permission = new RolePermission();
- $permission->setRole($salesRole);
+ $permission->setRole($projectManagerRole);
$permission->setModule($moduleEntities[$moduleCode]);
$permission->setCanView(true);
- $permission->setCanCreate($moduleCode !== 'dashboard');
- $permission->setCanEdit($moduleCode !== 'dashboard');
+ $permission->setCanCreate($moduleCode !== 'dashboard' && $moduleCode !== 'settings');
+ $permission->setCanEdit($moduleCode !== 'dashboard' && $moduleCode !== 'settings');
$permission->setCanDelete(false);
- $permission->setCanExport($moduleCode !== 'dashboard');
- $permission->setCanManage(false);
-
+ $permission->setCanExport($moduleCode !== 'dashboard' && $moduleCode !== 'settings');
+ // Settings: VIEW und MANAGE erlaubt für Projektmanager
+ $permission->setCanManage($moduleCode === 'settings');
+
$manager->persist($permission);
}
}
@@ -141,7 +149,7 @@ class AppFixtures extends Fixture
$manager->persist($viewerRole);
// Nur Leserechte für bestimmte Module
- $viewerModules = ['dashboard', 'contacts', 'companies', 'deals', 'activities', 'reports'];
+ $viewerModules = ['dashboard', 'contacts', 'projects', 'project_tasks', 'documents'];
foreach ($viewerModules as $moduleCode) {
if (isset($moduleEntities[$moduleCode])) {
$permission = new RolePermission();
@@ -153,7 +161,7 @@ class AppFixtures extends Fixture
$permission->setCanDelete(false);
$permission->setCanExport(false);
$permission->setCanManage(false);
-
+
$manager->persist($permission);
}
}
@@ -172,19 +180,19 @@ class AppFixtures extends Fixture
$manager->persist($admin);
- // Erstelle Test-Vertriebsmitarbeiter
- $sales = new User();
- $sales->setEmail('sales@mycrm.local');
- $sales->setFirstName('Max');
- $sales->setLastName('Mustermann');
- $sales->setIsActive(true);
- $sales->setRoles(['ROLE_USER']);
- $sales->addUserRole($salesRole);
-
- $hashedPassword = $this->passwordHasher->hashPassword($sales, 'sales123');
- $sales->setPassword($hashedPassword);
-
- $manager->persist($sales);
+ // Erstelle Test-Projektmanager
+ $projectManager = new User();
+ $projectManager->setEmail('pm@mycrm.local');
+ $projectManager->setFirstName('Max');
+ $projectManager->setLastName('Mustermann');
+ $projectManager->setIsActive(true);
+ $projectManager->setRoles(['ROLE_USER']);
+ $projectManager->addUserRole($projectManagerRole);
+
+ $hashedPassword = $this->passwordHasher->hashPassword($projectManager, 'pm123');
+ $projectManager->setPassword($hashedPassword);
+
+ $manager->persist($projectManager);
$manager->flush();
}
diff --git a/src/Entity/ProjectStatus.php b/src/Entity/ProjectStatus.php
index 330902a..6638a19 100644
--- a/src/Entity/ProjectStatus.php
+++ b/src/Entity/ProjectStatus.php
@@ -22,7 +22,7 @@ use Symfony\Component\Validator\Constraints as Assert;
#[ApiResource(
operations: [
new GetCollection(
- security: "is_granted('VIEW', 'project_statuses')",
+ security: "is_granted('VIEW', 'projects')",
stateless: false
),
new Get(
@@ -30,7 +30,7 @@ use Symfony\Component\Validator\Constraints as Assert;
stateless: false
),
new Post(
- security: "is_granted('CREATE', 'project_statuses')",
+ security: "is_granted('CREATE', 'projects')",
stateless: false
),
new Put(
@@ -191,9 +191,10 @@ class ProjectStatus implements ModuleAwareInterface
/**
* Returns the module code this entity belongs to.
* Required by ModuleVoter for permission checks.
+ * ProjectStatus inherits permissions from the projects module.
*/
public function getModuleName(): string
{
- return 'project_statuses';
+ return 'projects';
}
}
diff --git a/src/Entity/ProjectTask.php b/src/Entity/ProjectTask.php
index 5760f9b..94fe944 100644
--- a/src/Entity/ProjectTask.php
+++ b/src/Entity/ProjectTask.php
@@ -51,7 +51,7 @@ use Symfony\Component\Validator\Constraints as Assert;
denormalizationContext: ['groups' => ['project_task:write']],
order: ['createdAt' => 'DESC']
)]
-#[ApiFilter(SearchFilter::class, properties: ['name' => 'partial', 'project.name' => 'partial'])]
+#[ApiFilter(SearchFilter::class, properties: ['name' => 'partial', 'project.name' => 'partial', 'project' => 'exact'])]
#[ApiFilter(DateFilter::class, properties: ['createdAt', 'updatedAt'])]
#[ApiFilter(ProjectTaskProjectFilter::class)]
class ProjectTask implements ModuleAwareInterface
diff --git a/src/Entity/User.php b/src/Entity/User.php
index e46a24c..9cbf3d1 100644
--- a/src/Entity/User.php
+++ b/src/Entity/User.php
@@ -265,7 +265,7 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
foreach ($this->userRoles as $role) {
foreach ($role->getPermissions() as $permission) {
if ($permission->getModule()->getCode() === $moduleCode) {
- return match($action) {
+ $hasPermission = match($action) {
'view' => $permission->canView(),
'create' => $permission->canCreate(),
'edit' => $permission->canEdit(),
@@ -274,12 +274,58 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
'manage' => $permission->canManage(),
default => false,
};
+
+ // If ANY role grants the permission, return true
+ if ($hasPermission) {
+ return true;
+ }
}
}
}
return false;
}
+ /**
+ * Get all module permissions as a map for frontend
+ * Format: ['module' => ['action1', 'action2', ...]]
+ */
+ public function getModulePermissionsMap(): array
+ {
+ $map = [];
+
+ foreach ($this->userRoles as $role) {
+ foreach ($role->getPermissions() as $permission) {
+ $moduleCode = $permission->getModule()->getCode();
+
+ if (!isset($map[$moduleCode])) {
+ $map[$moduleCode] = [];
+ }
+
+ // Add each action that is allowed
+ if ($permission->canView() && !in_array('view', $map[$moduleCode])) {
+ $map[$moduleCode][] = 'view';
+ }
+ if ($permission->canCreate() && !in_array('create', $map[$moduleCode])) {
+ $map[$moduleCode][] = 'create';
+ }
+ if ($permission->canEdit() && !in_array('edit', $map[$moduleCode])) {
+ $map[$moduleCode][] = 'edit';
+ }
+ if ($permission->canDelete() && !in_array('delete', $map[$moduleCode])) {
+ $map[$moduleCode][] = 'delete';
+ }
+ if ($permission->canExport() && !in_array('export', $map[$moduleCode])) {
+ $map[$moduleCode][] = 'export';
+ }
+ if ($permission->canManage() && !in_array('manage', $map[$moduleCode])) {
+ $map[$moduleCode][] = 'manage';
+ }
+ }
+ }
+
+ return $map;
+ }
+
public function getCreatedAt(): ?\DateTimeImmutable
{
return $this->createdAt;
diff --git a/symfony.lock b/symfony.lock
index 85c9ba7..ef832bb 100644
--- a/symfony.lock
+++ b/symfony.lock
@@ -1,11 +1,11 @@
{
- "api-platform/symfony": {
+ "api-platform/core": {
"version": "4.1",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "4.0",
- "ref": "e9952e9f393c2d048f10a78f272cd35e807d972b"
+ "ref": "cb9e6b8ceb9b62f32d41fc8ad72a25d5bd674c6d"
},
"files": [
"config/packages/api_platform.yaml",
@@ -155,6 +155,18 @@
".env.dev"
]
},
+ "symfony/form": {
+ "version": "7.3",
+ "recipe": {
+ "repo": "github.com/symfony/recipes",
+ "branch": "main",
+ "version": "7.2",
+ "ref": "7d86a6723f4a623f59e2bf966b6aad2fc461d36b"
+ },
+ "files": [
+ "config/packages/csrf.yaml"
+ ]
+ },
"symfony/framework-bundle": {
"version": "7.1",
"recipe": {
@@ -231,6 +243,18 @@
"config/packages/notifier.yaml"
]
},
+ "symfony/property-info": {
+ "version": "7.3",
+ "recipe": {
+ "repo": "github.com/symfony/recipes",
+ "branch": "main",
+ "version": "7.3",
+ "ref": "dae70df71978ae9226ae915ffd5fad817f5ca1f7"
+ },
+ "files": [
+ "config/packages/property_info.yaml"
+ ]
+ },
"symfony/routing": {
"version": "7.1",
"recipe": {
@@ -297,15 +321,6 @@
"templates/base.html.twig"
]
},
- "symfony/uid": {
- "version": "7.1",
- "recipe": {
- "repo": "github.com/symfony/recipes",
- "branch": "main",
- "version": "7.0",
- "ref": "0df5844274d871b37fc3816c57a768ffc60a43a5"
- }
- },
"symfony/ux-turbo": {
"version": "2.31",
"recipe": {
diff --git a/templates/base.html.twig b/templates/base.html.twig
index 31bbadc..baa89da 100644
--- a/templates/base.html.twig
+++ b/templates/base.html.twig
@@ -21,7 +21,8 @@
firstName: app.user.firstName,
lastName: app.user.lastName,
fullName: app.user.fullName,
- roles: app.user.roles
+ roles: app.user.roles,
+ modulePermissions: app.user.modulePermissionsMap
}|json_encode|e('html_attr') : 'null' }}"
>
{% block body %}{% endblock %}
diff --git a/test_permissions.php b/test_permissions.php
new file mode 100644
index 0000000..1d769c6
--- /dev/null
+++ b/test_permissions.php
@@ -0,0 +1,78 @@
+bootEnv(__DIR__.'/.env');
+
+$kernel = new App\Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
+$kernel->boot();
+$container = $kernel->getContainer();
+
+$entityManager = $container->get('doctrine.orm.entity_manager');
+
+// Finde einen Nicht-Admin Benutzer
+$userRepo = $entityManager->getRepository(App\Entity\User::class);
+$user = $userRepo->findOneBy(['email' => 'o.schwarten@osdata.net']);
+
+if (!$user) {
+ echo "Benutzer nicht gefunden!\n";
+ exit(1);
+}
+
+echo "Benutzer: " . $user->getEmail() . "\n";
+echo "Rollen: " . implode(', ', $user->getRoles()) . "\n\n";
+
+echo "User Roles (Entities): Count = " . $user->getUserRoles()->count() . "\n";
+
+// Force load the collection
+$userRoles = $user->getUserRoles();
+if ($userRoles instanceof \Doctrine\ORM\PersistentCollection) {
+ $userRoles->initialize();
+}
+
+foreach ($userRoles as $role) {
+ echo " - " . $role->getName() . " (ID: " . $role->getId() . ")\n";
+
+ $permissions = $role->getPermissions();
+ if ($permissions instanceof \Doctrine\ORM\PersistentCollection) {
+ $permissions->initialize();
+ }
+
+ echo " Permissions count: " . $permissions->count() . "\n";
+ foreach ($permissions as $permission) {
+ $module = $permission->getModule();
+ echo " Module: " . $module->getCode() . " - View: " . ($permission->canView() ? 'YES' : 'NO') . "\n";
+ }
+}
+
+echo "\n";
+echo "Testing hasModulePermission('billing', 'view'): ";
+echo $user->hasModulePermission('billing', 'view') ? "TRUE" : "FALSE";
+echo "\n";
+
+echo "Testing hasModulePermission('invoices', 'view'): ";
+echo $user->hasModulePermission('invoices', 'view') ? "TRUE" : "FALSE";
+echo "\n";
+
+// Test Voter
+$authChecker = $container->get('security.authorization_checker');
+$tokenStorage = $container->get('security.token_storage');
+
+// Create a token for the user
+$token = new Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken(
+ $user,
+ 'main',
+ $user->getRoles()
+);
+$tokenStorage->setToken($token);
+
+echo "\nTesting Voter with is_granted('VIEW', 'billing'): ";
+try {
+ $result = $authChecker->isGranted('VIEW', 'billing');
+ echo $result ? "TRUE" : "FALSE";
+} catch (Exception $e) {
+ echo "ERROR: " . $e->getMessage();
+}
+echo "\n";