diff --git a/api/composer.json b/api/composer.json index 4d2e6d63..8dd68150 100644 --- a/api/composer.json +++ b/api/composer.json @@ -5,7 +5,9 @@ "php": ">=8.3", "ext-ctype": "*", "ext-iconv": "*", - "api-platform/core": "^3.4@alpha", + "api-platform/doctrine-orm": "^3.4", + "api-platform/graphql": "^3.4", + "api-platform/symfony": "^3.4", "doctrine/common": "^3.4", "doctrine/doctrine-bundle": "^2.11", "doctrine/doctrine-fixtures-bundle": "^3.5", @@ -103,6 +105,18 @@ ] }, "conflict": { + "api-platform/doctrine-common": "^4.0@alpha", + "api-platform/documentation": "^4.0@alpha", + "api-platform/graphql": "^4.0@alpha", + "api-platform/http-cache": "^4.0@alpha", + "api-platform/hydra": "^4.0@alpha", + "api-platform/json-schema": "^4.0@alpha", + "api-platform/jsonld": "^4.0@alpha", + "api-platform/metadata": "^4.0@alpha", + "api-platform/openapi": "^4.0@alpha", + "api-platform/serializer": "^4.0@alpha", + "api-platform/state": "^4.0@alpha", + "api-platform/validator": "^4.0@alpha", "symfony/symfony": "*" }, "extra": { @@ -115,5 +129,6 @@ "flex://defaults" ] } - } + }, + "minimum-stability": "alpha" } diff --git a/api/composer.lock b/api/composer.lock index 5f8f1754..9b0d34d9 100644 --- a/api/composer.lock +++ b/api/composer.lock @@ -4,166 +4,1100 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "c1a85d641d133cd9ebc9d5114409c9ad", + "content-hash": "03c5b939bd07f2351971afa48209a8dc", "packages": [ { - "name": "api-platform/core", - "version": "v3.4.0-alpha.1", + "name": "api-platform/doctrine-common", + "version": "v3.4.0-alpha.5", "source": { "type": "git", - "url": "https://github.com/api-platform/core.git", - "reference": "4b5ea85e2cf33d2c0d6afa7ce38ab1bf819bb771" + "url": "https://github.com/api-platform/doctrine-common.git", + "reference": "c993d5fb6b3c4ce641529ab8d1418864e9558831" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/core/zipball/4b5ea85e2cf33d2c0d6afa7ce38ab1bf819bb771", - "reference": "4b5ea85e2cf33d2c0d6afa7ce38ab1bf819bb771", + "url": "https://api.github.com/repos/api-platform/doctrine-common/zipball/c993d5fb6b3c4ce641529ab8d1418864e9558831", + "reference": "c993d5fb6b3c4ce641529ab8d1418864e9558831", + "shasum": "" + }, + "require": { + "api-platform/metadata": "^3.4 || ^4.0", + "api-platform/state": "^3.4 || ^4.0", + "doctrine/collections": "^2.1", + "doctrine/common": "^3.2.2", + "doctrine/persistence": "^3.2", + "php": ">=8.1" + }, + "conflict": { + "doctrine/persistence": "<1.3" + }, + "require-dev": { + "doctrine/mongodb-odm": "^2.6", + "doctrine/orm": "^2.17 || ^3.0", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^10.0", + "symfony/phpunit-bridge": "^6.4 || ^7.0" + }, + "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/messenger": "For async mercure updates.", + "symfony/yaml": "For YAML resource configuration." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0.x-dev", + "dev-3.4": "3.4.x-dev" + }, + "symfony": { + "require": "^6.4 || ^7.1" + } + }, + "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": [ + "common", + "doctrine", + "odm", + "orm" + ], + "support": { + "issues": "https://github.com/api-platform/doctrine-common/issues", + "source": "https://github.com/api-platform/doctrine-common/tree/v3.4.0-alpha.5" + }, + "time": "2024-09-05T21:34:39+00:00" + }, + { + "name": "api-platform/doctrine-orm", + "version": "v3.4.0-alpha.6", + "source": { + "type": "git", + "url": "https://github.com/api-platform/doctrine-orm.git", + "reference": "464b06dd919408e6a5a88914965c6d4aafbc2fbe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/api-platform/doctrine-orm/zipball/464b06dd919408e6a5a88914965c6d4aafbc2fbe", + "reference": "464b06dd919408e6a5a88914965c6d4aafbc2fbe", + "shasum": "" + }, + "require": { + "api-platform/doctrine-common": "^3.4 || ^4.0", + "api-platform/metadata": "^3.4 || ^4.0", + "api-platform/state": "^3.4 || ^4.0", + "doctrine/doctrine-bundle": "^2.11", + "doctrine/orm": "^2.17 || ^3.0", + "php": ">=8.1", + "symfony/property-info": "^6.4 || ^7.1" + }, + "require-dev": { + "api-platform/parameter-validator": "^3.2", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^10.0", + "ramsey/uuid": "^4.7", + "ramsey/uuid-doctrine": "^2.0", + "symfony/cache": "^6.4 || ^7.0", + "symfony/framework-bundle": "^6.4 || ^7.0", + "symfony/phpunit-bridge": "^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": { + "branch-alias": { + "dev-main": "4.0.x-dev", + "dev-3.4": "3.4.x-dev" + }, + "symfony": { + "require": "^6.4 || ^7.1" + } + }, + "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": [ + "doctrine", + "orm" + ], + "support": { + "issues": "https://github.com/api-platform/doctrine-orm/issues", + "source": "https://github.com/api-platform/doctrine-orm/tree/v3.4.0-alpha.6" + }, + "time": "2024-09-07T06:31:56+00:00" + }, + { + "name": "api-platform/documentation", + "version": "v3.4.0-alpha.5", + "source": { + "type": "git", + "url": "https://github.com/api-platform/documentation.git", + "reference": "ac12d79d60334b3cf3286edd96aaf45885f8c12e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/api-platform/documentation/zipball/ac12d79d60334b3cf3286edd96aaf45885f8c12e", + "reference": "ac12d79d60334b3cf3286edd96aaf45885f8c12e", + "shasum": "" + }, + "require": { + "api-platform/metadata": "^3.4 || ^4.0" + }, + "type": "project", + "extra": { + "branch-alias": { + "dev-main": "4.0.x-dev", + "dev-3.4": "3.4.x-dev" + }, + "symfony": { + "require": "^6.4 || ^7.1" + } + }, + "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": { + "issues": "https://github.com/api-platform/documentation/issues", + "source": "https://github.com/api-platform/documentation/tree/v3.4.0-alpha.5" + }, + "time": "2024-09-03T07:00:23+00:00" + }, + { + "name": "api-platform/graphql", + "version": "v3.4.0-alpha.6", + "source": { + "type": "git", + "url": "https://github.com/api-platform/graphql.git", + "reference": "922409f9b5b4ef0b9f4e44669d4e8327ee5032d1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/api-platform/graphql/zipball/922409f9b5b4ef0b9f4e44669d4e8327ee5032d1", + "reference": "922409f9b5b4ef0b9f4e44669d4e8327ee5032d1", + "shasum": "" + }, + "require": { + "api-platform/metadata": "^3.4 || ^4.0", + "api-platform/serializer": "^3.4 || ^4.0", + "api-platform/state": "^3.4 || ^4.0", + "api-platform/validator": "^3.4 || ^4.0", + "php": ">=8.1", + "symfony/property-info": "^6.4 || ^7.1", + "symfony/serializer": "^6.4 || ^7.1", + "webonyx/graphql-php": "^14.0 || ^15.0", + "willdurand/negotiation": "^3.0" + }, + "require-dev": { + "api-platform/validator": "^3.4 || ^4.0", + "phpspec/prophecy-phpunit": "^2.0", + "sebastian/comparator": "<5.0", + "symfony/mercure-bundle": "*", + "symfony/phpunit-bridge": "^6.4 || ^7.0", + "symfony/routing": "^6.4 || ^7.0", + "symfony/validator": "^6.4 || ^7.0", + "twig/twig": "^3.7" + }, + "suggest": { + "api-platform/doctrine-odm": "To support doctrine ODM state options.", + "api-platform/doctrine-orm": "To support doctrine ORM state options." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0.x-dev", + "dev-3.4": "3.4.x-dev" + }, + "symfony": { + "require": "^6.4 || ^7.1" + } + }, + "autoload": { + "psr-4": { + "ApiPlatform\\GraphQl\\": "" + }, + "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": "Build GraphQL API endpoints", + "homepage": "https://api-platform.com", + "keywords": [ + "api", + "graphql" + ], + "support": { + "source": "https://github.com/api-platform/graphql/tree/v3.4.0-alpha.6" + }, + "time": "2024-09-03T07:00:23+00:00" + }, + { + "name": "api-platform/http-cache", + "version": "v3.4.0-alpha.5", + "source": { + "type": "git", + "url": "https://github.com/api-platform/http-cache.git", + "reference": "e68d395b2b20c7a25d4afa1ceac4532cedd4d590" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/api-platform/http-cache/zipball/e68d395b2b20c7a25d4afa1ceac4532cedd4d590", + "reference": "e68d395b2b20c7a25d4afa1ceac4532cedd4d590", + "shasum": "" + }, + "require": { + "api-platform/metadata": "^3.4 || ^4.0", + "api-platform/state": "^3.4 || ^4.0", + "php": ">=8.1", + "symfony/http-foundation": "^6.4 || ^7.1" + }, + "require-dev": { + "guzzlehttp/guzzle": "^6.0 || ^7.0", + "phpspec/prophecy-phpunit": "^2.0", + "sebastian/comparator": "<5.0", + "symfony/dependency-injection": "^6.4 || ^7.0", + "symfony/http-client": "^6.4 || ^7.0", + "symfony/phpunit-bridge": "^6.4 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0.x-dev", + "dev-3.4": "3.4.x-dev" + }, + "symfony": { + "require": "^6.4 || ^7.1" + } + }, + "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": [ + "cache", + "http" + ], + "support": { + "issues": "https://github.com/api-platform/http-cache/issues", + "source": "https://github.com/api-platform/http-cache/tree/v3.4.0-alpha.5" + }, + "time": "2024-09-03T07:00:23+00:00" + }, + { + "name": "api-platform/hydra", + "version": "v3.4.0-alpha.5", + "source": { + "type": "git", + "url": "https://github.com/api-platform/hydra.git", + "reference": "db9d59f4f518bc16981dee5549570b20b02312e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/api-platform/hydra/zipball/db9d59f4f518bc16981dee5549570b20b02312e2", + "reference": "db9d59f4f518bc16981dee5549570b20b02312e2", + "shasum": "" + }, + "require": { + "api-platform/documentation": "^3.4 || ^4.0", + "api-platform/json-schema": "^3.4 || ^4.0", + "api-platform/jsonld": "^3.4 || ^4.0", + "api-platform/metadata": "^3.4 || ^4.0", + "api-platform/serializer": "^3.4 || ^4.0", + "api-platform/state": "^3.4 || ^4.0", + "php": ">=8.1" + }, + "require-dev": { + "api-platform/doctrine-common": "^3.4 || ^4.0", + "api-platform/doctrine-odm": "^3.4 || ^4.0", + "api-platform/doctrine-orm": "^3.4 || ^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0.x-dev", + "dev-3.4": "3.4.x-dev" + }, + "symfony": { + "require": "^6.4 || ^7.1" + } + }, + "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", + "hal", + "jsonapi", + "openapi", + "rest", + "swagger" + ], + "support": { + "issues": "https://github.com/api-platform/hydra/issues", + "source": "https://github.com/api-platform/hydra/tree/v3.4.0-alpha.5" + }, + "time": "2024-09-05T22:48:47+00:00" + }, + { + "name": "api-platform/json-schema", + "version": "v3.4.0-alpha.5", + "source": { + "type": "git", + "url": "https://github.com/api-platform/json-schema.git", + "reference": "5485b242f7ab18ea5466dface4fef57b97c02255" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/api-platform/json-schema/zipball/5485b242f7ab18ea5466dface4fef57b97c02255", + "reference": "5485b242f7ab18ea5466dface4fef57b97c02255", + "shasum": "" + }, + "require": { + "api-platform/metadata": "^3.4 || ^4.0", + "php": ">=8.1", + "symfony/console": "^6.4 || ^7.0", + "symfony/property-info": "^6.4 || ^7.1", + "symfony/serializer": "^6.4 || ^7.1", + "symfony/uid": "^6.4 || ^7.0" + }, + "require-dev": { + "phpspec/prophecy-phpunit": "^2.0", + "sebastian/comparator": "<5.0", + "symfony/phpunit-bridge": "^6.4 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0.x-dev", + "dev-3.4": "3.4.x-dev" + }, + "symfony": { + "require": "^6.4 || ^7.1" + } + }, + "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/v3.4.0-alpha.5" + }, + "time": "2024-09-03T07:00:23+00:00" + }, + { + "name": "api-platform/jsonld", + "version": "v3.4.0-alpha.5", + "source": { + "type": "git", + "url": "https://github.com/api-platform/jsonld.git", + "reference": "7e6e7a310bb9810fe02a3be9749627ba5ee40374" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/api-platform/jsonld/zipball/7e6e7a310bb9810fe02a3be9749627ba5ee40374", + "reference": "7e6e7a310bb9810fe02a3be9749627ba5ee40374", + "shasum": "" + }, + "require": { + "api-platform/metadata": "^3.4 || ^4.0", + "api-platform/serializer": "^3.4 || ^4.0", + "api-platform/state": "^3.4 || ^4.0", + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0.x-dev", + "dev-3.4": "3.4.x-dev" + }, + "symfony": { + "require": "^6.4 || ^7.1" + } + }, + "autoload": { + "psr-4": { + "ApiPlatform\\JsonLd\\": "" + }, + "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 JSON-LD support", + "homepage": "https://api-platform.com", + "keywords": [ + "Hydra", + "JSON-LD", + "api", + "graphql", + "hal", + "jsonapi", + "openapi", + "rest", + "swagger" + ], + "support": { + "issues": "https://github.com/api-platform/jsonld/issues", + "source": "https://github.com/api-platform/jsonld/tree/v3.4.0-alpha.5" + }, + "time": "2024-09-05T22:48:47+00:00" + }, + { + "name": "api-platform/metadata", + "version": "v3.4.0-alpha.5", + "source": { + "type": "git", + "url": "https://github.com/api-platform/metadata.git", + "reference": "62571f0987af264afd5d3a5755829d4af917f9ce" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/api-platform/metadata/zipball/62571f0987af264afd5d3a5755829d4af917f9ce", + "reference": "62571f0987af264afd5d3a5755829d4af917f9ce", "shasum": "" }, "require": { "doctrine/inflector": "^1.0 || ^2.0", "php": ">=8.1", - "psr/cache": "^1.0 || ^2.0 || ^3.0", - "psr/container": "^1.0 || ^2.0", - "symfony/deprecation-contracts": "^3.1", - "symfony/http-foundation": "^6.4 || ^7.1", - "symfony/http-kernel": "^6.4 || ^7.1", + "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" + }, + "require-dev": { + "api-platform/json-schema": "^3.4 || ^4.0", + "api-platform/openapi": "^3.4 || ^4.0", + "api-platform/state": "^3.4 || ^4.0", + "phpspec/prophecy-phpunit": "^2.0", + "phpstan/phpdoc-parser": "^1.16", + "sebastian/comparator": "<5.0", + "symfony/config": "^6.4 || 7.0", + "symfony/phpunit-bridge": "^6.4 || ^7.0", + "symfony/routing": "^6.4 || ^7.0", + "symfony/var-dumper": "^6.4 || ^7.0", + "symfony/web-link": "^6.4 || ^7.0", + "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": { + "branch-alias": { + "dev-main": "4.0.x-dev", + "dev-3.4": "3.4.x-dev" + }, + "symfony": { + "require": "^6.4 || ^7.1" + } + }, + "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/v3.4.0-alpha.5" + }, + "time": "2024-09-03T07:00:23+00:00" + }, + { + "name": "api-platform/openapi", + "version": "v3.4.0-alpha.5", + "source": { + "type": "git", + "url": "https://github.com/api-platform/openapi.git", + "reference": "bf545f55aff151fc0ccc024be1689cff477aefaa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/api-platform/openapi/zipball/bf545f55aff151fc0ccc024be1689cff477aefaa", + "reference": "bf545f55aff151fc0ccc024be1689cff477aefaa", + "shasum": "" + }, + "require": { + "api-platform/json-schema": "^3.4 || ^4.0", + "api-platform/metadata": "^3.4 || ^4.0", + "api-platform/state": "^3.4 || ^4.0", + "php": ">=8.1", + "symfony/console": "^6.4 || ^7.0", + "symfony/property-access": "^6.4 || ^7.1", + "symfony/serializer": "^6.4 || ^7.1" + }, + "require-dev": { + "api-platform/doctrine-common": "^3.4 || ^4.0", + "api-platform/doctrine-odm": "^3.4 || ^4.0", + "api-platform/doctrine-orm": "^3.4 || ^4.0", + "phpspec/prophecy-phpunit": "^2.0", + "symfony/phpunit-bridge": "^6.4 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0.x-dev", + "dev-3.4": "3.4.x-dev" + }, + "symfony": { + "require": "^6.4 || ^7.1" + } + }, + "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/v3.4.0-alpha.5" + }, + "time": "2024-09-05T22:48:47+00:00" + }, + { + "name": "api-platform/serializer", + "version": "v3.4.0-alpha.5", + "source": { + "type": "git", + "url": "https://github.com/api-platform/serializer.git", + "reference": "d9088ff83f03715cf85299440f53eac6a1294773" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/api-platform/serializer/zipball/d9088ff83f03715cf85299440f53eac6a1294773", + "reference": "d9088ff83f03715cf85299440f53eac6a1294773", + "shasum": "" + }, + "require": { + "api-platform/metadata": "^3.4 || ^4.0", + "api-platform/state": "^3.4 || ^4.0", + "doctrine/collections": "^2.1", + "php": ">=8.1", "symfony/property-access": "^6.4 || ^7.1", "symfony/property-info": "^6.4 || ^7.1", "symfony/serializer": "^6.4 || ^7.1", - "symfony/translation-contracts": "^3.3", - "symfony/web-link": "^6.4 || ^7.1", - "willdurand/negotiation": "^3.0" + "symfony/validator": "^6.4 || ^7.0" }, - "conflict": { - "doctrine/common": "<3.2.2", - "doctrine/dbal": "<2.10", - "doctrine/mongodb-odm": "<2.4", - "doctrine/orm": "<2.14.0", - "doctrine/persistence": "<1.3", - "elasticsearch/elasticsearch": ">=8.0,<8.4", - "phpspec/prophecy": "<1.15", - "phpunit/phpunit": "<9.5", - "symfony/framework-bundle": "6.4.6 || 7.1.6", - "symfony/var-exporter": "<6.1.1" + "require-dev": { + "phpspec/prophecy-phpunit": "^2.0", + "sebastian/comparator": "<5.0", + "symfony/mercure-bundle": "*", + "symfony/phpunit-bridge": "^6.4 || ^7.0", + "symfony/var-dumper": "^6.4 || ^7.0", + "symfony/yaml": "^6.4 || ^7.0" + }, + "suggest": { + "api-platform/doctrine-orm": "To support doctrine ORM state options." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0.x-dev", + "dev-3.4": "3.4.x-dev" + }, + "symfony": { + "require": "^6.4 || ^7.1" + } + }, + "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", + "serializer" + ], + "support": { + "issues": "https://github.com/api-platform/serializer/issues", + "source": "https://github.com/api-platform/serializer/tree/v3.4.0-alpha.5" + }, + "time": "2024-09-03T07:00:23+00:00" + }, + { + "name": "api-platform/state", + "version": "v3.4.0-alpha.5", + "source": { + "type": "git", + "url": "https://github.com/api-platform/state.git", + "reference": "d9ffe58fd84dabb19daa806771e13e73f30013b9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/api-platform/state/zipball/d9ffe58fd84dabb19daa806771e13e73f30013b9", + "reference": "d9ffe58fd84dabb19daa806771e13e73f30013b9", + "shasum": "" + }, + "require": { + "api-platform/metadata": "^3.4 || ^4.0", + "php": ">=8.1", + "psr/container": "^1.0 || ^2.0" }, "require-dev": { - "behat/behat": "^3.11", - "behat/mink": "^1.9", - "doctrine/cache": "^1.11 || ^2.1", - "doctrine/common": "^3.2.2", - "doctrine/dbal": "^3.4.0 || ^4.0", - "doctrine/doctrine-bundle": "^1.12 || ^2.0", - "doctrine/mongodb-odm": "^2.2", - "doctrine/mongodb-odm-bundle": "^4.0 || ^5.0", - "doctrine/orm": "^2.14 || ^3.0", - "elasticsearch/elasticsearch": "^7.11 || ^8.4", - "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.1", - "jangregor/phpstan-prophecy": "^1.0", - "justinrainbow/json-schema": "^5.2.1", + "api-platform/serializer": "^3.4 || ^4.0", + "api-platform/validator": "^3.4 || ^4.0", + "phpunit/phpunit": "^10.3", + "symfony/http-foundation": "^6.4 || 7.0", + "symfony/web-link": "^6.4 || ^7.0", + "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": { + "branch-alias": { + "dev-main": "4.0.x-dev", + "dev-3.4": "3.4.x-dev" + }, + "symfony": { + "require": "^6.4 || ^7.1" + } + }, + "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/v3.4.0-alpha.5" + }, + "time": "2024-09-03T07:00:23+00:00" + }, + { + "name": "api-platform/symfony", + "version": "v3.4.0-alpha.6", + "source": { + "type": "git", + "url": "https://github.com/api-platform/symfony.git", + "reference": "e97702c9fe673841625f93b12c7f10e8a4467078" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/api-platform/symfony/zipball/e97702c9fe673841625f93b12c7f10e8a4467078", + "reference": "e97702c9fe673841625f93b12c7f10e8a4467078", + "shasum": "" + }, + "require": { + "api-platform/documentation": "^3.4 || ^4.0", + "api-platform/http-cache": "^3.4 || ^4.0", + "api-platform/hydra": "^3.4 || ^4.0", + "api-platform/json-schema": "^3.4 || ^4.0", + "api-platform/jsonld": "^3.4 || ^4.0", + "api-platform/metadata": "^3.4 || ^4.0", + "api-platform/openapi": "^3.4 || ^4.0", + "api-platform/serializer": "^3.4 || ^4.0", + "api-platform/state": "^3.4 || ^4.0", + "api-platform/validator": "^3.4 || ^4.0", + "php": ">=8.1", + "symfony/property-access": "^6.4 || ^7.1", + "symfony/property-info": "^6.4 || ^7.1", + "symfony/security-core": "^6.4 || ^7.0", + "symfony/serializer": "^6.4 || ^7.1", + "willdurand/negotiation": "^3.0" + }, + "require-dev": { + "api-platform/doctrine-common": "^3.4 || ^4.0", + "api-platform/doctrine-odm": "^3.4 || ^4.0", + "api-platform/doctrine-orm": "^3.4 || ^4.0", + "api-platform/elasticsearch": "^3.4 || ^4.0", + "api-platform/graphql": "^3.4 || ^4.0", + "api-platform/parameter-validator": "^3.1", "phpspec/prophecy-phpunit": "^2.0", - "phpstan/extension-installer": "^1.1", - "phpstan/phpdoc-parser": "^1.13", - "phpstan/phpstan": "^1.10", - "phpstan/phpstan-doctrine": "^1.0", - "phpstan/phpstan-phpunit": "^1.0", - "phpstan/phpstan-symfony": "^1.0", - "phpunit/phpunit": "^9.6", - "psr/log": "^1.0 || ^2.0 || ^3.0", - "ramsey/uuid": "^3.9.7 || ^4.0", - "ramsey/uuid-doctrine": "^1.4 || ^2.0 || ^3.0", "sebastian/comparator": "<5.0", - "soyuka/contexts": "v3.3.9", - "soyuka/pmu": "^0.0.4", - "soyuka/stubs-mongodb": "^1.0", - "symfony/asset": "^6.4 || ^7.1", - "symfony/browser-kit": "^6.4 || ^7.1", - "symfony/cache": "^6.4 || ^7.1", - "symfony/config": "^6.4 || ^7.1", - "symfony/console": "^6.4 || ^7.1", - "symfony/css-selector": "^6.4 || ^7.1", - "symfony/dependency-injection": "^6.4 || ^7.1", - "symfony/doctrine-bridge": "^6.4 || ^7.1", - "symfony/dom-crawler": "^6.4 || ^7.1", - "symfony/error-handler": "^6.4 || ^7.1", - "symfony/event-dispatcher": "^6.4 || ^7.1", "symfony/expression-language": "^6.4 || ^7.1", - "symfony/finder": "^6.4 || ^7.1", - "symfony/form": "^6.4 || ^7.1", - "symfony/framework-bundle": "^6.4 || ^7.1", - "symfony/http-client": "^6.4 || ^7.1", - "symfony/intl": "^6.4 || ^7.1", - "symfony/maker-bundle": "^1.24", "symfony/mercure-bundle": "*", - "symfony/messenger": "^6.4 || ^7.1", - "symfony/phpunit-bridge": "^6.4.1 || ^7.1", - "symfony/routing": "^6.4 || ^7.1", - "symfony/security-bundle": "^6.4 || ^7.1", - "symfony/security-core": "^6.4 || ^7.1", - "symfony/stopwatch": "^6.4 || ^7.1", - "symfony/string": "^6.4 || ^7.1", - "symfony/twig-bundle": "^6.4 || ^7.1", - "symfony/uid": "^6.4 || ^7.1", - "symfony/validator": "^6.4 || ^7.1", - "symfony/web-profiler-bundle": "^6.4 || ^7.1", - "symfony/yaml": "^6.4 || ^7.1", - "twig/twig": "^1.42.3 || ^2.12 || ^3.0", + "symfony/phpunit-bridge": "^6.4 || ^7.0", + "symfony/routing": "^6.4 || ^7.0", + "symfony/validator": "^6.4 || ^7.0", "webonyx/graphql-php": "^14.0 || ^15.0" }, "suggest": { - "doctrine/mongodb-odm-bundle": "To support MongoDB. Only versions 4.0 and later are supported.", - "elasticsearch/elasticsearch": "To support Elasticsearch.", + "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.", "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.", "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/expression-language": "To use authorization and mercure advanced features.", "symfony/http-client": "To use the HTTP cache invalidation system.", - "symfony/messenger": "To support messenger integration.", + "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.", - "webonyx/graphql-php": "To support GraphQL." + "symfony/web-profiler-bundle": "To use the data collector." }, "type": "library", "extra": { "branch-alias": { - "dev-3.4": "3.4.x-dev", - "dev-main": "4.0.x-dev" + "dev-main": "4.0.x-dev", + "dev-3.4": "3.4.x-dev" }, "symfony": { "require": "^6.4 || ^7.1" + } + }, + "autoload": { + "psr-4": { + "ApiPlatform\\Symfony\\": "" }, - "projects": [ - "api-platform/doctrine-common", - "api-platform/doctrine-orm", - "api-platform/doctrine-odm", - "api-platform/metadata", - "api-platform/json-schema", - "api-platform/elasticsearch", - "api-platform/jsonld", - "api-platform/hydra", - "api-platform/openapi", - "api-platform/graphql", - "api-platform/http-cache", - "api-platform/documentation", - "api-platform/parameter-validator", - "api-platform/ramsey-uuid", - "api-platform/serializer", - "api-platform/state", - "api-platform/symfony", - "api-platform/validator" + "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", + "homepage": "https://api-platform.com", + "keywords": [ + "api" + ], + "support": { + "issues": "https://github.com/api-platform/symfony/issues", + "source": "https://github.com/api-platform/symfony/tree/v3.4.0-alpha.6" + }, + "time": "2024-09-07T06:31:56+00:00" + }, + { + "name": "api-platform/validator", + "version": "v3.4.0-alpha.5", + "source": { + "type": "git", + "url": "https://github.com/api-platform/validator.git", + "reference": "fd26a9d2f18d5004f94ad5c5c0a72a5b257da965" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/api-platform/validator/zipball/fd26a9d2f18d5004f94ad5c5c0a72a5b257da965", + "reference": "fd26a9d2f18d5004f94ad5c5c0a72a5b257da965", + "shasum": "" + }, + "require": { + "api-platform/metadata": "^3.4 || ^4.0", + "php": ">=8.1", + "symfony/web-link": "^6.4 || ^7.1" + }, + "require-dev": { + "phpspec/prophecy-phpunit": "^2.0", + "sebastian/comparator": "<5.0", + "symfony/http-kernel": "^6.4 || ^7.0", + "symfony/phpunit-bridge": "^6.4 || ^7.0", + "symfony/serializer": "^6.4 || ^7.0", + "symfony/validator": "^6.4 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0.x-dev", + "dev-3.4": "3.4.x-dev" + }, + "symfony": { + "require": "^6.4 || ^7.1" + } + }, "autoload": { "psr-4": { - "ApiPlatform\\": "src/" + "ApiPlatform\\Validator\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -175,26 +1109,23 @@ "name": "Kévin Dunglas", "email": "kevin@dunglas.fr", "homepage": "https://dunglas.fr" + }, + { + "name": "API Platform Community", + "homepage": "https://api-platform.com/community/contributors" } ], - "description": "Build a fully-featured hypermedia or GraphQL API in minutes!", + "description": "API Platform validator component", "homepage": "https://api-platform.com", "keywords": [ - "Hydra", - "JSON-LD", "api", - "graphql", - "hal", - "jsonapi", - "openapi", - "rest", - "swagger" + "validator" ], "support": { - "issues": "https://github.com/api-platform/core/issues", - "source": "https://github.com/api-platform/core/tree/v3.4.0-alpha.1" + "issues": "https://github.com/api-platform/validator/issues", + "source": "https://github.com/api-platform/validator/tree/v3.4.0-alpha.5" }, - "time": "2024-08-10T08:17:16+00:00" + "time": "2024-09-03T07:00:23+00:00" }, { "name": "brick/math", @@ -10252,10 +11183,8 @@ } ], "aliases": [], - "minimum-stability": "stable", - "stability-flags": { - "api-platform/core": 15 - }, + "minimum-stability": "alpha", + "stability-flags": [], "prefer-stable": false, "prefer-lowest": false, "platform": { diff --git a/api/config/packages/api_platform.yaml b/api/config/packages/api_platform.yaml index 92347958..17798882 100644 --- a/api/config/packages/api_platform.yaml +++ b/api/config/packages/api_platform.yaml @@ -31,6 +31,8 @@ api_platform: use_symfony_listeners: false event_listeners_backward_compatibility_layer: false keep_legacy_inflector: false + serializer: + hydra_prefix: true oauth: enabled: true clientId: '%env(OIDC_SWAGGER_CLIENT_ID)%' diff --git a/api/phpstan.dist.neon b/api/phpstan.dist.neon index 473b37ad..3561a171 100644 --- a/api/phpstan.dist.neon +++ b/api/phpstan.dist.neon @@ -17,3 +17,6 @@ parameters: - src/Kernel.php ignoreErrors: - message: '#no (?:return|value) type specified in iterable type array\.#' + # 3.4 BC layer + - message: '#Call to an undefined method ApiPlatform\\Metadata\\IriConverterInterface::getIriFromResource\(\)\.#' + - message: '#Access to undefined constant ApiPlatform\\Metadata\\UrlGeneratorInterface.+#' diff --git a/api/symfony.lock b/api/symfony.lock index f4f14ab8..55e65dc8 100644 --- a/api/symfony.lock +++ b/api/symfony.lock @@ -531,9 +531,6 @@ "ref": "e9872ca728053c5a09ef09ec4712d430f30895d6" } }, - "willdurand/negotiation": { - "version": "3.0.0" - }, "zendframework/zend-code": { "version": "3.4.1" },