diff --git a/api/composer.lock b/api/composer.lock index 9dea9264b..7cc45db19 100644 --- a/api/composer.lock +++ b/api/composer.lock @@ -8,7 +8,7 @@ "packages": [ { "name": "api-platform/doctrine-common", - "version": "v4.0.2", + "version": "v4.0.3", "source": { "type": "git", "url": "https://github.com/api-platform/doctrine-common.git", @@ -89,13 +89,13 @@ "rest" ], "support": { - "source": "https://github.com/api-platform/doctrine-common/tree/v4.0.2" + "source": "https://github.com/api-platform/doctrine-common/tree/v4.0.3" }, "time": "2024-09-21T11:01:16+00:00" }, { "name": "api-platform/doctrine-orm", - "version": "v4.0.2", + "version": "v4.0.3", "source": { "type": "git", "url": "https://github.com/api-platform/doctrine-orm.git", @@ -173,13 +173,13 @@ "rest" ], "support": { - "source": "https://github.com/api-platform/doctrine-orm/tree/v4.0.2" + "source": "https://github.com/api-platform/doctrine-orm/tree/v4.0.3" }, "time": "2024-09-21T11:01:16+00:00" }, { "name": "api-platform/documentation", - "version": "v4.0.2", + "version": "v4.0.3", "source": { "type": "git", "url": "https://github.com/api-platform/documentation.git", @@ -234,22 +234,22 @@ ], "description": "API Platform documentation controller.", "support": { - "source": "https://github.com/api-platform/documentation/tree/v4.0.2" + "source": "https://github.com/api-platform/documentation/tree/v4.0.3" }, "time": "2024-09-21T11:01:16+00:00" }, { "name": "api-platform/graphql", - "version": "v4.0.2", + "version": "v4.0.3", "source": { "type": "git", "url": "https://github.com/api-platform/graphql.git", - "reference": "c5b5d366aba45919aa409b45b647d438ac33cf24" + "reference": "3e7caffa5d97041437e1be930f008d41722999a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/graphql/zipball/c5b5d366aba45919aa409b45b647d438ac33cf24", - "reference": "c5b5d366aba45919aa409b45b647d438ac33cf24", + "url": "https://api.github.com/repos/api-platform/graphql/zipball/3e7caffa5d97041437e1be930f008d41722999a4", + "reference": "3e7caffa5d97041437e1be930f008d41722999a4", "shasum": "" }, "require": { @@ -319,13 +319,13 @@ "graphql" ], "support": { - "source": "https://github.com/api-platform/graphql/tree/v4.0.2" + "source": "https://github.com/api-platform/graphql/tree/v4.0.3" }, - "time": "2024-09-21T11:01:16+00:00" + "time": "2024-10-04T13:02:55+00:00" }, { "name": "api-platform/http-cache", - "version": "v4.0.2", + "version": "v4.0.3", "source": { "type": "git", "url": "https://github.com/api-platform/http-cache.git", @@ -396,13 +396,13 @@ "rest" ], "support": { - "source": "https://github.com/api-platform/http-cache/tree/v4.0.2" + "source": "https://github.com/api-platform/http-cache/tree/v4.0.3" }, "time": "2024-09-21T11:01:16+00:00" }, { "name": "api-platform/hydra", - "version": "v4.0.2", + "version": "v4.0.3", "source": { "type": "git", "url": "https://github.com/api-platform/hydra.git", @@ -480,22 +480,22 @@ "rest" ], "support": { - "source": "https://github.com/api-platform/hydra/tree/v4.0.2" + "source": "https://github.com/api-platform/hydra/tree/v4.0.3" }, "time": "2024-09-21T11:01:16+00:00" }, { "name": "api-platform/json-schema", - "version": "v4.0.2", + "version": "v4.0.3", "source": { "type": "git", "url": "https://github.com/api-platform/json-schema.git", - "reference": "8b29568be0a0e53e7f6fcf571c2df6c71337a104" + "reference": "5d2cbd05f06d88b63007185a946ba6f5b5526bad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/json-schema/zipball/8b29568be0a0e53e7f6fcf571c2df6c71337a104", - "reference": "8b29568be0a0e53e7f6fcf571c2df6c71337a104", + "url": "https://api.github.com/repos/api-platform/json-schema/zipball/5d2cbd05f06d88b63007185a946ba6f5b5526bad", + "reference": "5d2cbd05f06d88b63007185a946ba6f5b5526bad", "shasum": "" }, "require": { @@ -558,22 +558,22 @@ "swagger" ], "support": { - "source": "https://github.com/api-platform/json-schema/tree/v4.0.2" + "source": "https://github.com/api-platform/json-schema/tree/v4.0.3" }, - "time": "2024-09-21T11:01:16+00:00" + "time": "2024-10-04T06:16:31+00:00" }, { "name": "api-platform/jsonld", - "version": "v4.0.2", + "version": "v4.0.3", "source": { "type": "git", "url": "https://github.com/api-platform/jsonld.git", - "reference": "67fca521038c7e979b3bc8946bf2ffd5e4c859f2" + "reference": "7f8c50f205feb54d063a7c9d3e2d728ba5e47cc8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/jsonld/zipball/67fca521038c7e979b3bc8946bf2ffd5e4c859f2", - "reference": "67fca521038c7e979b3bc8946bf2ffd5e4c859f2", + "url": "https://api.github.com/repos/api-platform/jsonld/zipball/7f8c50f205feb54d063a7c9d3e2d728ba5e47cc8", + "reference": "7f8c50f205feb54d063a7c9d3e2d728ba5e47cc8", "shasum": "" }, "require": { @@ -632,22 +632,22 @@ "rest" ], "support": { - "source": "https://github.com/api-platform/jsonld/tree/v4.0.2" + "source": "https://github.com/api-platform/jsonld/tree/v4.0.3" }, - "time": "2024-09-21T11:01:16+00:00" + "time": "2024-09-25T15:08:48+00:00" }, { "name": "api-platform/metadata", - "version": "v4.0.2", + "version": "v4.0.3", "source": { "type": "git", "url": "https://github.com/api-platform/metadata.git", - "reference": "afdd1edb77f9de5f13ea3b08ac655a27a32e0496" + "reference": "e1ae73b79ab3ca46ddf14bad287721e784a9f4fa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/metadata/zipball/afdd1edb77f9de5f13ea3b08ac655a27a32e0496", - "reference": "afdd1edb77f9de5f13ea3b08ac655a27a32e0496", + "url": "https://api.github.com/repos/api-platform/metadata/zipball/e1ae73b79ab3ca46ddf14bad287721e784a9f4fa", + "reference": "e1ae73b79ab3ca46ddf14bad287721e784a9f4fa", "shasum": "" }, "require": { @@ -728,13 +728,13 @@ "swagger" ], "support": { - "source": "https://github.com/api-platform/metadata/tree/v4.0.2" + "source": "https://github.com/api-platform/metadata/tree/v4.0.3" }, - "time": "2024-09-21T11:01:16+00:00" + "time": "2024-10-04T14:46:35+00:00" }, { "name": "api-platform/openapi", - "version": "v4.0.2", + "version": "v4.0.3", "source": { "type": "git", "url": "https://github.com/api-platform/openapi.git", @@ -813,22 +813,22 @@ "swagger" ], "support": { - "source": "https://github.com/api-platform/openapi/tree/v4.0.2" + "source": "https://github.com/api-platform/openapi/tree/v4.0.3" }, "time": "2024-09-21T11:01:16+00:00" }, { "name": "api-platform/serializer", - "version": "v4.0.2", + "version": "v4.0.3", "source": { "type": "git", "url": "https://github.com/api-platform/serializer.git", - "reference": "7618e5ae6729709f0d1f4e1f7d61289088d8a14b" + "reference": "924649ec1caa4e1d495eeef595fb62b8f9326d25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/serializer/zipball/7618e5ae6729709f0d1f4e1f7d61289088d8a14b", - "reference": "7618e5ae6729709f0d1f4e1f7d61289088d8a14b", + "url": "https://api.github.com/repos/api-platform/serializer/zipball/924649ec1caa4e1d495eeef595fb62b8f9326d25", + "reference": "924649ec1caa4e1d495eeef595fb62b8f9326d25", "shasum": "" }, "require": { @@ -849,7 +849,6 @@ "doctrine/collections": "^2.1", "phpspec/prophecy-phpunit": "^2.2", "phpunit/phpunit": "^11.2", - "sebastian/comparator": "<5.0", "symfony/mercure-bundle": "*", "symfony/var-dumper": "^6.4 || ^7.0", "symfony/yaml": "^6.4 || ^7.0" @@ -904,22 +903,22 @@ "serializer" ], "support": { - "source": "https://github.com/api-platform/serializer/tree/v4.0.2" + "source": "https://github.com/api-platform/serializer/tree/v4.0.3" }, - "time": "2024-09-21T11:01:16+00:00" + "time": "2024-09-23T12:16:46+00:00" }, { "name": "api-platform/state", - "version": "v4.0.2", + "version": "v4.0.3", "source": { "type": "git", "url": "https://github.com/api-platform/state.git", - "reference": "b0265b53883fcfe1f1a4f0caf5c57e9b8b7a0332" + "reference": "b573a1dca8d746010bb4fb9122b2dc501e0245c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/state/zipball/b0265b53883fcfe1f1a4f0caf5c57e9b8b7a0332", - "reference": "b0265b53883fcfe1f1a4f0caf5c57e9b8b7a0332", + "url": "https://api.github.com/repos/api-platform/state/zipball/b573a1dca8d746010bb4fb9122b2dc501e0245c6", + "reference": "b573a1dca8d746010bb4fb9122b2dc501e0245c6", "shasum": "" }, "require": { @@ -994,22 +993,22 @@ "swagger" ], "support": { - "source": "https://github.com/api-platform/state/tree/v4.0.2" + "source": "https://github.com/api-platform/state/tree/v4.0.3" }, - "time": "2024-09-21T11:01:16+00:00" + "time": "2024-10-04T06:16:31+00:00" }, { "name": "api-platform/symfony", - "version": "v4.0.2", + "version": "v4.0.3", "source": { "type": "git", "url": "https://github.com/api-platform/symfony.git", - "reference": "7b8b2ac8c480303cc98cde21d5ca4f7e7b941e00" + "reference": "995b947dd7b3bf46f3aea42d94f38402947e2e37" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/symfony/zipball/7b8b2ac8c480303cc98cde21d5ca4f7e7b941e00", - "reference": "7b8b2ac8c480303cc98cde21d5ca4f7e7b941e00", + "url": "https://api.github.com/repos/api-platform/symfony/zipball/995b947dd7b3bf46f3aea42d94f38402947e2e37", + "reference": "995b947dd7b3bf46f3aea42d94f38402947e2e37", "shasum": "" }, "require": { @@ -1117,22 +1116,22 @@ "symfony" ], "support": { - "source": "https://github.com/api-platform/symfony/tree/v4.0.2" + "source": "https://github.com/api-platform/symfony/tree/v4.0.3" }, - "time": "2024-09-21T11:01:16+00:00" + "time": "2024-10-04T13:02:55+00:00" }, { "name": "api-platform/validator", - "version": "v4.0.2", + "version": "v4.0.3", "source": { "type": "git", "url": "https://github.com/api-platform/validator.git", - "reference": "c55408dd1dcd03fa35afe1aff703daae7a1553b8" + "reference": "39b283376f522954c820a5ccdde36cf39299a429" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/validator/zipball/c55408dd1dcd03fa35afe1aff703daae7a1553b8", - "reference": "c55408dd1dcd03fa35afe1aff703daae7a1553b8", + "url": "https://api.github.com/repos/api-platform/validator/zipball/39b283376f522954c820a5ccdde36cf39299a429", + "reference": "39b283376f522954c820a5ccdde36cf39299a429", "shasum": "" }, "require": { @@ -1190,9 +1189,9 @@ "validator" ], "support": { - "source": "https://github.com/api-platform/validator/tree/v4.0.2" + "source": "https://github.com/api-platform/validator/tree/v4.0.3" }, - "time": "2024-09-21T11:01:16+00:00" + "time": "2024-09-25T15:08:48+00:00" }, { "name": "brick/math", @@ -2681,16 +2680,16 @@ }, { "name": "doctrine/sql-formatter", - "version": "1.4.1", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/doctrine/sql-formatter.git", - "reference": "7f83911cc5eba870de7ebb11283972483f7e2891" + "reference": "16ca9e39877369d664f06dacde468548298bdc40" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/7f83911cc5eba870de7ebb11283972483f7e2891", - "reference": "7f83911cc5eba870de7ebb11283972483f7e2891", + "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/16ca9e39877369d664f06dacde468548298bdc40", + "reference": "16ca9e39877369d664f06dacde468548298bdc40", "shasum": "" }, "require": { @@ -2698,6 +2697,7 @@ }, "require-dev": { "doctrine/coding-standard": "^12", + "ergebnis/phpunit-slow-test-detector": "^2.14", "phpstan/phpstan": "^1.10", "phpunit/phpunit": "^10.5", "vimeo/psalm": "^5.24" @@ -2730,9 +2730,9 @@ ], "support": { "issues": "https://github.com/doctrine/sql-formatter/issues", - "source": "https://github.com/doctrine/sql-formatter/tree/1.4.1" + "source": "https://github.com/doctrine/sql-formatter/tree/1.5.0" }, - "time": "2024-08-05T20:32:22+00:00" + "time": "2024-09-11T07:29:40+00:00" }, { "name": "fakerphp/faker", @@ -3700,16 +3700,16 @@ }, { "name": "symfony/cache", - "version": "v7.1.4", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "b61e464d7687bb7e8f677d5031c632bf3820df18" + "reference": "86e5296b10e4dec8c8441056ca606aedb8a3be0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/b61e464d7687bb7e8f677d5031c632bf3820df18", - "reference": "b61e464d7687bb7e8f677d5031c632bf3820df18", + "url": "https://api.github.com/repos/symfony/cache/zipball/86e5296b10e4dec8c8441056ca606aedb8a3be0a", + "reference": "86e5296b10e4dec8c8441056ca606aedb8a3be0a", "shasum": "" }, "require": { @@ -3777,7 +3777,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v7.1.4" + "source": "https://github.com/symfony/cache/tree/v7.1.5" }, "funding": [ { @@ -3793,7 +3793,7 @@ "type": "tidelift" } ], - "time": "2024-08-12T09:59:40+00:00" + "time": "2024-09-17T09:16:35+00:00" }, { "name": "symfony/cache-contracts", @@ -4022,16 +4022,16 @@ }, { "name": "symfony/console", - "version": "v7.1.4", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "1eed7af6961d763e7832e874d7f9b21c3ea9c111" + "reference": "0fa539d12b3ccf068a722bbbffa07ca7079af9ee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/1eed7af6961d763e7832e874d7f9b21c3ea9c111", - "reference": "1eed7af6961d763e7832e874d7f9b21c3ea9c111", + "url": "https://api.github.com/repos/symfony/console/zipball/0fa539d12b3ccf068a722bbbffa07ca7079af9ee", + "reference": "0fa539d12b3ccf068a722bbbffa07ca7079af9ee", "shasum": "" }, "require": { @@ -4095,7 +4095,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.1.4" + "source": "https://github.com/symfony/console/tree/v7.1.5" }, "funding": [ { @@ -4111,20 +4111,20 @@ "type": "tidelift" } ], - "time": "2024-08-15T22:48:53+00:00" + "time": "2024-09-20T08:28:38+00:00" }, { "name": "symfony/dependency-injection", - "version": "v7.1.4", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "5320e0bc2c9e2d7450bb4091e497a305a68b28ed" + "reference": "38465f925ec4e0707b090e9147c65869837d639d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/5320e0bc2c9e2d7450bb4091e497a305a68b28ed", - "reference": "5320e0bc2c9e2d7450bb4091e497a305a68b28ed", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/38465f925ec4e0707b090e9147c65869837d639d", + "reference": "38465f925ec4e0707b090e9147c65869837d639d", "shasum": "" }, "require": { @@ -4175,7 +4175,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.4" + "source": "https://github.com/symfony/dependency-injection/tree/v7.1.5" }, "funding": [ { @@ -4191,7 +4191,7 @@ "type": "tidelift" } ], - "time": "2024-08-29T08:16:25+00:00" + "time": "2024-09-20T08:28:38+00:00" }, { "name": "symfony/deprecation-contracts", @@ -4262,16 +4262,16 @@ }, { "name": "symfony/doctrine-bridge", - "version": "v7.1.4", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/doctrine-bridge.git", - "reference": "5c31b278a52023970f4ef398e42ab9048483abfa" + "reference": "2568d0adaa5b0018b07beaa90363b880a43cc957" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/5c31b278a52023970f4ef398e42ab9048483abfa", - "reference": "5c31b278a52023970f4ef398e42ab9048483abfa", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/2568d0adaa5b0018b07beaa90363b880a43cc957", + "reference": "2568d0adaa5b0018b07beaa90363b880a43cc957", "shasum": "" }, "require": { @@ -4350,7 +4350,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.4" + "source": "https://github.com/symfony/doctrine-bridge/tree/v7.1.5" }, "funding": [ { @@ -4366,7 +4366,7 @@ "type": "tidelift" } ], - "time": "2024-08-13T10:29:23+00:00" + "time": "2024-09-08T12:32:26+00:00" }, { "name": "symfony/dotenv", @@ -4739,16 +4739,16 @@ }, { "name": "symfony/filesystem", - "version": "v7.1.2", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "92a91985250c251de9b947a14bb2c9390b1a562c" + "reference": "61fe0566189bf32e8cfee78335d8776f64a66f5a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/92a91985250c251de9b947a14bb2c9390b1a562c", - "reference": "92a91985250c251de9b947a14bb2c9390b1a562c", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/61fe0566189bf32e8cfee78335d8776f64a66f5a", + "reference": "61fe0566189bf32e8cfee78335d8776f64a66f5a", "shasum": "" }, "require": { @@ -4785,7 +4785,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.1.2" + "source": "https://github.com/symfony/filesystem/tree/v7.1.5" }, "funding": [ { @@ -4801,7 +4801,7 @@ "type": "tidelift" } ], - "time": "2024-06-28T10:03:55+00:00" + "time": "2024-09-17T09:16:35+00:00" }, { "name": "symfony/finder", @@ -4934,16 +4934,16 @@ }, { "name": "symfony/framework-bundle", - "version": "v7.1.4", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "711af4eefcb4054a9c93e44b403626e1826bcddd" + "reference": "8a792de86230c13a9de7750c0c8b23cc083183d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/711af4eefcb4054a9c93e44b403626e1826bcddd", - "reference": "711af4eefcb4054a9c93e44b403626e1826bcddd", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/8a792de86230c13a9de7750c0c8b23cc083183d4", + "reference": "8a792de86230c13a9de7750c0c8b23cc083183d4", "shasum": "" }, "require": { @@ -4952,7 +4952,7 @@ "php": ">=8.2", "symfony/cache": "^6.4|^7.0", "symfony/config": "^6.4|^7.0", - "symfony/dependency-injection": "^7.1", + "symfony/dependency-injection": "^7.1.5", "symfony/deprecation-contracts": "^2.5|^3", "symfony/error-handler": "^6.4|^7.0", "symfony/event-dispatcher": "^6.4|^7.0", @@ -5061,7 +5061,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.4" + "source": "https://github.com/symfony/framework-bundle/tree/v7.1.5" }, "funding": [ { @@ -5077,7 +5077,7 @@ "type": "tidelift" } ], - "time": "2024-08-11T16:10:02+00:00" + "time": "2024-09-20T13:35:23+00:00" }, { "name": "symfony/http-client", @@ -5253,16 +5253,16 @@ }, { "name": "symfony/http-foundation", - "version": "v7.1.3", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "f602d5c17d1fa02f8019ace2687d9d136b7f4a1a" + "reference": "e30ef73b1e44eea7eb37ba69600a354e553f694b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/f602d5c17d1fa02f8019ace2687d9d136b7f4a1a", - "reference": "f602d5c17d1fa02f8019ace2687d9d136b7f4a1a", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e30ef73b1e44eea7eb37ba69600a354e553f694b", + "reference": "e30ef73b1e44eea7eb37ba69600a354e553f694b", "shasum": "" }, "require": { @@ -5310,7 +5310,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.3" + "source": "https://github.com/symfony/http-foundation/tree/v7.1.5" }, "funding": [ { @@ -5326,20 +5326,20 @@ "type": "tidelift" } ], - "time": "2024-07-26T12:41:01+00:00" + "time": "2024-09-20T08:28:38+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.1.4", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "6efcbd1b3f444f631c386504fc83eeca25963747" + "reference": "44204d96150a9df1fc57601ec933d23fefc2d65b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6efcbd1b3f444f631c386504fc83eeca25963747", - "reference": "6efcbd1b3f444f631c386504fc83eeca25963747", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/44204d96150a9df1fc57601ec933d23fefc2d65b", + "reference": "44204d96150a9df1fc57601ec933d23fefc2d65b", "shasum": "" }, "require": { @@ -5424,7 +5424,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.4" + "source": "https://github.com/symfony/http-kernel/tree/v7.1.5" }, "funding": [ { @@ -5440,7 +5440,7 @@ "type": "tidelift" } ], - "time": "2024-08-30T17:02:28+00:00" + "time": "2024-09-21T06:09:21+00:00" }, { "name": "symfony/mercure", @@ -6423,16 +6423,16 @@ }, { "name": "symfony/security-core", - "version": "v7.1.4", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/security-core.git", - "reference": "f5ccd9d005993e5ff7251e57fe4a0615c8535866" + "reference": "dbeb09f0b786590d126c0da297e2320e66ec353b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-core/zipball/f5ccd9d005993e5ff7251e57fe4a0615c8535866", - "reference": "f5ccd9d005993e5ff7251e57fe4a0615c8535866", + "url": "https://api.github.com/repos/symfony/security-core/zipball/dbeb09f0b786590d126c0da297e2320e66ec353b", + "reference": "dbeb09f0b786590d126c0da297e2320e66ec353b", "shasum": "" }, "require": { @@ -6489,7 +6489,7 @@ "description": "Symfony Security Component - Core Library", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-core/tree/v7.1.4" + "source": "https://github.com/symfony/security-core/tree/v7.1.5" }, "funding": [ { @@ -6505,7 +6505,7 @@ "type": "tidelift" } ], - "time": "2024-08-29T08:16:25+00:00" + "time": "2024-09-20T13:35:23+00:00" }, { "name": "symfony/security-csrf", @@ -6665,16 +6665,16 @@ }, { "name": "symfony/serializer", - "version": "v7.1.4", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "0158b0e91b7cf7e744a6fb9acaeb613d1ca40dbb" + "reference": "71d6e1f70f00752d1469d0f5e83b0a51716f288b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/0158b0e91b7cf7e744a6fb9acaeb613d1ca40dbb", - "reference": "0158b0e91b7cf7e744a6fb9acaeb613d1ca40dbb", + "url": "https://api.github.com/repos/symfony/serializer/zipball/71d6e1f70f00752d1469d0f5e83b0a51716f288b", + "reference": "71d6e1f70f00752d1469d0f5e83b0a51716f288b", "shasum": "" }, "require": { @@ -6688,12 +6688,14 @@ "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" }, "require-dev": { "phpdocumentor/reflection-docblock": "^3.2|^4.0|^5.0", + "phpstan/phpdoc-parser": "^1.0", "seld/jsonlint": "^1.10", "symfony/cache": "^6.4|^7.0", "symfony/config": "^6.4|^7.0", @@ -6709,7 +6711,7 @@ "symfony/property-access": "^6.4|^7.0", "symfony/property-info": "^6.4|^7.0", "symfony/translation-contracts": "^2.5|^3", - "symfony/type-info": "^7.1", + "symfony/type-info": "^7.1.5", "symfony/uid": "^6.4|^7.0", "symfony/validator": "^6.4|^7.0", "symfony/var-dumper": "^6.4|^7.0", @@ -6742,7 +6744,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.4" + "source": "https://github.com/symfony/serializer/tree/v7.1.5" }, "funding": [ { @@ -6758,7 +6760,7 @@ "type": "tidelift" } ], - "time": "2024-08-22T09:39:57+00:00" + "time": "2024-09-20T12:13:15+00:00" }, { "name": "symfony/service-contracts", @@ -6907,16 +6909,16 @@ }, { "name": "symfony/string", - "version": "v7.1.4", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "6cd670a6d968eaeb1c77c2e76091c45c56bc367b" + "reference": "d66f9c343fa894ec2037cc928381df90a7ad4306" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/6cd670a6d968eaeb1c77c2e76091c45c56bc367b", - "reference": "6cd670a6d968eaeb1c77c2e76091c45c56bc367b", + "url": "https://api.github.com/repos/symfony/string/zipball/d66f9c343fa894ec2037cc928381df90a7ad4306", + "reference": "d66f9c343fa894ec2037cc928381df90a7ad4306", "shasum": "" }, "require": { @@ -6974,7 +6976,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.1.4" + "source": "https://github.com/symfony/string/tree/v7.1.5" }, "funding": [ { @@ -6990,7 +6992,7 @@ "type": "tidelift" } ], - "time": "2024-08-12T09:59:40+00:00" + "time": "2024-09-20T08:28:38+00:00" }, { "name": "symfony/translation-contracts", @@ -7265,16 +7267,16 @@ }, { "name": "symfony/type-info", - "version": "v7.1.1", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/type-info.git", - "reference": "60b28eb733f1453287f1263ed305b96091e0d1dc" + "reference": "9f6094aa900d2c06bd61576a6f279d4ac441515f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/type-info/zipball/60b28eb733f1453287f1263ed305b96091e0d1dc", - "reference": "60b28eb733f1453287f1263ed305b96091e0d1dc", + "url": "https://api.github.com/repos/symfony/type-info/zipball/9f6094aa900d2c06bd61576a6f279d4ac441515f", + "reference": "9f6094aa900d2c06bd61576a6f279d4ac441515f", "shasum": "" }, "require": { @@ -7327,7 +7329,7 @@ "type" ], "support": { - "source": "https://github.com/symfony/type-info/tree/v7.1.1" + "source": "https://github.com/symfony/type-info/tree/v7.1.5" }, "funding": [ { @@ -7343,20 +7345,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:59:31+00:00" + "time": "2024-09-19T21:48:23+00:00" }, { "name": "symfony/uid", - "version": "v7.1.4", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "82177535395109075cdb45a70533aa3d7a521cdf" + "reference": "8c7bb8acb933964055215d89f9a9871df0239317" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/82177535395109075cdb45a70533aa3d7a521cdf", - "reference": "82177535395109075cdb45a70533aa3d7a521cdf", + "url": "https://api.github.com/repos/symfony/uid/zipball/8c7bb8acb933964055215d89f9a9871df0239317", + "reference": "8c7bb8acb933964055215d89f9a9871df0239317", "shasum": "" }, "require": { @@ -7401,7 +7403,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v7.1.4" + "source": "https://github.com/symfony/uid/tree/v7.1.5" }, "funding": [ { @@ -7417,20 +7419,20 @@ "type": "tidelift" } ], - "time": "2024-08-12T09:59:40+00:00" + "time": "2024-09-17T09:16:35+00:00" }, { "name": "symfony/validator", - "version": "v7.1.4", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "0d7e0dfd41702d6b9356214b76110421c1e74368" + "reference": "e57592782dc2a86997477f28164c51af53512ad8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/0d7e0dfd41702d6b9356214b76110421c1e74368", - "reference": "0d7e0dfd41702d6b9356214b76110421c1e74368", + "url": "https://api.github.com/repos/symfony/validator/zipball/e57592782dc2a86997477f28164c51af53512ad8", + "reference": "e57592782dc2a86997477f28164c51af53512ad8", "shasum": "" }, "require": { @@ -7498,7 +7500,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v7.1.4" + "source": "https://github.com/symfony/validator/tree/v7.1.5" }, "funding": [ { @@ -7514,20 +7516,20 @@ "type": "tidelift" } ], - "time": "2024-08-30T15:58:06+00:00" + "time": "2024-09-20T08:28:38+00:00" }, { "name": "symfony/var-dumper", - "version": "v7.1.4", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "a5fa7481b199090964d6fd5dab6294d5a870c7aa" + "reference": "e20e03889539fd4e4211e14d2179226c513c010d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/a5fa7481b199090964d6fd5dab6294d5a870c7aa", - "reference": "a5fa7481b199090964d6fd5dab6294d5a870c7aa", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/e20e03889539fd4e4211e14d2179226c513c010d", + "reference": "e20e03889539fd4e4211e14d2179226c513c010d", "shasum": "" }, "require": { @@ -7581,7 +7583,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.1.4" + "source": "https://github.com/symfony/var-dumper/tree/v7.1.5" }, "funding": [ { @@ -7597,7 +7599,7 @@ "type": "tidelift" } ], - "time": "2024-08-30T16:12:47+00:00" + "time": "2024-09-16T10:07:02+00:00" }, { "name": "symfony/var-exporter", @@ -8083,16 +8085,16 @@ }, { "name": "webonyx/graphql-php", - "version": "v15.14.0", + "version": "v15.14.1", "source": { "type": "git", "url": "https://github.com/webonyx/graphql-php.git", - "reference": "87f956498895757f0808f22c193577ed090f7f3b" + "reference": "73542661e3aeaba6b2c60481e82d6b9ea4196908" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webonyx/graphql-php/zipball/87f956498895757f0808f22c193577ed090f7f3b", - "reference": "87f956498895757f0808f22c193577ed090f7f3b", + "url": "https://api.github.com/repos/webonyx/graphql-php/zipball/73542661e3aeaba6b2c60481e82d6b9ea4196908", + "reference": "73542661e3aeaba6b2c60481e82d6b9ea4196908", "shasum": "" }, "require": { @@ -8145,7 +8147,7 @@ ], "support": { "issues": "https://github.com/webonyx/graphql-php/issues", - "source": "https://github.com/webonyx/graphql-php/tree/v15.14.0" + "source": "https://github.com/webonyx/graphql-php/tree/v15.14.1" }, "funding": [ { @@ -8153,7 +8155,7 @@ "type": "open_collective" } ], - "time": "2024-09-10T10:36:37+00:00" + "time": "2024-09-26T08:18:11+00:00" }, { "name": "willdurand/negotiation", @@ -11062,16 +11064,16 @@ }, { "name": "symfony/process", - "version": "v7.1.3", + "version": "v7.1.5", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "7f2f542c668ad6c313dc4a5e9c3321f733197eca" + "reference": "5c03ee6369281177f07f7c68252a280beccba847" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/7f2f542c668ad6c313dc4a5e9c3321f733197eca", - "reference": "7f2f542c668ad6c313dc4a5e9c3321f733197eca", + "url": "https://api.github.com/repos/symfony/process/zipball/5c03ee6369281177f07f7c68252a280beccba847", + "reference": "5c03ee6369281177f07f7c68252a280beccba847", "shasum": "" }, "require": { @@ -11103,7 +11105,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.1.3" + "source": "https://github.com/symfony/process/tree/v7.1.5" }, "funding": [ { @@ -11119,7 +11121,7 @@ "type": "tidelift" } ], - "time": "2024-07-26T12:44:47+00:00" + "time": "2024-09-19T21:48:23+00:00" }, { "name": "symfony/web-profiler-bundle", diff --git a/api/config/packages/api_platform.yaml b/api/config/packages/api_platform.yaml index f0a527173..6ab1b2b8b 100644 --- a/api/config/packages/api_platform.yaml +++ b/api/config/packages/api_platform.yaml @@ -1,6 +1,6 @@ api_platform: title: API Platform's demo - version: 4.0.2 + version: 4.0.3 description: | This is a demo application of the [API Platform](https://api-platform.com) framework. [Its source code](https://github.com/api-platform/demo) includes various examples, check it out! diff --git a/api/src/Command/BooksImportCommand.php b/api/src/Command/BooksImportCommand.php index f624e2568..1aa6ac596 100644 --- a/api/src/Command/BooksImportCommand.php +++ b/api/src/Command/BooksImportCommand.php @@ -27,7 +27,7 @@ public function __construct( private readonly SerializerInterface $serializer, private readonly DecoderInterface $decoder, private readonly HttpClientInterface $client, - private readonly LoggerInterface $logger + private readonly LoggerInterface $logger, ) { parent::__construct(); } diff --git a/api/src/Doctrine/Orm/Extension/BookmarkQueryCollectionExtension.php b/api/src/Doctrine/Orm/Extension/BookmarkQueryCollectionExtension.php index bf8ed3dc0..6018c9cf8 100644 --- a/api/src/Doctrine/Orm/Extension/BookmarkQueryCollectionExtension.php +++ b/api/src/Doctrine/Orm/Extension/BookmarkQueryCollectionExtension.php @@ -31,7 +31,7 @@ public function applyToCollection(QueryBuilder $queryBuilder, QueryNameGenerator } $queryBuilder - ->andWhere(sprintf('%s.user = :user', $queryBuilder->getRootAliases()[0])) + ->andWhere(\sprintf('%s.user = :user', $queryBuilder->getRootAliases()[0])) ->setParameter('user', $user) ; } diff --git a/api/src/Doctrine/Orm/Filter/NameFilter.php b/api/src/Doctrine/Orm/Filter/NameFilter.php index 93361f86a..c13ed7f06 100644 --- a/api/src/Doctrine/Orm/Filter/NameFilter.php +++ b/api/src/Doctrine/Orm/Filter/NameFilter.php @@ -47,8 +47,8 @@ protected function filterProperty(string $property, $value, QueryBuilder $queryB $parameterName = $queryNameGenerator->generateParameterName("name{$key}"); $queryBuilder->setParameter($parameterName, "%{$value}%"); $expressions[] = $queryBuilder->expr()->orX( - $queryBuilder->expr()->like(sprintf('%s.firstName', $alias), ":{$parameterName}"), - $queryBuilder->expr()->like(sprintf('%s.lastName', $alias), ":{$parameterName}") + $queryBuilder->expr()->like(\sprintf('%s.firstName', $alias), ":{$parameterName}"), + $queryBuilder->expr()->like(\sprintf('%s.lastName', $alias), ":{$parameterName}") ); } $queryBuilder->andWhere($queryBuilder->expr()->andX(...$expressions)); @@ -72,7 +72,7 @@ protected function normalizeValues($value, string $property): ?array if (empty($values)) { $this->getLogger()->notice('Invalid filter ignored', [ - 'exception' => new \InvalidArgumentException(sprintf('At least one value is required, multiple values should be in "%1$s[]=firstvalue&%1$s[]=secondvalue" format', $property)), + 'exception' => new \InvalidArgumentException(\sprintf('At least one value is required, multiple values should be in "%1$s[]=firstvalue&%1$s[]=secondvalue" format', $property)), ]); return null; diff --git a/api/src/Entity/User.php b/api/src/Entity/User.php index 2832c1623..8fcef3a57 100644 --- a/api/src/Entity/User.php +++ b/api/src/Entity/User.php @@ -118,6 +118,6 @@ public function getName(): ?string return null; } - return trim(sprintf('%s %s', $this->firstName, $this->lastName)); + return trim(\sprintf('%s %s', $this->firstName, $this->lastName)); } } diff --git a/api/src/Security/Core/UserProvider.php b/api/src/Security/Core/UserProvider.php index c0c641649..a07c85ddc 100644 --- a/api/src/Security/Core/UserProvider.php +++ b/api/src/Security/Core/UserProvider.php @@ -24,7 +24,7 @@ public function refreshUser(UserInterface $user): UserInterface { $manager = $this->registry->getManagerForClass($user::class); if (!$manager) { - throw new UnsupportedUserException(sprintf('User class "%s" not supported.', $user::class)); + throw new UnsupportedUserException(\sprintf('User class "%s" not supported.', $user::class)); } $manager->refresh($user); diff --git a/api/src/Security/Http/AccessToken/Oidc/OidcDiscoveryTokenHandler.php b/api/src/Security/Http/AccessToken/Oidc/OidcDiscoveryTokenHandler.php index 6bf7dbe3d..4317c647d 100644 --- a/api/src/Security/Http/AccessToken/Oidc/OidcDiscoveryTokenHandler.php +++ b/api/src/Security/Http/AccessToken/Oidc/OidcDiscoveryTokenHandler.php @@ -87,7 +87,7 @@ public function getUserBadgeFrom(string $accessToken): UserBadge $claims = json_decode($jws->getPayload(), true); if (empty($claims[$this->claim])) { - throw new MissingClaimException(sprintf('"%s" claim not found.', $this->claim)); + throw new MissingClaimException(\sprintf('"%s" claim not found.', $this->claim)); } // UserLoader argument can be overridden by a UserProvider on AccessTokenAuthenticator::authenticate diff --git a/api/src/Security/Http/Protection/ResourceResourceHandler.php b/api/src/Security/Http/Protection/ResourceResourceHandler.php index 73dc4b627..aa1a69a46 100644 --- a/api/src/Security/Http/Protection/ResourceResourceHandler.php +++ b/api/src/Security/Http/Protection/ResourceResourceHandler.php @@ -41,10 +41,10 @@ public function create(object $resource, UserInterface $owner, array $context = $this->securityAuthorizationClient->request('POST', $this->getResourceRegistrationEndpoint(), [ 'auth_bearer' => $this->getPAT(), 'json' => [ - 'name' => sprintf('%s_%s', $shortName, $resource->getId()->__toString()), - 'displayName' => sprintf('%s #%s', $operation->getShortName(), $resource->getId()->__toString()), + 'name' => \sprintf('%s_%s', $shortName, $resource->getId()->__toString()), + 'displayName' => \sprintf('%s #%s', $operation->getShortName(), $resource->getId()->__toString()), 'uris' => [$resourceIri], - 'type' => sprintf('urn:%s:resources:%s', $this->oidcClientId, $shortName), + 'type' => \sprintf('urn:%s:resources:%s', $this->oidcClientId, $shortName), 'owner' => $owner->getUserIdentifier(), ], ]); @@ -75,7 +75,7 @@ public function delete(object $resource, UserInterface $owner, array $context = 'max' => 1, 'uri' => $resourceIri, 'owner' => $owner->getUserIdentifier(), - 'type' => sprintf('urn:%s:resources:%s', $this->oidcClientId, $shortName), + 'type' => \sprintf('urn:%s:resources:%s', $this->oidcClientId, $shortName), ], ] ); @@ -85,7 +85,7 @@ public function delete(object $resource, UserInterface $owner, array $context = // delete corresponding resource_set on OIDC server $this->securityAuthorizationClient->request( 'DELETE', - sprintf('%s/%s', $this->getResourceRegistrationEndpoint(), $resourceSet['_id']), + \sprintf('%s/%s', $this->getResourceRegistrationEndpoint(), $resourceSet['_id']), [ 'auth_bearer' => $this->getPAT(), ] diff --git a/api/src/Security/Voter/OidcRoleVoter.php b/api/src/Security/Voter/OidcRoleVoter.php index a09948769..771990d53 100644 --- a/api/src/Security/Voter/OidcRoleVoter.php +++ b/api/src/Security/Voter/OidcRoleVoter.php @@ -36,7 +36,7 @@ protected function supports(string $attribute, mixed $subject): bool protected function voteOnAttribute(string $attribute, mixed $subject, TokenInterface $token): bool { if (!empty($subject)) { - throw new \InvalidArgumentException(sprintf('Invalid subject type, expected empty string or "null", got "%s".', get_debug_type($subject))); + throw new \InvalidArgumentException(\sprintf('Invalid subject type, expected empty string or "null", got "%s".', get_debug_type($subject))); } // ensure user is authenticated diff --git a/api/src/Security/Voter/OidcTokenIntrospectRoleVoter.php b/api/src/Security/Voter/OidcTokenIntrospectRoleVoter.php index f81df1619..e8a3ff275 100644 --- a/api/src/Security/Voter/OidcTokenIntrospectRoleVoter.php +++ b/api/src/Security/Voter/OidcTokenIntrospectRoleVoter.php @@ -43,7 +43,7 @@ protected function supports(string $attribute, mixed $subject): bool protected function voteOnAttribute(string $attribute, mixed $subject, TokenInterface $token): bool { if (!empty($subject)) { - throw new \InvalidArgumentException(sprintf('Invalid subject type, expected empty string or "null", got "%s".', get_debug_type($subject))); + throw new \InvalidArgumentException(\sprintf('Invalid subject type, expected empty string or "null", got "%s".', get_debug_type($subject))); } // ensure user is authenticated diff --git a/api/src/Security/Voter/OidcTokenPermissionVoter.php b/api/src/Security/Voter/OidcTokenPermissionVoter.php index e97b8748d..c6f3490ca 100644 --- a/api/src/Security/Voter/OidcTokenPermissionVoter.php +++ b/api/src/Security/Voter/OidcTokenPermissionVoter.php @@ -47,7 +47,7 @@ protected function voteOnAttribute(string $attribute, mixed $subject, TokenInter } if (!\is_string($subject)) { - throw new \InvalidArgumentException(sprintf('Invalid subject type, expected "string" or "object", got "%s".', get_debug_type($subject))); + throw new \InvalidArgumentException(\sprintf('Invalid subject type, expected "string" or "object", got "%s".', get_debug_type($subject))); } // ensure user is authenticated @@ -69,7 +69,7 @@ protected function voteOnAttribute(string $attribute, mixed $subject, TokenInter 'response_mode' => 'decision', 'permission_resource_format' => 'uri', 'permission_resource_matching_uri' => true, - 'permission' => sprintf('%s', $subject), + 'permission' => \sprintf('%s', $subject), ], ]); diff --git a/api/src/Serializer/BookNormalizer.php b/api/src/Serializer/BookNormalizer.php index a6c1684aa..f590dc48b 100644 --- a/api/src/Serializer/BookNormalizer.php +++ b/api/src/Serializer/BookNormalizer.php @@ -21,7 +21,7 @@ final class BookNormalizer implements NormalizerInterface, NormalizerAwareInterf */ public function __construct( #[Autowire(service: ReviewRepository::class)] - private ObjectRepository $repository + private ObjectRepository $repository, ) { } diff --git a/api/src/Serializer/IriTransformerNormalizer.php b/api/src/Serializer/IriTransformerNormalizer.php index 50f2ef701..1f2ac7ee6 100644 --- a/api/src/Serializer/IriTransformerNormalizer.php +++ b/api/src/Serializer/IriTransformerNormalizer.php @@ -20,7 +20,7 @@ final class IriTransformerNormalizer implements NormalizerInterface, NormalizerA public function __construct( private readonly IriConverterInterface $iriConverter, - private readonly OperationMetadataFactoryInterface $operationMetadataFactory + private readonly OperationMetadataFactoryInterface $operationMetadataFactory, ) { } diff --git a/api/src/State/Processor/BookPersistProcessor.php b/api/src/State/Processor/BookPersistProcessor.php index 5fb1a3d66..d084672d5 100644 --- a/api/src/State/Processor/BookPersistProcessor.php +++ b/api/src/State/Processor/BookPersistProcessor.php @@ -25,7 +25,7 @@ public function __construct( #[Autowire(service: PersistProcessor::class)] private ProcessorInterface $persistProcessor, private HttpClientInterface $client, - private DecoderInterface $decoder + private DecoderInterface $decoder, ) { } diff --git a/api/src/State/Processor/BookmarkPersistProcessor.php b/api/src/State/Processor/BookmarkPersistProcessor.php index 9f8639527..9c785d546 100644 --- a/api/src/State/Processor/BookmarkPersistProcessor.php +++ b/api/src/State/Processor/BookmarkPersistProcessor.php @@ -24,7 +24,7 @@ public function __construct( #[Autowire(service: PersistProcessor::class)] private ProcessorInterface $persistProcessor, private Security $security, - private ClockInterface $clock + private ClockInterface $clock, ) { } diff --git a/api/src/Validator/UniqueUserBookValidator.php b/api/src/Validator/UniqueUserBookValidator.php index 8429d8b4e..6e9f74ec8 100644 --- a/api/src/Validator/UniqueUserBookValidator.php +++ b/api/src/Validator/UniqueUserBookValidator.php @@ -22,7 +22,7 @@ final class UniqueUserBookValidator extends ConstraintValidator public function __construct( private readonly Security $security, private readonly ManagerRegistry $registry, - private readonly PropertyAccessorInterface $propertyAccessor + private readonly PropertyAccessorInterface $propertyAccessor, ) { } @@ -47,7 +47,7 @@ public function validate($value, Constraint $constraint): void $className = ClassUtils::getRealClass($value::class); $manager = $this->registry->getManagerForClass($className); if (!$manager) { - throw new ValidatorException(sprintf('"%s" is not a valid entity.', $className)); + throw new ValidatorException(\sprintf('"%s" is not a valid entity.', $className)); } if ($manager->getRepository($className)->findOneBy(['user' => $user, 'book' => $book])) { diff --git a/api/symfony.lock b/api/symfony.lock index 4e2f6bc92..59036048b 100644 --- a/api/symfony.lock +++ b/api/symfony.lock @@ -2,6 +2,20 @@ "api-platform/schema-generator": { "version": "v4.0.0" }, + "api-platform/symfony": { + "version": "4.0", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "main", + "version": "4.0", + "ref": "e9952e9f393c2d048f10a78f272cd35e807d972b" + }, + "files": [ + "config/packages/api_platform.yaml", + "config/routes/api_platform.yaml", + "src/ApiResource/.gitignore" + ] + }, "composer/pcre": { "version": "1.0.0" }, diff --git a/api/tests/Api/Admin/BookTest.php b/api/tests/Api/Admin/BookTest.php index 74a605a12..929388686 100644 --- a/api/tests/Api/Admin/BookTest.php +++ b/api/tests/Api/Admin/BookTest.php @@ -54,9 +54,9 @@ public function asNonAdminUserICannotGetACollectionOfBooks(int $expectedCode, st self::assertResponseHeaderSame('content-type', 'application/problem+json; charset=utf-8'); self::assertResponseHeaderSame('link', '; rel="http://www.w3.org/ns/json-ld#error",; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"'); self::assertJsonContains([ - '@type' => 'hydra:Error', - 'hydra:title' => 'An error occurred', - 'hydra:description' => $hydraDescription, + '@type' => 'Error', + 'title' => 'An error occurred', + 'description' => $hydraDescription, ]); } @@ -196,9 +196,9 @@ public function asNonAdminUserICannotGetABook(int $expectedCode, string $hydraDe self::assertResponseHeaderSame('content-type', 'application/problem+json; charset=utf-8'); self::assertResponseHeaderSame('link', '; rel="http://www.w3.org/ns/json-ld#error",; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"'); self::assertJsonContains([ - '@type' => 'hydra:Error', - 'hydra:title' => 'An error occurred', - 'hydra:description' => $hydraDescription, + '@type' => 'Error', + 'title' => 'An error occurred', + 'description' => $hydraDescription, ]); } @@ -254,9 +254,9 @@ public function asNonAdminUserICannotCreateABook(int $expectedCode, string $hydr self::assertResponseHeaderSame('content-type', 'application/problem+json; charset=utf-8'); self::assertResponseHeaderSame('link', '; rel="http://www.w3.org/ns/json-ld#error",; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"'); self::assertJsonContains([ - '@type' => 'hydra:Error', - 'hydra:title' => 'An error occurred', - 'hydra:description' => $hydraDescription, + '@type' => 'Error', + 'title' => 'An error occurred', + 'description' => $hydraDescription, ]); } @@ -290,7 +290,7 @@ public static function getInvalidDataOnCreate(): iterable Response::HTTP_UNPROCESSABLE_ENTITY, [ '@type' => 'ConstraintViolationList', - 'hydra:title' => 'An error occurred', + 'title' => 'An error occurred', 'violations' => [ [ 'propertyPath' => 'book', @@ -316,8 +316,8 @@ public static function getInvalidData(): iterable Response::HTTP_UNPROCESSABLE_ENTITY, [ '@type' => 'ConstraintViolationList', - 'hydra:title' => 'An error occurred', - 'hydra:description' => 'condition: This value should be of type ' . BookCondition::class . '.', + 'title' => 'An error occurred', + 'description' => 'condition: This value should be of type ' . BookCondition::class . '.', 'violations' => [ [ 'propertyPath' => 'condition', @@ -334,8 +334,8 @@ public static function getInvalidData(): iterable Response::HTTP_UNPROCESSABLE_ENTITY, [ '@type' => 'ConstraintViolationList', - 'hydra:title' => 'An error occurred', - 'hydra:description' => 'condition: This value should be of type ' . BookCondition::class . '.', + 'title' => 'An error occurred', + 'description' => 'condition: This value should be of type ' . BookCondition::class . '.', 'violations' => [ [ 'propertyPath' => 'condition', @@ -352,7 +352,7 @@ public static function getInvalidData(): iterable Response::HTTP_UNPROCESSABLE_ENTITY, [ '@type' => 'ConstraintViolationList', - 'hydra:title' => 'An error occurred', + 'title' => 'An error occurred', 'violations' => [ [ 'propertyPath' => 'book', @@ -442,9 +442,9 @@ public function asNonAdminUserICannotUpdateBook(int $expectedCode, string $hydra self::assertResponseHeaderSame('content-type', 'application/problem+json; charset=utf-8'); self::assertResponseHeaderSame('link', '; rel="http://www.w3.org/ns/json-ld#error",; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"'); self::assertJsonContains([ - '@type' => 'hydra:Error', - 'hydra:title' => 'An error occurred', - 'hydra:description' => $hydraDescription, + '@type' => 'Error', + 'title' => 'An error occurred', + 'description' => $hydraDescription, ]); } @@ -570,9 +570,9 @@ public function asNonAdminUserICannotDeleteABook(int $expectedCode, string $hydr self::assertResponseHeaderSame('content-type', 'application/problem+json; charset=utf-8'); self::assertResponseHeaderSame('link', '; rel="http://www.w3.org/ns/json-ld#error",; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"'); self::assertJsonContains([ - '@type' => 'hydra:Error', - 'hydra:title' => 'An error occurred', - 'hydra:description' => $hydraDescription, + '@type' => 'Error', + 'title' => 'An error occurred', + 'description' => $hydraDescription, ]); } diff --git a/api/tests/Api/Admin/ReviewTest.php b/api/tests/Api/Admin/ReviewTest.php index b8b87ec3d..ee36e0a37 100644 --- a/api/tests/Api/Admin/ReviewTest.php +++ b/api/tests/Api/Admin/ReviewTest.php @@ -55,9 +55,9 @@ public function asNonAdminUserICannotGetACollectionOfReviews(int $expectedCode, self::assertResponseHeaderSame('content-type', 'application/problem+json; charset=utf-8'); self::assertResponseHeaderSame('link', '; rel="http://www.w3.org/ns/json-ld#error",; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"'); self::assertJsonContains([ - '@type' => 'hydra:Error', - 'hydra:title' => 'An error occurred', - 'hydra:description' => $hydraDescription, + '@type' => 'Error', + 'title' => 'An error occurred', + 'description' => $hydraDescription, ]); } @@ -163,9 +163,9 @@ public function asNonAdminUserICannotGetAReview(int $expectedCode, string $hydra self::assertResponseHeaderSame('content-type', 'application/problem+json; charset=utf-8'); self::assertResponseHeaderSame('link', '; rel="http://www.w3.org/ns/json-ld#error",; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"'); self::assertJsonContains([ - '@type' => 'hydra:Error', - 'hydra:title' => 'An error occurred', - 'hydra:description' => $hydraDescription, + '@type' => 'Error', + 'title' => 'An error occurred', + 'description' => $hydraDescription, ]); } @@ -227,9 +227,9 @@ public function asNonAdminUserICannotUpdateAReview(int $expectedCode, string $hy self::assertResponseHeaderSame('content-type', 'application/problem+json; charset=utf-8'); self::assertResponseHeaderSame('link', '; rel="http://www.w3.org/ns/json-ld#error",; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"'); self::assertJsonContains([ - '@type' => 'hydra:Error', - 'hydra:title' => 'An error occurred', - 'hydra:description' => $hydraDescription, + '@type' => 'Error', + 'title' => 'An error occurred', + 'description' => $hydraDescription, ]); } @@ -334,9 +334,9 @@ public function asNonAdminUserICannotDeleteAReview(int $expectedCode, string $hy self::assertResponseHeaderSame('content-type', 'application/problem+json; charset=utf-8'); self::assertResponseHeaderSame('link', '; rel="http://www.w3.org/ns/json-ld#error",; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"'); self::assertJsonContains([ - '@type' => 'hydra:Error', - 'hydra:title' => 'An error occurred', - 'hydra:description' => $hydraDescription, + '@type' => 'Error', + 'title' => 'An error occurred', + 'description' => $hydraDescription, ]); } diff --git a/api/tests/Api/Admin/UserTest.php b/api/tests/Api/Admin/UserTest.php index cc5825d53..0e1f4c5b0 100644 --- a/api/tests/Api/Admin/UserTest.php +++ b/api/tests/Api/Admin/UserTest.php @@ -47,9 +47,9 @@ public function asNonAdminUserICannotGetACollectionOfUsers(int $expectedCode, st self::assertResponseHeaderSame('content-type', 'application/problem+json; charset=utf-8'); self::assertResponseHeaderSame('link', '; rel="http://www.w3.org/ns/json-ld#error",; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"'); self::assertJsonContains([ - '@type' => 'hydra:Error', - 'hydra:title' => 'An error occurred', - 'hydra:description' => $hydraDescription, + '@type' => 'Error', + 'title' => 'An error occurred', + 'description' => $hydraDescription, ]); } @@ -123,9 +123,9 @@ public function asNonAdminUserICannotGetAUser(int $expectedCode, string $hydraDe self::assertResponseHeaderSame('content-type', 'application/problem+json; charset=utf-8'); self::assertResponseHeaderSame('link', '; rel="http://www.w3.org/ns/json-ld#error",; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"'); self::assertJsonContains([ - '@type' => 'hydra:Error', - 'hydra:title' => 'An error occurred', - 'hydra:description' => $hydraDescription, + '@type' => 'Error', + 'title' => 'An error occurred', + 'description' => $hydraDescription, ]); } diff --git a/api/tests/Api/BookmarkTest.php b/api/tests/Api/BookmarkTest.php index f668dbd41..61105e668 100644 --- a/api/tests/Api/BookmarkTest.php +++ b/api/tests/Api/BookmarkTest.php @@ -45,9 +45,9 @@ public function asAnonymousICannotGetACollectionOfBookmarks(): void self::assertResponseHeaderSame('content-type', 'application/problem+json; charset=utf-8'); self::assertResponseHeaderSame('link', '; rel="http://www.w3.org/ns/json-ld#error",; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"'); self::assertJsonContains([ - '@type' => 'hydra:Error', - 'hydra:title' => 'An error occurred', - 'hydra:description' => 'Full authentication is required to access this resource.', + '@type' => 'Error', + 'title' => 'An error occurred', + 'description' => 'Full authentication is required to access this resource.', ]); } @@ -97,9 +97,9 @@ public function asAnonymousICannotCreateABookmark(): void self::assertResponseHeaderSame('content-type', 'application/problem+json; charset=utf-8'); self::assertResponseHeaderSame('link', '; rel="http://www.w3.org/ns/json-ld#error",; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"'); self::assertJsonContains([ - '@type' => 'hydra:Error', - 'hydra:title' => 'An error occurred', - 'hydra:description' => 'Full authentication is required to access this resource.', + '@type' => 'Error', + 'title' => 'An error occurred', + 'description' => 'Full authentication is required to access this resource.', ]); } @@ -129,8 +129,8 @@ public function asAUserICannotCreateABookmarkWithInvalidData(): void self::assertResponseHeaderSame('link', '; rel="http://www.w3.org/ns/json-ld#error",; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"'); self::assertJsonContains([ '@type' => 'ConstraintViolationList', - 'hydra:title' => 'An error occurred', - 'hydra:description' => 'book: This value should be of type ' . Book::class . '.', + 'title' => 'An error occurred', + 'description' => 'book: This value should be of type ' . Book::class . '.', 'violations' => [ [ 'propertyPath' => 'book', @@ -219,8 +219,8 @@ public function asAUserICannotCreateADuplicateBookmark(): void self::assertResponseHeaderSame('link', '; rel="http://www.w3.org/ns/json-ld#error",; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"'); self::assertJsonContains([ '@type' => 'ConstraintViolationList', - 'hydra:title' => 'An error occurred', - 'hydra:description' => 'You have already bookmarked this book.', + 'title' => 'An error occurred', + 'description' => 'You have already bookmarked this book.', ]); } @@ -235,9 +235,9 @@ public function asAnonymousICannotDeleteABookmark(): void self::assertResponseHeaderSame('content-type', 'application/problem+json; charset=utf-8'); self::assertResponseHeaderSame('link', '; rel="http://www.w3.org/ns/json-ld#error",; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"'); self::assertJsonContains([ - '@type' => 'hydra:Error', - 'hydra:title' => 'An error occurred', - 'hydra:description' => 'Full authentication is required to access this resource.', + '@type' => 'Error', + 'title' => 'An error occurred', + 'description' => 'Full authentication is required to access this resource.', ]); } @@ -259,9 +259,9 @@ public function asAUserICannotDeleteABookmarkOfAnotherUser(): void self::assertResponseHeaderSame('content-type', 'application/problem+json; charset=utf-8'); self::assertResponseHeaderSame('link', '; rel="http://www.w3.org/ns/json-ld#error",; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"'); self::assertJsonContains([ - '@type' => 'hydra:Error', - 'hydra:title' => 'An error occurred', - 'hydra:description' => 'Access Denied.', + '@type' => 'Error', + 'title' => 'An error occurred', + 'description' => 'Access Denied.', ]); } diff --git a/api/tests/Api/ReviewTest.php b/api/tests/Api/ReviewTest.php index 26dcc203b..59fd20f0b 100644 --- a/api/tests/Api/ReviewTest.php +++ b/api/tests/Api/ReviewTest.php @@ -150,9 +150,9 @@ public function asAnonymousICannotAddAReviewOnABook(): void self::assertResponseHeaderSame('content-type', 'application/problem+json; charset=utf-8'); self::assertResponseHeaderSame('link', '; rel="http://www.w3.org/ns/json-ld#error",; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"'); self::assertJsonContains([ - '@type' => 'hydra:Error', - 'hydra:title' => 'An error occurred', - 'hydra:description' => 'Full authentication is required to access this resource.', + '@type' => 'Error', + 'title' => 'An error occurred', + 'description' => 'Full authentication is required to access this resource.', ]); } @@ -189,7 +189,7 @@ public static function getInvalidData(): iterable Response::HTTP_UNPROCESSABLE_ENTITY, [ '@type' => 'ConstraintViolationList', - 'hydra:title' => 'An error occurred', + 'title' => 'An error occurred', 'violations' => [ [ 'propertyPath' => 'body', @@ -231,9 +231,9 @@ public function asAUserICannotAddAReviewWithValidDataOnAnInvalidBook(): void self::assertResponseHeaderSame('content-type', 'application/problem+json; charset=utf-8'); self::assertResponseHeaderSame('link', '; rel="http://www.w3.org/ns/json-ld#error",; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"'); self::assertJsonContains([ - '@type' => 'hydra:Error', - 'hydra:title' => 'An error occurred', - 'hydra:description' => 'Invalid uri variables.', + '@type' => 'Error', + 'title' => 'An error occurred', + 'description' => 'Invalid uri variables.', ]); } @@ -326,8 +326,8 @@ public function asAUserICannotAddADuplicateReviewOnABook(): void self::assertResponseHeaderSame('link', '; rel="http://www.w3.org/ns/json-ld#error",; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"'); self::assertJsonContains([ '@type' => 'ConstraintViolationList', - 'hydra:title' => 'An error occurred', - 'hydra:description' => 'You have already reviewed this book.', + 'title' => 'An error occurred', + 'description' => 'You have already reviewed this book.', ]); } @@ -342,9 +342,9 @@ public function asAnonymousICannotGetAnInvalidReview(): void self::assertResponseHeaderSame('content-type', 'application/problem+json; charset=utf-8'); self::assertResponseHeaderSame('link', '; rel="http://www.w3.org/ns/json-ld#error",; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"'); self::assertJsonContains([ - '@type' => 'hydra:Error', - 'hydra:title' => 'An error occurred', - 'hydra:description' => 'This route does not aim to be called.', + '@type' => 'Error', + 'title' => 'An error occurred', + 'description' => 'This route does not aim to be called.', ]); } @@ -359,9 +359,9 @@ public function asAnonymousICanGetABookReview(): void self::assertResponseHeaderSame('content-type', 'application/problem+json; charset=utf-8'); self::assertResponseHeaderSame('link', '; rel="http://www.w3.org/ns/json-ld#error",; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"'); self::assertJsonContains([ - '@type' => 'hydra:Error', - 'hydra:title' => 'An error occurred', - 'hydra:description' => 'This route does not aim to be called.', + '@type' => 'Error', + 'title' => 'An error occurred', + 'description' => 'This route does not aim to be called.', ]); } @@ -384,9 +384,9 @@ public function asAnonymousICannotUpdateABookReview(): void self::assertResponseHeaderSame('content-type', 'application/problem+json; charset=utf-8'); self::assertResponseHeaderSame('link', '; rel="http://www.w3.org/ns/json-ld#error",; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"'); self::assertJsonContains([ - '@type' => 'hydra:Error', - 'hydra:title' => 'An error occurred', - 'hydra:description' => 'Full authentication is required to access this resource.', + '@type' => 'Error', + 'title' => 'An error occurred', + 'description' => 'Full authentication is required to access this resource.', ]); } @@ -415,9 +415,9 @@ public function asAUserICannotUpdateABookReviewOfAnotherUser(): void self::assertResponseHeaderSame('content-type', 'application/problem+json; charset=utf-8'); self::assertResponseHeaderSame('link', '; rel="http://www.w3.org/ns/json-ld#error",; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"'); self::assertJsonContains([ - '@type' => 'hydra:Error', - 'hydra:title' => 'An error occurred', - 'hydra:description' => 'Access Denied.', + '@type' => 'Error', + 'title' => 'An error occurred', + 'description' => 'Access Denied.', ]); } @@ -501,9 +501,9 @@ public function asAnonymousICannotDeleteABookReview(): void self::assertResponseHeaderSame('content-type', 'application/problem+json; charset=utf-8'); self::assertResponseHeaderSame('link', '; rel="http://www.w3.org/ns/json-ld#error",; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"'); self::assertJsonContains([ - '@type' => 'hydra:Error', - 'hydra:title' => 'An error occurred', - 'hydra:description' => 'Full authentication is required to access this resource.', + '@type' => 'Error', + 'title' => 'An error occurred', + 'description' => 'Full authentication is required to access this resource.', ]); } @@ -525,9 +525,9 @@ public function asAUserICannotDeleteABookReviewOfAnotherUser(): void self::assertResponseHeaderSame('content-type', 'application/problem+json; charset=utf-8'); self::assertResponseHeaderSame('link', '; rel="http://www.w3.org/ns/json-ld#error",; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"'); self::assertJsonContains([ - '@type' => 'hydra:Error', - 'hydra:title' => 'An error occurred', - 'hydra:description' => 'Access Denied.', + '@type' => 'Error', + 'title' => 'An error occurred', + 'description' => 'Access Denied.', ]); } diff --git a/api/tests/Api/Security/Voter/Mock/NotImplementedMock.php b/api/tests/Api/Security/Voter/Mock/NotImplementedMock.php index b9f44e913..8057952d6 100644 --- a/api/tests/Api/Security/Voter/Mock/NotImplementedMock.php +++ b/api/tests/Api/Security/Voter/Mock/NotImplementedMock.php @@ -13,7 +13,7 @@ final class NotImplementedMock extends MockHttpClient { public function __construct( #[Autowire('%env(OIDC_SERVER_URL_INTERNAL)%/')] - string $baseUri + string $baseUri, ) { parent::__construct($this->handleRequest(...), $baseUri); } diff --git a/helm/api-platform/Chart.yaml b/helm/api-platform/Chart.yaml index f738baffc..1107f6d24 100644 --- a/helm/api-platform/Chart.yaml +++ b/helm/api-platform/Chart.yaml @@ -17,12 +17,12 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 4.0.2 +version: 4.0.3 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. -appVersion: 4.0.2 +appVersion: 4.0.3 dependencies: - name: postgresql