├── .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 | [](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 |
--------------------------------------------------------------------------------