From 3272226aec4b451de14764b2605e371918032946 Mon Sep 17 00:00:00 2001 From: Kiet Tran Date: Wed, 8 Jan 2020 13:32:03 +0100 Subject: [PATCH 01/21] Composer update on v1.0.1 due to security alerts. --- composer.lock | 670 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 452 insertions(+), 218 deletions(-) diff --git a/composer.lock b/composer.lock index 764ca98..5c71997 100644 --- a/composer.lock +++ b/composer.lock @@ -1,7 +1,7 @@ { "_readme": [ "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], "content-hash": "768e07409b339c531c1adaf441a98b0d", @@ -76,21 +76,24 @@ }, { "name": "doctrine/lexer", - "version": "v1.0.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c" + "reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c", - "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/1febd6c3ef84253d7c815bed85fc622ad207a9f8", + "reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8", "shasum": "" }, "require": { "php": ">=5.3.2" }, + "require-dev": { + "phpunit/phpunit": "^4.5" + }, "type": "library", "extra": { "branch-alias": { @@ -98,8 +101,8 @@ } }, "autoload": { - "psr-0": { - "Doctrine\\Common\\Lexer\\": "lib/" + "psr-4": { + "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" } }, "notification-url": "https://packagist.org/downloads/", @@ -120,26 +123,29 @@ "email": "schmittjoh@gmail.com" } ], - "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "http://www.doctrine-project.org", + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", "keywords": [ + "annotations", + "docblock", "lexer", - "parser" + "parser", + "php" ], - "time": "2014-09-09T13:34:57+00:00" + "time": "2019-06-08T11:03:04+00:00" }, { "name": "paragonie/random_compat", - "version": "v2.0.12", + "version": "v2.0.18", "source": { "type": "git", "url": "https://github.com/paragonie/random_compat.git", - "reference": "258c89a6b97de7dfaf5b8c7607d0478e236b04fb" + "reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/258c89a6b97de7dfaf5b8c7607d0478e236b04fb", - "reference": "258c89a6b97de7dfaf5b8c7607d0478e236b04fb", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/0a58ef6e3146256cc3dc7cc393927bcc7d1b72db", + "reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db", "shasum": "" }, "require": { @@ -171,10 +177,11 @@ "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", "keywords": [ "csprng", + "polyfill", "pseudorandom", "random" ], - "time": "2018-04-04T21:24:14+00:00" + "time": "2019-01-03T20:59:08+00:00" }, { "name": "psr/cache", @@ -273,16 +280,16 @@ }, { "name": "psr/log", - "version": "1.0.2", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" + "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", + "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", "shasum": "" }, "require": { @@ -291,7 +298,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.1.x-dev" } }, "autoload": { @@ -316,7 +323,7 @@ "psr", "psr-3" ], - "time": "2016-10-10T12:19:37+00:00" + "time": "2019-11-01T11:05:21+00:00" }, { "name": "psr/simple-cache", @@ -368,16 +375,16 @@ }, { "name": "symfony/cache", - "version": "v3.4.9", + "version": "v3.4.36", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "51a9eef3091b2c06f63d8b1b98de9d101b5e0e77" + "reference": "3d9f46a6960fd5cd7f030f86adc5b4b63bcfa4e3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/51a9eef3091b2c06f63d8b1b98de9d101b5e0e77", - "reference": "51a9eef3091b2c06f63d8b1b98de9d101b5e0e77", + "url": "https://api.github.com/repos/symfony/cache/zipball/3d9f46a6960fd5cd7f030f86adc5b4b63bcfa4e3", + "reference": "3d9f46a6960fd5cd7f030f86adc5b4b63bcfa4e3", "shasum": "" }, "require": { @@ -434,20 +441,20 @@ "caching", "psr6" ], - "time": "2018-04-27T05:49:57+00:00" + "time": "2019-12-01T10:45:41+00:00" }, { "name": "symfony/class-loader", - "version": "v3.4.9", + "version": "v3.4.36", "source": { "type": "git", "url": "https://github.com/symfony/class-loader.git", - "reference": "e63c12699822bb3b667e7216ba07fbcc3a3e203e" + "reference": "e212b06996819a2bce026a63da03b7182d05a690" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/class-loader/zipball/e63c12699822bb3b667e7216ba07fbcc3a3e203e", - "reference": "e63c12699822bb3b667e7216ba07fbcc3a3e203e", + "url": "https://api.github.com/repos/symfony/class-loader/zipball/e212b06996819a2bce026a63da03b7182d05a690", + "reference": "e212b06996819a2bce026a63da03b7182d05a690", "shasum": "" }, "require": { @@ -490,25 +497,26 @@ ], "description": "Symfony ClassLoader Component", "homepage": "https://symfony.com", - "time": "2018-01-03T07:37:34+00:00" + "time": "2019-08-20T13:31:17+00:00" }, { "name": "symfony/config", - "version": "v3.4.9", + "version": "v3.4.36", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "7c2a9d44f4433863e9bca682e7f03609234657f9" + "reference": "a599a867d0e4a07c342b5f1e656b3915a540ddbe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/7c2a9d44f4433863e9bca682e7f03609234657f9", - "reference": "7c2a9d44f4433863e9bca682e7f03609234657f9", + "url": "https://api.github.com/repos/symfony/config/zipball/a599a867d0e4a07c342b5f1e656b3915a540ddbe", + "reference": "a599a867d0e4a07c342b5f1e656b3915a540ddbe", "shasum": "" }, "require": { "php": "^5.5.9|>=7.0.8", - "symfony/filesystem": "~2.8|~3.0|~4.0" + "symfony/filesystem": "~2.8|~3.0|~4.0", + "symfony/polyfill-ctype": "~1.8" }, "conflict": { "symfony/dependency-injection": "<3.3", @@ -553,20 +561,20 @@ ], "description": "Symfony Config Component", "homepage": "https://symfony.com", - "time": "2018-03-19T22:32:39+00:00" + "time": "2019-12-01T10:45:41+00:00" }, { "name": "symfony/debug", - "version": "v3.4.9", + "version": "v3.4.36", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "1b95888cfd996484527cb41e8952d9a5eaf7454f" + "reference": "f72e33fdb1170b326e72c3157f0cd456351dd086" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/1b95888cfd996484527cb41e8952d9a5eaf7454f", - "reference": "1b95888cfd996484527cb41e8952d9a5eaf7454f", + "url": "https://api.github.com/repos/symfony/debug/zipball/f72e33fdb1170b326e72c3157f0cd456351dd086", + "reference": "f72e33fdb1170b326e72c3157f0cd456351dd086", "shasum": "" }, "require": { @@ -609,20 +617,20 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2018-04-30T16:53:52+00:00" + "time": "2019-10-24T15:33:53+00:00" }, { "name": "symfony/dependency-injection", - "version": "v3.4.9", + "version": "v3.4.36", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "54ff9d78b56429f9a1ac12e60bfb6d169c0468e3" + "reference": "0d201916bfb3af939fec3c0c8815ea16c60ac1a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/54ff9d78b56429f9a1ac12e60bfb6d169c0468e3", - "reference": "54ff9d78b56429f9a1ac12e60bfb6d169c0468e3", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/0d201916bfb3af939fec3c0c8815ea16c60ac1a2", + "reference": "0d201916bfb3af939fec3c0c8815ea16c60ac1a2", "shasum": "" }, "require": { @@ -680,20 +688,20 @@ ], "description": "Symfony DependencyInjection Component", "homepage": "https://symfony.com", - "time": "2018-04-29T14:04:08+00:00" + "time": "2019-12-01T08:33:36+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v3.4.9", + "version": "v3.4.36", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "fdd5abcebd1061ec647089c6c41a07ed60af09f8" + "reference": "f9031c22ec127d4a2450760f81a8677fe8a10177" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/fdd5abcebd1061ec647089c6c41a07ed60af09f8", - "reference": "fdd5abcebd1061ec647089c6c41a07ed60af09f8", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/f9031c22ec127d4a2450760f81a8677fe8a10177", + "reference": "f9031c22ec127d4a2450760f81a8677fe8a10177", "shasum": "" }, "require": { @@ -743,24 +751,25 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2018-04-06T07:35:25+00:00" + "time": "2019-10-24T15:33:53+00:00" }, { "name": "symfony/filesystem", - "version": "v3.4.9", + "version": "v3.4.36", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "253a4490b528597aa14d2bf5aeded6f5e5e4a541" + "reference": "00cdad0936d06fab136944bc2342b762b1c3a4a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/253a4490b528597aa14d2bf5aeded6f5e5e4a541", - "reference": "253a4490b528597aa14d2bf5aeded6f5e5e4a541", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/00cdad0936d06fab136944bc2342b762b1c3a4a2", + "reference": "00cdad0936d06fab136944bc2342b762b1c3a4a2", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-ctype": "~1.8" }, "type": "library", "extra": { @@ -792,20 +801,20 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2018-02-22T10:48:49+00:00" + "time": "2019-11-25T16:36:22+00:00" }, { "name": "symfony/finder", - "version": "v3.4.9", + "version": "v3.4.36", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "bd14efe8b1fabc4de82bf50dce62f05f9a102433" + "reference": "290ae21279b37bfd287cdcce640d51204e84afdf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/bd14efe8b1fabc4de82bf50dce62f05f9a102433", - "reference": "bd14efe8b1fabc4de82bf50dce62f05f9a102433", + "url": "https://api.github.com/repos/symfony/finder/zipball/290ae21279b37bfd287cdcce640d51204e84afdf", + "reference": "290ae21279b37bfd287cdcce640d51204e84afdf", "shasum": "" }, "require": { @@ -841,34 +850,35 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2018-04-04T05:07:11+00:00" + "time": "2019-11-17T21:55:15+00:00" }, { "name": "symfony/framework-bundle", - "version": "v3.4.9", + "version": "v3.4.36", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "7b48684e20bc84b6083cc44bf7d14057d98701b6" + "reference": "0d61117c7a770da0bd8bbe7ccfa34d8063f272ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/7b48684e20bc84b6083cc44bf7d14057d98701b6", - "reference": "7b48684e20bc84b6083cc44bf7d14057d98701b6", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/0d61117c7a770da0bd8bbe7ccfa34d8063f272ea", + "reference": "0d61117c7a770da0bd8bbe7ccfa34d8063f272ea", "shasum": "" }, "require": { "ext-xml": "*", "php": "^5.5.9|>=7.0.8", - "symfony/cache": "~3.4|~4.0", + "symfony/cache": "~3.4.31|^4.3.4", "symfony/class-loader": "~3.2", - "symfony/config": "~3.4|~4.0", - "symfony/dependency-injection": "^3.4.3|^4.0.3", + "symfony/config": "^3.4.31|^4.3.4", + "symfony/debug": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "^3.4.24|^4.2.5", "symfony/event-dispatcher": "~3.4|~4.0", "symfony/filesystem": "~2.8|~3.0|~4.0", "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/http-foundation": "^3.3.11|~4.0", - "symfony/http-kernel": "~3.4|~4.0", + "symfony/http-foundation": "^3.4.13|~4.3", + "symfony/http-kernel": "^3.4.31|^4.3.4", "symfony/polyfill-mbstring": "~1.0", "symfony/routing": "^3.4.5|^4.0.5" }, @@ -887,24 +897,23 @@ "symfony/workflow": "<3.3" }, "require-dev": { - "doctrine/annotations": "~1.0", + "doctrine/annotations": "~1.7", "doctrine/cache": "~1.0", "fig/link-util": "^1.0", "phpdocumentor/reflection-docblock": "^3.0|^4.0", "symfony/asset": "~3.3|~4.0", "symfony/browser-kit": "~2.8|~3.0|~4.0", - "symfony/console": "~3.4|~4.0", + "symfony/console": "~3.4.31|^4.3.4", "symfony/css-selector": "~2.8|~3.0|~4.0", "symfony/dom-crawler": "~2.8|~3.0|~4.0", "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/form": "~3.4|~4.0", + "symfony/form": "^3.4.31|^4.3.4", "symfony/lock": "~3.4|~4.0", "symfony/polyfill-intl-icu": "~1.0", "symfony/process": "~2.8|~3.0|~4.0", "symfony/property-info": "~3.3|~4.0", - "symfony/security": "~2.8|~3.0|~4.0", "symfony/security-core": "~3.2|~4.0", - "symfony/security-csrf": "~2.8|~3.0|~4.0", + "symfony/security-csrf": "^2.8.31|^3.3.13|~4.0", "symfony/serializer": "~3.3|~4.0", "symfony/stopwatch": "~3.4|~4.0", "symfony/templating": "~2.8|~3.0|~4.0", @@ -956,20 +965,20 @@ ], "description": "Symfony FrameworkBundle", "homepage": "https://symfony.com", - "time": "2018-04-30T16:54:07+00:00" + "time": "2019-11-23T20:30:33+00:00" }, { "name": "symfony/http-foundation", - "version": "v3.4.9", + "version": "v3.4.36", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "edc43b1a50402bb06b5111eb86b275c87a93e373" + "reference": "d2d0cfe8e319d9df44c4cca570710fcf221d4593" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/edc43b1a50402bb06b5111eb86b275c87a93e373", - "reference": "edc43b1a50402bb06b5111eb86b275c87a93e373", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d2d0cfe8e319d9df44c4cca570710fcf221d4593", + "reference": "d2d0cfe8e319d9df44c4cca570710fcf221d4593", "shasum": "" }, "require": { @@ -1010,32 +1019,34 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2018-04-30T01:05:13+00:00" + "time": "2019-11-28T12:52:59+00:00" }, { "name": "symfony/http-kernel", - "version": "v3.4.9", + "version": "v3.4.36", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "280fcedbcb3dabcc467a9c1734054af61928fe4f" + "reference": "c42c8339acb28cfff0fb1786948db4d23d609ff7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/280fcedbcb3dabcc467a9c1734054af61928fe4f", - "reference": "280fcedbcb3dabcc467a9c1734054af61928fe4f", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/c42c8339acb28cfff0fb1786948db4d23d609ff7", + "reference": "c42c8339acb28cfff0fb1786948db4d23d609ff7", "shasum": "" }, "require": { "php": "^5.5.9|>=7.0.8", "psr/log": "~1.0", - "symfony/debug": "~2.8|~3.0|~4.0", + "symfony/debug": "^3.3.3|~4.0", "symfony/event-dispatcher": "~2.8|~3.0|~4.0", - "symfony/http-foundation": "^3.4.4|^4.0.4" + "symfony/http-foundation": "~3.4.12|~4.0.12|^4.1.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php56": "~1.8" }, "conflict": { "symfony/config": "<2.8", - "symfony/dependency-injection": "<3.4.5|<4.0.5,>=4", + "symfony/dependency-injection": "<3.4.10|<4.0.10,>=4", "symfony/var-dumper": "<3.3", "twig/twig": "<1.34|<2.4,>=2" }, @@ -1049,7 +1060,7 @@ "symfony/config": "~2.8|~3.0|~4.0", "symfony/console": "~2.8|~3.0|~4.0", "symfony/css-selector": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "^3.4.5|^4.0.5", + "symfony/dependency-injection": "^3.4.10|^4.0.10", "symfony/dom-crawler": "~2.8|~3.0|~4.0", "symfony/expression-language": "~2.8|~3.0|~4.0", "symfony/finder": "~2.8|~3.0|~4.0", @@ -1098,24 +1109,25 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2018-04-30T19:27:02+00:00" + "time": "2019-12-01T13:50:37+00:00" }, { "name": "symfony/inflector", - "version": "v3.4.9", + "version": "v3.4.36", "source": { "type": "git", "url": "https://github.com/symfony/inflector.git", - "reference": "217fa0f0e8fce417bd225e4195b12c56e87273a8" + "reference": "67e9285380dd1fa56b870929d0379f41b9c56e87" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/inflector/zipball/217fa0f0e8fce417bd225e4195b12c56e87273a8", - "reference": "217fa0f0e8fce417bd225e4195b12c56e87273a8", + "url": "https://api.github.com/repos/symfony/inflector/zipball/67e9285380dd1fa56b870929d0379f41b9c56e87", + "reference": "67e9285380dd1fa56b870929d0379f41b9c56e87", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-ctype": "~1.8" }, "type": "library", "extra": { @@ -1155,20 +1167,20 @@ "symfony", "words" ], - "time": "2018-01-03T17:14:19+00:00" + "time": "2019-09-17T08:36:34+00:00" }, { "name": "symfony/options-resolver", - "version": "v3.4.9", + "version": "v3.4.36", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "f3109a6aedd20e35c3a33190e932c2b063b7b50e" + "reference": "b224d20be60e6f7b55cd66914379a13a0b28651a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/f3109a6aedd20e35c3a33190e932c2b063b7b50e", - "reference": "f3109a6aedd20e35c3a33190e932c2b063b7b50e", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/b224d20be60e6f7b55cd66914379a13a0b28651a", + "reference": "b224d20be60e6f7b55cd66914379a13a0b28651a", "shasum": "" }, "require": { @@ -1209,20 +1221,20 @@ "configuration", "options" ], - "time": "2018-01-11T07:56:07+00:00" + "time": "2019-10-26T11:02:01+00:00" }, { "name": "symfony/polyfill-apcu", - "version": "v1.8.0", + "version": "v1.13.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-apcu.git", - "reference": "9b83bd010112ec196410849e840d9b9fefcb15ad" + "reference": "a8e961c841b9ec52927a87914f8820a1ad8f8116" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/9b83bd010112ec196410849e840d9b9fefcb15ad", - "reference": "9b83bd010112ec196410849e840d9b9fefcb15ad", + "url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/a8e961c841b9ec52927a87914f8820a1ad8f8116", + "reference": "a8e961c841b9ec52927a87914f8820a1ad8f8116", "shasum": "" }, "require": { @@ -1231,7 +1243,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8-dev" + "dev-master": "1.13-dev" } }, "autoload": { @@ -1265,20 +1277,78 @@ "portable", "shim" ], - "time": "2018-04-26T10:06:28+00:00" + "time": "2019-11-27T13:56:44+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.13.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", + "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.13-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "time": "2019-11-27T13:56:44+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.8.0", + "version": "v1.13.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "3296adf6a6454a050679cde90f95350ad604b171" + "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/3296adf6a6454a050679cde90f95350ad604b171", - "reference": "3296adf6a6454a050679cde90f95350ad604b171", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7b4aab9743c30be783b73de055d24a39cf4b954f", + "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f", "shasum": "" }, "require": { @@ -1290,7 +1360,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8-dev" + "dev-master": "1.13-dev" } }, "autoload": { @@ -1324,30 +1394,86 @@ "portable", "shim" ], - "time": "2018-04-26T10:06:28+00:00" + "time": "2019-11-27T14:18:11+00:00" + }, + { + "name": "symfony/polyfill-php56", + "version": "v1.13.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php56.git", + "reference": "53dd1cdf3cb986893ccf2b96665b25b3abb384f4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/53dd1cdf3cb986893ccf2b96665b25b3abb384f4", + "reference": "53dd1cdf3cb986893ccf2b96665b25b3abb384f4", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "symfony/polyfill-util": "~1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.13-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php56\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2019-11-27T13:56:44+00:00" }, { "name": "symfony/polyfill-php70", - "version": "v1.8.0", + "version": "v1.13.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php70.git", - "reference": "77454693d8f10dd23bb24955cffd2d82db1007a6" + "reference": "af23c7bb26a73b850840823662dda371484926c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/77454693d8f10dd23bb24955cffd2d82db1007a6", - "reference": "77454693d8f10dd23bb24955cffd2d82db1007a6", + "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/af23c7bb26a73b850840823662dda371484926c4", + "reference": "af23c7bb26a73b850840823662dda371484926c4", "shasum": "" }, "require": { - "paragonie/random_compat": "~1.0|~2.0", + "paragonie/random_compat": "~1.0|~2.0|~9.99", "php": ">=5.3.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8-dev" + "dev-master": "1.13-dev" } }, "autoload": { @@ -1383,20 +1509,72 @@ "portable", "shim" ], - "time": "2018-04-26T10:06:28+00:00" + "time": "2019-11-27T13:56:44+00:00" + }, + { + "name": "symfony/polyfill-util", + "version": "v1.13.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-util.git", + "reference": "964a67f293b66b95883a5ed918a65354fcd2258f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/964a67f293b66b95883a5ed918a65354fcd2258f", + "reference": "964a67f293b66b95883a5ed918a65354fcd2258f", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.13-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Util\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony utilities for portability of PHP codes", + "homepage": "https://symfony.com", + "keywords": [ + "compat", + "compatibility", + "polyfill", + "shim" + ], + "time": "2019-11-27T13:56:44+00:00" }, { "name": "symfony/property-access", - "version": "v3.4.9", + "version": "v3.4.36", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "a6e8c778b220dfd5cd5f5dcb09f87ee232dd608a" + "reference": "9ec5e220898a97b92b8784422396f4e244c04d29" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/a6e8c778b220dfd5cd5f5dcb09f87ee232dd608a", - "reference": "a6e8c778b220dfd5cd5f5dcb09f87ee232dd608a", + "url": "https://api.github.com/repos/symfony/property-access/zipball/9ec5e220898a97b92b8784422396f4e244c04d29", + "reference": "9ec5e220898a97b92b8784422396f4e244c04d29", "shasum": "" }, "require": { @@ -1451,20 +1629,20 @@ "property path", "reflection" ], - "time": "2018-01-03T07:37:34+00:00" + "time": "2019-12-01T10:45:41+00:00" }, { "name": "symfony/routing", - "version": "v3.4.9", + "version": "v3.4.36", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "9deb375986f5d1f37283d8386716d26985a0f4b6" + "reference": "b689ccd48e234ea404806d94b07eeb45f9f6f06a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/9deb375986f5d1f37283d8386716d26985a0f4b6", - "reference": "9deb375986f5d1f37283d8386716d26985a0f4b6", + "url": "https://api.github.com/repos/symfony/routing/zipball/b689ccd48e234ea404806d94b07eeb45f9f6f06a", + "reference": "b689ccd48e234ea404806d94b07eeb45f9f6f06a", "shasum": "" }, "require": { @@ -1477,7 +1655,6 @@ }, "require-dev": { "doctrine/annotations": "~1.0", - "doctrine/common": "~2.2", "psr/log": "~1.0", "symfony/config": "^3.3.1|~4.0", "symfony/dependency-injection": "~3.3|~4.0", @@ -1488,7 +1665,6 @@ "suggest": { "doctrine/annotations": "For using the annotation loader", "symfony/config": "For using the all-in-one router or any loader", - "symfony/dependency-injection": "For loading routes from a service", "symfony/expression-language": "For using expression matching", "symfony/http-foundation": "For using a Symfony Request object", "symfony/yaml": "For using the YAML loader" @@ -1529,24 +1705,25 @@ "uri", "url" ], - "time": "2018-04-12T09:01:03+00:00" + "time": "2019-12-01T08:33:36+00:00" }, { "name": "symfony/serializer", - "version": "v3.4.9", + "version": "v3.4.36", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "d4dc1551da627273230fe16511f4bb4844c02399" + "reference": "05a1125ff3fdd10a68a2857a5d1d4a1ceb93ba42" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/d4dc1551da627273230fe16511f4bb4844c02399", - "reference": "d4dc1551da627273230fe16511f4bb4844c02399", + "url": "https://api.github.com/repos/symfony/serializer/zipball/05a1125ff3fdd10a68a2857a5d1d4a1ceb93ba42", + "reference": "05a1125ff3fdd10a68a2857a5d1d4a1ceb93ba42", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-ctype": "~1.8" }, "conflict": { "phpdocumentor/type-resolver": "<0.2.1", @@ -1564,7 +1741,7 @@ "symfony/dependency-injection": "~3.2|~4.0", "symfony/http-foundation": "~2.8|~3.0|~4.0", "symfony/property-access": "~2.8|~3.0|~4.0", - "symfony/property-info": "~3.1|~4.0", + "symfony/property-info": "^3.4.13|~4.0", "symfony/yaml": "~3.4|~4.0" }, "suggest": { @@ -1572,7 +1749,7 @@ "doctrine/cache": "For using the default cached annotation reader and metadata cache.", "psr/cache-implementation": "For using the metadata cache.", "symfony/config": "For using the XML mapping loader.", - "symfony/http-foundation": "To use the DataUriNormalizer.", + "symfony/http-foundation": "For using a MIME type guesser within the DataUriNormalizer.", "symfony/property-access": "For using the ObjectNormalizer.", "symfony/property-info": "To deserialize relations.", "symfony/yaml": "For using the default YAML mapping loader." @@ -1607,7 +1784,7 @@ ], "description": "Symfony Serializer Component", "homepage": "https://symfony.com", - "time": "2018-03-15T19:08:29+00:00" + "time": "2019-11-25T16:36:22+00:00" } ], "packages-dev": [ @@ -1925,38 +2102,38 @@ }, { "name": "phpspec/prophecy", - "version": "1.7.6", + "version": "1.10.1", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712" + "reference": "cbe1df668b3fe136bcc909126a0f529a78d4cbbc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/33a7e3c4fda54e912ff6338c48823bd5c0f0b712", - "reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/cbe1df668b3fe136bcc909126a0f529a78d4cbbc", + "reference": "cbe1df668b3fe136bcc909126a0f529a78d4cbbc", "shasum": "" }, "require": { "doctrine/instantiator": "^1.0.2", "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", - "sebastian/comparator": "^1.1|^2.0|^3.0", + "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", + "sebastian/comparator": "^1.2.3|^2.0|^3.0", "sebastian/recursion-context": "^1.0|^2.0|^3.0" }, "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5" + "phpspec/phpspec": "^2.5 || ^3.2", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7.x-dev" + "dev-master": "1.10.x-dev" } }, "autoload": { - "psr-0": { - "Prophecy\\": "src/" + "psr-4": { + "Prophecy\\": "src/Prophecy" } }, "notification-url": "https://packagist.org/downloads/", @@ -1984,7 +2161,7 @@ "spy", "stub" ], - "time": "2018-04-18T13:57:24+00:00" + "time": "2019-12-22T21:05:45+00:00" }, { "name": "phpunit/php-code-coverage", @@ -2374,6 +2551,7 @@ "mock", "xunit" ], + "abandoned": true, "time": "2017-06-30T09:13:00+00:00" }, { @@ -2382,32 +2560,36 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "d3268ea60c79284f9a8db7b78eb48cc99cc5d471" + "reference": "67ac6ea8f4a078c3c9b7aec5d7ae70f098c37389" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/d3268ea60c79284f9a8db7b78eb48cc99cc5d471", - "reference": "d3268ea60c79284f9a8db7b78eb48cc99cc5d471", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/67ac6ea8f4a078c3c9b7aec5d7ae70f098c37389", + "reference": "67ac6ea8f4a078c3c9b7aec5d7ae70f098c37389", "shasum": "" }, "conflict": { "3f/pygmentize": "<1.2", "adodb/adodb-php": "<5.20.12", + "alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1", "amphp/artax": "<1.0.6|>=2,<2.0.6", "amphp/http": "<1.0.1", + "api-platform/core": ">=2.2,<2.2.10|>=2.3,<2.3.6", "asymmetricrypt/asymmetricrypt": ">=0,<9.9.99", "aws/aws-sdk-php": ">=3,<3.2.1", + "brightlocal/phpwhois": "<=4.2.5", "bugsnag/bugsnag-laravel": ">=2,<2.0.2", - "cakephp/cakephp": ">=1.3,<1.3.18|>=2,<2.4.99|>=2.5,<2.5.99|>=2.6,<2.6.12|>=2.7,<2.7.6|>=3,<3.0.15|>=3.1,<3.1.4", + "cakephp/cakephp": ">=1.3,<1.3.18|>=2,<2.4.99|>=2.5,<2.5.99|>=2.6,<2.6.12|>=2.7,<2.7.6|>=3,<3.5.18|>=3.6,<3.6.15|>=3.7,<3.7.7", "cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4", "cartalyst/sentry": "<=2.1.6", "codeigniter/framework": "<=3.0.6", - "composer/composer": "<=1.0.0-alpha11", + "composer/composer": "<=1-alpha.11", "contao-components/mediaelement": ">=2.14.2,<2.21.1", - "contao/core": ">=2,<3.5.35", - "contao/core-bundle": ">=4,<4.4.18|>=4.5,<4.5.8", + "contao/core": ">=2,<3.5.39", + "contao/core-bundle": ">=4,<4.4.46|>=4.5,<4.8.6", "contao/listing-bundle": ">=4,<4.4.8", - "contao/newsletter-bundle": ">=4,<4.1", + "datadog/dd-trace": ">=0.30,<0.30.2", + "david-garcia/phpwhois": "<=4.3.1", "doctrine/annotations": ">=1,<1.2.7", "doctrine/cache": ">=1,<1.3.2|>=1.4,<1.4.2", "doctrine/common": ">=2,<2.4.3|>=2.5,<2.5.1", @@ -2418,79 +2600,130 @@ "doctrine/mongodb-odm-bundle": ">=2,<3.0.1", "doctrine/orm": ">=2,<2.4.8|>=2.5,<2.5.1", "dompdf/dompdf": ">=0.6,<0.6.2", - "drupal/core": ">=7,<7.58|>=8,<8.4.6|>=8.5,<8.5.1", - "drupal/drupal": ">=7,<7.58|>=8,<8.4.6|>=8.5,<8.5.1", - "erusev/parsedown": "<1.7", - "ezsystems/ezpublish-legacy": ">=5.3,<5.3.12.3|>=5.4,<5.4.11.3|>=2017.8,<2017.8.1.1|>=2017.12,<2017.12.2.1", + "drupal/core": ">=7,<7.69|>=8,<8.7.11|>=8.8,<8.8.1", + "drupal/drupal": ">=7,<7.69|>=8,<8.7.11|>=8.8,<8.8.1", + "endroid/qr-code-bundle": "<3.4.2", + "erusev/parsedown": "<1.7.2", + "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.4", + "ezsystems/ezpublish-kernel": ">=5.3,<5.3.12.1|>=5.4,<5.4.13.1|>=6,<6.7.9.1|>=6.8,<6.13.5.1|>=7,<7.2.4.1|>=7.3,<7.3.2.1", + "ezsystems/ezpublish-legacy": ">=5.3,<5.3.12.6|>=5.4,<5.4.12.3|>=2011,<2017.12.4.3|>=2018.6,<2018.6.1.4|>=2018.9,<2018.9.1.3", + "ezsystems/repository-forms": ">=2.3,<2.3.2.1", + "ezyang/htmlpurifier": "<4.1.1", "firebase/php-jwt": "<2", + "fooman/tcpdf": "<6.2.22", + "fossar/tcpdf-parser": "<6.2.22", "friendsofsymfony/rest-bundle": ">=1.2,<1.2.2", "friendsofsymfony/user-bundle": ">=1.2,<1.3.5", + "fuel/core": "<1.8.1", "gree/jose": "<=2.2", "gregwar/rst": "<1.0.3", - "guzzlehttp/guzzle": ">=6,<6.2.1|>=4.0.0-rc2,<4.2.4|>=5,<5.3.1", + "guzzlehttp/guzzle": ">=4-rc.2,<4.2.4|>=5,<5.3.1|>=6,<6.2.1", "illuminate/auth": ">=4,<4.0.99|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.10", + "illuminate/cookie": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.42|>=5.6,<5.6.30", "illuminate/database": ">=4,<4.0.99|>=4.1,<4.1.29", "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", + "ivankristianto/phpwhois": "<=4.3", + "james-heinrich/getid3": "<1.9.9", "joomla/session": "<1.3.1", + "jsmitty12/phpwhois": "<5.1", + "kazist/phpwhois": "<=4.2.6", "kreait/firebase-php": ">=3.2,<3.8.1", - "laravel/framework": ">=4,<4.0.99|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", + "la-haute-societe/tcpdf": "<6.2.22", + "laravel/framework": ">=4,<4.0.99|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.42|>=5.6,<5.6.30", "laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10", - "magento/magento1ce": ">=1.5.0.1,<1.9.3.2", - "magento/magento1ee": ">=1.9,<1.14.3.2", - "magento/magento2ce": ">=2,<2.2", + "league/commonmark": "<0.18.3", + "magento/magento1ce": "<1.9.4.3", + "magento/magento1ee": ">=1,<1.14.4.3", + "magento/product-community-edition": ">=2,<2.2.10|>=2.3,<2.3.2-p.2", "monolog/monolog": ">=1.8,<1.12", "namshi/jose": "<2.2", "onelogin/php-saml": "<2.10.4", + "openid/php-openid": "<2.3", "oro/crm": ">=1.7,<1.7.4", "oro/platform": ">=1.7,<1.7.4", "padraic/humbug_get_contents": "<1.1.2", "pagarme/pagarme-php": ">=0,<3", "paragonie/random_compat": "<2", "paypal/merchant-sdk-php": "<3.12", - "phpmailer/phpmailer": ">=5,<5.2.24", + "pear/archive_tar": "<1.4.4", + "phpmailer/phpmailer": ">=5,<5.2.27|>=6,<6.0.6", + "phpoffice/phpexcel": "<=1.8.1", + "phpoffice/phpspreadsheet": "<=1.5", "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5.0.10,<5.6.3", + "phpwhois/phpwhois": "<=4.2.5", "phpxmlrpc/extras": "<0.6.1", - "propel/propel": ">=2.0.0-alpha1,<=2.0.0-alpha7", + "propel/propel": ">=2-alpha.1,<=2-alpha.7", "propel/propel1": ">=1,<=1.7.1", "pusher/pusher-php-server": "<2.2.1", + "robrichards/xmlseclibs": ">=1,<3.0.4", "sabre/dav": ">=1.6,<1.6.99|>=1.7,<1.7.11|>=1.8,<1.8.9", + "scheb/two-factor-bundle": ">=0,<3.26|>=4,<4.11", + "sensiolabs/connect": "<4.2.3", + "serluck/phpwhois": "<=4.2.6", "shopware/shopware": "<5.3.7", "silverstripe/cms": ">=3,<=3.0.11|>=3.1,<3.1.11", "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3", - "silverstripe/framework": ">=3,<3.3", + "silverstripe/framework": ">=3,<3.6.7|>=3.7,<3.7.3|>=4,<4.4", + "silverstripe/graphql": ">=2,<2.0.5|>=3,<3.1.2", + "silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1", + "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4", "silverstripe/userforms": "<3", + "simple-updates/phpwhois": "<=1", "simplesamlphp/saml2": "<1.10.6|>=2,<2.3.8|>=3,<3.1.4", - "simplesamlphp/simplesamlphp": "<1.15.2", + "simplesamlphp/simplesamlphp": "<1.17.8", "simplesamlphp/simplesamlphp-module-infocard": "<1.0.1", "slim/slim": "<2.6", + "smarty/smarty": "<3.1.33", "socalnick/scn-social-auth": "<1.15.2", + "spoonity/tcpdf": "<6.2.22", "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1", "stormpath/sdk": ">=0,<9.9.99", + "studio-42/elfinder": "<2.1.48", "swiftmailer/swiftmailer": ">=4,<5.4.5", - "symfony/dependency-injection": ">=2,<2.0.17", - "symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", - "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2", - "symfony/http-foundation": ">=2,<2.3.27|>=2.4,<2.5.11|>=2.6,<2.6.6", - "symfony/http-kernel": ">=2,<2.3.29|>=2.4,<2.5.12|>=2.6,<2.6.8", + "sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2", + "sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1", + "sylius/grid-bundle": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1", + "sylius/sylius": ">=1,<1.1.18|>=1.2,<1.2.17|>=1.3,<1.3.12|>=1.4,<1.4.4", + "symfony/cache": ">=3.1,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8", + "symfony/dependency-injection": ">=2,<2.0.17|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1", + "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/http-foundation": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8", + "symfony/http-kernel": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8", "symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", + "symfony/mime": ">=4.3,<4.3.8", + "symfony/phpunit-bridge": ">=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/polyfill": ">=1,<1.10", + "symfony/polyfill-php55": ">=1,<1.10", + "symfony/proxy-manager-bridge": ">=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", "symfony/routing": ">=2,<2.0.19", - "symfony/security": ">=2,<2.0.25|>=2.1,<2.1.13|>=2.2,<2.2.9|>=2.3,<2.3.37|>=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8.23,<2.8.25|>=3.2.10,<3.2.12|>=3.3.3,<3.3.5", - "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<2.8.6|>=2.8.23,<2.8.25|>=3,<3.0.6|>=3.2.10,<3.2.12|>=3.3.3,<3.3.5", - "symfony/security-csrf": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", - "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", + "symfony/security": ">=2,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/security-bundle": ">=2,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", + "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<2.8.37|>=3,<3.3.17|>=3.4,<3.4.7|>=4,<4.0.7", + "symfony/security-csrf": ">=2.4,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", + "symfony/security-guard": ">=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", + "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.2.12|>=4.3,<4.3.8", "symfony/serializer": ">=2,<2.0.11", - "symfony/symfony": ">=2,<2.3.41|>=2.4,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", + "symfony/symfony": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8", "symfony/translation": ">=2,<2.0.17", "symfony/validator": ">=2,<2.0.24|>=2.1,<2.1.12|>=2.2,<2.2.5|>=2.3,<2.3.3", + "symfony/var-exporter": ">=4.2,<4.2.12|>=4.3,<4.3.8", "symfony/web-profiler-bundle": ">=2,<2.3.19|>=2.4,<2.4.9|>=2.5,<2.5.4", "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7", + "tecnickcom/tcpdf": "<6.2.22", "thelia/backoffice-default-template": ">=2.1,<2.1.2", - "thelia/thelia": ">=2.1.0-beta1,<2.1.3|>=2.1,<2.1.2", + "thelia/thelia": ">=2.1-beta.1,<2.1.3", + "theonedemon/phpwhois": "<=4.2.5", "titon/framework": ">=0,<9.9.99", - "twig/twig": "<1.20", - "typo3/cms": ">=6.2,<6.2.30|>=7,<7.6.22|>=8,<8.7.5", + "truckersmp/phpwhois": "<=4.3.1", + "twig/twig": "<1.38|>=2,<2.7", + "typo3/cms": ">=6.2,<6.2.30|>=7,<7.6.32|>=8,<8.7.30|>=9,<9.5.12|>=10,<10.2.1", + "typo3/cms-core": ">=8,<8.7.30|>=9,<9.5.12|>=10,<10.2.1", "typo3/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.10|>=3.1,<3.1.7|>=3.2,<3.2.7|>=3.3,<3.3.5", "typo3/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4", + "typo3/phar-stream-wrapper": ">=1,<2.1.1|>=3,<3.1.1", + "ua-parser/uap-php": "<3.8", + "wallabag/tcpdf": "<6.2.22", "willdurand/js-translation-bundle": "<2.1.1", "yiisoft/yii": ">=1.1.14,<1.1.15", "yiisoft/yii2": "<2.0.15", @@ -2504,9 +2737,11 @@ "zendframework/zend-captcha": ">=2,<2.4.9|>=2.5,<2.5.2", "zendframework/zend-crypt": ">=2,<2.4.9|>=2.5,<2.5.2", "zendframework/zend-db": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.10|>=2.3,<2.3.5", - "zendframework/zend-diactoros": ">=1,<1.0.4", + "zendframework/zend-developer-tools": ">=1.2.2,<1.2.3", + "zendframework/zend-diactoros": ">=1,<1.8.4", + "zendframework/zend-feed": ">=1,<2.10.3", "zendframework/zend-form": ">=2,<2.2.7|>=2.3,<2.3.1", - "zendframework/zend-http": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.3,<2.3.8|>=2.4,<2.4.1", + "zendframework/zend-http": ">=1,<2.8.1", "zendframework/zend-json": ">=2.1,<2.1.6|>=2.2,<2.2.6", "zendframework/zend-ldap": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.8|>=2.3,<2.3.3", "zendframework/zend-mail": ">=2,<2.4.11|>=2.5,<2.7.2", @@ -2515,7 +2750,7 @@ "zendframework/zend-validator": ">=2.3,<2.3.6", "zendframework/zend-view": ">=2,<2.2.7|>=2.3,<2.3.1", "zendframework/zend-xmlrpc": ">=2.1,<2.1.6|>=2.2,<2.2.6", - "zendframework/zendframework": ">=2,<2.4.11|>=2.5,<2.5.1", + "zendframework/zendframework": "<2.5.1", "zendframework/zendframework1": "<1.12.20", "zendframework/zendopenid": ">=2,<2.0.2", "zendframework/zendxml": ">=1,<1.0.1", @@ -2537,7 +2772,7 @@ } ], "description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it", - "time": "2018-04-30T07:23:33+00:00" + "time": "2020-01-06T19:16:46+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -3054,16 +3289,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.2.3", + "version": "3.5.3", "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "4842476c434e375f9d3182ff7b89059583aa8b27" + "reference": "557a1fc7ac702c66b0bbfe16ab3d55839ef724cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/4842476c434e375f9d3182ff7b89059583aa8b27", - "reference": "4842476c434e375f9d3182ff7b89059583aa8b27", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/557a1fc7ac702c66b0bbfe16ab3d55839ef724cb", + "reference": "557a1fc7ac702c66b0bbfe16ab3d55839ef724cb", "shasum": "" }, "require": { @@ -3096,12 +3331,12 @@ } ], "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", - "homepage": "http://www.squizlabs.com/php-codesniffer", + "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", "keywords": [ "phpcs", "standards" ], - "time": "2018-02-20T21:35:23+00:00" + "time": "2019-12-04T04:46:47+00:00" }, { "name": "superbrave/coding-standards", @@ -3138,20 +3373,21 @@ }, { "name": "symfony/yaml", - "version": "v3.4.9", + "version": "v3.4.36", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "033cfa61ef06ee0847e056e530201842b6e926c3" + "reference": "dab657db15207879217fc81df4f875947bf68804" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/033cfa61ef06ee0847e056e530201842b6e926c3", - "reference": "033cfa61ef06ee0847e056e530201842b6e926c3", + "url": "https://api.github.com/repos/symfony/yaml/zipball/dab657db15207879217fc81df4f875947bf68804", + "reference": "dab657db15207879217fc81df4f875947bf68804", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-ctype": "~1.8" }, "conflict": { "symfony/console": "<3.4" @@ -3192,35 +3428,33 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2018-04-08T08:21:29+00:00" + "time": "2019-10-24T15:33:53+00:00" }, { "name": "webmozart/assert", - "version": "1.3.0", + "version": "1.6.0", "source": { "type": "git", "url": "https://github.com/webmozart/assert.git", - "reference": "0df1908962e7a3071564e857d86874dad1ef204a" + "reference": "573381c0a64f155a0d9a23f4b0c797194805b925" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a", - "reference": "0df1908962e7a3071564e857d86874dad1ef204a", + "url": "https://api.github.com/repos/webmozart/assert/zipball/573381c0a64f155a0d9a23f4b0c797194805b925", + "reference": "573381c0a64f155a0d9a23f4b0c797194805b925", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0" + "php": "^5.3.3 || ^7.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "vimeo/psalm": "<3.6.0" }, "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1" + "phpunit/phpunit": "^4.8.36 || ^7.5.13" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } - }, "autoload": { "psr-4": { "Webmozart\\Assert\\": "src/" @@ -3242,7 +3476,7 @@ "check", "validate" ], - "time": "2018-01-29T19:49:41+00:00" + "time": "2019-11-24T13:36:37+00:00" } ], "aliases": [], From 41aa8a5baa68a8b01d3b15d0384dd54efa749c39 Mon Sep 17 00:00:00 2001 From: Kiet Tran Date: Wed, 8 Jan 2020 14:18:39 +0100 Subject: [PATCH 02/21] Reformated composer.json file and updated php requirements. --- composer.json | 70 ++++++++++++++++++++++++++------------------------- composer.lock | 6 ++--- 2 files changed, 39 insertions(+), 37 deletions(-) diff --git a/composer.json b/composer.json index 1dea351..39ba49b 100644 --- a/composer.json +++ b/composer.json @@ -1,37 +1,39 @@ { - "name" : "superbrave/gdpr-bundle", - "type" : "symfony-bundle", - "description": "A Symfony bundle for using entity annotations according to GDPR requirements and anonymizing/exporting data", - "keywords" : [ - "annotations", - "GDPR", - "anonymizing", - "exporting" - ], - "licence" : "MIT License", - "require" : { - "php": ">=5.6.0", - "doctrine/annotations": "^1.4", - "symfony/framework-bundle": "^3.0.0", - "symfony/options-resolver": "^3.4", - "symfony/property-access": "^3.4", - "symfony/serializer": "^3.4" - }, - "require-dev": { - "roave/security-advisories": "dev-master", - "doctrine/collections": "^1.4", - "phpunit/phpunit": "^5.6", - "superbrave/coding-standards": "^0.1", - "squizlabs/php_codesniffer": "^3.2" - }, - "autoload" : { - "psr-4": {"Superbrave\\GdprBundle\\": ""} - }, - "config" : { - "bin-dir" : "bin", - "platform" : { - "php": "5.6.0" + "name": "superbrave/gdpr-bundle", + "type": "symfony-bundle", + "description": "A Symfony bundle for using entity annotations according to GDPR requirements and anonymizing/exporting data", + "keywords": [ + "annotations", + "GDPR", + "anonymizing", + "exporting" + ], + "license": "MIT License", + "require": { + "php": ">=7.2.0", + "doctrine/annotations": "^1.4", + "symfony/framework-bundle": "^3.0.0", + "symfony/options-resolver": "^3.4", + "symfony/property-access": "^3.4", + "symfony/serializer": "^3.4" }, - "sort-packages": true - } + "require-dev": { + "roave/security-advisories": "dev-master", + "doctrine/collections": "^1.4", + "phpunit/phpunit": "^5.6", + "superbrave/coding-standards": "^0.1", + "squizlabs/php_codesniffer": "^3.2" + }, + "autoload": { + "psr-4": { + "Superbrave\\GdprBundle\\": "" + } + }, + "config": { + "bin-dir": "bin", + "platform": { + "php": "7.2.0" + }, + "sort-packages": true + } } diff --git a/composer.lock b/composer.lock index 5c71997..0085218 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "768e07409b339c531c1adaf441a98b0d", + "content-hash": "4a219ef88f483f11c58684c658549f0c", "packages": [ { "name": "doctrine/annotations", @@ -3487,10 +3487,10 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": ">=5.6.0" + "php": ">=7.2.0" }, "platform-dev": [], "platform-overrides": { - "php": "5.6.0" + "php": "7.2.0" } } From d51150f4ee4f7b964debd3d0c4c704b6bb3c0dc3 Mon Sep 17 00:00:00 2001 From: Jelle van Oosterbosch Date: Thu, 6 Feb 2020 00:44:05 +0100 Subject: [PATCH 03/21] Added first build for recursive json normalization Added the DateTimeNormalizator with unit test --- Resources/config/services.exporter.types.yml | 5 ++ .../Normalizer/AnnotationNormalizer.php | 45 +++++++++++++++- Tests/AnnotatedMock.php | 20 ++++++++ Tests/Annotation/AnnotationReaderTest.php | 10 ++-- .../json/annotation_normalize_result.json | 1 + .../xml/annotation_normalizer_result.xml | 2 +- .../Normalizer/AnnotationNormalizerTest.php | 51 ++++++++++++++++--- 7 files changed, 120 insertions(+), 14 deletions(-) create mode 100644 Tests/Resources/json/annotation_normalize_result.json diff --git a/Resources/config/services.exporter.types.yml b/Resources/config/services.exporter.types.yml index ed00698..af9f918 100644 --- a/Resources/config/services.exporter.types.yml +++ b/Resources/config/services.exporter.types.yml @@ -2,6 +2,11 @@ services: _defaults: public: false + superbrave_gdpr.exporter.serializer.normalizer.datetime_normalizer: + class: Symfony\Component\Serializer\Normalizer\DateTimeNormalizer + tags: + - { name: "superbrave_gdpr.serializer.normalizer" } + superbrave_gdpr.exporter.serializer.normalizer.export_annotation: class: Superbrave\GdprBundle\Serializer\Normalizer\AnnotationNormalizer arguments: diff --git a/Serializer/Normalizer/AnnotationNormalizer.php b/Serializer/Normalizer/AnnotationNormalizer.php index b3e89c5..f3f6fac 100644 --- a/Serializer/Normalizer/AnnotationNormalizer.php +++ b/Serializer/Normalizer/AnnotationNormalizer.php @@ -16,15 +16,20 @@ use Superbrave\GdprBundle\Annotation\AnnotationReader; use Superbrave\GdprBundle\Manipulator\PropertyManipulator; use Symfony\Component\PropertyAccess\PropertyAccessorInterface; +use Symfony\Component\Serializer\Normalizer\NormalizerAwareInterface; +use Symfony\Component\Serializer\Normalizer\NormalizerAwareTrait; use Symfony\Component\Serializer\Normalizer\NormalizerInterface; /** * Normalizes object data based on the specified property annotation. * * @author Niels Nijens + * @author Jelle van Oosterbosch */ -class AnnotationNormalizer implements NormalizerInterface +class AnnotationNormalizer implements NormalizerInterface, NormalizerAwareInterface { + use NormalizerAwareTrait; + /** * The AnnotationReader instance. * @@ -70,6 +75,8 @@ public function __construct( * @param string $format The format being (de-)serialized from or into * * @return bool + * + * @throws \ReflectionException */ public function supportsNormalization($data, $format = null) { @@ -93,10 +100,13 @@ public function supportsNormalization($data, $format = null) * @param array $context Context options for the normalizer * * @return array|string|int|float|bool + * + * @throws \ReflectionException */ public function normalize($object, $format = null, array $context = array()) { $normalizedData = array(); + $index = 0; $propertyAnnotations = $this->annotationReader->getPropertiesWithAnnotation( new ReflectionClass($object), $this->annotationName @@ -108,12 +118,43 @@ public function normalize($object, $format = null, array $context = array()) $propertyName = $propertyAnnotation->alias; } - $normalizedData[$propertyName] = $this->getMappedPropertyValue($propertyAnnotation, $propertyValue); + if (is_iterable($propertyValue) && count($propertyValue) > 0) { + $normalizedData[$propertyName] = $this->normalizeArray($propertyValue, $index, $format, $context); + } else { + $normalizedData[$propertyName] = $this->getMappedPropertyValue($propertyAnnotation, $propertyValue); + } } return $normalizedData; } + /** + * Normalizes an array recursively by calling the chain normalizer. + * + * @param iterable $propertyValue + * @param int $index + * @param string $format + * @param array $context + * + * @return array + */ + private function normalizeArray($propertyValue, &$index, $format = null, array $context = array()) + { + $data = []; + + foreach ($propertyValue as $value) { + $data[$index][] = $this->normalizer->normalize( + $value, + $format, + $context + ); + } + + $index++; + + return $data; + } + /** * Returns the mapped value of a property or the original value when no value map is configured on the annotation. * diff --git a/Tests/AnnotatedMock.php b/Tests/AnnotatedMock.php index 4f8300d..4efc676 100644 --- a/Tests/AnnotatedMock.php +++ b/Tests/AnnotatedMock.php @@ -19,6 +19,7 @@ * Class used to test the @see GDPR\AnnotationReader. * * @author Niels Nijens + * @author Jelle van Oosterbosch */ class AnnotatedMock { @@ -59,6 +60,15 @@ class AnnotatedMock */ private $quux; + /** + * The quuz property. + * + * @GDPR\Export() + * + * @var \DateTime + */ + private $quuz; + /** * The property that is annotated with the Export annotation, but without getter method. * @@ -90,8 +100,10 @@ public function __construct(AnnotatedMock $annotatedMock = null) $elements = array(); if ($annotatedMock instanceof AnnotatedMock) { $elements[] = $annotatedMock; + $elements[] = clone $annotatedMock; } + $this->quuz = new \DateTime('2016/01/01'); $this->quux = new ArrayCollection($elements); } @@ -135,6 +147,14 @@ public function getQuux() return $this->quux; } + /** + * @return \DateTime + */ + public function getQuuz() + { + return $this->quuz; + } + /** * Returns the value of the notAnnotatedProperty property. * diff --git a/Tests/Annotation/AnnotationReaderTest.php b/Tests/Annotation/AnnotationReaderTest.php index fa308a7..1c020d0 100644 --- a/Tests/Annotation/AnnotationReaderTest.php +++ b/Tests/Annotation/AnnotationReaderTest.php @@ -24,6 +24,7 @@ * AnnotationReaderTest. * * @author Niels Nijens + * @author Jelle van Oosterbosch */ class AnnotationReaderTest extends PHPUnit_Framework_TestCase { @@ -64,9 +65,9 @@ public function testGetPropertiesWithAnnotationExport() ); $this->assertInternalType('array', $result); - $this->assertCount(5, $result); + $this->assertCount(6, $result); $this->assertSame( - array('foo', 'baz', 'qux', 'quux', 'annotatedPropertyWithoutMethod'), + array('foo', 'baz', 'qux', 'quux', 'quuz', 'annotatedPropertyWithoutMethod'), array_keys($result) ); $this->assertInstanceOf(Export::class, current($result)); @@ -108,11 +109,12 @@ public function testGetPropertiesWithAnnotationForExtendedClass() ); $this->assertInternalType('array', $result); - $this->assertCount(6, $result); + $this->assertCount(7, $result); $this->assertSame( - array('extendedProperty', 'foo', 'baz', 'qux', 'quux', 'annotatedPropertyWithoutMethod'), + array('extendedProperty', 'foo', 'baz', 'qux', 'quux', 'quuz', 'annotatedPropertyWithoutMethod'), array_keys($result) ); + $this->assertInstanceOf(Export::class, current($result)); } } diff --git a/Tests/Resources/json/annotation_normalize_result.json b/Tests/Resources/json/annotation_normalize_result.json new file mode 100644 index 0000000..5f03af5 --- /dev/null +++ b/Tests/Resources/json/annotation_normalize_result.json @@ -0,0 +1 @@ +{"foo":"bar","baz":1,"qux":[],"quuxs":[[{"foo":"bar","baz":1,"qux":[],"quuxs":{},"quuz":{"date":"2016-01-01 00:00:00.000000","timezone_type":3,"timezone":"UTC"},"annotatedPropertyWithoutMethod":"Yes"},{"foo":"bar","baz":1,"qux":[],"quuxs":{},"quuz":{"date":"2016-01-01 00:00:00.000000","timezone_type":3,"timezone":"UTC"},"annotatedPropertyWithoutMethod":"Yes"}]],"quuz":{"date":"2016-01-01 00:00:00.000000","timezone_type":3,"timezone":"UTC"},"annotatedPropertyWithoutMethod":"Yes"} \ No newline at end of file diff --git a/Tests/Resources/xml/annotation_normalizer_result.xml b/Tests/Resources/xml/annotation_normalizer_result.xml index 1114392..9a2fb40 100644 --- a/Tests/Resources/xml/annotation_normalizer_result.xml +++ b/Tests/Resources/xml/annotation_normalizer_result.xml @@ -1,2 +1,2 @@ -bar1bar1YesYes +bar1bar12016-01-01T00:00:00+00:00Yesbar12016-01-01T00:00:00+00:00Yes2016-01-01T00:00:00+00:00Yes diff --git a/Tests/Serializer/Normalizer/AnnotationNormalizerTest.php b/Tests/Serializer/Normalizer/AnnotationNormalizerTest.php index 031ad19..099f9a8 100644 --- a/Tests/Serializer/Normalizer/AnnotationNormalizerTest.php +++ b/Tests/Serializer/Normalizer/AnnotationNormalizerTest.php @@ -21,13 +21,16 @@ use Superbrave\GdprBundle\Serializer\Normalizer\AnnotationNormalizer; use Superbrave\GdprBundle\Tests\AnnotatedMock; use Symfony\Component\PropertyAccess\PropertyAccess; +use Symfony\Component\Serializer\Encoder\JsonEncoder; use Symfony\Component\Serializer\Encoder\XmlEncoder; +use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer; use Symfony\Component\Serializer\Serializer; /** * AnnotationNormalizerTest. * * @author Niels Nijens + * @author Jelle van Oosterbosch */ class AnnotationNormalizerTest extends \PHPUnit_Framework_TestCase { @@ -162,6 +165,7 @@ public function testNormalize() 'baz' => 1, 'qux' => array(), 'quuxs' => new ArrayCollection(), + 'quuz' => new \DateTime('2016/01/01'), 'annotatedPropertyWithoutMethod' => 'Yes', ), $normalizer->normalize($annotatedMock) @@ -169,31 +173,64 @@ public function testNormalize() } /** - * Tests if AnnotationNormalizer::normalize returns the expected normalized data + * Tests if @see AnnotationNormalizer::normalize returns the expected xml normalized data * for serialization through the Serializer. * * @return void */ - public function testNormalizeThroughSerializer() + public function testNormalizeThroughXmlSerializer() { $annotationReader = new AnnotationReader(); $propertyManipulator = new PropertyManipulator( PropertyAccess::createPropertyAccessor() ); - $normalizer = new AnnotationNormalizer($annotationReader, Export::class, $propertyManipulator); - $encoder = new XmlEncoder('mock'); + $normalizers = [ + new DateTimeNormalizer(), + new AnnotationNormalizer($annotationReader, Export::class, $propertyManipulator), + ]; + $encoders = [new XmlEncoder('mock')]; $serializer = new Serializer( - array($normalizer), - array($encoder) + $normalizers, + $encoders ); $data = new AnnotatedMock(new AnnotatedMock()); $this->assertStringEqualsFile( - __DIR__.'/../../Resources/xml/annotation_normalizer_result.xml', + __DIR__ . '/../../Resources/xml/annotation_normalizer_result.xml', $serializer->serialize($data, 'xml') ); } + + /** + * Test if @see AnnotationNormalizer::normalize returns the expected json normalized data + * for serialization through the Serializer. + */ + public function testNormalizeThroughJsonSerializer() + { + $annotationReader = new AnnotationReader(); + $propertyManipulator = new PropertyManipulator( + PropertyAccess::createPropertyAccessor() + ); + + $normalizers = [ + new DateTimeNormalizer(), + new AnnotationNormalizer($annotationReader, Export::class, $propertyManipulator), + ]; + $encoders = [new JsonEncoder()]; + + $serializer = new Serializer( + $normalizers, + $encoders + ); + + $data = new AnnotatedMock(new AnnotatedMock()); + + $this->assertStringEqualsFile( + __DIR__ . '/../../Resources/json/annotation_normalize_result.json', + $serializer->serialize($data, 'json') + ); + } } From 778433cbced16c9a196c8cae5b28983caceedb60 Mon Sep 17 00:00:00 2001 From: Jelle van Oosterbosch Date: Thu, 6 Feb 2020 11:23:24 +0100 Subject: [PATCH 04/21] Refactored so the logic lies in the abstraction of the normalizers Added an extra IterableNormalizer so we can traverse back to the AnnotationNormalizer Updated the unit tests --- Resources/config/services.exporter.types.yml | 5 ++ .../Normalizer/AnnotationNormalizer.php | 36 +------------- Serializer/Normalizer/IterableNormalizer.php | 47 +++++++++++++++++++ .../json/annotation_normalize_result.json | 2 +- .../xml/annotation_normalizer_result.xml | 2 +- .../Normalizer/AnnotationNormalizerTest.php | 16 +++++-- 6 files changed, 68 insertions(+), 40 deletions(-) create mode 100644 Serializer/Normalizer/IterableNormalizer.php diff --git a/Resources/config/services.exporter.types.yml b/Resources/config/services.exporter.types.yml index af9f918..326b9cf 100644 --- a/Resources/config/services.exporter.types.yml +++ b/Resources/config/services.exporter.types.yml @@ -2,6 +2,11 @@ services: _defaults: public: false + superbrave_gdpr.exporter.serializer.normalizer.iterable_normalizer: + class: Superbrave\GdprBundle\Serializer\Normalizer\IterableNormalizer + tags: + - { name: "superbrave_gdpr.serializer.normalizer" } + superbrave_gdpr.exporter.serializer.normalizer.datetime_normalizer: class: Symfony\Component\Serializer\Normalizer\DateTimeNormalizer tags: diff --git a/Serializer/Normalizer/AnnotationNormalizer.php b/Serializer/Normalizer/AnnotationNormalizer.php index f3f6fac..31768ba 100644 --- a/Serializer/Normalizer/AnnotationNormalizer.php +++ b/Serializer/Normalizer/AnnotationNormalizer.php @@ -106,7 +106,6 @@ public function supportsNormalization($data, $format = null) public function normalize($object, $format = null, array $context = array()) { $normalizedData = array(); - $index = 0; $propertyAnnotations = $this->annotationReader->getPropertiesWithAnnotation( new ReflectionClass($object), $this->annotationName @@ -118,8 +117,8 @@ public function normalize($object, $format = null, array $context = array()) $propertyName = $propertyAnnotation->alias; } - if (is_iterable($propertyValue) && count($propertyValue) > 0) { - $normalizedData[$propertyName] = $this->normalizeArray($propertyValue, $index, $format, $context); + if (false === is_scalar($propertyValue)) { + $normalizedData[$propertyName] = $this->normalizer->normalize($propertyValue, $format, $context); } else { $normalizedData[$propertyName] = $this->getMappedPropertyValue($propertyAnnotation, $propertyValue); } @@ -128,33 +127,6 @@ public function normalize($object, $format = null, array $context = array()) return $normalizedData; } - /** - * Normalizes an array recursively by calling the chain normalizer. - * - * @param iterable $propertyValue - * @param int $index - * @param string $format - * @param array $context - * - * @return array - */ - private function normalizeArray($propertyValue, &$index, $format = null, array $context = array()) - { - $data = []; - - foreach ($propertyValue as $value) { - $data[$index][] = $this->normalizer->normalize( - $value, - $format, - $context - ); - } - - $index++; - - return $data; - } - /** * Returns the mapped value of a property or the original value when no value map is configured on the annotation. * @@ -165,10 +137,6 @@ private function normalizeArray($propertyValue, &$index, $format = null, array $ */ private function getMappedPropertyValue($annotation, $propertyValue) { - if (is_scalar($propertyValue) === false) { - return $propertyValue; - } - if (property_exists($annotation, 'valueMap') === false || isset($annotation->valueMap) === false) { return $propertyValue; } diff --git a/Serializer/Normalizer/IterableNormalizer.php b/Serializer/Normalizer/IterableNormalizer.php new file mode 100644 index 0000000..d3a6010 --- /dev/null +++ b/Serializer/Normalizer/IterableNormalizer.php @@ -0,0 +1,47 @@ + + */ +class IterableNormalizer implements NormalizerInterface, NormalizerAwareInterface +{ + use NormalizerAwareTrait; + + /** + * {@inheritDoc} + */ + public function supportsNormalization($data, $format = null) + { + if (true === is_object($data) && true === is_iterable($data)) { + return true; + } + + if (true === is_array($data)) { + return true; + } + + return false; + } + + /** + * {@inheritDoc} + */ + public function normalize($object, $format = null, array $context = array()) + { + $normalizedData = []; + + foreach ($object as $value) { + $normalizedData[] = $this->normalizer->normalize($value, $format, $context); + } + + return $normalizedData; + } +} diff --git a/Tests/Resources/json/annotation_normalize_result.json b/Tests/Resources/json/annotation_normalize_result.json index 5f03af5..7b3713d 100644 --- a/Tests/Resources/json/annotation_normalize_result.json +++ b/Tests/Resources/json/annotation_normalize_result.json @@ -1 +1 @@ -{"foo":"bar","baz":1,"qux":[],"quuxs":[[{"foo":"bar","baz":1,"qux":[],"quuxs":{},"quuz":{"date":"2016-01-01 00:00:00.000000","timezone_type":3,"timezone":"UTC"},"annotatedPropertyWithoutMethod":"Yes"},{"foo":"bar","baz":1,"qux":[],"quuxs":{},"quuz":{"date":"2016-01-01 00:00:00.000000","timezone_type":3,"timezone":"UTC"},"annotatedPropertyWithoutMethod":"Yes"}]],"quuz":{"date":"2016-01-01 00:00:00.000000","timezone_type":3,"timezone":"UTC"},"annotatedPropertyWithoutMethod":"Yes"} \ No newline at end of file +{"foo":"bar","baz":1,"qux":[],"quuxs":[{"foo":"bar","baz":1,"qux":[],"quuxs":[],"quuz":"2016-01-01T00:00:00+00:00","annotatedPropertyWithoutMethod":"Yes"},{"foo":"bar","baz":1,"qux":[],"quuxs":[],"quuz":"2016-01-01T00:00:00+00:00","annotatedPropertyWithoutMethod":"Yes"}],"quuz":"2016-01-01T00:00:00+00:00","annotatedPropertyWithoutMethod":"Yes"} \ No newline at end of file diff --git a/Tests/Resources/xml/annotation_normalizer_result.xml b/Tests/Resources/xml/annotation_normalizer_result.xml index 9a2fb40..2db23dc 100644 --- a/Tests/Resources/xml/annotation_normalizer_result.xml +++ b/Tests/Resources/xml/annotation_normalizer_result.xml @@ -1,2 +1,2 @@ -bar1bar12016-01-01T00:00:00+00:00Yesbar12016-01-01T00:00:00+00:00Yes2016-01-01T00:00:00+00:00Yes +bar1bar12016-01-01T00:00:00+00:00Yesbar12016-01-01T00:00:00+00:00Yes2016-01-01T00:00:00+00:00Yes diff --git a/Tests/Serializer/Normalizer/AnnotationNormalizerTest.php b/Tests/Serializer/Normalizer/AnnotationNormalizerTest.php index 099f9a8..9f85687 100644 --- a/Tests/Serializer/Normalizer/AnnotationNormalizerTest.php +++ b/Tests/Serializer/Normalizer/AnnotationNormalizerTest.php @@ -12,13 +12,13 @@ namespace Superbrave\GdprBundle\Tests\Serializer\Normalizer; -use Doctrine\Common\Collections\ArrayCollection; use PHPUnit_Framework_MockObject_MockObject; use ReflectionClass; use Superbrave\GdprBundle\Annotation\AnnotationReader; use Superbrave\GdprBundle\Annotation\Export; use Superbrave\GdprBundle\Manipulator\PropertyManipulator; use Superbrave\GdprBundle\Serializer\Normalizer\AnnotationNormalizer; +use Superbrave\GdprBundle\Serializer\Normalizer\IterableNormalizer; use Superbrave\GdprBundle\Tests\AnnotatedMock; use Symfony\Component\PropertyAccess\PropertyAccess; use Symfony\Component\Serializer\Encoder\JsonEncoder; @@ -156,6 +156,12 @@ public function testNormalize() ); $normalizer = new AnnotationNormalizer($annotationReader, Export::class, $propertyManipulator); + $serializer = new Serializer([ + new DateTimeNormalizer(), + new IterableNormalizer(), + $normalizer, + ]); + $normalizer->setNormalizer($serializer); $annotatedMock = new AnnotatedMock(); @@ -163,9 +169,9 @@ public function testNormalize() array( 'foo' => 'bar', 'baz' => 1, - 'qux' => array(), - 'quuxs' => new ArrayCollection(), - 'quuz' => new \DateTime('2016/01/01'), + 'qux' => [], + 'quuxs' => [], + 'quuz' => '2016-01-01T00:00:00+00:00', 'annotatedPropertyWithoutMethod' => 'Yes', ), $normalizer->normalize($annotatedMock) @@ -187,6 +193,7 @@ public function testNormalizeThroughXmlSerializer() $normalizers = [ new DateTimeNormalizer(), + new IterableNormalizer(), new AnnotationNormalizer($annotationReader, Export::class, $propertyManipulator), ]; $encoders = [new XmlEncoder('mock')]; @@ -217,6 +224,7 @@ public function testNormalizeThroughJsonSerializer() $normalizers = [ new DateTimeNormalizer(), + new IterableNormalizer(), new AnnotationNormalizer($annotationReader, Export::class, $propertyManipulator), ]; $encoders = [new JsonEncoder()]; From 026dabb98a87d8479b5a2177ca6dcb656131c58b Mon Sep 17 00:00:00 2001 From: Jelle van Oosterbosch Date: Thu, 6 Feb 2020 11:39:07 +0100 Subject: [PATCH 05/21] Make it work for php56 --- Serializer/Normalizer/IterableNormalizer.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Serializer/Normalizer/IterableNormalizer.php b/Serializer/Normalizer/IterableNormalizer.php index d3a6010..6ba16a1 100644 --- a/Serializer/Normalizer/IterableNormalizer.php +++ b/Serializer/Normalizer/IterableNormalizer.php @@ -20,7 +20,9 @@ class IterableNormalizer implements NormalizerInterface, NormalizerAwareInterfac */ public function supportsNormalization($data, $format = null) { - if (true === is_object($data) && true === is_iterable($data)) { + if (true === is_object($data) && + (is_array($data) || (is_object($data)) && ($data instanceof \Traversable)) + ) { return true; } From 84865a7cf08f7526525413a2aa059248d1f45253 Mon Sep 17 00:00:00 2001 From: Jelle van Oosterbosch Date: Thu, 6 Feb 2020 11:40:27 +0100 Subject: [PATCH 06/21] Added missing required phpdoc --- Serializer/Normalizer/IterableNormalizer.php | 10 ++++++++++ .../Serializer/Normalizer/AnnotationNormalizerTest.php | 2 ++ 2 files changed, 12 insertions(+) diff --git a/Serializer/Normalizer/IterableNormalizer.php b/Serializer/Normalizer/IterableNormalizer.php index 6ba16a1..24957fa 100644 --- a/Serializer/Normalizer/IterableNormalizer.php +++ b/Serializer/Normalizer/IterableNormalizer.php @@ -1,4 +1,14 @@ + * @copyright 2018 SuperBrave + * @license https://github.com/superbrave/gdpr-bundle/blob/master/LICENSE MIT + * @link https://www.superbrave.nl/ + */ namespace Superbrave\GdprBundle\Serializer\Normalizer; diff --git a/Tests/Serializer/Normalizer/AnnotationNormalizerTest.php b/Tests/Serializer/Normalizer/AnnotationNormalizerTest.php index 9f85687..58d2ee2 100644 --- a/Tests/Serializer/Normalizer/AnnotationNormalizerTest.php +++ b/Tests/Serializer/Normalizer/AnnotationNormalizerTest.php @@ -214,6 +214,8 @@ public function testNormalizeThroughXmlSerializer() /** * Test if @see AnnotationNormalizer::normalize returns the expected json normalized data * for serialization through the Serializer. + * + * @return void */ public function testNormalizeThroughJsonSerializer() { From 31f1837735b3aef5a51fb914e6c25d18f143260b Mon Sep 17 00:00:00 2001 From: Jelle van Oosterbosch Date: Thu, 6 Feb 2020 11:41:45 +0100 Subject: [PATCH 07/21] Fixed typo in IterableNormalizer --- Serializer/Normalizer/IterableNormalizer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Serializer/Normalizer/IterableNormalizer.php b/Serializer/Normalizer/IterableNormalizer.php index 24957fa..90756da 100644 --- a/Serializer/Normalizer/IterableNormalizer.php +++ b/Serializer/Normalizer/IterableNormalizer.php @@ -17,7 +17,7 @@ use Symfony\Component\Serializer\Normalizer\NormalizerInterface; /** - * Normalizes data if its iterable by calling the normalizer chain. + * Normalizes data if it's iterable by calling the normalizer chain. * * @author Jelle van Oosterbosch */ From 18468582d81133aa8f9ed1242acc955982d927e9 Mon Sep 17 00:00:00 2001 From: Jelle van Oosterbosch Date: Thu, 6 Feb 2020 12:14:10 +0100 Subject: [PATCH 08/21] Added unit test for the IterableNormalizer class --- .../json/iterable_normalize_result.json | 1 + .../Normalizer/IterableNormalizerTest.php | 124 ++++++++++++++++++ 2 files changed, 125 insertions(+) create mode 100644 Tests/Resources/json/iterable_normalize_result.json create mode 100644 Tests/Serializer/Normalizer/IterableNormalizerTest.php diff --git a/Tests/Resources/json/iterable_normalize_result.json b/Tests/Resources/json/iterable_normalize_result.json new file mode 100644 index 0000000..4e73407 --- /dev/null +++ b/Tests/Resources/json/iterable_normalize_result.json @@ -0,0 +1 @@ +["bar",1,[["2020-01-01T00:00:00+00:00","2020-01-01T00:00:00+00:00"]]] \ No newline at end of file diff --git a/Tests/Serializer/Normalizer/IterableNormalizerTest.php b/Tests/Serializer/Normalizer/IterableNormalizerTest.php new file mode 100644 index 0000000..0e229b3 --- /dev/null +++ b/Tests/Serializer/Normalizer/IterableNormalizerTest.php @@ -0,0 +1,124 @@ + + * @copyright 2018 SuperBrave + * @license https://github.com/superbrave/gdpr-bundle/blob/master/LICENSE MIT + * @link https://www.superbrave.nl/ + */ + +namespace Superbrave\GdprBundle\Tests\Serializer\Normalizer; + +use Doctrine\Common\Collections\ArrayCollection; +use Superbrave\GdprBundle\Serializer\Normalizer\IterableNormalizer; +use Symfony\Component\Serializer\Encoder\JsonEncoder; +use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer; +use Symfony\Component\Serializer\Serializer; + +/** + * AnnotationNormalizerTest. + * + * @author Jelle van Oosterbosch + */ +class IterableNormalizerTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var IterableNormalizer + */ + private $normalizer; + + /** + * @var Serializer + */ + private $serializer; + + /** + * {@inheritDoc} + */ + public function setUp() + { + $this->normalizer = new IterableNormalizer(); + $this->serializer = new Serializer([ + new DateTimeNormalizer(), + $this->normalizer, + ], [ + new JsonEncoder() + ]); + + $this->normalizer->setNormalizer($this->serializer); + } + + /** + * Tests if @see IterableNormalizer::supportsNormalization() returns false + * when the data is not iterable. + * + * @return void + */ + public function testSupportsNormalizationReturnsFalseWhenDataIsNotIterable() + { + $this->assertFalse($this->normalizer->supportsNormalization('no object')); + $this->assertFalse($this->normalizer->supportsNormalization(new \stdClass())); + } + + /** + * Tests if @see IterableNormalizer::supportsNormalization() returns true + * when the data is iterable. + * + * @return void + */ + public function testSupportsNormalizationReturnsTrueWhenDataIsIterable() + { + $this->assertTrue($this->normalizer->supportsNormalization(array())); + $this->assertTrue($this->normalizer->supportsNormalization(new ArrayCollection())); + } + + /** + * Tests if @see IterableNormalizer::$normalizer returns the expected array of a iterable object. + * + * @return void + * + * @throws \Exception + */ + public function testNormalize() + { + $collection = new ArrayCollection(); + $collection->add(new \DateTime('2020/01/01')); + $collection->add(new \DateTime('2020/01/01')); + + $this->assertEquals( + [ + '2020-01-01T00:00:00+00:00', + '2020-01-01T00:00:00+00:00', + ], + $this->normalizer->normalize($collection) + ); + } + + /** + * Test is @see IterableNormalizer::$normalizer returns the expected json normalized data + * for serialization through the Serializer. + * + * @throws \Exception + */ + public function testNormalizeThroughJsonSerializer() + { + $data = [ + 'foo' => 'bar', + 'baz' => 1, + 'qux' => [ + new ArrayCollection([ + new \DateTime('2020/01/01'), + new \DateTime('2020/01/01'), + ]) + ] + ]; + + $this->assertStringEqualsFile( + __DIR__ . '/../../Resources/json/iterable_normalize_result.json', + $this->serializer->serialize($data, 'json') + ); + } +} From feff8083a19d71e92fedfe2fe5e892c79e96aa9e Mon Sep 17 00:00:00 2001 From: Jelle van Oosterbosch Date: Thu, 6 Feb 2020 12:15:43 +0100 Subject: [PATCH 09/21] Added required return phpdoc for IterableNormalizerTest --- Tests/Serializer/Normalizer/IterableNormalizerTest.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Tests/Serializer/Normalizer/IterableNormalizerTest.php b/Tests/Serializer/Normalizer/IterableNormalizerTest.php index 0e229b3..862f32f 100644 --- a/Tests/Serializer/Normalizer/IterableNormalizerTest.php +++ b/Tests/Serializer/Normalizer/IterableNormalizerTest.php @@ -101,6 +101,8 @@ public function testNormalize() * Test is @see IterableNormalizer::$normalizer returns the expected json normalized data * for serialization through the Serializer. * + * @return void + * * @throws \Exception */ public function testNormalizeThroughJsonSerializer() From fc6422cf317971ce95db49991cfc4789d1a0d32a Mon Sep 17 00:00:00 2001 From: Jelle van Oosterbosch Date: Thu, 6 Feb 2020 12:17:10 +0100 Subject: [PATCH 10/21] Lowercased the inheritdoc phpdoc to match the whole project --- Serializer/Normalizer/IterableNormalizer.php | 4 ++-- Tests/Serializer/Normalizer/IterableNormalizerTest.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Serializer/Normalizer/IterableNormalizer.php b/Serializer/Normalizer/IterableNormalizer.php index 90756da..fe77fd1 100644 --- a/Serializer/Normalizer/IterableNormalizer.php +++ b/Serializer/Normalizer/IterableNormalizer.php @@ -26,7 +26,7 @@ class IterableNormalizer implements NormalizerInterface, NormalizerAwareInterfac use NormalizerAwareTrait; /** - * {@inheritDoc} + * {@inheritdoc} */ public function supportsNormalization($data, $format = null) { @@ -44,7 +44,7 @@ public function supportsNormalization($data, $format = null) } /** - * {@inheritDoc} + * {@inheritdoc} */ public function normalize($object, $format = null, array $context = array()) { diff --git a/Tests/Serializer/Normalizer/IterableNormalizerTest.php b/Tests/Serializer/Normalizer/IterableNormalizerTest.php index 862f32f..4e7a26c 100644 --- a/Tests/Serializer/Normalizer/IterableNormalizerTest.php +++ b/Tests/Serializer/Normalizer/IterableNormalizerTest.php @@ -36,7 +36,7 @@ class IterableNormalizerTest extends \PHPUnit_Framework_TestCase private $serializer; /** - * {@inheritDoc} + * {@inheritdoc} */ public function setUp() { From 39dcf8bb39e879a120ddf71f061c1528281928d8 Mon Sep 17 00:00:00 2001 From: Jelle van Oosterbosch Date: Thu, 6 Feb 2020 13:46:45 +0100 Subject: [PATCH 11/21] Updated support check according to feedback for the IterableNormalizer --- Serializer/Normalizer/IterableNormalizer.php | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/Serializer/Normalizer/IterableNormalizer.php b/Serializer/Normalizer/IterableNormalizer.php index fe77fd1..ccdbd9b 100644 --- a/Serializer/Normalizer/IterableNormalizer.php +++ b/Serializer/Normalizer/IterableNormalizer.php @@ -30,13 +30,7 @@ class IterableNormalizer implements NormalizerInterface, NormalizerAwareInterfac */ public function supportsNormalization($data, $format = null) { - if (true === is_object($data) && - (is_array($data) || (is_object($data)) && ($data instanceof \Traversable)) - ) { - return true; - } - - if (true === is_array($data)) { + if (is_array($data) || $data instanceof \Traversable) { return true; } From fbc9a95163c024d77fe2ccd394148a50a539ccf1 Mon Sep 17 00:00:00 2001 From: Jelle van Oosterbosch Date: Mon, 10 Feb 2020 17:00:14 +0100 Subject: [PATCH 12/21] Allow Symfony 4 to use this bundle - this change is already in master --- composer.json | 10 +- composer.lock | 1398 ++++++++++++++++++++++++++++++------------------- 2 files changed, 852 insertions(+), 556 deletions(-) diff --git a/composer.json b/composer.json index 39ba49b..1526b51 100644 --- a/composer.json +++ b/composer.json @@ -12,14 +12,14 @@ "require": { "php": ">=7.2.0", "doctrine/annotations": "^1.4", - "symfony/framework-bundle": "^3.0.0", - "symfony/options-resolver": "^3.4", - "symfony/property-access": "^3.4", - "symfony/serializer": "^3.4" + "symfony/framework-bundle": "^3.4 || ^4.0", + "symfony/options-resolver": "^3.4 || ^4.0", + "symfony/property-access": "^3.4 || ^4.0", + "symfony/serializer": "^3.4 || ^4.0" }, "require-dev": { "roave/security-advisories": "dev-master", - "doctrine/collections": "^1.4", + "doctrine/collections": "^1.5", "phpunit/phpunit": "^5.6", "superbrave/coding-standards": "^0.1", "squizlabs/php_codesniffer": "^3.2" diff --git a/composer.lock b/composer.lock index 0085218..d9885d9 100644 --- a/composer.lock +++ b/composer.lock @@ -4,34 +4,34 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "4a219ef88f483f11c58684c658549f0c", + "content-hash": "6d6d52a13915a2485506d34dd9b10b9f", "packages": [ { "name": "doctrine/annotations", - "version": "v1.4.0", + "version": "v1.8.0", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "54cacc9b81758b14e3ce750f205a393d52339e97" + "reference": "904dca4eb10715b92569fbcd79e201d5c349b6bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/54cacc9b81758b14e3ce750f205a393d52339e97", - "reference": "54cacc9b81758b14e3ce750f205a393d52339e97", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/904dca4eb10715b92569fbcd79e201d5c349b6bc", + "reference": "904dca4eb10715b92569fbcd79e201d5c349b6bc", "shasum": "" }, "require": { "doctrine/lexer": "1.*", - "php": "^5.6 || ^7.0" + "php": "^7.1" }, "require-dev": { "doctrine/cache": "1.*", - "phpunit/phpunit": "^5.7" + "phpunit/phpunit": "^7.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4.x-dev" + "dev-master": "1.7.x-dev" } }, "autoload": { @@ -44,6 +44,10 @@ "MIT" ], "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -52,10 +56,6 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" @@ -72,32 +72,34 @@ "docblock", "parser" ], - "time": "2017-02-24T16:22:25+00:00" + "time": "2019-10-01T18:55:10+00:00" }, { "name": "doctrine/lexer", - "version": "1.0.2", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8" + "reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/1febd6c3ef84253d7c815bed85fc622ad207a9f8", - "reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6", + "reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6", "shasum": "" }, "require": { - "php": ">=5.3.2" + "php": "^7.2" }, "require-dev": { - "phpunit/phpunit": "^4.5" + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan": "^0.11.8", + "phpunit/phpunit": "^8.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.2.x-dev" } }, "autoload": { @@ -110,14 +112,14 @@ "MIT" ], "authors": [ - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, { "name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com" }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, { "name": "Johannes Schmitt", "email": "schmittjoh@gmail.com" @@ -132,56 +134,7 @@ "parser", "php" ], - "time": "2019-06-08T11:03:04+00:00" - }, - { - "name": "paragonie/random_compat", - "version": "v2.0.18", - "source": { - "type": "git", - "url": "https://github.com/paragonie/random_compat.git", - "reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/0a58ef6e3146256cc3dc7cc393927bcc7d1b72db", - "reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db", - "shasum": "" - }, - "require": { - "php": ">=5.2.0" - }, - "require-dev": { - "phpunit/phpunit": "4.*|5.*" - }, - "suggest": { - "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." - }, - "type": "library", - "autoload": { - "files": [ - "lib/random.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com" - } - ], - "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", - "keywords": [ - "csprng", - "polyfill", - "pseudorandom", - "random" - ], - "time": "2019-01-03T20:59:08+00:00" + "time": "2019-10-30T14:39:59+00:00" }, { "name": "psr/cache", @@ -325,92 +278,53 @@ ], "time": "2019-11-01T11:05:21+00:00" }, - { - "name": "psr/simple-cache", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/simple-cache.git", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\SimpleCache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interfaces for simple caching", - "keywords": [ - "cache", - "caching", - "psr", - "psr-16", - "simple-cache" - ], - "time": "2017-10-23T01:57:42+00:00" - }, { "name": "symfony/cache", - "version": "v3.4.36", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "3d9f46a6960fd5cd7f030f86adc5b4b63bcfa4e3" + "reference": "0198a01c8d918d6d717f96dfdcba9582bc5f6468" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/3d9f46a6960fd5cd7f030f86adc5b4b63bcfa4e3", - "reference": "3d9f46a6960fd5cd7f030f86adc5b4b63bcfa4e3", + "url": "https://api.github.com/repos/symfony/cache/zipball/0198a01c8d918d6d717f96dfdcba9582bc5f6468", + "reference": "0198a01c8d918d6d717f96dfdcba9582bc5f6468", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", + "php": "^7.1.3", "psr/cache": "~1.0", "psr/log": "~1.0", - "psr/simple-cache": "^1.0", - "symfony/polyfill-apcu": "~1.1" + "symfony/cache-contracts": "^1.1.7|^2", + "symfony/service-contracts": "^1.1|^2", + "symfony/var-exporter": "^4.2|^5.0" }, "conflict": { - "symfony/var-dumper": "<3.3" + "doctrine/dbal": "<2.5", + "symfony/dependency-injection": "<3.4", + "symfony/http-kernel": "<4.4", + "symfony/var-dumper": "<4.4" }, "provide": { "psr/cache-implementation": "1.0", - "psr/simple-cache-implementation": "1.0" + "psr/simple-cache-implementation": "1.0", + "symfony/cache-implementation": "1.0" }, "require-dev": { "cache/integration-tests": "dev-master", "doctrine/cache": "~1.6", - "doctrine/dbal": "~2.4", - "predis/predis": "~1.0" + "doctrine/dbal": "~2.5", + "predis/predis": "~1.1", + "psr/simple-cache": "^1.0", + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^3.4|^4.1|^5.0", + "symfony/var-dumper": "^4.4|^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -441,45 +355,39 @@ "caching", "psr6" ], - "time": "2019-12-01T10:45:41+00:00" + "time": "2020-01-29T14:35:06+00:00" }, { - "name": "symfony/class-loader", - "version": "v3.4.36", + "name": "symfony/cache-contracts", + "version": "v1.1.7", "source": { "type": "git", - "url": "https://github.com/symfony/class-loader.git", - "reference": "e212b06996819a2bce026a63da03b7182d05a690" + "url": "https://github.com/symfony/cache-contracts.git", + "reference": "af50d14ada9e4e82cfabfabdc502d144f89be0a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/class-loader/zipball/e212b06996819a2bce026a63da03b7182d05a690", - "reference": "e212b06996819a2bce026a63da03b7182d05a690", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/af50d14ada9e4e82cfabfabdc502d144f89be0a1", + "reference": "af50d14ada9e4e82cfabfabdc502d144f89be0a1", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" - }, - "require-dev": { - "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/polyfill-apcu": "~1.1" + "php": "^7.1.3", + "psr/cache": "^1.0" }, "suggest": { - "symfony/polyfill-apcu": "For using ApcClassLoader on HHVM" + "symfony/cache-implementation": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "1.1-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\ClassLoader\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Symfony\\Contracts\\Cache\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -487,46 +395,54 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony ClassLoader Component", + "description": "Generic abstractions related to caching", "homepage": "https://symfony.com", - "time": "2019-08-20T13:31:17+00:00" + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-10-04T21:43:27+00:00" }, { "name": "symfony/config", - "version": "v3.4.36", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "a599a867d0e4a07c342b5f1e656b3915a540ddbe" + "reference": "4d3979f54472637169080f802dc82197e21fdcce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/a599a867d0e4a07c342b5f1e656b3915a540ddbe", - "reference": "a599a867d0e4a07c342b5f1e656b3915a540ddbe", + "url": "https://api.github.com/repos/symfony/config/zipball/4d3979f54472637169080f802dc82197e21fdcce", + "reference": "4d3979f54472637169080f802dc82197e21fdcce", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/filesystem": "~2.8|~3.0|~4.0", + "php": "^7.1.3", + "symfony/filesystem": "^3.4|^4.0|^5.0", "symfony/polyfill-ctype": "~1.8" }, "conflict": { - "symfony/dependency-injection": "<3.3", - "symfony/finder": "<3.3" + "symfony/finder": "<3.4" }, "require-dev": { - "symfony/dependency-injection": "~3.3|~4.0", - "symfony/event-dispatcher": "~3.3|~4.0", - "symfony/finder": "~3.3|~4.0", - "symfony/yaml": "~3.0|~4.0" + "symfony/event-dispatcher": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/messenger": "^4.1|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/yaml": "^3.4|^4.0|^5.0" }, "suggest": { "symfony/yaml": "To use the yaml reference dumper" @@ -534,7 +450,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -561,36 +477,36 @@ ], "description": "Symfony Config Component", "homepage": "https://symfony.com", - "time": "2019-12-01T10:45:41+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { "name": "symfony/debug", - "version": "v3.4.36", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "f72e33fdb1170b326e72c3157f0cd456351dd086" + "reference": "20236471058bbaa9907382500fc14005c84601f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/f72e33fdb1170b326e72c3157f0cd456351dd086", - "reference": "f72e33fdb1170b326e72c3157f0cd456351dd086", + "url": "https://api.github.com/repos/symfony/debug/zipball/20236471058bbaa9907382500fc14005c84601f0", + "reference": "20236471058bbaa9907382500fc14005c84601f0", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", + "php": "^7.1.3", "psr/log": "~1.0" }, "conflict": { - "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" + "symfony/http-kernel": "<3.4" }, "require-dev": { - "symfony/http-kernel": "~2.8|~3.0|~4.0" + "symfony/http-kernel": "^3.4|^4.0|^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -617,39 +533,41 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2019-10-24T15:33:53+00:00" + "time": "2020-01-25T12:44:29+00:00" }, { "name": "symfony/dependency-injection", - "version": "v3.4.36", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "0d201916bfb3af939fec3c0c8815ea16c60ac1a2" + "reference": "ec60a7d12f5e8ab0f99456adce724717d9c1784a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/0d201916bfb3af939fec3c0c8815ea16c60ac1a2", - "reference": "0d201916bfb3af939fec3c0c8815ea16c60ac1a2", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/ec60a7d12f5e8ab0f99456adce724717d9c1784a", + "reference": "ec60a7d12f5e8ab0f99456adce724717d9c1784a", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "psr/container": "^1.0" + "php": "^7.1.3", + "psr/container": "^1.0", + "symfony/service-contracts": "^1.1.6|^2" }, "conflict": { - "symfony/config": "<3.3.7", - "symfony/finder": "<3.3", + "symfony/config": "<4.3|>=5.0", + "symfony/finder": "<3.4", "symfony/proxy-manager-bridge": "<3.4", "symfony/yaml": "<3.4" }, "provide": { - "psr/container-implementation": "1.0" + "psr/container-implementation": "1.0", + "symfony/service-implementation": "1.0" }, "require-dev": { - "symfony/config": "~3.3|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/yaml": "~3.4|~4.0" + "symfony/config": "^4.3", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0" }, "suggest": { "symfony/config": "", @@ -661,7 +579,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -688,34 +606,97 @@ ], "description": "Symfony DependencyInjection Component", "homepage": "https://symfony.com", - "time": "2019-12-01T08:33:36+00:00" + "time": "2020-01-31T09:49:27+00:00" + }, + { + "name": "symfony/error-handler", + "version": "v4.4.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/error-handler.git", + "reference": "d2721499ffcaf246a743e01cdf6696d3d5dd74c1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/d2721499ffcaf246a743e01cdf6696d3d5dd74c1", + "reference": "d2721499ffcaf246a743e01cdf6696d3d5dd74c1", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "psr/log": "~1.0", + "symfony/debug": "^4.4", + "symfony/var-dumper": "^4.4|^5.0" + }, + "require-dev": { + "symfony/http-kernel": "^4.4|^5.0", + "symfony/serializer": "^4.4|^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\ErrorHandler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony ErrorHandler Component", + "homepage": "https://symfony.com", + "time": "2020-01-27T09:48:47+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v3.4.36", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "f9031c22ec127d4a2450760f81a8677fe8a10177" + "reference": "9e3de195e5bc301704dd6915df55892f6dfc208b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/f9031c22ec127d4a2450760f81a8677fe8a10177", - "reference": "f9031c22ec127d4a2450760f81a8677fe8a10177", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9e3de195e5bc301704dd6915df55892f6dfc208b", + "reference": "9e3de195e5bc301704dd6915df55892f6dfc208b", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" + "php": "^7.1.3", + "symfony/event-dispatcher-contracts": "^1.1" }, "conflict": { - "symfony/dependency-injection": "<3.3" + "symfony/dependency-injection": "<3.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "1.1" }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "~3.3|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/stopwatch": "~2.8|~3.0|~4.0" + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/stopwatch": "^3.4|^4.0|^5.0" }, "suggest": { "symfony/dependency-injection": "", @@ -724,7 +705,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -751,30 +732,88 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2019-10-24T15:33:53+00:00" + "time": "2020-01-10T21:54:01+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v1.1.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "c43ab685673fb6c8d84220c77897b1d6cdbe1d18" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c43ab685673fb6c8d84220c77897b1d6cdbe1d18", + "reference": "c43ab685673fb6c8d84220c77897b1d6cdbe1d18", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "suggest": { + "psr/event-dispatcher": "", + "symfony/event-dispatcher-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-09-17T09:54:03+00:00" }, { "name": "symfony/filesystem", - "version": "v3.4.36", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "00cdad0936d06fab136944bc2342b762b1c3a4a2" + "reference": "266c9540b475f26122b61ef8b23dd9198f5d1cfd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/00cdad0936d06fab136944bc2342b762b1c3a4a2", - "reference": "00cdad0936d06fab136944bc2342b762b1c3a4a2", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/266c9540b475f26122b61ef8b23dd9198f5d1cfd", + "reference": "266c9540b475f26122b61ef8b23dd9198f5d1cfd", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", + "php": "^7.1.3", "symfony/polyfill-ctype": "~1.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -801,29 +840,29 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2019-11-25T16:36:22+00:00" + "time": "2020-01-21T08:20:44+00:00" }, { "name": "symfony/finder", - "version": "v3.4.36", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "290ae21279b37bfd287cdcce640d51204e84afdf" + "reference": "3a50be43515590faf812fbd7708200aabc327ec3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/290ae21279b37bfd287cdcce640d51204e84afdf", - "reference": "290ae21279b37bfd287cdcce640d51204e84afdf", + "url": "https://api.github.com/repos/symfony/finder/zipball/3a50be43515590faf812fbd7708200aabc327ec3", + "reference": "3a50be43515590faf812fbd7708200aabc327ec3", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" + "php": "^7.1.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -850,80 +889,96 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2019-11-17T21:55:15+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { "name": "symfony/framework-bundle", - "version": "v3.4.36", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "0d61117c7a770da0bd8bbe7ccfa34d8063f272ea" + "reference": "afc96daad6049cbed34312b34005d33fc670d022" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/0d61117c7a770da0bd8bbe7ccfa34d8063f272ea", - "reference": "0d61117c7a770da0bd8bbe7ccfa34d8063f272ea", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/afc96daad6049cbed34312b34005d33fc670d022", + "reference": "afc96daad6049cbed34312b34005d33fc670d022", "shasum": "" }, "require": { "ext-xml": "*", - "php": "^5.5.9|>=7.0.8", - "symfony/cache": "~3.4.31|^4.3.4", - "symfony/class-loader": "~3.2", - "symfony/config": "^3.4.31|^4.3.4", - "symfony/debug": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "^3.4.24|^4.2.5", - "symfony/event-dispatcher": "~3.4|~4.0", - "symfony/filesystem": "~2.8|~3.0|~4.0", - "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/http-foundation": "^3.4.13|~4.3", - "symfony/http-kernel": "^3.4.31|^4.3.4", + "php": "^7.1.3", + "symfony/cache": "^4.4|^5.0", + "symfony/config": "^4.3.4|^5.0", + "symfony/dependency-injection": "^4.4.1|^5.0.1", + "symfony/error-handler": "^4.4.1|^5.0.1", + "symfony/filesystem": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/http-kernel": "^4.4", "symfony/polyfill-mbstring": "~1.0", - "symfony/routing": "^3.4.5|^4.0.5" + "symfony/routing": "^4.4|^5.0" }, "conflict": { + "doctrine/persistence": "<1.3", "phpdocumentor/reflection-docblock": "<3.0", "phpdocumentor/type-resolver": "<0.2.1", "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", - "symfony/asset": "<3.3", - "symfony/console": "<3.4", - "symfony/form": "<3.4", - "symfony/property-info": "<3.3", - "symfony/serializer": "<3.3", + "symfony/asset": "<3.4", + "symfony/browser-kit": "<4.3", + "symfony/console": "<4.3", + "symfony/dom-crawler": "<4.3", + "symfony/dotenv": "<4.3.6", + "symfony/form": "<4.3.5", + "symfony/http-client": "<4.4", + "symfony/lock": "<4.4", + "symfony/mailer": "<4.4", + "symfony/messenger": "<4.4", + "symfony/mime": "<4.4", + "symfony/property-info": "<3.4", + "symfony/security-bundle": "<4.4", + "symfony/serializer": "<4.4", "symfony/stopwatch": "<3.4", - "symfony/translation": "<3.4", - "symfony/validator": "<3.4", - "symfony/workflow": "<3.3" + "symfony/translation": "<4.4", + "symfony/twig-bridge": "<4.1.1", + "symfony/twig-bundle": "<4.4", + "symfony/validator": "<4.4", + "symfony/web-profiler-bundle": "<4.4", + "symfony/workflow": "<4.3.6" }, "require-dev": { "doctrine/annotations": "~1.7", "doctrine/cache": "~1.0", - "fig/link-util": "^1.0", + "paragonie/sodium_compat": "^1.8", "phpdocumentor/reflection-docblock": "^3.0|^4.0", - "symfony/asset": "~3.3|~4.0", - "symfony/browser-kit": "~2.8|~3.0|~4.0", - "symfony/console": "~3.4.31|^4.3.4", - "symfony/css-selector": "~2.8|~3.0|~4.0", - "symfony/dom-crawler": "~2.8|~3.0|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/form": "^3.4.31|^4.3.4", - "symfony/lock": "~3.4|~4.0", + "symfony/asset": "^3.4|^4.0|^5.0", + "symfony/browser-kit": "^4.3|^5.0", + "symfony/console": "^4.3.4|^5.0", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dom-crawler": "^4.3|^5.0", + "symfony/dotenv": "^4.3.6|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/form": "^4.3.5|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/lock": "^4.4|^5.0", + "symfony/mailer": "^4.4|^5.0", + "symfony/messenger": "^4.4|^5.0", + "symfony/mime": "^4.4|^5.0", "symfony/polyfill-intl-icu": "~1.0", - "symfony/process": "~2.8|~3.0|~4.0", - "symfony/property-info": "~3.3|~4.0", - "symfony/security-core": "~3.2|~4.0", - "symfony/security-csrf": "^2.8.31|^3.3.13|~4.0", - "symfony/serializer": "~3.3|~4.0", - "symfony/stopwatch": "~3.4|~4.0", - "symfony/templating": "~2.8|~3.0|~4.0", - "symfony/translation": "~3.4|~4.0", - "symfony/validator": "~3.4|~4.0", - "symfony/var-dumper": "~3.3|~4.0", - "symfony/web-link": "~3.3|~4.0", - "symfony/workflow": "~3.3|~4.0", - "symfony/yaml": "~3.2|~4.0", - "twig/twig": "~1.34|~2.4" + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/property-info": "^3.4|^4.0|^5.0", + "symfony/security-csrf": "^3.4|^4.0|^5.0", + "symfony/security-http": "^3.4|^4.0|^5.0", + "symfony/serializer": "^4.4|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0", + "symfony/templating": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.4|^5.0", + "symfony/twig-bundle": "^4.4|^5.0", + "symfony/validator": "^4.4|^5.0", + "symfony/web-link": "^4.4|^5.0", + "symfony/workflow": "^4.3.6|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0", + "twig/twig": "^1.41|^2.10|^3.0" }, "suggest": { "ext-apcu": "For best performance of the system caches", @@ -938,7 +993,7 @@ "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -965,34 +1020,35 @@ ], "description": "Symfony FrameworkBundle", "homepage": "https://symfony.com", - "time": "2019-11-23T20:30:33+00:00" + "time": "2020-01-30T16:24:07+00:00" }, { "name": "symfony/http-foundation", - "version": "v3.4.36", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "d2d0cfe8e319d9df44c4cca570710fcf221d4593" + "reference": "491a20dfa87e0b3990170593bc2de0bb34d828a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d2d0cfe8e319d9df44c4cca570710fcf221d4593", - "reference": "d2d0cfe8e319d9df44c4cca570710fcf221d4593", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/491a20dfa87e0b3990170593bc2de0bb34d828a5", + "reference": "491a20dfa87e0b3990170593bc2de0bb34d828a5", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php70": "~1.6" + "php": "^7.1.3", + "symfony/mime": "^4.3|^5.0", + "symfony/polyfill-mbstring": "~1.1" }, "require-dev": { - "symfony/expression-language": "~2.8|~3.0|~4.0" + "predis/predis": "~1.0", + "symfony/expression-language": "^3.4|^4.0|^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -1019,35 +1075,37 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2019-11-28T12:52:59+00:00" + "time": "2020-01-31T09:11:17+00:00" }, { "name": "symfony/http-kernel", - "version": "v3.4.36", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "c42c8339acb28cfff0fb1786948db4d23d609ff7" + "reference": "62116a9c8fb15faabb158ad9cb785c353c2572e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/c42c8339acb28cfff0fb1786948db4d23d609ff7", - "reference": "c42c8339acb28cfff0fb1786948db4d23d609ff7", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/62116a9c8fb15faabb158ad9cb785c353c2572e5", + "reference": "62116a9c8fb15faabb158ad9cb785c353c2572e5", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", + "php": "^7.1.3", "psr/log": "~1.0", - "symfony/debug": "^3.3.3|~4.0", - "symfony/event-dispatcher": "~2.8|~3.0|~4.0", - "symfony/http-foundation": "~3.4.12|~4.0.12|^4.1.1", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-php56": "~1.8" + "symfony/error-handler": "^4.4", + "symfony/event-dispatcher": "^4.4", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-php73": "^1.9" }, "conflict": { - "symfony/config": "<2.8", - "symfony/dependency-injection": "<3.4.10|<4.0.10,>=4", - "symfony/var-dumper": "<3.3", + "symfony/browser-kit": "<4.3", + "symfony/config": "<3.4", + "symfony/console": ">=5", + "symfony/dependency-injection": "<4.3", + "symfony/translation": "<4.2", "twig/twig": "<1.34|<2.4,>=2" }, "provide": { @@ -1055,34 +1113,32 @@ }, "require-dev": { "psr/cache": "~1.0", - "symfony/browser-kit": "~2.8|~3.0|~4.0", - "symfony/class-loader": "~2.8|~3.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/console": "~2.8|~3.0|~4.0", - "symfony/css-selector": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "^3.4.10|^4.0.10", - "symfony/dom-crawler": "~2.8|~3.0|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/process": "~2.8|~3.0|~4.0", - "symfony/routing": "~3.4|~4.0", - "symfony/stopwatch": "~2.8|~3.0|~4.0", - "symfony/templating": "~2.8|~3.0|~4.0", - "symfony/translation": "~2.8|~3.0|~4.0", - "symfony/var-dumper": "~3.3|~4.0" + "symfony/browser-kit": "^4.3|^5.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/console": "^3.4|^4.0", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^4.3|^5.0", + "symfony/dom-crawler": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/routing": "^3.4|^4.0|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0", + "symfony/templating": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.2|^5.0", + "symfony/translation-contracts": "^1.1|^2", + "twig/twig": "^1.34|^2.4|^3.0" }, "suggest": { "symfony/browser-kit": "", "symfony/config": "", "symfony/console": "", - "symfony/dependency-injection": "", - "symfony/finder": "", - "symfony/var-dumper": "" + "symfony/dependency-injection": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -1109,30 +1165,30 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2019-12-01T13:50:37+00:00" + "time": "2020-01-31T12:45:06+00:00" }, { "name": "symfony/inflector", - "version": "v3.4.36", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/inflector.git", - "reference": "67e9285380dd1fa56b870929d0379f41b9c56e87" + "reference": "f419ab2853cc00471ffd7fc18e544b5f5a90adb1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/inflector/zipball/67e9285380dd1fa56b870929d0379f41b9c56e87", - "reference": "67e9285380dd1fa56b870929d0379f41b9c56e87", + "url": "https://api.github.com/repos/symfony/inflector/zipball/f419ab2853cc00471ffd7fc18e544b5f5a90adb1", + "reference": "f419ab2853cc00471ffd7fc18e544b5f5a90adb1", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", + "php": "^7.1.3", "symfony/polyfill-ctype": "~1.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -1167,34 +1223,43 @@ "symfony", "words" ], - "time": "2019-09-17T08:36:34+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { - "name": "symfony/options-resolver", - "version": "v3.4.36", + "name": "symfony/mime", + "version": "v4.4.4", "source": { "type": "git", - "url": "https://github.com/symfony/options-resolver.git", - "reference": "b224d20be60e6f7b55cd66914379a13a0b28651a" + "url": "https://github.com/symfony/mime.git", + "reference": "225034620ecd4b34fd826e9983d85e2b7a359094" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/b224d20be60e6f7b55cd66914379a13a0b28651a", - "reference": "b224d20be60e6f7b55cd66914379a13a0b28651a", + "url": "https://api.github.com/repos/symfony/mime/zipball/225034620ecd4b34fd826e9983d85e2b7a359094", + "reference": "225034620ecd4b34fd826e9983d85e2b7a359094", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" + "php": "^7.1.3", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0" + }, + "conflict": { + "symfony/mailer": "<4.4" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10", + "symfony/dependency-injection": "^3.4|^4.1|^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\OptionsResolver\\": "" + "Symfony\\Component\\Mime\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -1214,44 +1279,43 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony OptionsResolver Component", + "description": "A library to manipulate MIME messages", "homepage": "https://symfony.com", "keywords": [ - "config", - "configuration", - "options" + "mime", + "mime-type" ], - "time": "2019-10-26T11:02:01+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { - "name": "symfony/polyfill-apcu", - "version": "v1.13.1", + "name": "symfony/options-resolver", + "version": "v4.4.4", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-apcu.git", - "reference": "a8e961c841b9ec52927a87914f8820a1ad8f8116" + "url": "https://github.com/symfony/options-resolver.git", + "reference": "9a02d6662660fe7bfadad63b5f0b0718d4c8b6b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/a8e961c841b9ec52927a87914f8820a1ad8f8116", - "reference": "a8e961c841b9ec52927a87914f8820a1ad8f8116", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/9a02d6662660fe7bfadad63b5f0b0718d4c8b6b0", + "reference": "9a02d6662660fe7bfadad63b5f0b0718d4c8b6b0", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.1.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "4.4-dev" } }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Apcu\\": "" + "Symfony\\Component\\OptionsResolver\\": "" }, - "files": [ - "bootstrap.php" + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -1260,24 +1324,22 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting apcu_* functions to lower PHP versions", + "description": "Symfony OptionsResolver Component", "homepage": "https://symfony.com", "keywords": [ - "apcu", - "compatibility", - "polyfill", - "portable", - "shim" + "config", + "configuration", + "options" ], - "time": "2019-11-27T13:56:44+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { "name": "symfony/polyfill-ctype", @@ -1338,24 +1400,26 @@ "time": "2019-11-27T13:56:44+00:00" }, { - "name": "symfony/polyfill-mbstring", + "name": "symfony/polyfill-intl-idn", "version": "v1.13.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f" + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "6f9c239e61e1b0c9229a28ff89a812dc449c3d46" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7b4aab9743c30be783b73de055d24a39cf4b954f", - "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/6f9c239e61e1b0c9229a28ff89a812dc449c3d46", + "reference": "6f9c239e61e1b0c9229a28ff89a812dc449c3d46", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.3", + "symfony/polyfill-mbstring": "^1.3", + "symfony/polyfill-php72": "^1.9" }, "suggest": { - "ext-mbstring": "For best performance" + "ext-intl": "For best performance" }, "type": "library", "extra": { @@ -1365,7 +1429,7 @@ }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" + "Symfony\\Polyfill\\Intl\\Idn\\": "" }, "files": [ "bootstrap.php" @@ -1377,42 +1441,45 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Laurent Bassin", + "email": "laurent@bassin.info" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for the Mbstring extension", + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", "homepage": "https://symfony.com", "keywords": [ "compatibility", - "mbstring", + "idn", + "intl", "polyfill", "portable", "shim" ], - "time": "2019-11-27T14:18:11+00:00" + "time": "2019-11-27T13:56:44+00:00" }, { - "name": "symfony/polyfill-php56", + "name": "symfony/polyfill-mbstring", "version": "v1.13.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php56.git", - "reference": "53dd1cdf3cb986893ccf2b96665b25b3abb384f4" + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/53dd1cdf3cb986893ccf2b96665b25b3abb384f4", - "reference": "53dd1cdf3cb986893ccf2b96665b25b3abb384f4", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7b4aab9743c30be783b73de055d24a39cf4b954f", + "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f", "shasum": "" }, "require": { - "php": ">=5.3.3", - "symfony/polyfill-util": "~1.0" + "php": ">=5.3.3" + }, + "suggest": { + "ext-mbstring": "For best performance" }, "type": "library", "extra": { @@ -1422,7 +1489,7 @@ }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Php56\\": "" + "Symfony\\Polyfill\\Mbstring\\": "" }, "files": [ "bootstrap.php" @@ -1442,32 +1509,32 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions", + "description": "Symfony polyfill for the Mbstring extension", "homepage": "https://symfony.com", "keywords": [ "compatibility", + "mbstring", "polyfill", "portable", "shim" ], - "time": "2019-11-27T13:56:44+00:00" + "time": "2019-11-27T14:18:11+00:00" }, { - "name": "symfony/polyfill-php70", + "name": "symfony/polyfill-php72", "version": "v1.13.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php70.git", - "reference": "af23c7bb26a73b850840823662dda371484926c4" + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "66fea50f6cb37a35eea048d75a7d99a45b586038" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/af23c7bb26a73b850840823662dda371484926c4", - "reference": "af23c7bb26a73b850840823662dda371484926c4", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/66fea50f6cb37a35eea048d75a7d99a45b586038", + "reference": "66fea50f6cb37a35eea048d75a7d99a45b586038", "shasum": "" }, "require": { - "paragonie/random_compat": "~1.0|~2.0|~9.99", "php": ">=5.3.3" }, "type": "library", @@ -1478,13 +1545,10 @@ }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Php70\\": "" + "Symfony\\Polyfill\\Php72\\": "" }, "files": [ "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" ] }, "notification-url": "https://packagist.org/downloads/", @@ -1501,7 +1565,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -1512,17 +1576,17 @@ "time": "2019-11-27T13:56:44+00:00" }, { - "name": "symfony/polyfill-util", + "name": "symfony/polyfill-php73", "version": "v1.13.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-util.git", - "reference": "964a67f293b66b95883a5ed918a65354fcd2258f" + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "4b0e2222c55a25b4541305a053013d5647d3a25f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/964a67f293b66b95883a5ed918a65354fcd2258f", - "reference": "964a67f293b66b95883a5ed918a65354fcd2258f", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/4b0e2222c55a25b4541305a053013d5647d3a25f", + "reference": "4b0e2222c55a25b4541305a053013d5647d3a25f", "shasum": "" }, "require": { @@ -1536,8 +1600,14 @@ }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Util\\": "" - } + "Symfony\\Polyfill\\Php73\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1553,37 +1623,36 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony utilities for portability of PHP codes", + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ - "compat", "compatibility", "polyfill", + "portable", "shim" ], - "time": "2019-11-27T13:56:44+00:00" + "time": "2019-11-27T16:25:15+00:00" }, { "name": "symfony/property-access", - "version": "v3.4.36", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "9ec5e220898a97b92b8784422396f4e244c04d29" + "reference": "090b4bc92ded1ec512f7e2ed1691210769dffdb3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/9ec5e220898a97b92b8784422396f4e244c04d29", - "reference": "9ec5e220898a97b92b8784422396f4e244c04d29", + "url": "https://api.github.com/repos/symfony/property-access/zipball/090b4bc92ded1ec512f7e2ed1691210769dffdb3", + "reference": "090b4bc92ded1ec512f7e2ed1691210769dffdb3", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/inflector": "~3.1|~4.0", - "symfony/polyfill-php70": "~1.0" + "php": "^7.1.3", + "symfony/inflector": "^3.4|^4.0|^5.0" }, "require-dev": { - "symfony/cache": "~3.1|~4.0" + "symfony/cache": "^3.4|^4.0|^5.0" }, "suggest": { "psr/cache-implementation": "To cache access methods." @@ -1591,7 +1660,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -1629,38 +1698,38 @@ "property path", "reflection" ], - "time": "2019-12-01T10:45:41+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { "name": "symfony/routing", - "version": "v3.4.36", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "b689ccd48e234ea404806d94b07eeb45f9f6f06a" + "reference": "7bf4e38573728e317b926ca4482ad30470d0e86a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/b689ccd48e234ea404806d94b07eeb45f9f6f06a", - "reference": "b689ccd48e234ea404806d94b07eeb45f9f6f06a", + "url": "https://api.github.com/repos/symfony/routing/zipball/7bf4e38573728e317b926ca4482ad30470d0e86a", + "reference": "7bf4e38573728e317b926ca4482ad30470d0e86a", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" + "php": "^7.1.3" }, "conflict": { - "symfony/config": "<3.3.1", - "symfony/dependency-injection": "<3.3", + "symfony/config": "<4.2", + "symfony/dependency-injection": "<3.4", "symfony/yaml": "<3.4" }, "require-dev": { - "doctrine/annotations": "~1.0", + "doctrine/annotations": "~1.2", "psr/log": "~1.0", - "symfony/config": "^3.3.1|~4.0", - "symfony/dependency-injection": "~3.3|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/http-foundation": "~2.8|~3.0|~4.0", - "symfony/yaml": "~3.4|~4.0" + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0" }, "suggest": { "doctrine/annotations": "For using the annotation loader", @@ -1672,7 +1741,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -1705,44 +1774,46 @@ "uri", "url" ], - "time": "2019-12-01T08:33:36+00:00" + "time": "2020-01-08T17:29:02+00:00" }, { "name": "symfony/serializer", - "version": "v3.4.36", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "05a1125ff3fdd10a68a2857a5d1d4a1ceb93ba42" + "reference": "76ecc214a93b763c29b924277e85f64326f9fbb2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/05a1125ff3fdd10a68a2857a5d1d4a1ceb93ba42", - "reference": "05a1125ff3fdd10a68a2857a5d1d4a1ceb93ba42", + "url": "https://api.github.com/repos/symfony/serializer/zipball/76ecc214a93b763c29b924277e85f64326f9fbb2", + "reference": "76ecc214a93b763c29b924277e85f64326f9fbb2", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", + "php": "^7.1.3", "symfony/polyfill-ctype": "~1.8" }, "conflict": { "phpdocumentor/type-resolver": "<0.2.1", - "symfony/dependency-injection": "<3.2", - "symfony/property-access": ">=3.0,<3.0.4|>=2.8,<2.8.4", - "symfony/property-info": "<3.1", + "symfony/dependency-injection": "<3.4", + "symfony/property-access": "<3.4", + "symfony/property-info": "<3.4", "symfony/yaml": "<3.4" }, "require-dev": { "doctrine/annotations": "~1.0", "doctrine/cache": "~1.0", - "phpdocumentor/reflection-docblock": "^3.0|^4.0", - "symfony/cache": "~3.1|~4.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "~3.2|~4.0", - "symfony/http-foundation": "~2.8|~3.0|~4.0", - "symfony/property-access": "~2.8|~3.0|~4.0", - "symfony/property-info": "^3.4.13|~4.0", - "symfony/yaml": "~3.4|~4.0" + "phpdocumentor/reflection-docblock": "^3.2|^4.0", + "symfony/cache": "^3.4|^4.0|^5.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/error-handler": "^4.4|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/property-access": "^3.4|^4.0|^5.0", + "symfony/property-info": "^3.4.13|~4.0|^5.0", + "symfony/validator": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0" }, "suggest": { "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", @@ -1757,7 +1828,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -1784,40 +1855,236 @@ ], "description": "Symfony Serializer Component", "homepage": "https://symfony.com", - "time": "2019-11-25T16:36:22+00:00" + "time": "2020-01-07T22:30:39+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v1.1.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "ffc7f5692092df31515df2a5ecf3b7302b3ddacf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/ffc7f5692092df31515df2a5ecf3b7302b3ddacf", + "reference": "ffc7f5692092df31515df2a5ecf3b7302b3ddacf", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "psr/container": "^1.0" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-10-14T12:27:06+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v4.4.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "46b53fd714568af343953c039ff47b67ce8af8d6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/46b53fd714568af343953c039ff47b67ce8af8d6", + "reference": "46b53fd714568af343953c039ff47b67ce8af8d6", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php72": "~1.5" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/console": "<3.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/process": "^4.4|^5.0", + "twig/twig": "^1.34|^2.4|^3.0" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony mechanism for exploring and dumping PHP variables", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "time": "2020-01-25T12:44:29+00:00" + }, + { + "name": "symfony/var-exporter", + "version": "v4.4.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-exporter.git", + "reference": "1a76a943f2af334da13bc9f33f49392fa530eec9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/1a76a943f2af334da13bc9f33f49392fa530eec9", + "reference": "1a76a943f2af334da13bc9f33f49392fa530eec9", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "require-dev": { + "symfony/var-dumper": "^4.1.1|^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\VarExporter\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A blend of var_export() + serialize() to turn any serializable data structure to plain PHP code", + "homepage": "https://symfony.com", + "keywords": [ + "clone", + "construct", + "export", + "hydrate", + "instantiate", + "serialize" + ], + "time": "2020-01-04T13:00:46+00:00" } ], "packages-dev": [ { "name": "doctrine/collections", - "version": "v1.4.0", + "version": "1.6.4", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "1a4fb7e902202c33cce8c55989b945612943c2ba" + "reference": "6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/1a4fb7e902202c33cce8c55989b945612943c2ba", - "reference": "1a4fb7e902202c33cce8c55989b945612943c2ba", + "url": "https://api.github.com/repos/doctrine/collections/zipball/6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7", + "reference": "6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.1.3" }, "require-dev": { - "doctrine/coding-standard": "~0.1@dev", - "phpunit/phpunit": "^5.7" + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan-shim": "^0.9.2", + "phpunit/phpunit": "^7.0", + "vimeo/psalm": "^3.2.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.3.x-dev" + "dev-master": "1.6.x-dev" } }, "autoload": { - "psr-0": { - "Doctrine\\Common\\Collections\\": "lib/" + "psr-4": { + "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections" } }, "notification-url": "https://packagist.org/downloads/", @@ -1825,6 +2092,10 @@ "MIT" ], "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -1833,10 +2104,6 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" @@ -1846,43 +2113,46 @@ "email": "schmittjoh@gmail.com" } ], - "description": "Collections Abstraction library", - "homepage": "http://www.doctrine-project.org", + "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.", + "homepage": "https://www.doctrine-project.org/projects/collections.html", "keywords": [ "array", "collections", - "iterator" + "iterators", + "php" ], - "time": "2017-01-03T10:49:41+00:00" + "time": "2019-11-13T13:07:11+00:00" }, { "name": "doctrine/instantiator", - "version": "1.0.5", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" + "reference": "ae466f726242e637cebdd526a7d991b9433bacf1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1", + "reference": "ae466f726242e637cebdd526a7d991b9433bacf1", "shasum": "" }, "require": { - "php": ">=5.3,<8.0-DEV" + "php": "^7.1" }, "require-dev": { - "athletic/athletic": "~0.1.8", + "doctrine/coding-standard": "^6.0", "ext-pdo": "*", "ext-phar": "*", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~2.0" + "phpbench/phpbench": "^0.13", + "phpstan/phpstan-phpunit": "^0.11", + "phpstan/phpstan-shim": "^0.11", + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.2.x-dev" } }, "autoload": { @@ -1902,34 +2172,37 @@ } ], "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://github.com/doctrine/instantiator", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", "keywords": [ "constructor", "instantiate" ], - "time": "2015-06-14T21:17:01+00:00" + "time": "2019-10-21T16:45:58+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.7.0", + "version": "1.9.5", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e" + "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", - "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/b2c28789e80a97badd14145fda39b545d83ca3ef", + "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.1" + }, + "replace": { + "myclabs/deep-copy": "self.version" }, "require-dev": { "doctrine/collections": "^1.0", "doctrine/common": "^2.6", - "phpunit/phpunit": "^4.1" + "phpunit/phpunit": "^7.1" }, "type": "library", "autoload": { @@ -1952,39 +2225,37 @@ "object", "object graph" ], - "time": "2017-10-19T19:58:43+00:00" + "time": "2020-01-17T21:11:47+00:00" }, { "name": "phpdocumentor/reflection-common", - "version": "1.0.1", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" + "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/63a995caa1ca9e5590304cd845c15ad6d482a62a", + "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a", "shasum": "" }, "require": { - "php": ">=5.5" + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "^4.6" + "phpunit/phpunit": "~6" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.x-dev" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src" - ] + "phpDocumentor\\Reflection\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -2006,38 +2277,42 @@ "reflection", "static analysis" ], - "time": "2017-09-11T18:02:19+00:00" + "time": "2018-08-07T13:53:10+00:00" }, { "name": "phpdocumentor/reflection-docblock", - "version": "3.3.2", + "version": "5.0.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2" + "reference": "a48807183a4b819072f26e347bbd0b5199a9d15f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bf329f6c1aadea3299f08ee804682b7c45b326a2", - "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/a48807183a4b819072f26e347bbd0b5199a9d15f", + "reference": "a48807183a4b819072f26e347bbd0b5199a9d15f", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0", - "phpdocumentor/reflection-common": "^1.0.0", - "phpdocumentor/type-resolver": "^0.4.0", - "webmozart/assert": "^1.0" + "ext-filter": "^7.1", + "php": "^7.2", + "phpdocumentor/reflection-common": "^2.0", + "phpdocumentor/type-resolver": "^1.0", + "webmozart/assert": "^1" }, "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^4.4" + "doctrine/instantiator": "^1", + "mockery/mockery": "^1" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] + "phpDocumentor\\Reflection\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -2048,44 +2323,47 @@ { "name": "Mike van Riel", "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2017-11-10T14:09:06+00:00" + "time": "2020-02-09T09:16:15+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "0.4.0", + "version": "1.0.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" + "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", + "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", "shasum": "" }, "require": { - "php": "^5.5 || ^7.0", - "phpdocumentor/reflection-common": "^1.0" + "php": "^7.1", + "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^5.2||^4.8.24" + "ext-tokenizer": "^7.1", + "mockery/mockery": "~1", + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] + "phpDocumentor\\Reflection\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -2098,28 +2376,29 @@ "email": "me@mikevanriel.com" } ], - "time": "2017-07-14T14:27:02+00:00" + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "time": "2019-08-22T18:11:29+00:00" }, { "name": "phpspec/prophecy", - "version": "1.10.1", + "version": "v1.10.2", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "cbe1df668b3fe136bcc909126a0f529a78d4cbbc" + "reference": "b4400efc9d206e83138e2bb97ed7f5b14b831cd9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/cbe1df668b3fe136bcc909126a0f529a78d4cbbc", - "reference": "cbe1df668b3fe136bcc909126a0f529a78d4cbbc", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/b4400efc9d206e83138e2bb97ed7f5b14b831cd9", + "reference": "b4400efc9d206e83138e2bb97ed7f5b14b831cd9", "shasum": "" }, "require": { "doctrine/instantiator": "^1.0.2", "php": "^5.3|^7.0", "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", - "sebastian/comparator": "^1.2.3|^2.0|^3.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" + "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0" }, "require-dev": { "phpspec/phpspec": "^2.5 || ^3.2", @@ -2161,7 +2440,7 @@ "spy", "stub" ], - "time": "2019-12-22T21:05:45+00:00" + "time": "2020-01-20T15:57:02+00:00" }, { "name": "phpunit/php-code-coverage", @@ -2365,29 +2644,29 @@ }, { "name": "phpunit/php-token-stream", - "version": "1.4.12", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16" + "reference": "791198a2c6254db10131eecfe8c06670700904db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16", - "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/791198a2c6254db10131eecfe8c06670700904db", + "reference": "791198a2c6254db10131eecfe8c06670700904db", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": ">=5.3.3" + "php": "^7.0" }, "require-dev": { - "phpunit/phpunit": "~4.2" + "phpunit/phpunit": "^6.2.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -2410,7 +2689,7 @@ "keywords": [ "tokenizer" ], - "time": "2017-12-04T08:55:13+00:00" + "time": "2017-11-27T05:48:46+00:00" }, { "name": "phpunit/phpunit", @@ -2560,12 +2839,12 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "67ac6ea8f4a078c3c9b7aec5d7ae70f098c37389" + "reference": "7d271200b041d3e4be5927fdb03122508b9f8ebb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/67ac6ea8f4a078c3c9b7aec5d7ae70f098c37389", - "reference": "67ac6ea8f4a078c3c9b7aec5d7ae70f098c37389", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/7d271200b041d3e4be5927fdb03122508b9f8ebb", + "reference": "7d271200b041d3e4be5927fdb03122508b9f8ebb", "shasum": "" }, "conflict": { @@ -2604,7 +2883,11 @@ "drupal/drupal": ">=7,<7.69|>=8,<8.7.11|>=8.8,<8.8.1", "endroid/qr-code-bundle": "<3.4.2", "erusev/parsedown": "<1.7.2", - "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.4", + "ezsystems/ezfind-ls": ">=5.3,<5.3.6.1|>=5.4,<5.4.11.1|>=2017.12,<2017.12.0.1", + "ezsystems/ezplatform": ">=1.7,<1.7.9.1|>=1.13,<1.13.5.1|>=2.5,<2.5.4", + "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6", + "ezsystems/ezplatform-admin-ui-assets": ">=4,<4.2", + "ezsystems/ezplatform-user": ">=1,<1.0.1", "ezsystems/ezpublish-kernel": ">=5.3,<5.3.12.1|>=5.4,<5.4.13.1|>=6,<6.7.9.1|>=6.8,<6.13.5.1|>=7,<7.2.4.1|>=7.3,<7.3.2.1", "ezsystems/ezpublish-legacy": ">=5.3,<5.3.12.6|>=5.4,<5.4.12.3|>=2011,<2017.12.4.3|>=2018.6,<2018.6.1.4|>=2018.9,<2018.9.1.3", "ezsystems/repository-forms": ">=2.3,<2.3.2.1", @@ -2638,6 +2921,7 @@ "monolog/monolog": ">=1.8,<1.12", "namshi/jose": "<2.2", "onelogin/php-saml": "<2.10.4", + "oneup/uploader-bundle": ">=1,<1.9.3|>=2,<2.1.5", "openid/php-openid": "<2.3", "oro/crm": ">=1.7,<1.7.4", "oro/platform": ">=1.7,<1.7.4", @@ -2647,7 +2931,7 @@ "paypal/merchant-sdk-php": "<3.12", "pear/archive_tar": "<1.4.4", "phpmailer/phpmailer": ">=5,<5.2.27|>=6,<6.0.6", - "phpoffice/phpexcel": "<=1.8.1", + "phpoffice/phpexcel": "<1.8.2", "phpoffice/phpspreadsheet": "<=1.5", "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5.0.10,<5.6.3", "phpwhois/phpwhois": "<=4.2.5", @@ -2661,12 +2945,17 @@ "sensiolabs/connect": "<4.2.3", "serluck/phpwhois": "<=4.2.6", "shopware/shopware": "<5.3.7", + "silverstripe/admin": ">=1.0.3,<1.0.4|>=1.1,<1.1.1", + "silverstripe/assets": ">=1,<1.3.5", "silverstripe/cms": ">=3,<=3.0.11|>=3.1,<3.1.11", + "silverstripe/comments": ">=1.3,<1.9.99|>=2,<2.9.99|>=3,<3.1.1", "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3", - "silverstripe/framework": ">=3,<3.6.7|>=3.7,<3.7.3|>=4,<4.4", + "silverstripe/framework": ">=3,<3.9.99|>=4,<4.4.4", "silverstripe/graphql": ">=2,<2.0.5|>=3,<3.1.2", "silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1", "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4", + "silverstripe/subsites": ">=2,<2.1.1", + "silverstripe/taxonomy": ">=1.3,<1.3.1|>=2,<2.0.1", "silverstripe/userforms": "<3", "simple-updates/phpwhois": "<=1", "simplesamlphp/saml2": "<1.10.6|>=2,<2.3.8|>=3,<3.1.4", @@ -2678,12 +2967,14 @@ "spoonity/tcpdf": "<6.2.22", "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1", "stormpath/sdk": ">=0,<9.9.99", - "studio-42/elfinder": "<2.1.48", + "studio-42/elfinder": "<2.1.49", "swiftmailer/swiftmailer": ">=4,<5.4.5", "sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2", "sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1", "sylius/grid-bundle": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1", - "sylius/sylius": ">=1,<1.1.18|>=1.2,<1.2.17|>=1.3,<1.3.12|>=1.4,<1.4.4", + "sylius/resource-bundle": ">=1,<1.3.13|>=1.4,<1.4.6|>=1.5,<1.5.1|>=1.6,<1.6.3", + "sylius/sylius": ">=1,<1.3.12|>=1.4,<1.4.4", + "symbiote/silverstripe-multivaluefield": ">=3,<3.0.99", "symfony/cache": ">=3.1,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8", "symfony/dependency-injection": ">=2,<2.0.17|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", "symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1", @@ -2769,10 +3060,15 @@ "name": "Marco Pivetta", "email": "ocramius@gmail.com", "role": "maintainer" + }, + { + "name": "Ilya Tribusean", + "email": "slash3b@gmail.com", + "role": "maintainer" } ], "description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it", - "time": "2020-01-06T19:16:46+00:00" + "time": "2020-02-06T16:34:55+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -3289,16 +3585,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.5.3", + "version": "3.5.4", "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "557a1fc7ac702c66b0bbfe16ab3d55839ef724cb" + "reference": "dceec07328401de6211037abbb18bda423677e26" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/557a1fc7ac702c66b0bbfe16ab3d55839ef724cb", - "reference": "557a1fc7ac702c66b0bbfe16ab3d55839ef724cb", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/dceec07328401de6211037abbb18bda423677e26", + "reference": "dceec07328401de6211037abbb18bda423677e26", "shasum": "" }, "require": { @@ -3336,7 +3632,7 @@ "phpcs", "standards" ], - "time": "2019-12-04T04:46:47+00:00" + "time": "2020-01-30T22:20:29+00:00" }, { "name": "superbrave/coding-standards", @@ -3373,27 +3669,27 @@ }, { "name": "symfony/yaml", - "version": "v3.4.36", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "dab657db15207879217fc81df4f875947bf68804" + "reference": "cd014e425b3668220adb865f53bff64b3ad21767" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/dab657db15207879217fc81df4f875947bf68804", - "reference": "dab657db15207879217fc81df4f875947bf68804", + "url": "https://api.github.com/repos/symfony/yaml/zipball/cd014e425b3668220adb865f53bff64b3ad21767", + "reference": "cd014e425b3668220adb865f53bff64b3ad21767", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", + "php": "^7.1.3", "symfony/polyfill-ctype": "~1.8" }, "conflict": { "symfony/console": "<3.4" }, "require-dev": { - "symfony/console": "~3.4|~4.0" + "symfony/console": "^3.4|^4.0|^5.0" }, "suggest": { "symfony/console": "For validating YAML files using the lint command" @@ -3401,7 +3697,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -3428,7 +3724,7 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2019-10-24T15:33:53+00:00" + "time": "2020-01-21T11:12:16+00:00" }, { "name": "webmozart/assert", From 862eec917f3b72e1e44ac71479f857912c218c96 Mon Sep 17 00:00:00 2001 From: Jelle van Oosterbosch Date: Mon, 10 Feb 2020 17:11:26 +0100 Subject: [PATCH 13/21] Removed php 5.6 from travis because composer already requires 7.2 --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index bc8a257..c97ca1d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,6 @@ sudo: false matrix: include: - - php: 5.6 - php: 7.2 before_install: composer self-update From fef528c1dda5e89c9949751f36f4eb6c60ec9a8d Mon Sep 17 00:00:00 2001 From: Jelle van Oosterbosch Date: Mon, 10 Feb 2020 23:25:49 +0100 Subject: [PATCH 14/21] Changed some service definition so we can use the for autowiring --- .../SuperbraveGdprExtension.php | 1 + Resources/config/legacy_aliases.yml | 7 ++++ Resources/config/services.yml | 36 ++++++++----------- 3 files changed, 23 insertions(+), 21 deletions(-) create mode 100644 Resources/config/legacy_aliases.yml diff --git a/DependencyInjection/SuperbraveGdprExtension.php b/DependencyInjection/SuperbraveGdprExtension.php index 3cec98f..60b64d3 100644 --- a/DependencyInjection/SuperbraveGdprExtension.php +++ b/DependencyInjection/SuperbraveGdprExtension.php @@ -45,5 +45,6 @@ public function load(array $configs, ContainerBuilder $container) $loader->load('services.yml'); $loader->load('services.exporter.types.yml'); $loader->load('services.anonymizer.types.yml'); + $loader->load('legacy_aliases.yml'); } } diff --git a/Resources/config/legacy_aliases.yml b/Resources/config/legacy_aliases.yml new file mode 100644 index 0000000..6f2081c --- /dev/null +++ b/Resources/config/legacy_aliases.yml @@ -0,0 +1,7 @@ +services: + superbrave_gdpr.annotation.reader: '@Superbrave\GdprBundle\Annotation\AnnotationReader' + superbrave_gdpr.exporter: '@Superbrave\GdprBundle\Export\Exporter' + superbrave_gdpr.anonymizer: '@Superbrave\GdprBundle\Anonymize\Anonymizer' + superbrave_gdpr.property_manipulator: '@Superbrave\GdprBundle\Manipulator\PropertyManipulator' + superbrave_gdpr.anonymizer_collection: '@Superbrave\GdprBundle\Anonymize\AnonymizerCollection' + superbrave_gdpr.property_anonymizer: '@Superbrave\GdprBundle\Anonymize\PropertyAnonymizer' diff --git a/Resources/config/services.yml b/Resources/config/services.yml index 680fc15..1d33624 100644 --- a/Resources/config/services.yml +++ b/Resources/config/services.yml @@ -2,43 +2,37 @@ services: _defaults: public: false - superbrave_gdpr.annotation.reader: - class: Superbrave\GdprBundle\Annotation\AnnotationReader + Superbrave\GdprBundle\Annotation\AnnotationReader: - superbrave_gdpr.exporter: - class: Superbrave\GdprBundle\Export\Exporter + Superbrave\GdprBundle\Export\Exporter: arguments: - - "@superbrave_gdpr.exporter.serializer" + - '@superbrave_gdpr.exporter.serializer' public: true - superbrave_gdpr.anonymizer: - class: Superbrave\GdprBundle\Anonymize\Anonymizer + Superbrave\GdprBundle\Anonymize\Anonymizer: arguments: - - "@superbrave_gdpr.annotation.reader" - - "@superbrave_gdpr.property_anonymizer" + - '@Superbrave\GdprBundle\Annotation\AnnotationReader' + - '@Superbrave\GdprBundle\Anonymize\PropertyAnonymizer' public: true superbrave_gdpr.exporter.serializer: class: Symfony\Component\Serializer\Serializer - factory: ["Superbrave\\GdprBundle\\DependencyInjection\\ObjectFactory", "createSerializer"] + factory: ['Superbrave\\GdprBundle\\DependencyInjection\\ObjectFactory', 'createSerializer'] arguments: - - !tagged "superbrave_gdpr.serializer.normalizer" - - !tagged "superbrave_gdpr.serializer.encoder" + - !tagged 'superbrave_gdpr.serializer.normalizer' + - !tagged 'superbrave_gdpr.serializer.encoder' superbrave_gdpr.property_accessor: class: Symfony\Component\PropertyAccess\PropertyAccessor - superbrave_gdpr.property_manipulator: - class: Superbrave\GdprBundle\Manipulator\PropertyManipulator + Superbrave\GdprBundle\Manipulator\PropertyManipulator: arguments: - - "@superbrave_gdpr.property_accessor" + - '@superbrave_gdpr.property_accessor' - superbrave_gdpr.anonymizer_collection: - class: Superbrave\GdprBundle\Anonymize\AnonymizerCollection + Superbrave\GdprBundle\Anonymize\AnonymizerCollection: public: true - superbrave_gdpr.property_anonymizer: - class: Superbrave\GdprBundle\Anonymize\PropertyAnonymizer + Superbrave\GdprBundle\Anonymize\PropertyAnonymizer: arguments: - - "@superbrave_gdpr.property_manipulator" - - "@superbrave_gdpr.anonymizer_collection" + - '@superbrave_gdpr.property_manipulator' + - '@superbrave_gdpr.anonymizer_collection' From e7cc104f1ad506c35a920ffa17afb1b241384d16 Mon Sep 17 00:00:00 2001 From: Jelle van Oosterbosch Date: Mon, 10 Feb 2020 23:29:00 +0100 Subject: [PATCH 15/21] Removed extra backslash which gives errors when using single quotes --- Resources/config/services.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/config/services.yml b/Resources/config/services.yml index 1d33624..33aae5f 100644 --- a/Resources/config/services.yml +++ b/Resources/config/services.yml @@ -17,7 +17,7 @@ services: superbrave_gdpr.exporter.serializer: class: Symfony\Component\Serializer\Serializer - factory: ['Superbrave\\GdprBundle\\DependencyInjection\\ObjectFactory', 'createSerializer'] + factory: ['Superbrave\GdprBundle\DependencyInjection\ObjectFactory', 'createSerializer'] arguments: - !tagged 'superbrave_gdpr.serializer.normalizer' - !tagged 'superbrave_gdpr.serializer.encoder' From 0e2474315aaf8f0b13a3172695d7bfe41624be69 Mon Sep 17 00:00:00 2001 From: Jelle van Oosterbosch Date: Mon, 10 Feb 2020 23:45:30 +0100 Subject: [PATCH 16/21] Fixed missing annotations errors because we don't have autowiring --- Resources/config/services.exporter.types.yml | 2 +- Resources/config/services.yml | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Resources/config/services.exporter.types.yml b/Resources/config/services.exporter.types.yml index 326b9cf..610efd2 100644 --- a/Resources/config/services.exporter.types.yml +++ b/Resources/config/services.exporter.types.yml @@ -16,7 +16,7 @@ services: class: Superbrave\GdprBundle\Serializer\Normalizer\AnnotationNormalizer arguments: - "@superbrave_gdpr.annotation.reader" - - "Superbrave\\GdprBundle\\Annotation\\Export" + - '@Superbrave\GdprBundle\Annotation\Export' - "@superbrave_gdpr.property_manipulator" tags: - { name: "superbrave_gdpr.serializer.normalizer" } diff --git a/Resources/config/services.yml b/Resources/config/services.yml index 33aae5f..2ecfbee 100644 --- a/Resources/config/services.yml +++ b/Resources/config/services.yml @@ -2,6 +2,8 @@ services: _defaults: public: false + Superbrave\GdprBundle\Annotation\Anonymize: + Superbrave\GdprBundle\Annotation\Export: Superbrave\GdprBundle\Annotation\AnnotationReader: Superbrave\GdprBundle\Export\Exporter: From 5965459ad9afdc7b9525105455988616698f392d Mon Sep 17 00:00:00 2001 From: Jelle van Oosterbosch Date: Tue, 11 Feb 2020 00:03:37 +0100 Subject: [PATCH 17/21] My bad, this should not be a service --- Resources/config/services.exporter.types.yml | 2 +- Resources/config/services.yml | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/Resources/config/services.exporter.types.yml b/Resources/config/services.exporter.types.yml index 610efd2..0ac5ea1 100644 --- a/Resources/config/services.exporter.types.yml +++ b/Resources/config/services.exporter.types.yml @@ -16,7 +16,7 @@ services: class: Superbrave\GdprBundle\Serializer\Normalizer\AnnotationNormalizer arguments: - "@superbrave_gdpr.annotation.reader" - - '@Superbrave\GdprBundle\Annotation\Export' + - 'Superbrave\GdprBundle\Annotation\Export' - "@superbrave_gdpr.property_manipulator" tags: - { name: "superbrave_gdpr.serializer.normalizer" } diff --git a/Resources/config/services.yml b/Resources/config/services.yml index 2ecfbee..33aae5f 100644 --- a/Resources/config/services.yml +++ b/Resources/config/services.yml @@ -2,8 +2,6 @@ services: _defaults: public: false - Superbrave\GdprBundle\Annotation\Anonymize: - Superbrave\GdprBundle\Annotation\Export: Superbrave\GdprBundle\Annotation\AnnotationReader: Superbrave\GdprBundle\Export\Exporter: From 4e615bfa92b3e8d9ff9927b26d408e2c307a7d61 Mon Sep 17 00:00:00 2001 From: Jelle van Oosterbosch Date: Tue, 11 Feb 2020 10:43:36 +0100 Subject: [PATCH 18/21] Fixed service definitions --- .../Compiler/AddAnonymizersCompilerPass.php | 5 +++-- Resources/config/legacy_aliases.yml | 12 ++++++------ Resources/config/services.anonymizer.types.yml | 8 ++++---- Resources/config/services.exporter.types.yml | 17 ++++++++--------- Resources/config/services.yml | 4 ++-- 5 files changed, 23 insertions(+), 23 deletions(-) diff --git a/DependencyInjection/Compiler/AddAnonymizersCompilerPass.php b/DependencyInjection/Compiler/AddAnonymizersCompilerPass.php index 4c23d86..cec5328 100644 --- a/DependencyInjection/Compiler/AddAnonymizersCompilerPass.php +++ b/DependencyInjection/Compiler/AddAnonymizersCompilerPass.php @@ -13,6 +13,7 @@ namespace Superbrave\GdprBundle\DependencyInjection\Compiler; use LogicException; +use Superbrave\GdprBundle\Anonymize\AnonymizerCollection; use Superbrave\GdprBundle\Anonymize\Type\AnonymizerInterface; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; use Symfony\Component\DependencyInjection\ContainerBuilder; @@ -37,11 +38,11 @@ class AddAnonymizersCompilerPass implements CompilerPassInterface */ public function process(ContainerBuilder $container) { - if ($container->hasDefinition('superbrave_gdpr.anonymizer_collection') === false) { + if ($container->hasDefinition(AnonymizerCollection::class) === false) { return; } - $anonymizerManagerDefinition = $container->getDefinition('superbrave_gdpr.anonymizer_collection'); + $anonymizerManagerDefinition = $container->getDefinition(AnonymizerCollection::class); $anonymizers = $container->findTaggedServiceIds('superbrave_gdpr.anonymizer'); foreach ($anonymizers as $anonymizer => $attributes) { diff --git a/Resources/config/legacy_aliases.yml b/Resources/config/legacy_aliases.yml index 6f2081c..11cd1aa 100644 --- a/Resources/config/legacy_aliases.yml +++ b/Resources/config/legacy_aliases.yml @@ -1,7 +1,7 @@ services: - superbrave_gdpr.annotation.reader: '@Superbrave\GdprBundle\Annotation\AnnotationReader' - superbrave_gdpr.exporter: '@Superbrave\GdprBundle\Export\Exporter' - superbrave_gdpr.anonymizer: '@Superbrave\GdprBundle\Anonymize\Anonymizer' - superbrave_gdpr.property_manipulator: '@Superbrave\GdprBundle\Manipulator\PropertyManipulator' - superbrave_gdpr.anonymizer_collection: '@Superbrave\GdprBundle\Anonymize\AnonymizerCollection' - superbrave_gdpr.property_anonymizer: '@Superbrave\GdprBundle\Anonymize\PropertyAnonymizer' + superbrave_gdpr.annotation.reader: '@Superbrave\GdprBundle\Annotation\AnnotationReader' + superbrave_gdpr.exporter: '@Superbrave\GdprBundle\Export\Exporter' + superbrave_gdpr.anonymizer: '@Superbrave\GdprBundle\Anonymize\Anonymizer' + superbrave_gdpr.property_manipulator: '@Superbrave\GdprBundle\Manipulator\PropertyManipulator' + superbrave_gdpr.anonymizer_collection: '@Superbrave\GdprBundle\Anonymize\AnonymizerCollection' + superbrave_gdpr.property_anonymizer: '@Superbrave\GdprBundle\Anonymize\PropertyAnonymizer' diff --git a/Resources/config/services.anonymizer.types.yml b/Resources/config/services.anonymizer.types.yml index 9a3f213..2a5f8ef 100644 --- a/Resources/config/services.anonymizer.types.yml +++ b/Resources/config/services.anonymizer.types.yml @@ -5,7 +5,7 @@ services: superbrave_gdpr.fixed_anonymizer: class: Superbrave\GdprBundle\Anonymize\Type\FixedAnonymizer arguments: - - "@superbrave_gdpr.property_manipulator" + - '@Superbrave\GdprBundle\Manipulator\PropertyManipulator' tags: - { name: superbrave_gdpr.anonymizer, type: fixed } @@ -22,18 +22,18 @@ services: superbrave_gdpr.object_anonymizer: class: Superbrave\GdprBundle\Anonymize\Type\ObjectAnonymizer arguments: - - "@superbrave_gdpr.anonymizer" + - '@Superbrave\GdprBundle\Anonymize\Anonymizer' tags: - { name: superbrave_gdpr.anonymizer, type: object } superbrave_gdpr.collection_anonymizer: class: Superbrave\GdprBundle\Anonymize\Type\ArrayAnonymizer arguments: - - "@superbrave_gdpr.object_anonymizer" + - '@superbrave_gdpr.object_anonymizer' tags: - { name: superbrave_gdpr.anonymizer, type: collection } superbrave_gdpr.null_anonymizer: class: Superbrave\GdprBundle\Anonymize\Type\NullAnonymizer tags: - - { name: superbrave_gdpr.anonymizer, type: "null" } + - { name: superbrave_gdpr.anonymizer, type: 'null' } diff --git a/Resources/config/services.exporter.types.yml b/Resources/config/services.exporter.types.yml index 0ac5ea1..01cdbef 100644 --- a/Resources/config/services.exporter.types.yml +++ b/Resources/config/services.exporter.types.yml @@ -5,28 +5,27 @@ services: superbrave_gdpr.exporter.serializer.normalizer.iterable_normalizer: class: Superbrave\GdprBundle\Serializer\Normalizer\IterableNormalizer tags: - - { name: "superbrave_gdpr.serializer.normalizer" } + - { name: 'superbrave_gdpr.serializer.normalizer' } superbrave_gdpr.exporter.serializer.normalizer.datetime_normalizer: class: Symfony\Component\Serializer\Normalizer\DateTimeNormalizer tags: - - { name: "superbrave_gdpr.serializer.normalizer" } + - { name: 'superbrave_gdpr.serializer.normalizer' } - superbrave_gdpr.exporter.serializer.normalizer.export_annotation: - class: Superbrave\GdprBundle\Serializer\Normalizer\AnnotationNormalizer + Superbrave\GdprBundle\Serializer\Normalizer\AnnotationNormalizer: arguments: - - "@superbrave_gdpr.annotation.reader" + - '@Superbrave\GdprBundle\Annotation\AnnotationReader' - 'Superbrave\GdprBundle\Annotation\Export' - - "@superbrave_gdpr.property_manipulator" + - '@Superbrave\GdprBundle\Manipulator\PropertyManipulator' tags: - - { name: "superbrave_gdpr.serializer.normalizer" } + - { name: 'superbrave_gdpr.serializer.normalizer' } superbrave_gdpr.exporter.serializer.encoder.xml: class: Symfony\Component\Serializer\Encoder\XmlEncoder tags: - - { name: "superbrave_gdpr.serializer.encoder" } + - { name: 'superbrave_gdpr.serializer.encoder' } superbrave_gdpr.exporter.serializer.encoder.json: class: Symfony\Component\Serializer\Encoder\JsonEncoder tags: - - { name: "superbrave_gdpr.serializer.encoder" } + - { name: 'superbrave_gdpr.serializer.encoder' } diff --git a/Resources/config/services.yml b/Resources/config/services.yml index 33aae5f..d6d2693 100644 --- a/Resources/config/services.yml +++ b/Resources/config/services.yml @@ -34,5 +34,5 @@ services: Superbrave\GdprBundle\Anonymize\PropertyAnonymizer: arguments: - - '@superbrave_gdpr.property_manipulator' - - '@superbrave_gdpr.anonymizer_collection' + - '@Superbrave\GdprBundle\Manipulator\PropertyManipulator' + - '@Superbrave\GdprBundle\Anonymize\AnonymizerCollection' From 9f3862b1299d6798c67d23d222113e2e9a956d2f Mon Sep 17 00:00:00 2001 From: Jelle van Oosterbosch Date: Tue, 11 Feb 2020 13:27:44 +0100 Subject: [PATCH 19/21] Added double quotes to show the input of the chosen anonymizer --- Anonymize/AnonymizerCollection.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Anonymize/AnonymizerCollection.php b/Anonymize/AnonymizerCollection.php index a92e80f..8b894a7 100644 --- a/Anonymize/AnonymizerCollection.php +++ b/Anonymize/AnonymizerCollection.php @@ -60,7 +60,7 @@ public function addAnonymizer($type, $anonymizer) public function getAnonymizer($type) { if (!array_key_exists($type, $this->anonymizers)) { - throw new LogicException(sprintf('Anonymizer %s is not registered.', $type)); + throw new LogicException(sprintf('Anonymizer "%s" is not registered.', $type)); } return $this->anonymizers[$type]; From b2e077751a5f31fef03439a50c027722d4bb6086 Mon Sep 17 00:00:00 2001 From: Jelle van Oosterbosch Date: Tue, 11 Feb 2020 13:40:20 +0100 Subject: [PATCH 20/21] Fixed unit tests to be compatible with latest version --- Tests/Serializer/Normalizer/IterableNormalizerTest.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Tests/Serializer/Normalizer/IterableNormalizerTest.php b/Tests/Serializer/Normalizer/IterableNormalizerTest.php index 4e7a26c..2f39c60 100644 --- a/Tests/Serializer/Normalizer/IterableNormalizerTest.php +++ b/Tests/Serializer/Normalizer/IterableNormalizerTest.php @@ -13,6 +13,7 @@ namespace Superbrave\GdprBundle\Tests\Serializer\Normalizer; use Doctrine\Common\Collections\ArrayCollection; +use PHPUnit\Framework\TestCase; use Superbrave\GdprBundle\Serializer\Normalizer\IterableNormalizer; use Symfony\Component\Serializer\Encoder\JsonEncoder; use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer; @@ -23,7 +24,7 @@ * * @author Jelle van Oosterbosch */ -class IterableNormalizerTest extends \PHPUnit_Framework_TestCase +class IterableNormalizerTest extends TestCase { /** * @var IterableNormalizer @@ -38,7 +39,7 @@ class IterableNormalizerTest extends \PHPUnit_Framework_TestCase /** * {@inheritdoc} */ - public function setUp() + public function setUp(): void { $this->normalizer = new IterableNormalizer(); $this->serializer = new Serializer([ From a27f81c581eeede260edd05876a6e4d67556f46f Mon Sep 17 00:00:00 2001 From: Jelle van Oosterbosch Date: Tue, 11 Feb 2020 13:43:26 +0100 Subject: [PATCH 21/21] Fixed code style with cs-fixer --- Serializer/Normalizer/IterableNormalizer.php | 7 ++++--- .../Normalizer/AnnotationNormalizerTest.php | 5 ++--- .../Normalizer/IterableNormalizerTest.php | 15 ++++++++------- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/Serializer/Normalizer/IterableNormalizer.php b/Serializer/Normalizer/IterableNormalizer.php index ccdbd9b..78fd262 100644 --- a/Serializer/Normalizer/IterableNormalizer.php +++ b/Serializer/Normalizer/IterableNormalizer.php @@ -3,11 +3,12 @@ * This file is part of the GDPR bundle. * * @category Bundle - * @package Gdpr + * * @author SuperBrave * @copyright 2018 SuperBrave * @license https://github.com/superbrave/gdpr-bundle/blob/master/LICENSE MIT - * @link https://www.superbrave.nl/ + * + * @see https://www.superbrave.nl/ */ namespace Superbrave\GdprBundle\Serializer\Normalizer; @@ -40,7 +41,7 @@ public function supportsNormalization($data, $format = null) /** * {@inheritdoc} */ - public function normalize($object, $format = null, array $context = array()) + public function normalize($object, $format = null, array $context = []) { $normalizedData = []; diff --git a/Tests/Serializer/Normalizer/AnnotationNormalizerTest.php b/Tests/Serializer/Normalizer/AnnotationNormalizerTest.php index 02c33fa..8aacd78 100644 --- a/Tests/Serializer/Normalizer/AnnotationNormalizerTest.php +++ b/Tests/Serializer/Normalizer/AnnotationNormalizerTest.php @@ -13,7 +13,6 @@ namespace Superbrave\GdprBundle\Tests\Serializer\Normalizer; -use Doctrine\Common\Collections\ArrayCollection; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; use ReflectionClass; @@ -209,7 +208,7 @@ public function testNormalizeThroughXmlSerializer(): void $data = new AnnotatedMock(new AnnotatedMock()); $this->assertStringEqualsFile( - __DIR__ . '/../../Resources/xml/annotation_normalizer_result.xml', + __DIR__.'/../../Resources/xml/annotation_normalizer_result.xml', $serializer->serialize($data, 'xml') ); } @@ -242,7 +241,7 @@ public function testNormalizeThroughJsonSerializer(): void $data = new AnnotatedMock(new AnnotatedMock()); $this->assertStringEqualsFile( - __DIR__ . '/../../Resources/json/annotation_normalize_result.json', + __DIR__.'/../../Resources/json/annotation_normalize_result.json', $serializer->serialize($data, 'json') ); } diff --git a/Tests/Serializer/Normalizer/IterableNormalizerTest.php b/Tests/Serializer/Normalizer/IterableNormalizerTest.php index 2f39c60..7479d4d 100644 --- a/Tests/Serializer/Normalizer/IterableNormalizerTest.php +++ b/Tests/Serializer/Normalizer/IterableNormalizerTest.php @@ -3,11 +3,12 @@ * This file is part of the GDPR bundle. * * @category Bundle - * @package Gdpr + * * @author SuperBrave * @copyright 2018 SuperBrave * @license https://github.com/superbrave/gdpr-bundle/blob/master/LICENSE MIT - * @link https://www.superbrave.nl/ + * + * @see https://www.superbrave.nl/ */ namespace Superbrave\GdprBundle\Tests\Serializer\Normalizer; @@ -46,7 +47,7 @@ public function setUp(): void new DateTimeNormalizer(), $this->normalizer, ], [ - new JsonEncoder() + new JsonEncoder(), ]); $this->normalizer->setNormalizer($this->serializer); @@ -72,7 +73,7 @@ public function testSupportsNormalizationReturnsFalseWhenDataIsNotIterable() */ public function testSupportsNormalizationReturnsTrueWhenDataIsIterable() { - $this->assertTrue($this->normalizer->supportsNormalization(array())); + $this->assertTrue($this->normalizer->supportsNormalization([])); $this->assertTrue($this->normalizer->supportsNormalization(new ArrayCollection())); } @@ -115,12 +116,12 @@ public function testNormalizeThroughJsonSerializer() new ArrayCollection([ new \DateTime('2020/01/01'), new \DateTime('2020/01/01'), - ]) - ] + ]), + ], ]; $this->assertStringEqualsFile( - __DIR__ . '/../../Resources/json/iterable_normalize_result.json', + __DIR__.'/../../Resources/json/iterable_normalize_result.json', $this->serializer->serialize($data, 'json') ); }