├── .gitignore ├── _config.yml ├── .travis.yml ├── composer.json ├── phpunit.xml ├── src ├── EnmJsonApiServerBundle.php ├── Response │ └── JsonApiResponse.php ├── DependencyInjection │ ├── Configuration.php │ ├── Compiler │ │ └── RequestHandlerPass.php │ └── EnmJsonApiServerExtension.php ├── Controller │ └── JsonApiController.php ├── Resources │ └── config │ │ └── routing.xml └── Listener │ └── ExceptionListener.php ├── CHANGELOG.md ├── LICENSE ├── tests └── BundleTest.php ├── README.md └── composer.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /vendor/ 2 | /build/ 3 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-cayman 2 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: php 2 | 3 | php: 4 | - 7.2 5 | 6 | before_script: 7 | - composer install 8 | 9 | script: php vendor/bin/phpunit --coverage-text 10 | 11 | notifications: 12 | email: 13 | - bogomolov@eosnewmedia.de 14 | - marien@eosnewmedia.de 15 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "enm/json-api-server-bundle", 3 | "description": "Symfony integration of enm/json-api-server", 4 | "type": "symfony-bundle", 5 | "autoload": { 6 | "psr-4": { 7 | "Enm\\Bundle\\JsonApi\\Server\\": "src" 8 | } 9 | }, 10 | "autoload-dev": { 11 | "psr-4": { 12 | "Enm\\Bundle\\JsonApi\\Server\\Tests\\": "tests" 13 | } 14 | }, 15 | "require": { 16 | "php": ">=7.2", 17 | "symfony/framework-bundle": "^4.0", 18 | "enm/json-api-server": "^3.0", 19 | "guzzlehttp/psr7": "^1.0" 20 | }, 21 | "require-dev": { 22 | "phpunit/phpunit": "^7.0" 23 | }, 24 | "license": "MIT", 25 | "authors": [ 26 | { 27 | "name": "Philipp Marien", 28 | "email": "marien@eosnewmedia.de" 29 | } 30 | ], 31 | "minimum-stability": "stable" 32 | } 33 | -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | tests 13 | 14 | 15 | 16 | 17 | src 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/EnmJsonApiServerBundle.php: -------------------------------------------------------------------------------- 1 | 12 | */ 13 | class EnmJsonApiServerBundle extends Bundle 14 | { 15 | /** 16 | * Builds the bundle. 17 | * 18 | * It is only ever called once when the cache is empty. 19 | * 20 | * This method can be overridden to register compilation passes, 21 | * other extensions, ... 22 | * 23 | * @param ContainerBuilder $container A ContainerBuilder instance 24 | */ 25 | public function build(ContainerBuilder $container): void 26 | { 27 | $container->addCompilerPass(new RequestHandlerPass()); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/Response/JsonApiResponse.php: -------------------------------------------------------------------------------- 1 | 11 | */ 12 | class JsonApiResponse extends Response 13 | { 14 | /** 15 | * Prepares the Response before it is sent to the client. 16 | * 17 | * This method tweaks the Response to ensure that it is 18 | * compliant with RFC 2616. Most of the changes are based on 19 | * the Request that is "associated" with this Response. 20 | * 21 | * @param Request $request A Request instance 22 | * 23 | * @return $this 24 | */ 25 | public function prepare(Request $request): self 26 | { 27 | parent::prepare($request); 28 | // fix the content type for json api standard 29 | $this->headers->set('Content-Type', 'application/vnd.api+json'); 30 | 31 | return $this; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | Changelog 2 | ========= 3 | 4 | ## 3.0.0 5 | * updated dependency `enm/json-api-server` to version `3.0.0` 6 | * removed configuration `pagination.limit` 7 | * removed service `enm.json_api_server.pagination.offset_based` 8 | * removed `JsonApiServerDecorator` 9 | * removed `JsonApiLoader` 10 | * removed `ResourceProviderPass` 11 | * removed http factories 12 | 13 | ## 2.2.0 14 | * added configuration `pagination.limit` 15 | * added service `enm.json_api_server.pagination.offset_based` 16 | 17 | ## 2.0.0 18 | * updated dependency `enm/json-api-server` to version `2.0.0` 19 | * replaced all controller actions with "jsonApiAction" 20 | * added `JsonApiServerDecorator` to use symfony http foundation with json api 21 | * all services except the controller and exception handler are now private 22 | * added `ResourceProviderPass` 23 | * renamed service tag "json_api.resource_provider" to "json_api_server.resource_provider" 24 | * added service tag "json_api_server.request_handler" 25 | * added bundle configuration 26 | * replaced all routes with route `enm.json_api` 27 | * added `JsonApiLoader` to configure bundle routing 28 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 eos new media GmbH & Co. KG 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/DependencyInjection/Configuration.php: -------------------------------------------------------------------------------- 1 | 11 | */ 12 | class Configuration implements ConfigurationInterface 13 | { 14 | /** 15 | * Generates the configuration tree builder. 16 | * 17 | * @return \Symfony\Component\Config\Definition\Builder\TreeBuilder The tree builder 18 | * @throws \Exception 19 | */ 20 | public function getConfigTreeBuilder(): TreeBuilder 21 | { 22 | $treeBuilder = new TreeBuilder('enm_json_api_server'); 23 | $root = $treeBuilder->getRootNode()->children(); 24 | $root->booleanNode('debug') 25 | ->defaultFalse() 26 | ->info('Can be used to enable debug functionality (extended json api errors).'); 27 | 28 | $root->scalarNode('url_prefix') 29 | ->defaultNull() 30 | ->info('The api url prefix for generated and handled uri\'s.'); 31 | 32 | $root->scalarNode('route_name_prefix') 33 | ->defaultValue('enm.json_api') 34 | ->info('The route name prefix for the symfony routes'); 35 | 36 | return $treeBuilder; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /tests/BundleTest.php: -------------------------------------------------------------------------------- 1 | 14 | */ 15 | class BundleTest extends TestCase 16 | { 17 | public function testEnmJsonApiBundle(): void 18 | { 19 | $builder = new ContainerBuilder(); 20 | $builder->setParameter('kernel.environment', 'dev'); 21 | $bundle = new EnmJsonApiServerBundle(); 22 | $bundle->build($builder); 23 | 24 | (new EnmJsonApiServerExtension())->load( 25 | [ 26 | 'enm_json_api_server' => [] 27 | ], 28 | $builder 29 | ); 30 | 31 | $containsRequestHandlerPass = false; 32 | 33 | $passes = $builder->getCompiler()->getPassConfig()->getPasses(); 34 | foreach ($passes as $pass) { 35 | if ($pass instanceof RequestHandlerPass) { 36 | $containsRequestHandlerPass = true; 37 | } 38 | } 39 | 40 | self::assertTrue($containsRequestHandlerPass); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/DependencyInjection/Compiler/RequestHandlerPass.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | class RequestHandlerPass implements CompilerPassInterface 15 | { 16 | /** 17 | * You can modify the container here before it is dumped to PHP code. 18 | * 19 | * @param ContainerBuilder $container 20 | * 21 | * @throws \Exception 22 | */ 23 | public function process(ContainerBuilder $container): void 24 | { 25 | if (!$container->hasDefinition(JsonApiServer::class)) { 26 | return; 27 | } 28 | 29 | $server = $container->getDefinition(JsonApiServer::class); 30 | $handlers = $container->findTaggedServiceIds('json_api_server.request_handler'); 31 | 32 | /** 33 | * @var string $id 34 | * @var array $tags 35 | */ 36 | foreach ($handlers as $id => $tags) { 37 | foreach ($tags as $attributes) { 38 | $server->addMethodCall('addHandler', [(string)$attributes['type'], new Reference($id)]); 39 | } 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/Controller/JsonApiController.php: -------------------------------------------------------------------------------- 1 | 15 | */ 16 | class JsonApiController 17 | { 18 | /** 19 | * @var string|null 20 | */ 21 | private $prefix; 22 | 23 | /** 24 | * @var JsonApiServer 25 | */ 26 | private $jsonApi; 27 | 28 | /** 29 | * @param null|string $prefix 30 | * @param JsonApiServer $jsonApi 31 | */ 32 | public function __construct(?string $prefix, JsonApiServer $jsonApi) 33 | { 34 | $this->prefix = $prefix; 35 | $this->jsonApi = $jsonApi; 36 | } 37 | 38 | /** 39 | * @param Request $request 40 | * @return Response 41 | * @throws \Exception 42 | */ 43 | public function handle(Request $request): Response 44 | { 45 | $apiRequest = new JsonApiRequest( 46 | $request->getMethod(), 47 | new Uri($request->getUri()), 48 | $this->jsonApi->createRequestBody((string)$request->getContent()), 49 | $this->prefix 50 | ); 51 | foreach ($request->headers->all() as $key => $value) { 52 | if (\is_array($value) && \count($value) === 1) { 53 | $value = $value[0]; 54 | } 55 | $apiRequest->headers()->set($key, $value); 56 | } 57 | 58 | $response = $this->jsonApi->handleRequest($apiRequest); 59 | 60 | return new JsonApiResponse( 61 | $this->jsonApi->createResponseBody($response), 62 | $response->status(), 63 | $response->headers()->all() 64 | ); 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /src/DependencyInjection/EnmJsonApiServerExtension.php: -------------------------------------------------------------------------------- 1 | 18 | */ 19 | class EnmJsonApiServerExtension extends ConfigurableExtension 20 | { 21 | /** 22 | * Configures the passed container according to the merged configuration. 23 | * 24 | * @param array $mergedConfig 25 | * @param ContainerBuilder $container 26 | * @throws \Exception 27 | */ 28 | protected function loadInternal(array $mergedConfig, ContainerBuilder $container): void 29 | { 30 | $container->autowire(Deserializer::class)->setPublic(false); 31 | $container->setAlias(DocumentDeserializerInterface::class, Deserializer::class)->setPublic(false); 32 | 33 | $container->autowire(Serializer::class)->setPublic(false); 34 | $container->setAlias(DocumentSerializerInterface::class, Serializer::class)->setPublic(false); 35 | 36 | $container->autowire(JsonApiServer::class) 37 | ->setPublic(false); 38 | 39 | $container->autowire(ExceptionListener::class) 40 | ->addArgument($mergedConfig['route_name_prefix']) 41 | ->addArgument($mergedConfig['debug']) 42 | ->setPublic(true) 43 | ->addTag('kernel.event_listener', ['event' => 'kernel.exception', 'method' => 'onKernelException']); 44 | 45 | $container->autowire(JsonApiController::class) 46 | ->addArgument($mergedConfig['url_prefix']) 47 | ->setPublic(true); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/Resources/config/routing.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | 18 | 19 | 24 | 25 | 30 | 31 | 36 | 37 | 42 | 43 | 48 | 49 | 54 | 55 | 60 | 61 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /src/Listener/ExceptionListener.php: -------------------------------------------------------------------------------- 1 | 15 | */ 16 | class ExceptionListener 17 | { 18 | /** 19 | * @var string 20 | */ 21 | private $routeNamePrefix; 22 | 23 | /** 24 | * @var bool 25 | */ 26 | private $debug; 27 | 28 | /** 29 | * @var JsonApiServer 30 | */ 31 | private $jsonApi; 32 | 33 | /** 34 | * @param string $routeNamePrefix 35 | * @param bool $debug 36 | * @param JsonApiServer $jsonApi 37 | */ 38 | public function __construct(string $routeNamePrefix, bool $debug, JsonApiServer $jsonApi) 39 | { 40 | $this->routeNamePrefix = $routeNamePrefix; 41 | $this->debug = $debug; 42 | $this->jsonApi = $jsonApi; 43 | } 44 | 45 | /** 46 | * @param GetResponseForExceptionEvent $event 47 | * 48 | * @return void 49 | * @throws \Exception 50 | */ 51 | public function onKernelException(GetResponseForExceptionEvent $event): void 52 | { 53 | $apiRoute = strpos((string)$event->getRequest()->attributes->get('_route'), $this->routeNamePrefix) === 0; 54 | $apiType = $event->getRequest()->headers->get('Content-Type') === 'application/vnd.api+json'; 55 | 56 | if ($apiRoute || $apiType) { 57 | $response = $this->jsonApi->handleException($this->convertThrowable($event->getException()), $this->debug); 58 | $event->setResponse( 59 | new JsonApiResponse( 60 | $this->jsonApi->createResponseBody($response), 61 | $response->status(), 62 | $response->headers()->all() 63 | ) 64 | ); 65 | } 66 | } 67 | 68 | /** 69 | * @param \Throwable $throwable 70 | * @return JsonApiException 71 | */ 72 | private function convertThrowable(\Throwable $throwable): JsonApiException 73 | { 74 | if ($throwable instanceof JsonApiException) { 75 | return $throwable; 76 | } 77 | 78 | if ($throwable instanceof HttpExceptionInterface) { 79 | return new HttpException( 80 | $throwable->getStatusCode(), 81 | $throwable->getMessage(), 82 | $throwable->getCode(), 83 | $throwable 84 | ); 85 | } 86 | 87 | return new JsonApiException($throwable->getMessage(), $throwable->getCode(), $throwable); 88 | } 89 | } 90 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | JSON API Server-Bundle 2 | ====================== 3 | [![Build Status](https://travis-ci.org/eosnewmedia/JSON-API-Server-Bundle.svg?branch=master)](https://travis-ci.org/eosnewmedia/JSON-API-Server-Bundle) 4 | 5 | The symfony integration for [`enm/json-api-server`](https://eosnewmedia.github.io/JSON-API-Server/). 6 | 7 | ## Installation 8 | 9 | composer require enm/json-api-server-bundle 10 | 11 | ***** 12 | 13 | ## Documentation 14 | You should read the docs of [`enm/json-api-server`](https://eosnewmedia.github.io/JSON-API-Server/) first, 15 | since this bundle only integrate its functionalities into your symfony project. 16 | 17 | 1. [Configuration](#configuration) 18 | 1. [Bundles](#bundles) 19 | 1. [Config](#config) 20 | 1. [Routing](#routing) 21 | 1. [Request Handler](#request-handler) 22 | 1. [Error Handling](#error-handling) 23 | 24 | ***** 25 | ***** 26 | 27 | ## Configuration 28 | 29 | ### Bundles 30 | 31 | ```php 32 | ['all' => true], 37 | // ... 38 | ]; 39 | 40 | ``` 41 | 42 | ***** 43 | 44 | ### Config 45 | All bundle configurations are optional. 46 | 47 | ```yaml 48 | # config/packages/(dev/|prod/|test/|)enm_json_api.yaml 49 | enm_json_api_server: 50 | debug: false 51 | url_prefix: '' # configure this to use a url prefix for your json api routes: e.g. /api/{type}. only needed if a prefix is defined in your routing 52 | route_name_prefix: 'enm.json_api' # Prefix of the route names in symfony (for exception handling). only needed if a nam prefix is defined in your routing 53 | ``` 54 | 55 | ***** 56 | 57 | ### Routing 58 | 59 | ```yaml 60 | # app/config/routing.yml | config/routes.yaml 61 | json_api: 62 | resource: "@EnmJsonApiServerBundle/Resources/config/routing.xml" 63 | ``` 64 | 65 | If you use the predefined routing (without api prefix configuration), the following routes will be matched: 66 | 67 | GET /{type} 68 | 69 | GET /{type}/{id} 70 | 71 | GET /{type}/{id}/relationships/{relationship} 72 | 73 | GET /{type}/{id}/{relationship} 74 | 75 | POST /{type} 76 | 77 | PATCH /{type}/{id} 78 | 79 | DELETE /{type}/{id} 80 | 81 | POST /{type}/{id}/relationships/{relationship} 82 | 83 | PATCH /{type}/{id}/relationships/{relationship} 84 | 85 | DELETE /{type}/{id}/relationships/{relationship} 86 | 87 | ***** 88 | 89 | ## Request Handler 90 | Each request handler can simply be registered via the service container (tag: `json_api_server.request_handler`): 91 | 92 | ```yml 93 | AppBundle\RequestHandler\YourRequestHandler: 94 | tags: 95 | - { name: json_api_server.request_handler, type: 'myResources' } 96 | ``` 97 | 98 | The tag attribute `type` must contain the json api resource type which will be handled by this request handler. 99 | 100 | ***** 101 | 102 | ## Error Handling 103 | The bundle will handle all exceptions and convert them to valid json api error responses. 104 | -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_readme": [ 3 | "This file locks the dependencies of your project to a known state", 4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", 5 | "This file is @generated automatically" 6 | ], 7 | "content-hash": "d17591cdc896083dead44a348c70fd64", 8 | "packages": [ 9 | { 10 | "name": "enm/json-api-common", 11 | "version": "3.2.2", 12 | "source": { 13 | "type": "git", 14 | "url": "https://github.com/eosnewmedia/JSON-API-Common.git", 15 | "reference": "b68f75e4086f39c103394c56d8300b046c2d2668" 16 | }, 17 | "dist": { 18 | "type": "zip", 19 | "url": "https://api.github.com/repos/eosnewmedia/JSON-API-Common/zipball/b68f75e4086f39c103394c56d8300b046c2d2668", 20 | "reference": "b68f75e4086f39c103394c56d8300b046c2d2668", 21 | "shasum": "" 22 | }, 23 | "require": { 24 | "php": ">=7.2", 25 | "psr/http-message": "^1.0" 26 | }, 27 | "require-dev": { 28 | "guzzlehttp/psr7": "^1.4", 29 | "phpunit/phpunit": "^7.0" 30 | }, 31 | "type": "library", 32 | "autoload": { 33 | "psr-4": { 34 | "Enm\\JsonApi\\": "src" 35 | } 36 | }, 37 | "notification-url": "https://packagist.org/downloads/", 38 | "license": [ 39 | "MIT" 40 | ], 41 | "authors": [ 42 | { 43 | "name": "Philipp Marien", 44 | "email": "marien@eosnewmedia.de" 45 | } 46 | ], 47 | "description": "Basic php implementation (shared structures for client and server) of the json api specification (jsonapi.org)", 48 | "time": "2019-08-29T13:00:52+00:00" 49 | }, 50 | { 51 | "name": "enm/json-api-server", 52 | "version": "3.1.1", 53 | "source": { 54 | "type": "git", 55 | "url": "https://github.com/eosnewmedia/JSON-API-Server.git", 56 | "reference": "1a1d0418aef528830b871fb4fd7b5d21a3e4f632" 57 | }, 58 | "dist": { 59 | "type": "zip", 60 | "url": "https://api.github.com/repos/eosnewmedia/JSON-API-Server/zipball/1a1d0418aef528830b871fb4fd7b5d21a3e4f632", 61 | "reference": "1a1d0418aef528830b871fb4fd7b5d21a3e4f632", 62 | "shasum": "" 63 | }, 64 | "require": { 65 | "enm/json-api-common": "^3.2", 66 | "php": ">=7.2" 67 | }, 68 | "require-dev": { 69 | "phpunit/phpunit": "^7.0" 70 | }, 71 | "type": "library", 72 | "autoload": { 73 | "psr-4": { 74 | "Enm\\JsonApi\\Server\\": "src" 75 | } 76 | }, 77 | "notification-url": "https://packagist.org/downloads/", 78 | "license": [ 79 | "MIT" 80 | ], 81 | "authors": [ 82 | { 83 | "name": "Philipp Marien", 84 | "email": "marien@eosnewmedia.de" 85 | } 86 | ], 87 | "description": "Abstract server-side php implementation of the json api specification (jsonapi.org)", 88 | "time": "2019-08-30T19:20:28+00:00" 89 | }, 90 | { 91 | "name": "guzzlehttp/psr7", 92 | "version": "1.6.1", 93 | "source": { 94 | "type": "git", 95 | "url": "https://github.com/guzzle/psr7.git", 96 | "reference": "239400de7a173fe9901b9ac7c06497751f00727a" 97 | }, 98 | "dist": { 99 | "type": "zip", 100 | "url": "https://api.github.com/repos/guzzle/psr7/zipball/239400de7a173fe9901b9ac7c06497751f00727a", 101 | "reference": "239400de7a173fe9901b9ac7c06497751f00727a", 102 | "shasum": "" 103 | }, 104 | "require": { 105 | "php": ">=5.4.0", 106 | "psr/http-message": "~1.0", 107 | "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" 108 | }, 109 | "provide": { 110 | "psr/http-message-implementation": "1.0" 111 | }, 112 | "require-dev": { 113 | "ext-zlib": "*", 114 | "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8" 115 | }, 116 | "suggest": { 117 | "zendframework/zend-httphandlerrunner": "Emit PSR-7 responses" 118 | }, 119 | "type": "library", 120 | "extra": { 121 | "branch-alias": { 122 | "dev-master": "1.6-dev" 123 | } 124 | }, 125 | "autoload": { 126 | "psr-4": { 127 | "GuzzleHttp\\Psr7\\": "src/" 128 | }, 129 | "files": [ 130 | "src/functions_include.php" 131 | ] 132 | }, 133 | "notification-url": "https://packagist.org/downloads/", 134 | "license": [ 135 | "MIT" 136 | ], 137 | "authors": [ 138 | { 139 | "name": "Michael Dowling", 140 | "email": "mtdowling@gmail.com", 141 | "homepage": "https://github.com/mtdowling" 142 | }, 143 | { 144 | "name": "Tobias Schultze", 145 | "homepage": "https://github.com/Tobion" 146 | } 147 | ], 148 | "description": "PSR-7 message implementation that also provides common utility methods", 149 | "keywords": [ 150 | "http", 151 | "message", 152 | "psr-7", 153 | "request", 154 | "response", 155 | "stream", 156 | "uri", 157 | "url" 158 | ], 159 | "time": "2019-07-01T23:21:34+00:00" 160 | }, 161 | { 162 | "name": "psr/cache", 163 | "version": "1.0.1", 164 | "source": { 165 | "type": "git", 166 | "url": "https://github.com/php-fig/cache.git", 167 | "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" 168 | }, 169 | "dist": { 170 | "type": "zip", 171 | "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", 172 | "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", 173 | "shasum": "" 174 | }, 175 | "require": { 176 | "php": ">=5.3.0" 177 | }, 178 | "type": "library", 179 | "extra": { 180 | "branch-alias": { 181 | "dev-master": "1.0.x-dev" 182 | } 183 | }, 184 | "autoload": { 185 | "psr-4": { 186 | "Psr\\Cache\\": "src/" 187 | } 188 | }, 189 | "notification-url": "https://packagist.org/downloads/", 190 | "license": [ 191 | "MIT" 192 | ], 193 | "authors": [ 194 | { 195 | "name": "PHP-FIG", 196 | "homepage": "http://www.php-fig.org/" 197 | } 198 | ], 199 | "description": "Common interface for caching libraries", 200 | "keywords": [ 201 | "cache", 202 | "psr", 203 | "psr-6" 204 | ], 205 | "time": "2016-08-06T20:24:11+00:00" 206 | }, 207 | { 208 | "name": "psr/container", 209 | "version": "1.0.0", 210 | "source": { 211 | "type": "git", 212 | "url": "https://github.com/php-fig/container.git", 213 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" 214 | }, 215 | "dist": { 216 | "type": "zip", 217 | "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", 218 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", 219 | "shasum": "" 220 | }, 221 | "require": { 222 | "php": ">=5.3.0" 223 | }, 224 | "type": "library", 225 | "extra": { 226 | "branch-alias": { 227 | "dev-master": "1.0.x-dev" 228 | } 229 | }, 230 | "autoload": { 231 | "psr-4": { 232 | "Psr\\Container\\": "src/" 233 | } 234 | }, 235 | "notification-url": "https://packagist.org/downloads/", 236 | "license": [ 237 | "MIT" 238 | ], 239 | "authors": [ 240 | { 241 | "name": "PHP-FIG", 242 | "homepage": "http://www.php-fig.org/" 243 | } 244 | ], 245 | "description": "Common Container Interface (PHP FIG PSR-11)", 246 | "homepage": "https://github.com/php-fig/container", 247 | "keywords": [ 248 | "PSR-11", 249 | "container", 250 | "container-interface", 251 | "container-interop", 252 | "psr" 253 | ], 254 | "time": "2017-02-14T16:28:37+00:00" 255 | }, 256 | { 257 | "name": "psr/http-message", 258 | "version": "1.0.1", 259 | "source": { 260 | "type": "git", 261 | "url": "https://github.com/php-fig/http-message.git", 262 | "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" 263 | }, 264 | "dist": { 265 | "type": "zip", 266 | "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", 267 | "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", 268 | "shasum": "" 269 | }, 270 | "require": { 271 | "php": ">=5.3.0" 272 | }, 273 | "type": "library", 274 | "extra": { 275 | "branch-alias": { 276 | "dev-master": "1.0.x-dev" 277 | } 278 | }, 279 | "autoload": { 280 | "psr-4": { 281 | "Psr\\Http\\Message\\": "src/" 282 | } 283 | }, 284 | "notification-url": "https://packagist.org/downloads/", 285 | "license": [ 286 | "MIT" 287 | ], 288 | "authors": [ 289 | { 290 | "name": "PHP-FIG", 291 | "homepage": "http://www.php-fig.org/" 292 | } 293 | ], 294 | "description": "Common interface for HTTP messages", 295 | "homepage": "https://github.com/php-fig/http-message", 296 | "keywords": [ 297 | "http", 298 | "http-message", 299 | "psr", 300 | "psr-7", 301 | "request", 302 | "response" 303 | ], 304 | "time": "2016-08-06T14:39:51+00:00" 305 | }, 306 | { 307 | "name": "psr/log", 308 | "version": "1.1.2", 309 | "source": { 310 | "type": "git", 311 | "url": "https://github.com/php-fig/log.git", 312 | "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" 313 | }, 314 | "dist": { 315 | "type": "zip", 316 | "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", 317 | "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", 318 | "shasum": "" 319 | }, 320 | "require": { 321 | "php": ">=5.3.0" 322 | }, 323 | "type": "library", 324 | "extra": { 325 | "branch-alias": { 326 | "dev-master": "1.1.x-dev" 327 | } 328 | }, 329 | "autoload": { 330 | "psr-4": { 331 | "Psr\\Log\\": "Psr/Log/" 332 | } 333 | }, 334 | "notification-url": "https://packagist.org/downloads/", 335 | "license": [ 336 | "MIT" 337 | ], 338 | "authors": [ 339 | { 340 | "name": "PHP-FIG", 341 | "homepage": "http://www.php-fig.org/" 342 | } 343 | ], 344 | "description": "Common interface for logging libraries", 345 | "homepage": "https://github.com/php-fig/log", 346 | "keywords": [ 347 | "log", 348 | "psr", 349 | "psr-3" 350 | ], 351 | "time": "2019-11-01T11:05:21+00:00" 352 | }, 353 | { 354 | "name": "ralouphie/getallheaders", 355 | "version": "3.0.3", 356 | "source": { 357 | "type": "git", 358 | "url": "https://github.com/ralouphie/getallheaders.git", 359 | "reference": "120b605dfeb996808c31b6477290a714d356e822" 360 | }, 361 | "dist": { 362 | "type": "zip", 363 | "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", 364 | "reference": "120b605dfeb996808c31b6477290a714d356e822", 365 | "shasum": "" 366 | }, 367 | "require": { 368 | "php": ">=5.6" 369 | }, 370 | "require-dev": { 371 | "php-coveralls/php-coveralls": "^2.1", 372 | "phpunit/phpunit": "^5 || ^6.5" 373 | }, 374 | "type": "library", 375 | "autoload": { 376 | "files": [ 377 | "src/getallheaders.php" 378 | ] 379 | }, 380 | "notification-url": "https://packagist.org/downloads/", 381 | "license": [ 382 | "MIT" 383 | ], 384 | "authors": [ 385 | { 386 | "name": "Ralph Khattar", 387 | "email": "ralph.khattar@gmail.com" 388 | } 389 | ], 390 | "description": "A polyfill for getallheaders.", 391 | "time": "2019-03-08T08:55:37+00:00" 392 | }, 393 | { 394 | "name": "symfony/cache", 395 | "version": "v5.0.2", 396 | "source": { 397 | "type": "git", 398 | "url": "https://github.com/symfony/cache.git", 399 | "reference": "6e8d978878ae5de705ec9fabbb6011cc18776bc9" 400 | }, 401 | "dist": { 402 | "type": "zip", 403 | "url": "https://api.github.com/repos/symfony/cache/zipball/6e8d978878ae5de705ec9fabbb6011cc18776bc9", 404 | "reference": "6e8d978878ae5de705ec9fabbb6011cc18776bc9", 405 | "shasum": "" 406 | }, 407 | "require": { 408 | "php": "^7.2.5", 409 | "psr/cache": "~1.0", 410 | "psr/log": "~1.0", 411 | "symfony/cache-contracts": "^1.1.7|^2", 412 | "symfony/service-contracts": "^1.1|^2", 413 | "symfony/var-exporter": "^4.4|^5.0" 414 | }, 415 | "conflict": { 416 | "doctrine/dbal": "<2.5", 417 | "symfony/dependency-injection": "<4.4", 418 | "symfony/http-kernel": "<4.4", 419 | "symfony/var-dumper": "<4.4" 420 | }, 421 | "provide": { 422 | "psr/cache-implementation": "1.0", 423 | "psr/simple-cache-implementation": "1.0", 424 | "symfony/cache-implementation": "1.0" 425 | }, 426 | "require-dev": { 427 | "cache/integration-tests": "dev-master", 428 | "doctrine/cache": "~1.6", 429 | "doctrine/dbal": "~2.5", 430 | "predis/predis": "~1.1", 431 | "psr/simple-cache": "^1.0", 432 | "symfony/config": "^4.4|^5.0", 433 | "symfony/dependency-injection": "^4.4|^5.0", 434 | "symfony/var-dumper": "^4.4|^5.0" 435 | }, 436 | "type": "library", 437 | "extra": { 438 | "branch-alias": { 439 | "dev-master": "5.0-dev" 440 | } 441 | }, 442 | "autoload": { 443 | "psr-4": { 444 | "Symfony\\Component\\Cache\\": "" 445 | }, 446 | "exclude-from-classmap": [ 447 | "/Tests/" 448 | ] 449 | }, 450 | "notification-url": "https://packagist.org/downloads/", 451 | "license": [ 452 | "MIT" 453 | ], 454 | "authors": [ 455 | { 456 | "name": "Nicolas Grekas", 457 | "email": "p@tchwork.com" 458 | }, 459 | { 460 | "name": "Symfony Community", 461 | "homepage": "https://symfony.com/contributors" 462 | } 463 | ], 464 | "description": "Symfony Cache component with PSR-6, PSR-16, and tags", 465 | "homepage": "https://symfony.com", 466 | "keywords": [ 467 | "caching", 468 | "psr6" 469 | ], 470 | "time": "2019-12-12T13:03:32+00:00" 471 | }, 472 | { 473 | "name": "symfony/cache-contracts", 474 | "version": "v2.0.1", 475 | "source": { 476 | "type": "git", 477 | "url": "https://github.com/symfony/cache-contracts.git", 478 | "reference": "23ed8bfc1a4115feca942cb5f1aacdf3dcdf3c16" 479 | }, 480 | "dist": { 481 | "type": "zip", 482 | "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/23ed8bfc1a4115feca942cb5f1aacdf3dcdf3c16", 483 | "reference": "23ed8bfc1a4115feca942cb5f1aacdf3dcdf3c16", 484 | "shasum": "" 485 | }, 486 | "require": { 487 | "php": "^7.2.5", 488 | "psr/cache": "^1.0" 489 | }, 490 | "suggest": { 491 | "symfony/cache-implementation": "" 492 | }, 493 | "type": "library", 494 | "extra": { 495 | "branch-alias": { 496 | "dev-master": "2.0-dev" 497 | } 498 | }, 499 | "autoload": { 500 | "psr-4": { 501 | "Symfony\\Contracts\\Cache\\": "" 502 | } 503 | }, 504 | "notification-url": "https://packagist.org/downloads/", 505 | "license": [ 506 | "MIT" 507 | ], 508 | "authors": [ 509 | { 510 | "name": "Nicolas Grekas", 511 | "email": "p@tchwork.com" 512 | }, 513 | { 514 | "name": "Symfony Community", 515 | "homepage": "https://symfony.com/contributors" 516 | } 517 | ], 518 | "description": "Generic abstractions related to caching", 519 | "homepage": "https://symfony.com", 520 | "keywords": [ 521 | "abstractions", 522 | "contracts", 523 | "decoupling", 524 | "interfaces", 525 | "interoperability", 526 | "standards" 527 | ], 528 | "time": "2019-11-18T17:27:11+00:00" 529 | }, 530 | { 531 | "name": "symfony/config", 532 | "version": "v5.0.2", 533 | "source": { 534 | "type": "git", 535 | "url": "https://github.com/symfony/config.git", 536 | "reference": "7f930484966350906185ba0a604728f7898b7ba0" 537 | }, 538 | "dist": { 539 | "type": "zip", 540 | "url": "https://api.github.com/repos/symfony/config/zipball/7f930484966350906185ba0a604728f7898b7ba0", 541 | "reference": "7f930484966350906185ba0a604728f7898b7ba0", 542 | "shasum": "" 543 | }, 544 | "require": { 545 | "php": "^7.2.5", 546 | "symfony/filesystem": "^4.4|^5.0", 547 | "symfony/polyfill-ctype": "~1.8" 548 | }, 549 | "conflict": { 550 | "symfony/finder": "<4.4" 551 | }, 552 | "require-dev": { 553 | "symfony/event-dispatcher": "^4.4|^5.0", 554 | "symfony/finder": "^4.4|^5.0", 555 | "symfony/messenger": "^4.4|^5.0", 556 | "symfony/service-contracts": "^1.1|^2", 557 | "symfony/yaml": "^4.4|^5.0" 558 | }, 559 | "suggest": { 560 | "symfony/yaml": "To use the yaml reference dumper" 561 | }, 562 | "type": "library", 563 | "extra": { 564 | "branch-alias": { 565 | "dev-master": "5.0-dev" 566 | } 567 | }, 568 | "autoload": { 569 | "psr-4": { 570 | "Symfony\\Component\\Config\\": "" 571 | }, 572 | "exclude-from-classmap": [ 573 | "/Tests/" 574 | ] 575 | }, 576 | "notification-url": "https://packagist.org/downloads/", 577 | "license": [ 578 | "MIT" 579 | ], 580 | "authors": [ 581 | { 582 | "name": "Fabien Potencier", 583 | "email": "fabien@symfony.com" 584 | }, 585 | { 586 | "name": "Symfony Community", 587 | "homepage": "https://symfony.com/contributors" 588 | } 589 | ], 590 | "description": "Symfony Config Component", 591 | "homepage": "https://symfony.com", 592 | "time": "2019-12-18T13:50:31+00:00" 593 | }, 594 | { 595 | "name": "symfony/debug", 596 | "version": "v4.4.2", 597 | "source": { 598 | "type": "git", 599 | "url": "https://github.com/symfony/debug.git", 600 | "reference": "5c4c1db977dc70bb3250e1308d3e8c6341aa38f5" 601 | }, 602 | "dist": { 603 | "type": "zip", 604 | "url": "https://api.github.com/repos/symfony/debug/zipball/5c4c1db977dc70bb3250e1308d3e8c6341aa38f5", 605 | "reference": "5c4c1db977dc70bb3250e1308d3e8c6341aa38f5", 606 | "shasum": "" 607 | }, 608 | "require": { 609 | "php": "^7.1.3", 610 | "psr/log": "~1.0" 611 | }, 612 | "conflict": { 613 | "symfony/http-kernel": "<3.4" 614 | }, 615 | "require-dev": { 616 | "symfony/http-kernel": "^3.4|^4.0|^5.0" 617 | }, 618 | "type": "library", 619 | "extra": { 620 | "branch-alias": { 621 | "dev-master": "4.4-dev" 622 | } 623 | }, 624 | "autoload": { 625 | "psr-4": { 626 | "Symfony\\Component\\Debug\\": "" 627 | }, 628 | "exclude-from-classmap": [ 629 | "/Tests/" 630 | ] 631 | }, 632 | "notification-url": "https://packagist.org/downloads/", 633 | "license": [ 634 | "MIT" 635 | ], 636 | "authors": [ 637 | { 638 | "name": "Fabien Potencier", 639 | "email": "fabien@symfony.com" 640 | }, 641 | { 642 | "name": "Symfony Community", 643 | "homepage": "https://symfony.com/contributors" 644 | } 645 | ], 646 | "description": "Symfony Debug Component", 647 | "homepage": "https://symfony.com", 648 | "time": "2019-12-16T14:46:54+00:00" 649 | }, 650 | { 651 | "name": "symfony/dependency-injection", 652 | "version": "v5.0.2", 653 | "source": { 654 | "type": "git", 655 | "url": "https://github.com/symfony/dependency-injection.git", 656 | "reference": "f9dbfbf487d08f60b1c83220edcd16559d1e40a2" 657 | }, 658 | "dist": { 659 | "type": "zip", 660 | "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/f9dbfbf487d08f60b1c83220edcd16559d1e40a2", 661 | "reference": "f9dbfbf487d08f60b1c83220edcd16559d1e40a2", 662 | "shasum": "" 663 | }, 664 | "require": { 665 | "php": "^7.2.5", 666 | "psr/container": "^1.0", 667 | "symfony/service-contracts": "^1.1.6|^2" 668 | }, 669 | "conflict": { 670 | "symfony/config": "<5.0", 671 | "symfony/finder": "<4.4", 672 | "symfony/proxy-manager-bridge": "<4.4", 673 | "symfony/yaml": "<4.4" 674 | }, 675 | "provide": { 676 | "psr/container-implementation": "1.0", 677 | "symfony/service-implementation": "1.0" 678 | }, 679 | "require-dev": { 680 | "symfony/config": "^5.0", 681 | "symfony/expression-language": "^4.4|^5.0", 682 | "symfony/yaml": "^4.4|^5.0" 683 | }, 684 | "suggest": { 685 | "symfony/config": "", 686 | "symfony/expression-language": "For using expressions in service container configuration", 687 | "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", 688 | "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", 689 | "symfony/yaml": "" 690 | }, 691 | "type": "library", 692 | "extra": { 693 | "branch-alias": { 694 | "dev-master": "5.0-dev" 695 | } 696 | }, 697 | "autoload": { 698 | "psr-4": { 699 | "Symfony\\Component\\DependencyInjection\\": "" 700 | }, 701 | "exclude-from-classmap": [ 702 | "/Tests/" 703 | ] 704 | }, 705 | "notification-url": "https://packagist.org/downloads/", 706 | "license": [ 707 | "MIT" 708 | ], 709 | "authors": [ 710 | { 711 | "name": "Fabien Potencier", 712 | "email": "fabien@symfony.com" 713 | }, 714 | { 715 | "name": "Symfony Community", 716 | "homepage": "https://symfony.com/contributors" 717 | } 718 | ], 719 | "description": "Symfony DependencyInjection Component", 720 | "homepage": "https://symfony.com", 721 | "time": "2019-12-19T16:01:11+00:00" 722 | }, 723 | { 724 | "name": "symfony/error-handler", 725 | "version": "v4.4.2", 726 | "source": { 727 | "type": "git", 728 | "url": "https://github.com/symfony/error-handler.git", 729 | "reference": "6d7d7712a6ff5215ec26215672293b154f1db8c1" 730 | }, 731 | "dist": { 732 | "type": "zip", 733 | "url": "https://api.github.com/repos/symfony/error-handler/zipball/6d7d7712a6ff5215ec26215672293b154f1db8c1", 734 | "reference": "6d7d7712a6ff5215ec26215672293b154f1db8c1", 735 | "shasum": "" 736 | }, 737 | "require": { 738 | "php": "^7.1.3", 739 | "psr/log": "~1.0", 740 | "symfony/debug": "^4.4", 741 | "symfony/var-dumper": "^4.4|^5.0" 742 | }, 743 | "require-dev": { 744 | "symfony/http-kernel": "^4.4|^5.0", 745 | "symfony/serializer": "^4.4|^5.0" 746 | }, 747 | "type": "library", 748 | "extra": { 749 | "branch-alias": { 750 | "dev-master": "4.4-dev" 751 | } 752 | }, 753 | "autoload": { 754 | "psr-4": { 755 | "Symfony\\Component\\ErrorHandler\\": "" 756 | }, 757 | "exclude-from-classmap": [ 758 | "/Tests/" 759 | ] 760 | }, 761 | "notification-url": "https://packagist.org/downloads/", 762 | "license": [ 763 | "MIT" 764 | ], 765 | "authors": [ 766 | { 767 | "name": "Fabien Potencier", 768 | "email": "fabien@symfony.com" 769 | }, 770 | { 771 | "name": "Symfony Community", 772 | "homepage": "https://symfony.com/contributors" 773 | } 774 | ], 775 | "description": "Symfony ErrorHandler Component", 776 | "homepage": "https://symfony.com", 777 | "time": "2019-12-16T14:46:54+00:00" 778 | }, 779 | { 780 | "name": "symfony/event-dispatcher", 781 | "version": "v4.4.2", 782 | "source": { 783 | "type": "git", 784 | "url": "https://github.com/symfony/event-dispatcher.git", 785 | "reference": "b3c3068a72623287550fe20b84a2b01dcba2686f" 786 | }, 787 | "dist": { 788 | "type": "zip", 789 | "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b3c3068a72623287550fe20b84a2b01dcba2686f", 790 | "reference": "b3c3068a72623287550fe20b84a2b01dcba2686f", 791 | "shasum": "" 792 | }, 793 | "require": { 794 | "php": "^7.1.3", 795 | "symfony/event-dispatcher-contracts": "^1.1" 796 | }, 797 | "conflict": { 798 | "symfony/dependency-injection": "<3.4" 799 | }, 800 | "provide": { 801 | "psr/event-dispatcher-implementation": "1.0", 802 | "symfony/event-dispatcher-implementation": "1.1" 803 | }, 804 | "require-dev": { 805 | "psr/log": "~1.0", 806 | "symfony/config": "^3.4|^4.0|^5.0", 807 | "symfony/dependency-injection": "^3.4|^4.0|^5.0", 808 | "symfony/expression-language": "^3.4|^4.0|^5.0", 809 | "symfony/http-foundation": "^3.4|^4.0|^5.0", 810 | "symfony/service-contracts": "^1.1|^2", 811 | "symfony/stopwatch": "^3.4|^4.0|^5.0" 812 | }, 813 | "suggest": { 814 | "symfony/dependency-injection": "", 815 | "symfony/http-kernel": "" 816 | }, 817 | "type": "library", 818 | "extra": { 819 | "branch-alias": { 820 | "dev-master": "4.4-dev" 821 | } 822 | }, 823 | "autoload": { 824 | "psr-4": { 825 | "Symfony\\Component\\EventDispatcher\\": "" 826 | }, 827 | "exclude-from-classmap": [ 828 | "/Tests/" 829 | ] 830 | }, 831 | "notification-url": "https://packagist.org/downloads/", 832 | "license": [ 833 | "MIT" 834 | ], 835 | "authors": [ 836 | { 837 | "name": "Fabien Potencier", 838 | "email": "fabien@symfony.com" 839 | }, 840 | { 841 | "name": "Symfony Community", 842 | "homepage": "https://symfony.com/contributors" 843 | } 844 | ], 845 | "description": "Symfony EventDispatcher Component", 846 | "homepage": "https://symfony.com", 847 | "time": "2019-11-28T13:33:56+00:00" 848 | }, 849 | { 850 | "name": "symfony/event-dispatcher-contracts", 851 | "version": "v1.1.7", 852 | "source": { 853 | "type": "git", 854 | "url": "https://github.com/symfony/event-dispatcher-contracts.git", 855 | "reference": "c43ab685673fb6c8d84220c77897b1d6cdbe1d18" 856 | }, 857 | "dist": { 858 | "type": "zip", 859 | "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c43ab685673fb6c8d84220c77897b1d6cdbe1d18", 860 | "reference": "c43ab685673fb6c8d84220c77897b1d6cdbe1d18", 861 | "shasum": "" 862 | }, 863 | "require": { 864 | "php": "^7.1.3" 865 | }, 866 | "suggest": { 867 | "psr/event-dispatcher": "", 868 | "symfony/event-dispatcher-implementation": "" 869 | }, 870 | "type": "library", 871 | "extra": { 872 | "branch-alias": { 873 | "dev-master": "1.1-dev" 874 | } 875 | }, 876 | "autoload": { 877 | "psr-4": { 878 | "Symfony\\Contracts\\EventDispatcher\\": "" 879 | } 880 | }, 881 | "notification-url": "https://packagist.org/downloads/", 882 | "license": [ 883 | "MIT" 884 | ], 885 | "authors": [ 886 | { 887 | "name": "Nicolas Grekas", 888 | "email": "p@tchwork.com" 889 | }, 890 | { 891 | "name": "Symfony Community", 892 | "homepage": "https://symfony.com/contributors" 893 | } 894 | ], 895 | "description": "Generic abstractions related to dispatching event", 896 | "homepage": "https://symfony.com", 897 | "keywords": [ 898 | "abstractions", 899 | "contracts", 900 | "decoupling", 901 | "interfaces", 902 | "interoperability", 903 | "standards" 904 | ], 905 | "time": "2019-09-17T09:54:03+00:00" 906 | }, 907 | { 908 | "name": "symfony/filesystem", 909 | "version": "v5.0.2", 910 | "source": { 911 | "type": "git", 912 | "url": "https://github.com/symfony/filesystem.git", 913 | "reference": "1d71f670bc5a07b9ccc97dc44f932177a322d4e6" 914 | }, 915 | "dist": { 916 | "type": "zip", 917 | "url": "https://api.github.com/repos/symfony/filesystem/zipball/1d71f670bc5a07b9ccc97dc44f932177a322d4e6", 918 | "reference": "1d71f670bc5a07b9ccc97dc44f932177a322d4e6", 919 | "shasum": "" 920 | }, 921 | "require": { 922 | "php": "^7.2.5", 923 | "symfony/polyfill-ctype": "~1.8" 924 | }, 925 | "type": "library", 926 | "extra": { 927 | "branch-alias": { 928 | "dev-master": "5.0-dev" 929 | } 930 | }, 931 | "autoload": { 932 | "psr-4": { 933 | "Symfony\\Component\\Filesystem\\": "" 934 | }, 935 | "exclude-from-classmap": [ 936 | "/Tests/" 937 | ] 938 | }, 939 | "notification-url": "https://packagist.org/downloads/", 940 | "license": [ 941 | "MIT" 942 | ], 943 | "authors": [ 944 | { 945 | "name": "Fabien Potencier", 946 | "email": "fabien@symfony.com" 947 | }, 948 | { 949 | "name": "Symfony Community", 950 | "homepage": "https://symfony.com/contributors" 951 | } 952 | ], 953 | "description": "Symfony Filesystem Component", 954 | "homepage": "https://symfony.com", 955 | "time": "2019-11-26T23:25:11+00:00" 956 | }, 957 | { 958 | "name": "symfony/finder", 959 | "version": "v5.0.2", 960 | "source": { 961 | "type": "git", 962 | "url": "https://github.com/symfony/finder.git", 963 | "reference": "17874dd8ab9a19422028ad56172fb294287a701b" 964 | }, 965 | "dist": { 966 | "type": "zip", 967 | "url": "https://api.github.com/repos/symfony/finder/zipball/17874dd8ab9a19422028ad56172fb294287a701b", 968 | "reference": "17874dd8ab9a19422028ad56172fb294287a701b", 969 | "shasum": "" 970 | }, 971 | "require": { 972 | "php": "^7.2.5" 973 | }, 974 | "type": "library", 975 | "extra": { 976 | "branch-alias": { 977 | "dev-master": "5.0-dev" 978 | } 979 | }, 980 | "autoload": { 981 | "psr-4": { 982 | "Symfony\\Component\\Finder\\": "" 983 | }, 984 | "exclude-from-classmap": [ 985 | "/Tests/" 986 | ] 987 | }, 988 | "notification-url": "https://packagist.org/downloads/", 989 | "license": [ 990 | "MIT" 991 | ], 992 | "authors": [ 993 | { 994 | "name": "Fabien Potencier", 995 | "email": "fabien@symfony.com" 996 | }, 997 | { 998 | "name": "Symfony Community", 999 | "homepage": "https://symfony.com/contributors" 1000 | } 1001 | ], 1002 | "description": "Symfony Finder Component", 1003 | "homepage": "https://symfony.com", 1004 | "time": "2019-11-18T17:27:11+00:00" 1005 | }, 1006 | { 1007 | "name": "symfony/framework-bundle", 1008 | "version": "v4.4.2", 1009 | "source": { 1010 | "type": "git", 1011 | "url": "https://github.com/symfony/framework-bundle.git", 1012 | "reference": "c80526b4c22f6ddc23080225bf276f094d2c398e" 1013 | }, 1014 | "dist": { 1015 | "type": "zip", 1016 | "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/c80526b4c22f6ddc23080225bf276f094d2c398e", 1017 | "reference": "c80526b4c22f6ddc23080225bf276f094d2c398e", 1018 | "shasum": "" 1019 | }, 1020 | "require": { 1021 | "ext-xml": "*", 1022 | "php": "^7.1.3", 1023 | "symfony/cache": "^4.4|^5.0", 1024 | "symfony/config": "^4.3.4|^5.0", 1025 | "symfony/dependency-injection": "^4.4.1|^5.0.1", 1026 | "symfony/error-handler": "^4.4.1|^5.0.1", 1027 | "symfony/filesystem": "^3.4|^4.0|^5.0", 1028 | "symfony/finder": "^3.4|^4.0|^5.0", 1029 | "symfony/http-foundation": "^4.4|^5.0", 1030 | "symfony/http-kernel": "^4.4", 1031 | "symfony/polyfill-mbstring": "~1.0", 1032 | "symfony/routing": "^4.4|^5.0" 1033 | }, 1034 | "conflict": { 1035 | "doctrine/persistence": "<1.3", 1036 | "phpdocumentor/reflection-docblock": "<3.0", 1037 | "phpdocumentor/type-resolver": "<0.2.1", 1038 | "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", 1039 | "symfony/asset": "<3.4", 1040 | "symfony/browser-kit": "<4.3", 1041 | "symfony/console": "<4.3", 1042 | "symfony/dom-crawler": "<4.3", 1043 | "symfony/dotenv": "<4.3.6", 1044 | "symfony/form": "<4.3.5", 1045 | "symfony/http-client": "<4.4", 1046 | "symfony/lock": "<4.4", 1047 | "symfony/mailer": "<4.4", 1048 | "symfony/messenger": "<4.4", 1049 | "symfony/mime": "<4.4", 1050 | "symfony/property-info": "<3.4", 1051 | "symfony/security-bundle": "<4.4", 1052 | "symfony/serializer": "<4.4", 1053 | "symfony/stopwatch": "<3.4", 1054 | "symfony/translation": "<4.4", 1055 | "symfony/twig-bridge": "<4.1.1", 1056 | "symfony/twig-bundle": "<4.4", 1057 | "symfony/validator": "<4.4", 1058 | "symfony/web-profiler-bundle": "<4.4", 1059 | "symfony/workflow": "<4.3.6" 1060 | }, 1061 | "require-dev": { 1062 | "doctrine/annotations": "~1.7", 1063 | "doctrine/cache": "~1.0", 1064 | "paragonie/sodium_compat": "^1.8", 1065 | "phpdocumentor/reflection-docblock": "^3.0|^4.0", 1066 | "symfony/asset": "^3.4|^4.0|^5.0", 1067 | "symfony/browser-kit": "^4.3|^5.0", 1068 | "symfony/console": "^4.3.4|^5.0", 1069 | "symfony/css-selector": "^3.4|^4.0|^5.0", 1070 | "symfony/dom-crawler": "^4.3|^5.0", 1071 | "symfony/dotenv": "^4.3.6|^5.0", 1072 | "symfony/expression-language": "^3.4|^4.0|^5.0", 1073 | "symfony/form": "^4.3.5|^5.0", 1074 | "symfony/http-client": "^4.4|^5.0", 1075 | "symfony/lock": "^4.4|^5.0", 1076 | "symfony/mailer": "^4.4|^5.0", 1077 | "symfony/messenger": "^4.4|^5.0", 1078 | "symfony/mime": "^4.4|^5.0", 1079 | "symfony/polyfill-intl-icu": "~1.0", 1080 | "symfony/process": "^3.4|^4.0|^5.0", 1081 | "symfony/property-info": "^3.4|^4.0|^5.0", 1082 | "symfony/security-csrf": "^3.4|^4.0|^5.0", 1083 | "symfony/security-http": "^3.4|^4.0|^5.0", 1084 | "symfony/serializer": "^4.4|^5.0", 1085 | "symfony/stopwatch": "^3.4|^4.0|^5.0", 1086 | "symfony/templating": "^3.4|^4.0|^5.0", 1087 | "symfony/translation": "^4.4|^5.0", 1088 | "symfony/twig-bundle": "^4.4|^5.0", 1089 | "symfony/validator": "^4.4|^5.0", 1090 | "symfony/web-link": "^4.4|^5.0", 1091 | "symfony/workflow": "^4.3.6|^5.0", 1092 | "symfony/yaml": "^3.4|^4.0|^5.0", 1093 | "twig/twig": "^1.41|^2.10|^3.0" 1094 | }, 1095 | "suggest": { 1096 | "ext-apcu": "For best performance of the system caches", 1097 | "symfony/console": "For using the console commands", 1098 | "symfony/form": "For using forms", 1099 | "symfony/property-info": "For using the property_info service", 1100 | "symfony/serializer": "For using the serializer service", 1101 | "symfony/validator": "For using validation", 1102 | "symfony/web-link": "For using web links, features such as preloading, prefetching or prerendering", 1103 | "symfony/yaml": "For using the debug:config and lint:yaml commands" 1104 | }, 1105 | "type": "symfony-bundle", 1106 | "extra": { 1107 | "branch-alias": { 1108 | "dev-master": "4.4-dev" 1109 | } 1110 | }, 1111 | "autoload": { 1112 | "psr-4": { 1113 | "Symfony\\Bundle\\FrameworkBundle\\": "" 1114 | }, 1115 | "exclude-from-classmap": [ 1116 | "/Tests/" 1117 | ] 1118 | }, 1119 | "notification-url": "https://packagist.org/downloads/", 1120 | "license": [ 1121 | "MIT" 1122 | ], 1123 | "authors": [ 1124 | { 1125 | "name": "Fabien Potencier", 1126 | "email": "fabien@symfony.com" 1127 | }, 1128 | { 1129 | "name": "Symfony Community", 1130 | "homepage": "https://symfony.com/contributors" 1131 | } 1132 | ], 1133 | "description": "Symfony FrameworkBundle", 1134 | "homepage": "https://symfony.com", 1135 | "time": "2019-12-17T08:15:02+00:00" 1136 | }, 1137 | { 1138 | "name": "symfony/http-foundation", 1139 | "version": "v5.0.2", 1140 | "source": { 1141 | "type": "git", 1142 | "url": "https://github.com/symfony/http-foundation.git", 1143 | "reference": "5dd7f6be6e62d86ba6f3154cf40e78936367978b" 1144 | }, 1145 | "dist": { 1146 | "type": "zip", 1147 | "url": "https://api.github.com/repos/symfony/http-foundation/zipball/5dd7f6be6e62d86ba6f3154cf40e78936367978b", 1148 | "reference": "5dd7f6be6e62d86ba6f3154cf40e78936367978b", 1149 | "shasum": "" 1150 | }, 1151 | "require": { 1152 | "php": "^7.2.5", 1153 | "symfony/mime": "^4.4|^5.0", 1154 | "symfony/polyfill-mbstring": "~1.1" 1155 | }, 1156 | "require-dev": { 1157 | "predis/predis": "~1.0", 1158 | "symfony/expression-language": "^4.4|^5.0" 1159 | }, 1160 | "type": "library", 1161 | "extra": { 1162 | "branch-alias": { 1163 | "dev-master": "5.0-dev" 1164 | } 1165 | }, 1166 | "autoload": { 1167 | "psr-4": { 1168 | "Symfony\\Component\\HttpFoundation\\": "" 1169 | }, 1170 | "exclude-from-classmap": [ 1171 | "/Tests/" 1172 | ] 1173 | }, 1174 | "notification-url": "https://packagist.org/downloads/", 1175 | "license": [ 1176 | "MIT" 1177 | ], 1178 | "authors": [ 1179 | { 1180 | "name": "Fabien Potencier", 1181 | "email": "fabien@symfony.com" 1182 | }, 1183 | { 1184 | "name": "Symfony Community", 1185 | "homepage": "https://symfony.com/contributors" 1186 | } 1187 | ], 1188 | "description": "Symfony HttpFoundation Component", 1189 | "homepage": "https://symfony.com", 1190 | "time": "2019-12-19T16:01:11+00:00" 1191 | }, 1192 | { 1193 | "name": "symfony/http-kernel", 1194 | "version": "v4.4.2", 1195 | "source": { 1196 | "type": "git", 1197 | "url": "https://github.com/symfony/http-kernel.git", 1198 | "reference": "fe310d2e95cd4c356836c8ecb0895a46d97fede2" 1199 | }, 1200 | "dist": { 1201 | "type": "zip", 1202 | "url": "https://api.github.com/repos/symfony/http-kernel/zipball/fe310d2e95cd4c356836c8ecb0895a46d97fede2", 1203 | "reference": "fe310d2e95cd4c356836c8ecb0895a46d97fede2", 1204 | "shasum": "" 1205 | }, 1206 | "require": { 1207 | "php": "^7.1.3", 1208 | "psr/log": "~1.0", 1209 | "symfony/error-handler": "^4.4", 1210 | "symfony/event-dispatcher": "^4.4", 1211 | "symfony/http-foundation": "^4.4|^5.0", 1212 | "symfony/polyfill-ctype": "^1.8", 1213 | "symfony/polyfill-php73": "^1.9" 1214 | }, 1215 | "conflict": { 1216 | "symfony/browser-kit": "<4.3", 1217 | "symfony/config": "<3.4", 1218 | "symfony/console": ">=5", 1219 | "symfony/dependency-injection": "<4.3", 1220 | "symfony/translation": "<4.2", 1221 | "twig/twig": "<1.34|<2.4,>=2" 1222 | }, 1223 | "provide": { 1224 | "psr/log-implementation": "1.0" 1225 | }, 1226 | "require-dev": { 1227 | "psr/cache": "~1.0", 1228 | "symfony/browser-kit": "^4.3|^5.0", 1229 | "symfony/config": "^3.4|^4.0|^5.0", 1230 | "symfony/console": "^3.4|^4.0", 1231 | "symfony/css-selector": "^3.4|^4.0|^5.0", 1232 | "symfony/dependency-injection": "^4.3|^5.0", 1233 | "symfony/dom-crawler": "^3.4|^4.0|^5.0", 1234 | "symfony/expression-language": "^3.4|^4.0|^5.0", 1235 | "symfony/finder": "^3.4|^4.0|^5.0", 1236 | "symfony/process": "^3.4|^4.0|^5.0", 1237 | "symfony/routing": "^3.4|^4.0|^5.0", 1238 | "symfony/stopwatch": "^3.4|^4.0|^5.0", 1239 | "symfony/templating": "^3.4|^4.0|^5.0", 1240 | "symfony/translation": "^4.2|^5.0", 1241 | "symfony/translation-contracts": "^1.1|^2", 1242 | "twig/twig": "^1.34|^2.4|^3.0" 1243 | }, 1244 | "suggest": { 1245 | "symfony/browser-kit": "", 1246 | "symfony/config": "", 1247 | "symfony/console": "", 1248 | "symfony/dependency-injection": "" 1249 | }, 1250 | "type": "library", 1251 | "extra": { 1252 | "branch-alias": { 1253 | "dev-master": "4.4-dev" 1254 | } 1255 | }, 1256 | "autoload": { 1257 | "psr-4": { 1258 | "Symfony\\Component\\HttpKernel\\": "" 1259 | }, 1260 | "exclude-from-classmap": [ 1261 | "/Tests/" 1262 | ] 1263 | }, 1264 | "notification-url": "https://packagist.org/downloads/", 1265 | "license": [ 1266 | "MIT" 1267 | ], 1268 | "authors": [ 1269 | { 1270 | "name": "Fabien Potencier", 1271 | "email": "fabien@symfony.com" 1272 | }, 1273 | { 1274 | "name": "Symfony Community", 1275 | "homepage": "https://symfony.com/contributors" 1276 | } 1277 | ], 1278 | "description": "Symfony HttpKernel Component", 1279 | "homepage": "https://symfony.com", 1280 | "time": "2019-12-19T16:23:40+00:00" 1281 | }, 1282 | { 1283 | "name": "symfony/mime", 1284 | "version": "v5.0.2", 1285 | "source": { 1286 | "type": "git", 1287 | "url": "https://github.com/symfony/mime.git", 1288 | "reference": "0e6a4ced216e49d457eddcefb61132173a876d79" 1289 | }, 1290 | "dist": { 1291 | "type": "zip", 1292 | "url": "https://api.github.com/repos/symfony/mime/zipball/0e6a4ced216e49d457eddcefb61132173a876d79", 1293 | "reference": "0e6a4ced216e49d457eddcefb61132173a876d79", 1294 | "shasum": "" 1295 | }, 1296 | "require": { 1297 | "php": "^7.2.5", 1298 | "symfony/polyfill-intl-idn": "^1.10", 1299 | "symfony/polyfill-mbstring": "^1.0" 1300 | }, 1301 | "conflict": { 1302 | "symfony/mailer": "<4.4" 1303 | }, 1304 | "require-dev": { 1305 | "egulias/email-validator": "^2.1.10", 1306 | "symfony/dependency-injection": "^4.4|^5.0" 1307 | }, 1308 | "type": "library", 1309 | "extra": { 1310 | "branch-alias": { 1311 | "dev-master": "5.0-dev" 1312 | } 1313 | }, 1314 | "autoload": { 1315 | "psr-4": { 1316 | "Symfony\\Component\\Mime\\": "" 1317 | }, 1318 | "exclude-from-classmap": [ 1319 | "/Tests/" 1320 | ] 1321 | }, 1322 | "notification-url": "https://packagist.org/downloads/", 1323 | "license": [ 1324 | "MIT" 1325 | ], 1326 | "authors": [ 1327 | { 1328 | "name": "Fabien Potencier", 1329 | "email": "fabien@symfony.com" 1330 | }, 1331 | { 1332 | "name": "Symfony Community", 1333 | "homepage": "https://symfony.com/contributors" 1334 | } 1335 | ], 1336 | "description": "A library to manipulate MIME messages", 1337 | "homepage": "https://symfony.com", 1338 | "keywords": [ 1339 | "mime", 1340 | "mime-type" 1341 | ], 1342 | "time": "2019-11-30T14:12:50+00:00" 1343 | }, 1344 | { 1345 | "name": "symfony/polyfill-ctype", 1346 | "version": "v1.13.1", 1347 | "source": { 1348 | "type": "git", 1349 | "url": "https://github.com/symfony/polyfill-ctype.git", 1350 | "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3" 1351 | }, 1352 | "dist": { 1353 | "type": "zip", 1354 | "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", 1355 | "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", 1356 | "shasum": "" 1357 | }, 1358 | "require": { 1359 | "php": ">=5.3.3" 1360 | }, 1361 | "suggest": { 1362 | "ext-ctype": "For best performance" 1363 | }, 1364 | "type": "library", 1365 | "extra": { 1366 | "branch-alias": { 1367 | "dev-master": "1.13-dev" 1368 | } 1369 | }, 1370 | "autoload": { 1371 | "psr-4": { 1372 | "Symfony\\Polyfill\\Ctype\\": "" 1373 | }, 1374 | "files": [ 1375 | "bootstrap.php" 1376 | ] 1377 | }, 1378 | "notification-url": "https://packagist.org/downloads/", 1379 | "license": [ 1380 | "MIT" 1381 | ], 1382 | "authors": [ 1383 | { 1384 | "name": "Gert de Pagter", 1385 | "email": "BackEndTea@gmail.com" 1386 | }, 1387 | { 1388 | "name": "Symfony Community", 1389 | "homepage": "https://symfony.com/contributors" 1390 | } 1391 | ], 1392 | "description": "Symfony polyfill for ctype functions", 1393 | "homepage": "https://symfony.com", 1394 | "keywords": [ 1395 | "compatibility", 1396 | "ctype", 1397 | "polyfill", 1398 | "portable" 1399 | ], 1400 | "time": "2019-11-27T13:56:44+00:00" 1401 | }, 1402 | { 1403 | "name": "symfony/polyfill-intl-idn", 1404 | "version": "v1.13.1", 1405 | "source": { 1406 | "type": "git", 1407 | "url": "https://github.com/symfony/polyfill-intl-idn.git", 1408 | "reference": "6f9c239e61e1b0c9229a28ff89a812dc449c3d46" 1409 | }, 1410 | "dist": { 1411 | "type": "zip", 1412 | "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/6f9c239e61e1b0c9229a28ff89a812dc449c3d46", 1413 | "reference": "6f9c239e61e1b0c9229a28ff89a812dc449c3d46", 1414 | "shasum": "" 1415 | }, 1416 | "require": { 1417 | "php": ">=5.3.3", 1418 | "symfony/polyfill-mbstring": "^1.3", 1419 | "symfony/polyfill-php72": "^1.9" 1420 | }, 1421 | "suggest": { 1422 | "ext-intl": "For best performance" 1423 | }, 1424 | "type": "library", 1425 | "extra": { 1426 | "branch-alias": { 1427 | "dev-master": "1.13-dev" 1428 | } 1429 | }, 1430 | "autoload": { 1431 | "psr-4": { 1432 | "Symfony\\Polyfill\\Intl\\Idn\\": "" 1433 | }, 1434 | "files": [ 1435 | "bootstrap.php" 1436 | ] 1437 | }, 1438 | "notification-url": "https://packagist.org/downloads/", 1439 | "license": [ 1440 | "MIT" 1441 | ], 1442 | "authors": [ 1443 | { 1444 | "name": "Laurent Bassin", 1445 | "email": "laurent@bassin.info" 1446 | }, 1447 | { 1448 | "name": "Symfony Community", 1449 | "homepage": "https://symfony.com/contributors" 1450 | } 1451 | ], 1452 | "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", 1453 | "homepage": "https://symfony.com", 1454 | "keywords": [ 1455 | "compatibility", 1456 | "idn", 1457 | "intl", 1458 | "polyfill", 1459 | "portable", 1460 | "shim" 1461 | ], 1462 | "time": "2019-11-27T13:56:44+00:00" 1463 | }, 1464 | { 1465 | "name": "symfony/polyfill-mbstring", 1466 | "version": "v1.13.1", 1467 | "source": { 1468 | "type": "git", 1469 | "url": "https://github.com/symfony/polyfill-mbstring.git", 1470 | "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f" 1471 | }, 1472 | "dist": { 1473 | "type": "zip", 1474 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7b4aab9743c30be783b73de055d24a39cf4b954f", 1475 | "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f", 1476 | "shasum": "" 1477 | }, 1478 | "require": { 1479 | "php": ">=5.3.3" 1480 | }, 1481 | "suggest": { 1482 | "ext-mbstring": "For best performance" 1483 | }, 1484 | "type": "library", 1485 | "extra": { 1486 | "branch-alias": { 1487 | "dev-master": "1.13-dev" 1488 | } 1489 | }, 1490 | "autoload": { 1491 | "psr-4": { 1492 | "Symfony\\Polyfill\\Mbstring\\": "" 1493 | }, 1494 | "files": [ 1495 | "bootstrap.php" 1496 | ] 1497 | }, 1498 | "notification-url": "https://packagist.org/downloads/", 1499 | "license": [ 1500 | "MIT" 1501 | ], 1502 | "authors": [ 1503 | { 1504 | "name": "Nicolas Grekas", 1505 | "email": "p@tchwork.com" 1506 | }, 1507 | { 1508 | "name": "Symfony Community", 1509 | "homepage": "https://symfony.com/contributors" 1510 | } 1511 | ], 1512 | "description": "Symfony polyfill for the Mbstring extension", 1513 | "homepage": "https://symfony.com", 1514 | "keywords": [ 1515 | "compatibility", 1516 | "mbstring", 1517 | "polyfill", 1518 | "portable", 1519 | "shim" 1520 | ], 1521 | "time": "2019-11-27T14:18:11+00:00" 1522 | }, 1523 | { 1524 | "name": "symfony/polyfill-php72", 1525 | "version": "v1.13.1", 1526 | "source": { 1527 | "type": "git", 1528 | "url": "https://github.com/symfony/polyfill-php72.git", 1529 | "reference": "66fea50f6cb37a35eea048d75a7d99a45b586038" 1530 | }, 1531 | "dist": { 1532 | "type": "zip", 1533 | "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/66fea50f6cb37a35eea048d75a7d99a45b586038", 1534 | "reference": "66fea50f6cb37a35eea048d75a7d99a45b586038", 1535 | "shasum": "" 1536 | }, 1537 | "require": { 1538 | "php": ">=5.3.3" 1539 | }, 1540 | "type": "library", 1541 | "extra": { 1542 | "branch-alias": { 1543 | "dev-master": "1.13-dev" 1544 | } 1545 | }, 1546 | "autoload": { 1547 | "psr-4": { 1548 | "Symfony\\Polyfill\\Php72\\": "" 1549 | }, 1550 | "files": [ 1551 | "bootstrap.php" 1552 | ] 1553 | }, 1554 | "notification-url": "https://packagist.org/downloads/", 1555 | "license": [ 1556 | "MIT" 1557 | ], 1558 | "authors": [ 1559 | { 1560 | "name": "Nicolas Grekas", 1561 | "email": "p@tchwork.com" 1562 | }, 1563 | { 1564 | "name": "Symfony Community", 1565 | "homepage": "https://symfony.com/contributors" 1566 | } 1567 | ], 1568 | "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", 1569 | "homepage": "https://symfony.com", 1570 | "keywords": [ 1571 | "compatibility", 1572 | "polyfill", 1573 | "portable", 1574 | "shim" 1575 | ], 1576 | "time": "2019-11-27T13:56:44+00:00" 1577 | }, 1578 | { 1579 | "name": "symfony/polyfill-php73", 1580 | "version": "v1.13.1", 1581 | "source": { 1582 | "type": "git", 1583 | "url": "https://github.com/symfony/polyfill-php73.git", 1584 | "reference": "4b0e2222c55a25b4541305a053013d5647d3a25f" 1585 | }, 1586 | "dist": { 1587 | "type": "zip", 1588 | "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/4b0e2222c55a25b4541305a053013d5647d3a25f", 1589 | "reference": "4b0e2222c55a25b4541305a053013d5647d3a25f", 1590 | "shasum": "" 1591 | }, 1592 | "require": { 1593 | "php": ">=5.3.3" 1594 | }, 1595 | "type": "library", 1596 | "extra": { 1597 | "branch-alias": { 1598 | "dev-master": "1.13-dev" 1599 | } 1600 | }, 1601 | "autoload": { 1602 | "psr-4": { 1603 | "Symfony\\Polyfill\\Php73\\": "" 1604 | }, 1605 | "files": [ 1606 | "bootstrap.php" 1607 | ], 1608 | "classmap": [ 1609 | "Resources/stubs" 1610 | ] 1611 | }, 1612 | "notification-url": "https://packagist.org/downloads/", 1613 | "license": [ 1614 | "MIT" 1615 | ], 1616 | "authors": [ 1617 | { 1618 | "name": "Nicolas Grekas", 1619 | "email": "p@tchwork.com" 1620 | }, 1621 | { 1622 | "name": "Symfony Community", 1623 | "homepage": "https://symfony.com/contributors" 1624 | } 1625 | ], 1626 | "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", 1627 | "homepage": "https://symfony.com", 1628 | "keywords": [ 1629 | "compatibility", 1630 | "polyfill", 1631 | "portable", 1632 | "shim" 1633 | ], 1634 | "time": "2019-11-27T16:25:15+00:00" 1635 | }, 1636 | { 1637 | "name": "symfony/routing", 1638 | "version": "v5.0.2", 1639 | "source": { 1640 | "type": "git", 1641 | "url": "https://github.com/symfony/routing.git", 1642 | "reference": "120c5fa4f4ef5466cbb510ece8126e0007285301" 1643 | }, 1644 | "dist": { 1645 | "type": "zip", 1646 | "url": "https://api.github.com/repos/symfony/routing/zipball/120c5fa4f4ef5466cbb510ece8126e0007285301", 1647 | "reference": "120c5fa4f4ef5466cbb510ece8126e0007285301", 1648 | "shasum": "" 1649 | }, 1650 | "require": { 1651 | "php": "^7.2.5" 1652 | }, 1653 | "conflict": { 1654 | "symfony/config": "<5.0", 1655 | "symfony/dependency-injection": "<4.4", 1656 | "symfony/yaml": "<4.4" 1657 | }, 1658 | "require-dev": { 1659 | "doctrine/annotations": "~1.2", 1660 | "psr/log": "~1.0", 1661 | "symfony/config": "^5.0", 1662 | "symfony/dependency-injection": "^4.4|^5.0", 1663 | "symfony/expression-language": "^4.4|^5.0", 1664 | "symfony/http-foundation": "^4.4|^5.0", 1665 | "symfony/yaml": "^4.4|^5.0" 1666 | }, 1667 | "suggest": { 1668 | "doctrine/annotations": "For using the annotation loader", 1669 | "symfony/config": "For using the all-in-one router or any loader", 1670 | "symfony/expression-language": "For using expression matching", 1671 | "symfony/http-foundation": "For using a Symfony Request object", 1672 | "symfony/yaml": "For using the YAML loader" 1673 | }, 1674 | "type": "library", 1675 | "extra": { 1676 | "branch-alias": { 1677 | "dev-master": "5.0-dev" 1678 | } 1679 | }, 1680 | "autoload": { 1681 | "psr-4": { 1682 | "Symfony\\Component\\Routing\\": "" 1683 | }, 1684 | "exclude-from-classmap": [ 1685 | "/Tests/" 1686 | ] 1687 | }, 1688 | "notification-url": "https://packagist.org/downloads/", 1689 | "license": [ 1690 | "MIT" 1691 | ], 1692 | "authors": [ 1693 | { 1694 | "name": "Fabien Potencier", 1695 | "email": "fabien@symfony.com" 1696 | }, 1697 | { 1698 | "name": "Symfony Community", 1699 | "homepage": "https://symfony.com/contributors" 1700 | } 1701 | ], 1702 | "description": "Symfony Routing Component", 1703 | "homepage": "https://symfony.com", 1704 | "keywords": [ 1705 | "router", 1706 | "routing", 1707 | "uri", 1708 | "url" 1709 | ], 1710 | "time": "2019-12-12T13:03:32+00:00" 1711 | }, 1712 | { 1713 | "name": "symfony/service-contracts", 1714 | "version": "v2.0.1", 1715 | "source": { 1716 | "type": "git", 1717 | "url": "https://github.com/symfony/service-contracts.git", 1718 | "reference": "144c5e51266b281231e947b51223ba14acf1a749" 1719 | }, 1720 | "dist": { 1721 | "type": "zip", 1722 | "url": "https://api.github.com/repos/symfony/service-contracts/zipball/144c5e51266b281231e947b51223ba14acf1a749", 1723 | "reference": "144c5e51266b281231e947b51223ba14acf1a749", 1724 | "shasum": "" 1725 | }, 1726 | "require": { 1727 | "php": "^7.2.5", 1728 | "psr/container": "^1.0" 1729 | }, 1730 | "suggest": { 1731 | "symfony/service-implementation": "" 1732 | }, 1733 | "type": "library", 1734 | "extra": { 1735 | "branch-alias": { 1736 | "dev-master": "2.0-dev" 1737 | } 1738 | }, 1739 | "autoload": { 1740 | "psr-4": { 1741 | "Symfony\\Contracts\\Service\\": "" 1742 | } 1743 | }, 1744 | "notification-url": "https://packagist.org/downloads/", 1745 | "license": [ 1746 | "MIT" 1747 | ], 1748 | "authors": [ 1749 | { 1750 | "name": "Nicolas Grekas", 1751 | "email": "p@tchwork.com" 1752 | }, 1753 | { 1754 | "name": "Symfony Community", 1755 | "homepage": "https://symfony.com/contributors" 1756 | } 1757 | ], 1758 | "description": "Generic abstractions related to writing services", 1759 | "homepage": "https://symfony.com", 1760 | "keywords": [ 1761 | "abstractions", 1762 | "contracts", 1763 | "decoupling", 1764 | "interfaces", 1765 | "interoperability", 1766 | "standards" 1767 | ], 1768 | "time": "2019-11-18T17:27:11+00:00" 1769 | }, 1770 | { 1771 | "name": "symfony/var-dumper", 1772 | "version": "v5.0.2", 1773 | "source": { 1774 | "type": "git", 1775 | "url": "https://github.com/symfony/var-dumper.git", 1776 | "reference": "d7bc61d5d335fa9b1b91e14bb16861e8ca50f53a" 1777 | }, 1778 | "dist": { 1779 | "type": "zip", 1780 | "url": "https://api.github.com/repos/symfony/var-dumper/zipball/d7bc61d5d335fa9b1b91e14bb16861e8ca50f53a", 1781 | "reference": "d7bc61d5d335fa9b1b91e14bb16861e8ca50f53a", 1782 | "shasum": "" 1783 | }, 1784 | "require": { 1785 | "php": "^7.2.5", 1786 | "symfony/polyfill-mbstring": "~1.0" 1787 | }, 1788 | "conflict": { 1789 | "phpunit/phpunit": "<5.4.3", 1790 | "symfony/console": "<4.4" 1791 | }, 1792 | "require-dev": { 1793 | "ext-iconv": "*", 1794 | "symfony/console": "^4.4|^5.0", 1795 | "symfony/process": "^4.4|^5.0", 1796 | "twig/twig": "^2.4|^3.0" 1797 | }, 1798 | "suggest": { 1799 | "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", 1800 | "ext-intl": "To show region name in time zone dump", 1801 | "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" 1802 | }, 1803 | "bin": [ 1804 | "Resources/bin/var-dump-server" 1805 | ], 1806 | "type": "library", 1807 | "extra": { 1808 | "branch-alias": { 1809 | "dev-master": "5.0-dev" 1810 | } 1811 | }, 1812 | "autoload": { 1813 | "files": [ 1814 | "Resources/functions/dump.php" 1815 | ], 1816 | "psr-4": { 1817 | "Symfony\\Component\\VarDumper\\": "" 1818 | }, 1819 | "exclude-from-classmap": [ 1820 | "/Tests/" 1821 | ] 1822 | }, 1823 | "notification-url": "https://packagist.org/downloads/", 1824 | "license": [ 1825 | "MIT" 1826 | ], 1827 | "authors": [ 1828 | { 1829 | "name": "Nicolas Grekas", 1830 | "email": "p@tchwork.com" 1831 | }, 1832 | { 1833 | "name": "Symfony Community", 1834 | "homepage": "https://symfony.com/contributors" 1835 | } 1836 | ], 1837 | "description": "Symfony mechanism for exploring and dumping PHP variables", 1838 | "homepage": "https://symfony.com", 1839 | "keywords": [ 1840 | "debug", 1841 | "dump" 1842 | ], 1843 | "time": "2019-12-18T13:50:31+00:00" 1844 | }, 1845 | { 1846 | "name": "symfony/var-exporter", 1847 | "version": "v5.0.2", 1848 | "source": { 1849 | "type": "git", 1850 | "url": "https://github.com/symfony/var-exporter.git", 1851 | "reference": "1b9653e68d5b701bf6d9c91bdd3660078c9f4f28" 1852 | }, 1853 | "dist": { 1854 | "type": "zip", 1855 | "url": "https://api.github.com/repos/symfony/var-exporter/zipball/1b9653e68d5b701bf6d9c91bdd3660078c9f4f28", 1856 | "reference": "1b9653e68d5b701bf6d9c91bdd3660078c9f4f28", 1857 | "shasum": "" 1858 | }, 1859 | "require": { 1860 | "php": "^7.2.5" 1861 | }, 1862 | "require-dev": { 1863 | "symfony/var-dumper": "^4.4|^5.0" 1864 | }, 1865 | "type": "library", 1866 | "extra": { 1867 | "branch-alias": { 1868 | "dev-master": "5.0-dev" 1869 | } 1870 | }, 1871 | "autoload": { 1872 | "psr-4": { 1873 | "Symfony\\Component\\VarExporter\\": "" 1874 | }, 1875 | "exclude-from-classmap": [ 1876 | "/Tests/" 1877 | ] 1878 | }, 1879 | "notification-url": "https://packagist.org/downloads/", 1880 | "license": [ 1881 | "MIT" 1882 | ], 1883 | "authors": [ 1884 | { 1885 | "name": "Nicolas Grekas", 1886 | "email": "p@tchwork.com" 1887 | }, 1888 | { 1889 | "name": "Symfony Community", 1890 | "homepage": "https://symfony.com/contributors" 1891 | } 1892 | ], 1893 | "description": "A blend of var_export() + serialize() to turn any serializable data structure to plain PHP code", 1894 | "homepage": "https://symfony.com", 1895 | "keywords": [ 1896 | "clone", 1897 | "construct", 1898 | "export", 1899 | "hydrate", 1900 | "instantiate", 1901 | "serialize" 1902 | ], 1903 | "time": "2019-12-01T08:48:26+00:00" 1904 | } 1905 | ], 1906 | "packages-dev": [ 1907 | { 1908 | "name": "doctrine/instantiator", 1909 | "version": "1.3.0", 1910 | "source": { 1911 | "type": "git", 1912 | "url": "https://github.com/doctrine/instantiator.git", 1913 | "reference": "ae466f726242e637cebdd526a7d991b9433bacf1" 1914 | }, 1915 | "dist": { 1916 | "type": "zip", 1917 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1", 1918 | "reference": "ae466f726242e637cebdd526a7d991b9433bacf1", 1919 | "shasum": "" 1920 | }, 1921 | "require": { 1922 | "php": "^7.1" 1923 | }, 1924 | "require-dev": { 1925 | "doctrine/coding-standard": "^6.0", 1926 | "ext-pdo": "*", 1927 | "ext-phar": "*", 1928 | "phpbench/phpbench": "^0.13", 1929 | "phpstan/phpstan-phpunit": "^0.11", 1930 | "phpstan/phpstan-shim": "^0.11", 1931 | "phpunit/phpunit": "^7.0" 1932 | }, 1933 | "type": "library", 1934 | "extra": { 1935 | "branch-alias": { 1936 | "dev-master": "1.2.x-dev" 1937 | } 1938 | }, 1939 | "autoload": { 1940 | "psr-4": { 1941 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" 1942 | } 1943 | }, 1944 | "notification-url": "https://packagist.org/downloads/", 1945 | "license": [ 1946 | "MIT" 1947 | ], 1948 | "authors": [ 1949 | { 1950 | "name": "Marco Pivetta", 1951 | "email": "ocramius@gmail.com", 1952 | "homepage": "http://ocramius.github.com/" 1953 | } 1954 | ], 1955 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", 1956 | "homepage": "https://www.doctrine-project.org/projects/instantiator.html", 1957 | "keywords": [ 1958 | "constructor", 1959 | "instantiate" 1960 | ], 1961 | "time": "2019-10-21T16:45:58+00:00" 1962 | }, 1963 | { 1964 | "name": "myclabs/deep-copy", 1965 | "version": "1.9.4", 1966 | "source": { 1967 | "type": "git", 1968 | "url": "https://github.com/myclabs/DeepCopy.git", 1969 | "reference": "579bb7356d91f9456ccd505f24ca8b667966a0a7" 1970 | }, 1971 | "dist": { 1972 | "type": "zip", 1973 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/579bb7356d91f9456ccd505f24ca8b667966a0a7", 1974 | "reference": "579bb7356d91f9456ccd505f24ca8b667966a0a7", 1975 | "shasum": "" 1976 | }, 1977 | "require": { 1978 | "php": "^7.1" 1979 | }, 1980 | "replace": { 1981 | "myclabs/deep-copy": "self.version" 1982 | }, 1983 | "require-dev": { 1984 | "doctrine/collections": "^1.0", 1985 | "doctrine/common": "^2.6", 1986 | "phpunit/phpunit": "^7.1" 1987 | }, 1988 | "type": "library", 1989 | "autoload": { 1990 | "psr-4": { 1991 | "DeepCopy\\": "src/DeepCopy/" 1992 | }, 1993 | "files": [ 1994 | "src/DeepCopy/deep_copy.php" 1995 | ] 1996 | }, 1997 | "notification-url": "https://packagist.org/downloads/", 1998 | "license": [ 1999 | "MIT" 2000 | ], 2001 | "description": "Create deep copies (clones) of your objects", 2002 | "keywords": [ 2003 | "clone", 2004 | "copy", 2005 | "duplicate", 2006 | "object", 2007 | "object graph" 2008 | ], 2009 | "time": "2019-12-15T19:12:40+00:00" 2010 | }, 2011 | { 2012 | "name": "phar-io/manifest", 2013 | "version": "1.0.3", 2014 | "source": { 2015 | "type": "git", 2016 | "url": "https://github.com/phar-io/manifest.git", 2017 | "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" 2018 | }, 2019 | "dist": { 2020 | "type": "zip", 2021 | "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", 2022 | "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", 2023 | "shasum": "" 2024 | }, 2025 | "require": { 2026 | "ext-dom": "*", 2027 | "ext-phar": "*", 2028 | "phar-io/version": "^2.0", 2029 | "php": "^5.6 || ^7.0" 2030 | }, 2031 | "type": "library", 2032 | "extra": { 2033 | "branch-alias": { 2034 | "dev-master": "1.0.x-dev" 2035 | } 2036 | }, 2037 | "autoload": { 2038 | "classmap": [ 2039 | "src/" 2040 | ] 2041 | }, 2042 | "notification-url": "https://packagist.org/downloads/", 2043 | "license": [ 2044 | "BSD-3-Clause" 2045 | ], 2046 | "authors": [ 2047 | { 2048 | "name": "Arne Blankerts", 2049 | "email": "arne@blankerts.de", 2050 | "role": "Developer" 2051 | }, 2052 | { 2053 | "name": "Sebastian Heuer", 2054 | "email": "sebastian@phpeople.de", 2055 | "role": "Developer" 2056 | }, 2057 | { 2058 | "name": "Sebastian Bergmann", 2059 | "email": "sebastian@phpunit.de", 2060 | "role": "Developer" 2061 | } 2062 | ], 2063 | "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", 2064 | "time": "2018-07-08T19:23:20+00:00" 2065 | }, 2066 | { 2067 | "name": "phar-io/version", 2068 | "version": "2.0.1", 2069 | "source": { 2070 | "type": "git", 2071 | "url": "https://github.com/phar-io/version.git", 2072 | "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" 2073 | }, 2074 | "dist": { 2075 | "type": "zip", 2076 | "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", 2077 | "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", 2078 | "shasum": "" 2079 | }, 2080 | "require": { 2081 | "php": "^5.6 || ^7.0" 2082 | }, 2083 | "type": "library", 2084 | "autoload": { 2085 | "classmap": [ 2086 | "src/" 2087 | ] 2088 | }, 2089 | "notification-url": "https://packagist.org/downloads/", 2090 | "license": [ 2091 | "BSD-3-Clause" 2092 | ], 2093 | "authors": [ 2094 | { 2095 | "name": "Arne Blankerts", 2096 | "email": "arne@blankerts.de", 2097 | "role": "Developer" 2098 | }, 2099 | { 2100 | "name": "Sebastian Heuer", 2101 | "email": "sebastian@phpeople.de", 2102 | "role": "Developer" 2103 | }, 2104 | { 2105 | "name": "Sebastian Bergmann", 2106 | "email": "sebastian@phpunit.de", 2107 | "role": "Developer" 2108 | } 2109 | ], 2110 | "description": "Library for handling version information and constraints", 2111 | "time": "2018-07-08T19:19:57+00:00" 2112 | }, 2113 | { 2114 | "name": "phpdocumentor/reflection-common", 2115 | "version": "2.0.0", 2116 | "source": { 2117 | "type": "git", 2118 | "url": "https://github.com/phpDocumentor/ReflectionCommon.git", 2119 | "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a" 2120 | }, 2121 | "dist": { 2122 | "type": "zip", 2123 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/63a995caa1ca9e5590304cd845c15ad6d482a62a", 2124 | "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a", 2125 | "shasum": "" 2126 | }, 2127 | "require": { 2128 | "php": ">=7.1" 2129 | }, 2130 | "require-dev": { 2131 | "phpunit/phpunit": "~6" 2132 | }, 2133 | "type": "library", 2134 | "extra": { 2135 | "branch-alias": { 2136 | "dev-master": "2.x-dev" 2137 | } 2138 | }, 2139 | "autoload": { 2140 | "psr-4": { 2141 | "phpDocumentor\\Reflection\\": "src/" 2142 | } 2143 | }, 2144 | "notification-url": "https://packagist.org/downloads/", 2145 | "license": [ 2146 | "MIT" 2147 | ], 2148 | "authors": [ 2149 | { 2150 | "name": "Jaap van Otterdijk", 2151 | "email": "opensource@ijaap.nl" 2152 | } 2153 | ], 2154 | "description": "Common reflection classes used by phpdocumentor to reflect the code structure", 2155 | "homepage": "http://www.phpdoc.org", 2156 | "keywords": [ 2157 | "FQSEN", 2158 | "phpDocumentor", 2159 | "phpdoc", 2160 | "reflection", 2161 | "static analysis" 2162 | ], 2163 | "time": "2018-08-07T13:53:10+00:00" 2164 | }, 2165 | { 2166 | "name": "phpdocumentor/reflection-docblock", 2167 | "version": "4.3.4", 2168 | "source": { 2169 | "type": "git", 2170 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", 2171 | "reference": "da3fd972d6bafd628114f7e7e036f45944b62e9c" 2172 | }, 2173 | "dist": { 2174 | "type": "zip", 2175 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/da3fd972d6bafd628114f7e7e036f45944b62e9c", 2176 | "reference": "da3fd972d6bafd628114f7e7e036f45944b62e9c", 2177 | "shasum": "" 2178 | }, 2179 | "require": { 2180 | "php": "^7.0", 2181 | "phpdocumentor/reflection-common": "^1.0.0 || ^2.0.0", 2182 | "phpdocumentor/type-resolver": "~0.4 || ^1.0.0", 2183 | "webmozart/assert": "^1.0" 2184 | }, 2185 | "require-dev": { 2186 | "doctrine/instantiator": "^1.0.5", 2187 | "mockery/mockery": "^1.0", 2188 | "phpdocumentor/type-resolver": "0.4.*", 2189 | "phpunit/phpunit": "^6.4" 2190 | }, 2191 | "type": "library", 2192 | "extra": { 2193 | "branch-alias": { 2194 | "dev-master": "4.x-dev" 2195 | } 2196 | }, 2197 | "autoload": { 2198 | "psr-4": { 2199 | "phpDocumentor\\Reflection\\": [ 2200 | "src/" 2201 | ] 2202 | } 2203 | }, 2204 | "notification-url": "https://packagist.org/downloads/", 2205 | "license": [ 2206 | "MIT" 2207 | ], 2208 | "authors": [ 2209 | { 2210 | "name": "Mike van Riel", 2211 | "email": "me@mikevanriel.com" 2212 | } 2213 | ], 2214 | "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", 2215 | "time": "2019-12-28T18:55:12+00:00" 2216 | }, 2217 | { 2218 | "name": "phpdocumentor/type-resolver", 2219 | "version": "1.0.1", 2220 | "source": { 2221 | "type": "git", 2222 | "url": "https://github.com/phpDocumentor/TypeResolver.git", 2223 | "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9" 2224 | }, 2225 | "dist": { 2226 | "type": "zip", 2227 | "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", 2228 | "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", 2229 | "shasum": "" 2230 | }, 2231 | "require": { 2232 | "php": "^7.1", 2233 | "phpdocumentor/reflection-common": "^2.0" 2234 | }, 2235 | "require-dev": { 2236 | "ext-tokenizer": "^7.1", 2237 | "mockery/mockery": "~1", 2238 | "phpunit/phpunit": "^7.0" 2239 | }, 2240 | "type": "library", 2241 | "extra": { 2242 | "branch-alias": { 2243 | "dev-master": "1.x-dev" 2244 | } 2245 | }, 2246 | "autoload": { 2247 | "psr-4": { 2248 | "phpDocumentor\\Reflection\\": "src" 2249 | } 2250 | }, 2251 | "notification-url": "https://packagist.org/downloads/", 2252 | "license": [ 2253 | "MIT" 2254 | ], 2255 | "authors": [ 2256 | { 2257 | "name": "Mike van Riel", 2258 | "email": "me@mikevanriel.com" 2259 | } 2260 | ], 2261 | "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", 2262 | "time": "2019-08-22T18:11:29+00:00" 2263 | }, 2264 | { 2265 | "name": "phpspec/prophecy", 2266 | "version": "1.10.1", 2267 | "source": { 2268 | "type": "git", 2269 | "url": "https://github.com/phpspec/prophecy.git", 2270 | "reference": "cbe1df668b3fe136bcc909126a0f529a78d4cbbc" 2271 | }, 2272 | "dist": { 2273 | "type": "zip", 2274 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/cbe1df668b3fe136bcc909126a0f529a78d4cbbc", 2275 | "reference": "cbe1df668b3fe136bcc909126a0f529a78d4cbbc", 2276 | "shasum": "" 2277 | }, 2278 | "require": { 2279 | "doctrine/instantiator": "^1.0.2", 2280 | "php": "^5.3|^7.0", 2281 | "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", 2282 | "sebastian/comparator": "^1.2.3|^2.0|^3.0", 2283 | "sebastian/recursion-context": "^1.0|^2.0|^3.0" 2284 | }, 2285 | "require-dev": { 2286 | "phpspec/phpspec": "^2.5 || ^3.2", 2287 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" 2288 | }, 2289 | "type": "library", 2290 | "extra": { 2291 | "branch-alias": { 2292 | "dev-master": "1.10.x-dev" 2293 | } 2294 | }, 2295 | "autoload": { 2296 | "psr-4": { 2297 | "Prophecy\\": "src/Prophecy" 2298 | } 2299 | }, 2300 | "notification-url": "https://packagist.org/downloads/", 2301 | "license": [ 2302 | "MIT" 2303 | ], 2304 | "authors": [ 2305 | { 2306 | "name": "Konstantin Kudryashov", 2307 | "email": "ever.zet@gmail.com", 2308 | "homepage": "http://everzet.com" 2309 | }, 2310 | { 2311 | "name": "Marcello Duarte", 2312 | "email": "marcello.duarte@gmail.com" 2313 | } 2314 | ], 2315 | "description": "Highly opinionated mocking framework for PHP 5.3+", 2316 | "homepage": "https://github.com/phpspec/prophecy", 2317 | "keywords": [ 2318 | "Double", 2319 | "Dummy", 2320 | "fake", 2321 | "mock", 2322 | "spy", 2323 | "stub" 2324 | ], 2325 | "time": "2019-12-22T21:05:45+00:00" 2326 | }, 2327 | { 2328 | "name": "phpunit/php-code-coverage", 2329 | "version": "6.1.4", 2330 | "source": { 2331 | "type": "git", 2332 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git", 2333 | "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d" 2334 | }, 2335 | "dist": { 2336 | "type": "zip", 2337 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", 2338 | "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", 2339 | "shasum": "" 2340 | }, 2341 | "require": { 2342 | "ext-dom": "*", 2343 | "ext-xmlwriter": "*", 2344 | "php": "^7.1", 2345 | "phpunit/php-file-iterator": "^2.0", 2346 | "phpunit/php-text-template": "^1.2.1", 2347 | "phpunit/php-token-stream": "^3.0", 2348 | "sebastian/code-unit-reverse-lookup": "^1.0.1", 2349 | "sebastian/environment": "^3.1 || ^4.0", 2350 | "sebastian/version": "^2.0.1", 2351 | "theseer/tokenizer": "^1.1" 2352 | }, 2353 | "require-dev": { 2354 | "phpunit/phpunit": "^7.0" 2355 | }, 2356 | "suggest": { 2357 | "ext-xdebug": "^2.6.0" 2358 | }, 2359 | "type": "library", 2360 | "extra": { 2361 | "branch-alias": { 2362 | "dev-master": "6.1-dev" 2363 | } 2364 | }, 2365 | "autoload": { 2366 | "classmap": [ 2367 | "src/" 2368 | ] 2369 | }, 2370 | "notification-url": "https://packagist.org/downloads/", 2371 | "license": [ 2372 | "BSD-3-Clause" 2373 | ], 2374 | "authors": [ 2375 | { 2376 | "name": "Sebastian Bergmann", 2377 | "email": "sebastian@phpunit.de", 2378 | "role": "lead" 2379 | } 2380 | ], 2381 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", 2382 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage", 2383 | "keywords": [ 2384 | "coverage", 2385 | "testing", 2386 | "xunit" 2387 | ], 2388 | "time": "2018-10-31T16:06:48+00:00" 2389 | }, 2390 | { 2391 | "name": "phpunit/php-file-iterator", 2392 | "version": "2.0.2", 2393 | "source": { 2394 | "type": "git", 2395 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git", 2396 | "reference": "050bedf145a257b1ff02746c31894800e5122946" 2397 | }, 2398 | "dist": { 2399 | "type": "zip", 2400 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", 2401 | "reference": "050bedf145a257b1ff02746c31894800e5122946", 2402 | "shasum": "" 2403 | }, 2404 | "require": { 2405 | "php": "^7.1" 2406 | }, 2407 | "require-dev": { 2408 | "phpunit/phpunit": "^7.1" 2409 | }, 2410 | "type": "library", 2411 | "extra": { 2412 | "branch-alias": { 2413 | "dev-master": "2.0.x-dev" 2414 | } 2415 | }, 2416 | "autoload": { 2417 | "classmap": [ 2418 | "src/" 2419 | ] 2420 | }, 2421 | "notification-url": "https://packagist.org/downloads/", 2422 | "license": [ 2423 | "BSD-3-Clause" 2424 | ], 2425 | "authors": [ 2426 | { 2427 | "name": "Sebastian Bergmann", 2428 | "email": "sebastian@phpunit.de", 2429 | "role": "lead" 2430 | } 2431 | ], 2432 | "description": "FilterIterator implementation that filters files based on a list of suffixes.", 2433 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", 2434 | "keywords": [ 2435 | "filesystem", 2436 | "iterator" 2437 | ], 2438 | "time": "2018-09-13T20:33:42+00:00" 2439 | }, 2440 | { 2441 | "name": "phpunit/php-text-template", 2442 | "version": "1.2.1", 2443 | "source": { 2444 | "type": "git", 2445 | "url": "https://github.com/sebastianbergmann/php-text-template.git", 2446 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" 2447 | }, 2448 | "dist": { 2449 | "type": "zip", 2450 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 2451 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 2452 | "shasum": "" 2453 | }, 2454 | "require": { 2455 | "php": ">=5.3.3" 2456 | }, 2457 | "type": "library", 2458 | "autoload": { 2459 | "classmap": [ 2460 | "src/" 2461 | ] 2462 | }, 2463 | "notification-url": "https://packagist.org/downloads/", 2464 | "license": [ 2465 | "BSD-3-Clause" 2466 | ], 2467 | "authors": [ 2468 | { 2469 | "name": "Sebastian Bergmann", 2470 | "email": "sebastian@phpunit.de", 2471 | "role": "lead" 2472 | } 2473 | ], 2474 | "description": "Simple template engine.", 2475 | "homepage": "https://github.com/sebastianbergmann/php-text-template/", 2476 | "keywords": [ 2477 | "template" 2478 | ], 2479 | "time": "2015-06-21T13:50:34+00:00" 2480 | }, 2481 | { 2482 | "name": "phpunit/php-timer", 2483 | "version": "2.1.2", 2484 | "source": { 2485 | "type": "git", 2486 | "url": "https://github.com/sebastianbergmann/php-timer.git", 2487 | "reference": "1038454804406b0b5f5f520358e78c1c2f71501e" 2488 | }, 2489 | "dist": { 2490 | "type": "zip", 2491 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e", 2492 | "reference": "1038454804406b0b5f5f520358e78c1c2f71501e", 2493 | "shasum": "" 2494 | }, 2495 | "require": { 2496 | "php": "^7.1" 2497 | }, 2498 | "require-dev": { 2499 | "phpunit/phpunit": "^7.0" 2500 | }, 2501 | "type": "library", 2502 | "extra": { 2503 | "branch-alias": { 2504 | "dev-master": "2.1-dev" 2505 | } 2506 | }, 2507 | "autoload": { 2508 | "classmap": [ 2509 | "src/" 2510 | ] 2511 | }, 2512 | "notification-url": "https://packagist.org/downloads/", 2513 | "license": [ 2514 | "BSD-3-Clause" 2515 | ], 2516 | "authors": [ 2517 | { 2518 | "name": "Sebastian Bergmann", 2519 | "email": "sebastian@phpunit.de", 2520 | "role": "lead" 2521 | } 2522 | ], 2523 | "description": "Utility class for timing", 2524 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 2525 | "keywords": [ 2526 | "timer" 2527 | ], 2528 | "time": "2019-06-07T04:22:29+00:00" 2529 | }, 2530 | { 2531 | "name": "phpunit/php-token-stream", 2532 | "version": "3.1.1", 2533 | "source": { 2534 | "type": "git", 2535 | "url": "https://github.com/sebastianbergmann/php-token-stream.git", 2536 | "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff" 2537 | }, 2538 | "dist": { 2539 | "type": "zip", 2540 | "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/995192df77f63a59e47f025390d2d1fdf8f425ff", 2541 | "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff", 2542 | "shasum": "" 2543 | }, 2544 | "require": { 2545 | "ext-tokenizer": "*", 2546 | "php": "^7.1" 2547 | }, 2548 | "require-dev": { 2549 | "phpunit/phpunit": "^7.0" 2550 | }, 2551 | "type": "library", 2552 | "extra": { 2553 | "branch-alias": { 2554 | "dev-master": "3.1-dev" 2555 | } 2556 | }, 2557 | "autoload": { 2558 | "classmap": [ 2559 | "src/" 2560 | ] 2561 | }, 2562 | "notification-url": "https://packagist.org/downloads/", 2563 | "license": [ 2564 | "BSD-3-Clause" 2565 | ], 2566 | "authors": [ 2567 | { 2568 | "name": "Sebastian Bergmann", 2569 | "email": "sebastian@phpunit.de" 2570 | } 2571 | ], 2572 | "description": "Wrapper around PHP's tokenizer extension.", 2573 | "homepage": "https://github.com/sebastianbergmann/php-token-stream/", 2574 | "keywords": [ 2575 | "tokenizer" 2576 | ], 2577 | "time": "2019-09-17T06:23:10+00:00" 2578 | }, 2579 | { 2580 | "name": "phpunit/phpunit", 2581 | "version": "7.5.18", 2582 | "source": { 2583 | "type": "git", 2584 | "url": "https://github.com/sebastianbergmann/phpunit.git", 2585 | "reference": "fcf6c4bfafaadc07785528b06385cce88935474d" 2586 | }, 2587 | "dist": { 2588 | "type": "zip", 2589 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/fcf6c4bfafaadc07785528b06385cce88935474d", 2590 | "reference": "fcf6c4bfafaadc07785528b06385cce88935474d", 2591 | "shasum": "" 2592 | }, 2593 | "require": { 2594 | "doctrine/instantiator": "^1.1", 2595 | "ext-dom": "*", 2596 | "ext-json": "*", 2597 | "ext-libxml": "*", 2598 | "ext-mbstring": "*", 2599 | "ext-xml": "*", 2600 | "myclabs/deep-copy": "^1.7", 2601 | "phar-io/manifest": "^1.0.2", 2602 | "phar-io/version": "^2.0", 2603 | "php": "^7.1", 2604 | "phpspec/prophecy": "^1.7", 2605 | "phpunit/php-code-coverage": "^6.0.7", 2606 | "phpunit/php-file-iterator": "^2.0.1", 2607 | "phpunit/php-text-template": "^1.2.1", 2608 | "phpunit/php-timer": "^2.1", 2609 | "sebastian/comparator": "^3.0", 2610 | "sebastian/diff": "^3.0", 2611 | "sebastian/environment": "^4.0", 2612 | "sebastian/exporter": "^3.1", 2613 | "sebastian/global-state": "^2.0", 2614 | "sebastian/object-enumerator": "^3.0.3", 2615 | "sebastian/resource-operations": "^2.0", 2616 | "sebastian/version": "^2.0.1" 2617 | }, 2618 | "conflict": { 2619 | "phpunit/phpunit-mock-objects": "*" 2620 | }, 2621 | "require-dev": { 2622 | "ext-pdo": "*" 2623 | }, 2624 | "suggest": { 2625 | "ext-soap": "*", 2626 | "ext-xdebug": "*", 2627 | "phpunit/php-invoker": "^2.0" 2628 | }, 2629 | "bin": [ 2630 | "phpunit" 2631 | ], 2632 | "type": "library", 2633 | "extra": { 2634 | "branch-alias": { 2635 | "dev-master": "7.5-dev" 2636 | } 2637 | }, 2638 | "autoload": { 2639 | "classmap": [ 2640 | "src/" 2641 | ] 2642 | }, 2643 | "notification-url": "https://packagist.org/downloads/", 2644 | "license": [ 2645 | "BSD-3-Clause" 2646 | ], 2647 | "authors": [ 2648 | { 2649 | "name": "Sebastian Bergmann", 2650 | "email": "sebastian@phpunit.de", 2651 | "role": "lead" 2652 | } 2653 | ], 2654 | "description": "The PHP Unit Testing framework.", 2655 | "homepage": "https://phpunit.de/", 2656 | "keywords": [ 2657 | "phpunit", 2658 | "testing", 2659 | "xunit" 2660 | ], 2661 | "time": "2019-12-06T05:14:37+00:00" 2662 | }, 2663 | { 2664 | "name": "sebastian/code-unit-reverse-lookup", 2665 | "version": "1.0.1", 2666 | "source": { 2667 | "type": "git", 2668 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", 2669 | "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" 2670 | }, 2671 | "dist": { 2672 | "type": "zip", 2673 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", 2674 | "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", 2675 | "shasum": "" 2676 | }, 2677 | "require": { 2678 | "php": "^5.6 || ^7.0" 2679 | }, 2680 | "require-dev": { 2681 | "phpunit/phpunit": "^5.7 || ^6.0" 2682 | }, 2683 | "type": "library", 2684 | "extra": { 2685 | "branch-alias": { 2686 | "dev-master": "1.0.x-dev" 2687 | } 2688 | }, 2689 | "autoload": { 2690 | "classmap": [ 2691 | "src/" 2692 | ] 2693 | }, 2694 | "notification-url": "https://packagist.org/downloads/", 2695 | "license": [ 2696 | "BSD-3-Clause" 2697 | ], 2698 | "authors": [ 2699 | { 2700 | "name": "Sebastian Bergmann", 2701 | "email": "sebastian@phpunit.de" 2702 | } 2703 | ], 2704 | "description": "Looks up which function or method a line of code belongs to", 2705 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", 2706 | "time": "2017-03-04T06:30:41+00:00" 2707 | }, 2708 | { 2709 | "name": "sebastian/comparator", 2710 | "version": "3.0.2", 2711 | "source": { 2712 | "type": "git", 2713 | "url": "https://github.com/sebastianbergmann/comparator.git", 2714 | "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" 2715 | }, 2716 | "dist": { 2717 | "type": "zip", 2718 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", 2719 | "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", 2720 | "shasum": "" 2721 | }, 2722 | "require": { 2723 | "php": "^7.1", 2724 | "sebastian/diff": "^3.0", 2725 | "sebastian/exporter": "^3.1" 2726 | }, 2727 | "require-dev": { 2728 | "phpunit/phpunit": "^7.1" 2729 | }, 2730 | "type": "library", 2731 | "extra": { 2732 | "branch-alias": { 2733 | "dev-master": "3.0-dev" 2734 | } 2735 | }, 2736 | "autoload": { 2737 | "classmap": [ 2738 | "src/" 2739 | ] 2740 | }, 2741 | "notification-url": "https://packagist.org/downloads/", 2742 | "license": [ 2743 | "BSD-3-Clause" 2744 | ], 2745 | "authors": [ 2746 | { 2747 | "name": "Jeff Welch", 2748 | "email": "whatthejeff@gmail.com" 2749 | }, 2750 | { 2751 | "name": "Volker Dusch", 2752 | "email": "github@wallbash.com" 2753 | }, 2754 | { 2755 | "name": "Bernhard Schussek", 2756 | "email": "bschussek@2bepublished.at" 2757 | }, 2758 | { 2759 | "name": "Sebastian Bergmann", 2760 | "email": "sebastian@phpunit.de" 2761 | } 2762 | ], 2763 | "description": "Provides the functionality to compare PHP values for equality", 2764 | "homepage": "https://github.com/sebastianbergmann/comparator", 2765 | "keywords": [ 2766 | "comparator", 2767 | "compare", 2768 | "equality" 2769 | ], 2770 | "time": "2018-07-12T15:12:46+00:00" 2771 | }, 2772 | { 2773 | "name": "sebastian/diff", 2774 | "version": "3.0.2", 2775 | "source": { 2776 | "type": "git", 2777 | "url": "https://github.com/sebastianbergmann/diff.git", 2778 | "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29" 2779 | }, 2780 | "dist": { 2781 | "type": "zip", 2782 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29", 2783 | "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29", 2784 | "shasum": "" 2785 | }, 2786 | "require": { 2787 | "php": "^7.1" 2788 | }, 2789 | "require-dev": { 2790 | "phpunit/phpunit": "^7.5 || ^8.0", 2791 | "symfony/process": "^2 || ^3.3 || ^4" 2792 | }, 2793 | "type": "library", 2794 | "extra": { 2795 | "branch-alias": { 2796 | "dev-master": "3.0-dev" 2797 | } 2798 | }, 2799 | "autoload": { 2800 | "classmap": [ 2801 | "src/" 2802 | ] 2803 | }, 2804 | "notification-url": "https://packagist.org/downloads/", 2805 | "license": [ 2806 | "BSD-3-Clause" 2807 | ], 2808 | "authors": [ 2809 | { 2810 | "name": "Kore Nordmann", 2811 | "email": "mail@kore-nordmann.de" 2812 | }, 2813 | { 2814 | "name": "Sebastian Bergmann", 2815 | "email": "sebastian@phpunit.de" 2816 | } 2817 | ], 2818 | "description": "Diff implementation", 2819 | "homepage": "https://github.com/sebastianbergmann/diff", 2820 | "keywords": [ 2821 | "diff", 2822 | "udiff", 2823 | "unidiff", 2824 | "unified diff" 2825 | ], 2826 | "time": "2019-02-04T06:01:07+00:00" 2827 | }, 2828 | { 2829 | "name": "sebastian/environment", 2830 | "version": "4.2.3", 2831 | "source": { 2832 | "type": "git", 2833 | "url": "https://github.com/sebastianbergmann/environment.git", 2834 | "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368" 2835 | }, 2836 | "dist": { 2837 | "type": "zip", 2838 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/464c90d7bdf5ad4e8a6aea15c091fec0603d4368", 2839 | "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368", 2840 | "shasum": "" 2841 | }, 2842 | "require": { 2843 | "php": "^7.1" 2844 | }, 2845 | "require-dev": { 2846 | "phpunit/phpunit": "^7.5" 2847 | }, 2848 | "suggest": { 2849 | "ext-posix": "*" 2850 | }, 2851 | "type": "library", 2852 | "extra": { 2853 | "branch-alias": { 2854 | "dev-master": "4.2-dev" 2855 | } 2856 | }, 2857 | "autoload": { 2858 | "classmap": [ 2859 | "src/" 2860 | ] 2861 | }, 2862 | "notification-url": "https://packagist.org/downloads/", 2863 | "license": [ 2864 | "BSD-3-Clause" 2865 | ], 2866 | "authors": [ 2867 | { 2868 | "name": "Sebastian Bergmann", 2869 | "email": "sebastian@phpunit.de" 2870 | } 2871 | ], 2872 | "description": "Provides functionality to handle HHVM/PHP environments", 2873 | "homepage": "http://www.github.com/sebastianbergmann/environment", 2874 | "keywords": [ 2875 | "Xdebug", 2876 | "environment", 2877 | "hhvm" 2878 | ], 2879 | "time": "2019-11-20T08:46:58+00:00" 2880 | }, 2881 | { 2882 | "name": "sebastian/exporter", 2883 | "version": "3.1.2", 2884 | "source": { 2885 | "type": "git", 2886 | "url": "https://github.com/sebastianbergmann/exporter.git", 2887 | "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e" 2888 | }, 2889 | "dist": { 2890 | "type": "zip", 2891 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e", 2892 | "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e", 2893 | "shasum": "" 2894 | }, 2895 | "require": { 2896 | "php": "^7.0", 2897 | "sebastian/recursion-context": "^3.0" 2898 | }, 2899 | "require-dev": { 2900 | "ext-mbstring": "*", 2901 | "phpunit/phpunit": "^6.0" 2902 | }, 2903 | "type": "library", 2904 | "extra": { 2905 | "branch-alias": { 2906 | "dev-master": "3.1.x-dev" 2907 | } 2908 | }, 2909 | "autoload": { 2910 | "classmap": [ 2911 | "src/" 2912 | ] 2913 | }, 2914 | "notification-url": "https://packagist.org/downloads/", 2915 | "license": [ 2916 | "BSD-3-Clause" 2917 | ], 2918 | "authors": [ 2919 | { 2920 | "name": "Sebastian Bergmann", 2921 | "email": "sebastian@phpunit.de" 2922 | }, 2923 | { 2924 | "name": "Jeff Welch", 2925 | "email": "whatthejeff@gmail.com" 2926 | }, 2927 | { 2928 | "name": "Volker Dusch", 2929 | "email": "github@wallbash.com" 2930 | }, 2931 | { 2932 | "name": "Adam Harvey", 2933 | "email": "aharvey@php.net" 2934 | }, 2935 | { 2936 | "name": "Bernhard Schussek", 2937 | "email": "bschussek@gmail.com" 2938 | } 2939 | ], 2940 | "description": "Provides the functionality to export PHP variables for visualization", 2941 | "homepage": "http://www.github.com/sebastianbergmann/exporter", 2942 | "keywords": [ 2943 | "export", 2944 | "exporter" 2945 | ], 2946 | "time": "2019-09-14T09:02:43+00:00" 2947 | }, 2948 | { 2949 | "name": "sebastian/global-state", 2950 | "version": "2.0.0", 2951 | "source": { 2952 | "type": "git", 2953 | "url": "https://github.com/sebastianbergmann/global-state.git", 2954 | "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" 2955 | }, 2956 | "dist": { 2957 | "type": "zip", 2958 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", 2959 | "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", 2960 | "shasum": "" 2961 | }, 2962 | "require": { 2963 | "php": "^7.0" 2964 | }, 2965 | "require-dev": { 2966 | "phpunit/phpunit": "^6.0" 2967 | }, 2968 | "suggest": { 2969 | "ext-uopz": "*" 2970 | }, 2971 | "type": "library", 2972 | "extra": { 2973 | "branch-alias": { 2974 | "dev-master": "2.0-dev" 2975 | } 2976 | }, 2977 | "autoload": { 2978 | "classmap": [ 2979 | "src/" 2980 | ] 2981 | }, 2982 | "notification-url": "https://packagist.org/downloads/", 2983 | "license": [ 2984 | "BSD-3-Clause" 2985 | ], 2986 | "authors": [ 2987 | { 2988 | "name": "Sebastian Bergmann", 2989 | "email": "sebastian@phpunit.de" 2990 | } 2991 | ], 2992 | "description": "Snapshotting of global state", 2993 | "homepage": "http://www.github.com/sebastianbergmann/global-state", 2994 | "keywords": [ 2995 | "global state" 2996 | ], 2997 | "time": "2017-04-27T15:39:26+00:00" 2998 | }, 2999 | { 3000 | "name": "sebastian/object-enumerator", 3001 | "version": "3.0.3", 3002 | "source": { 3003 | "type": "git", 3004 | "url": "https://github.com/sebastianbergmann/object-enumerator.git", 3005 | "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" 3006 | }, 3007 | "dist": { 3008 | "type": "zip", 3009 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", 3010 | "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", 3011 | "shasum": "" 3012 | }, 3013 | "require": { 3014 | "php": "^7.0", 3015 | "sebastian/object-reflector": "^1.1.1", 3016 | "sebastian/recursion-context": "^3.0" 3017 | }, 3018 | "require-dev": { 3019 | "phpunit/phpunit": "^6.0" 3020 | }, 3021 | "type": "library", 3022 | "extra": { 3023 | "branch-alias": { 3024 | "dev-master": "3.0.x-dev" 3025 | } 3026 | }, 3027 | "autoload": { 3028 | "classmap": [ 3029 | "src/" 3030 | ] 3031 | }, 3032 | "notification-url": "https://packagist.org/downloads/", 3033 | "license": [ 3034 | "BSD-3-Clause" 3035 | ], 3036 | "authors": [ 3037 | { 3038 | "name": "Sebastian Bergmann", 3039 | "email": "sebastian@phpunit.de" 3040 | } 3041 | ], 3042 | "description": "Traverses array structures and object graphs to enumerate all referenced objects", 3043 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/", 3044 | "time": "2017-08-03T12:35:26+00:00" 3045 | }, 3046 | { 3047 | "name": "sebastian/object-reflector", 3048 | "version": "1.1.1", 3049 | "source": { 3050 | "type": "git", 3051 | "url": "https://github.com/sebastianbergmann/object-reflector.git", 3052 | "reference": "773f97c67f28de00d397be301821b06708fca0be" 3053 | }, 3054 | "dist": { 3055 | "type": "zip", 3056 | "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", 3057 | "reference": "773f97c67f28de00d397be301821b06708fca0be", 3058 | "shasum": "" 3059 | }, 3060 | "require": { 3061 | "php": "^7.0" 3062 | }, 3063 | "require-dev": { 3064 | "phpunit/phpunit": "^6.0" 3065 | }, 3066 | "type": "library", 3067 | "extra": { 3068 | "branch-alias": { 3069 | "dev-master": "1.1-dev" 3070 | } 3071 | }, 3072 | "autoload": { 3073 | "classmap": [ 3074 | "src/" 3075 | ] 3076 | }, 3077 | "notification-url": "https://packagist.org/downloads/", 3078 | "license": [ 3079 | "BSD-3-Clause" 3080 | ], 3081 | "authors": [ 3082 | { 3083 | "name": "Sebastian Bergmann", 3084 | "email": "sebastian@phpunit.de" 3085 | } 3086 | ], 3087 | "description": "Allows reflection of object attributes, including inherited and non-public ones", 3088 | "homepage": "https://github.com/sebastianbergmann/object-reflector/", 3089 | "time": "2017-03-29T09:07:27+00:00" 3090 | }, 3091 | { 3092 | "name": "sebastian/recursion-context", 3093 | "version": "3.0.0", 3094 | "source": { 3095 | "type": "git", 3096 | "url": "https://github.com/sebastianbergmann/recursion-context.git", 3097 | "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" 3098 | }, 3099 | "dist": { 3100 | "type": "zip", 3101 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", 3102 | "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", 3103 | "shasum": "" 3104 | }, 3105 | "require": { 3106 | "php": "^7.0" 3107 | }, 3108 | "require-dev": { 3109 | "phpunit/phpunit": "^6.0" 3110 | }, 3111 | "type": "library", 3112 | "extra": { 3113 | "branch-alias": { 3114 | "dev-master": "3.0.x-dev" 3115 | } 3116 | }, 3117 | "autoload": { 3118 | "classmap": [ 3119 | "src/" 3120 | ] 3121 | }, 3122 | "notification-url": "https://packagist.org/downloads/", 3123 | "license": [ 3124 | "BSD-3-Clause" 3125 | ], 3126 | "authors": [ 3127 | { 3128 | "name": "Jeff Welch", 3129 | "email": "whatthejeff@gmail.com" 3130 | }, 3131 | { 3132 | "name": "Sebastian Bergmann", 3133 | "email": "sebastian@phpunit.de" 3134 | }, 3135 | { 3136 | "name": "Adam Harvey", 3137 | "email": "aharvey@php.net" 3138 | } 3139 | ], 3140 | "description": "Provides functionality to recursively process PHP variables", 3141 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context", 3142 | "time": "2017-03-03T06:23:57+00:00" 3143 | }, 3144 | { 3145 | "name": "sebastian/resource-operations", 3146 | "version": "2.0.1", 3147 | "source": { 3148 | "type": "git", 3149 | "url": "https://github.com/sebastianbergmann/resource-operations.git", 3150 | "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" 3151 | }, 3152 | "dist": { 3153 | "type": "zip", 3154 | "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", 3155 | "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", 3156 | "shasum": "" 3157 | }, 3158 | "require": { 3159 | "php": "^7.1" 3160 | }, 3161 | "type": "library", 3162 | "extra": { 3163 | "branch-alias": { 3164 | "dev-master": "2.0-dev" 3165 | } 3166 | }, 3167 | "autoload": { 3168 | "classmap": [ 3169 | "src/" 3170 | ] 3171 | }, 3172 | "notification-url": "https://packagist.org/downloads/", 3173 | "license": [ 3174 | "BSD-3-Clause" 3175 | ], 3176 | "authors": [ 3177 | { 3178 | "name": "Sebastian Bergmann", 3179 | "email": "sebastian@phpunit.de" 3180 | } 3181 | ], 3182 | "description": "Provides a list of PHP built-in functions that operate on resources", 3183 | "homepage": "https://www.github.com/sebastianbergmann/resource-operations", 3184 | "time": "2018-10-04T04:07:39+00:00" 3185 | }, 3186 | { 3187 | "name": "sebastian/version", 3188 | "version": "2.0.1", 3189 | "source": { 3190 | "type": "git", 3191 | "url": "https://github.com/sebastianbergmann/version.git", 3192 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" 3193 | }, 3194 | "dist": { 3195 | "type": "zip", 3196 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", 3197 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", 3198 | "shasum": "" 3199 | }, 3200 | "require": { 3201 | "php": ">=5.6" 3202 | }, 3203 | "type": "library", 3204 | "extra": { 3205 | "branch-alias": { 3206 | "dev-master": "2.0.x-dev" 3207 | } 3208 | }, 3209 | "autoload": { 3210 | "classmap": [ 3211 | "src/" 3212 | ] 3213 | }, 3214 | "notification-url": "https://packagist.org/downloads/", 3215 | "license": [ 3216 | "BSD-3-Clause" 3217 | ], 3218 | "authors": [ 3219 | { 3220 | "name": "Sebastian Bergmann", 3221 | "email": "sebastian@phpunit.de", 3222 | "role": "lead" 3223 | } 3224 | ], 3225 | "description": "Library that helps with managing the version number of Git-hosted PHP projects", 3226 | "homepage": "https://github.com/sebastianbergmann/version", 3227 | "time": "2016-10-03T07:35:21+00:00" 3228 | }, 3229 | { 3230 | "name": "theseer/tokenizer", 3231 | "version": "1.1.3", 3232 | "source": { 3233 | "type": "git", 3234 | "url": "https://github.com/theseer/tokenizer.git", 3235 | "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9" 3236 | }, 3237 | "dist": { 3238 | "type": "zip", 3239 | "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9", 3240 | "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9", 3241 | "shasum": "" 3242 | }, 3243 | "require": { 3244 | "ext-dom": "*", 3245 | "ext-tokenizer": "*", 3246 | "ext-xmlwriter": "*", 3247 | "php": "^7.0" 3248 | }, 3249 | "type": "library", 3250 | "autoload": { 3251 | "classmap": [ 3252 | "src/" 3253 | ] 3254 | }, 3255 | "notification-url": "https://packagist.org/downloads/", 3256 | "license": [ 3257 | "BSD-3-Clause" 3258 | ], 3259 | "authors": [ 3260 | { 3261 | "name": "Arne Blankerts", 3262 | "email": "arne@blankerts.de", 3263 | "role": "Developer" 3264 | } 3265 | ], 3266 | "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", 3267 | "time": "2019-06-13T22:48:21+00:00" 3268 | }, 3269 | { 3270 | "name": "webmozart/assert", 3271 | "version": "1.6.0", 3272 | "source": { 3273 | "type": "git", 3274 | "url": "https://github.com/webmozart/assert.git", 3275 | "reference": "573381c0a64f155a0d9a23f4b0c797194805b925" 3276 | }, 3277 | "dist": { 3278 | "type": "zip", 3279 | "url": "https://api.github.com/repos/webmozart/assert/zipball/573381c0a64f155a0d9a23f4b0c797194805b925", 3280 | "reference": "573381c0a64f155a0d9a23f4b0c797194805b925", 3281 | "shasum": "" 3282 | }, 3283 | "require": { 3284 | "php": "^5.3.3 || ^7.0", 3285 | "symfony/polyfill-ctype": "^1.8" 3286 | }, 3287 | "conflict": { 3288 | "vimeo/psalm": "<3.6.0" 3289 | }, 3290 | "require-dev": { 3291 | "phpunit/phpunit": "^4.8.36 || ^7.5.13" 3292 | }, 3293 | "type": "library", 3294 | "autoload": { 3295 | "psr-4": { 3296 | "Webmozart\\Assert\\": "src/" 3297 | } 3298 | }, 3299 | "notification-url": "https://packagist.org/downloads/", 3300 | "license": [ 3301 | "MIT" 3302 | ], 3303 | "authors": [ 3304 | { 3305 | "name": "Bernhard Schussek", 3306 | "email": "bschussek@gmail.com" 3307 | } 3308 | ], 3309 | "description": "Assertions to validate method input/output with nice error messages.", 3310 | "keywords": [ 3311 | "assert", 3312 | "check", 3313 | "validate" 3314 | ], 3315 | "time": "2019-11-24T13:36:37+00:00" 3316 | } 3317 | ], 3318 | "aliases": [], 3319 | "minimum-stability": "stable", 3320 | "stability-flags": [], 3321 | "prefer-stable": false, 3322 | "prefer-lowest": false, 3323 | "platform": { 3324 | "php": ">=7.2" 3325 | }, 3326 | "platform-dev": [] 3327 | } 3328 | --------------------------------------------------------------------------------