├── .gitignore ├── phpunit.php ├── CHANGELOG.md ├── src └── Tomgrohl │ └── Laravel │ └── Encryption │ ├── Tests │ ├── TestCase.php │ ├── EncryptionServiceProviderTest.php │ └── EncrypterTest.php │ ├── EncryptionServiceProvider.php │ └── Encrypter.php ├── composer.json ├── phpunit.xml ├── LICENSE ├── README.md └── composer.lock /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | vendor/ 3 | bin -------------------------------------------------------------------------------- /phpunit.php: -------------------------------------------------------------------------------- 1 | register(); 22 | 23 | $this->assertTrue($application->bound('encrypter')); 24 | $this->assertTrue($application->isAlias(Encrypter::class)); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tomgrohl/laravel4-php71-encrypter", 3 | "description": "Laravel 4.2 Encrypter for PHP 7.1+", 4 | "keywords": ["encryption", "laravel"], 5 | "license": "MIT", 6 | "type": "library", 7 | "config": { 8 | "preferred-install": "dist", 9 | "bin-dir": "bin", 10 | "process-timeout": 10000, 11 | "github-protocols": ["https"] 12 | }, 13 | "require": { 14 | "php": ">=5.6.4", 15 | "ext-openssl": "*", 16 | "paragonie/random_compat": "~1.4|~2.0" 17 | }, 18 | "require-dev": { 19 | "laravel/laravel": "~4.2.0", 20 | "phpunit/phpunit": "~4.0|~5.7" 21 | }, 22 | "autoload": { 23 | "psr-4": { 24 | "Tomgrohl\\Laravel\\Encryption\\": "src/Tomgrohl/Laravel/Encryption/" 25 | } 26 | }, 27 | "extra": { 28 | "branch-alias": { 29 | "dev-master": "1.0-dev" 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 13 | 14 | 15 | ./src/Tomgrohl/Laravel/*/Tests 16 | 17 | 18 | 19 | 20 | 21 | ./src/Tomgrohl/ 22 | 23 | ./vendor 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/Tomgrohl/Laravel/Encryption/EncryptionServiceProvider.php: -------------------------------------------------------------------------------- 1 | app->bindShared('encrypter', function($app) { 17 | 18 | 19 | if ($app['config']->has('app.cipher')) { 20 | 21 | return new Encrypter( 22 | $app['config']['app.key'], 23 | $app['config']['app.cipher'] 24 | ); 25 | } 26 | else { 27 | return new Encrypter($app['config']['app.key']); 28 | } 29 | }); 30 | 31 | $this->app->alias('encrypter', Encrypter::class); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Tom Ellis 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. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Latest Stable Version](https://poser.pugx.org/tomgrohl/laravel4-php71-encrypter/v/stable)](https://packagist.org/packages/tomgrohl/laravel4-php71-encrypter) 2 | [![Latest Unstable Version](https://poser.pugx.org/tomgrohl/laravel4-php71-encrypter/v/unstable)](https://packagist.org/packages/tomgrohl/laravel4-php71-encrypter) 3 | [![License](https://poser.pugx.org/tomgrohl/laravel4-php71-encrypter/license)](https://packagist.org/packages/tomgrohl/laravel4-php71-encrypter) 4 | 5 | # Laravel 4.2 Encrypter for PHP 7.1+ 6 | 7 | A port of the Laravel 5.4 Encrypter for 4.2 with PHP 7.1 support. 8 | 9 | Due to mcrypt being deprecated in 7.1 you can't run Laravel 4.2 under PHP 7.1 without a lot of deprecate warnings. 10 | 11 | This package adds a PHP 7.1+ Encrypter for Laravel 4.2 12 | 13 | > **Note:** Backward compatibility has been added in version 1.1.0 for PHP 5.6+ to make upgrading easier 14 | 15 | ## Installation 16 | 17 | You can install it using composer: 18 | 19 | `composer require tomgrohl/laravel4-php71-encrypter` 20 | 21 | 22 | ## Configuration 23 | 24 | ### 1 .Add service provider 25 | 26 | Add the following to your `providers` in the `app` config 27 | 28 | ``` 29 | \Tomgrohl\Laravel\Encryption\EncryptionServiceProvider::class 30 | ``` 31 | 32 | ### 2. Check Encryption Key settings in app config 33 | 34 | Cipher must either be 'AES-128-CBC' with a key length of 16 35 | 36 | OR 37 | 38 | Cipher must either be 'AES-256-CBC' with a key length of 32 39 | 40 | 41 | ### 3. You're good to go! 42 | 43 | 44 | # Credits 45 | 46 | - Peter Fritchley - Fellow co-worker that wrote this originally for a project 47 | 48 | # License 49 | 50 | MIT -------------------------------------------------------------------------------- /src/Tomgrohl/Laravel/Encryption/Tests/EncrypterTest.php: -------------------------------------------------------------------------------- 1 | encrypt('foo'); 19 | $this->assertNotEquals('foo', $encrypted); 20 | $this->assertEquals('foo', $e->decrypt($encrypted)); 21 | } 22 | public function testRawStringEncryption() 23 | { 24 | $e = new Encrypter(str_repeat('a', 16)); 25 | $encrypted = $e->encryptString('foo'); 26 | $this->assertNotEquals('foo', $encrypted); 27 | $this->assertEquals('foo', $e->decryptString($encrypted)); 28 | } 29 | public function testEncryptionUsingBase64EncodedKey() 30 | { 31 | $e = new Encrypter(random_bytes(16)); 32 | $encrypted = $e->encrypt('foo'); 33 | $this->assertNotEquals('foo', $encrypted); 34 | $this->assertEquals('foo', $e->decrypt($encrypted)); 35 | } 36 | public function testWithCustomCipher() 37 | { 38 | $e = new Encrypter(str_repeat('b', 32), 'AES-256-CBC'); 39 | $encrypted = $e->encrypt('bar'); 40 | $this->assertNotEquals('bar', $encrypted); 41 | $this->assertEquals('bar', $e->decrypt($encrypted)); 42 | $e = new Encrypter(random_bytes(32), 'AES-256-CBC'); 43 | $encrypted = $e->encrypt('foo'); 44 | $this->assertNotEquals('foo', $encrypted); 45 | $this->assertEquals('foo', $e->decrypt($encrypted)); 46 | } 47 | /** 48 | * @expectedException \RuntimeException 49 | * @expectedExceptionMessage The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths. 50 | */ 51 | public function testDoNoAllowLongerKey() 52 | { 53 | new Encrypter(str_repeat('z', 32)); 54 | } 55 | /** 56 | * @expectedException \RuntimeException 57 | * @expectedExceptionMessage The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths. 58 | */ 59 | public function testWithBadKeyLength() 60 | { 61 | new Encrypter(str_repeat('a', 5)); 62 | } 63 | /** 64 | * @expectedException \RuntimeException 65 | * @expectedExceptionMessage The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths. 66 | */ 67 | public function testWithBadKeyLengthAlternativeCipher() 68 | { 69 | new Encrypter(str_repeat('a', 16), 'AES-256-CFB8'); 70 | } 71 | /** 72 | * @expectedException \RuntimeException 73 | * @expectedExceptionMessage The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths. 74 | */ 75 | public function testWithUnsupportedCipher() 76 | { 77 | new Encrypter(str_repeat('c', 16), 'AES-256-CFB8'); 78 | } 79 | /** 80 | * @expectedException \Illuminate\Encryption\DecryptException 81 | * @expectedExceptionMessage The payload is invalid. 82 | */ 83 | public function testExceptionThrownWhenPayloadIsInvalid() 84 | { 85 | $e = new Encrypter(str_repeat('a', 16)); 86 | $payload = $e->encrypt('foo'); 87 | $payload = str_shuffle($payload); 88 | $e->decrypt($payload); 89 | } 90 | /** 91 | * @expectedException \Illuminate\Encryption\DecryptException 92 | * @expectedExceptionMessage The MAC is invalid. 93 | */ 94 | public function testExceptionThrownWithDifferentKey() 95 | { 96 | $a = new Encrypter(str_repeat('a', 16)); 97 | $b = new Encrypter(str_repeat('b', 16)); 98 | $b->decrypt($a->encrypt('baz')); 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /src/Tomgrohl/Laravel/Encryption/Encrypter.php: -------------------------------------------------------------------------------- 1 | cipher = $cipher; 28 | 29 | if ( ! static::supported($this->key, $this->cipher)) { 30 | throw new \RuntimeException('The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths.'); 31 | } 32 | } 33 | 34 | /** 35 | * Determine if the given key and cipher combination is valid. 36 | * 37 | * @param string $key 38 | * @param string $cipher 39 | * @return bool 40 | */ 41 | public static function supported($key, $cipher) 42 | { 43 | $length = mb_strlen($key, '8bit'); 44 | 45 | return ($cipher === 'AES-128-CBC' && $length === 16) || 46 | ($cipher === 'AES-256-CBC' && $length === 32); 47 | } 48 | 49 | /** 50 | * @param $value 51 | * @param bool $serialize 52 | * @return string 53 | */ 54 | public function encrypt($value, $serialize = true) 55 | { 56 | $iv = random_bytes(16); 57 | 58 | // First we will encrypt the value using OpenSSL. After this is encrypted we 59 | // will proceed to calculating a MAC for the encrypted value so that this 60 | // value can be verified later as not having been changed by the users. 61 | $value = \openssl_encrypt( 62 | $serialize ? serialize($value) : $value, 63 | $this->cipher, $this->key, 0, $iv 64 | ); 65 | 66 | if ($value === false) { 67 | throw new \RuntimeException('Could not encrypt the data.'); 68 | } 69 | 70 | // Once we have the encrypted value we will go ahead base64_encode the input 71 | // vector and create the MAC for the encrypted value so we can verify its 72 | // authenticity. Then, we'll JSON encode the data in a "payload" array. 73 | $mac = $this->hash($iv = base64_encode($iv), $value); 74 | 75 | $json = json_encode(compact('iv', 'value', 'mac')); 76 | 77 | if (! is_string($json)) { 78 | throw new \RuntimeException('Could not encrypt the data.'); 79 | } 80 | 81 | return base64_encode($json); 82 | } 83 | 84 | /** 85 | * Encrypt a string without serialization. 86 | * 87 | * @param string $value 88 | * @return string 89 | */ 90 | public function encryptString($value) 91 | { 92 | return $this->encrypt($value, false); 93 | } 94 | 95 | /** 96 | * @param $payload 97 | * @param bool $unserialize 98 | * @return mixed|string 99 | */ 100 | public function decrypt($payload, $unserialize = true) 101 | { 102 | $payload = $this->getJsonPayload($payload); 103 | 104 | $iv = base64_decode($payload['iv']); 105 | 106 | // Here we will decrypt the value. If we are able to successfully decrypt it 107 | // we will then unserialize it and return it out to the caller. If we are 108 | // unable to decrypt this value we will throw out an exception message. 109 | $decrypted = \openssl_decrypt( 110 | $payload['value'], $this->cipher, $this->key, 0, $iv 111 | ); 112 | 113 | if ($decrypted === false) { 114 | throw new DecryptException('Could not decrypt the data.'); 115 | } 116 | 117 | return $unserialize ? unserialize($decrypted) : $decrypted; 118 | } 119 | 120 | /** 121 | * Decrypt the given string without unserialization. 122 | * 123 | * @param string $payload 124 | * @return string 125 | */ 126 | public function decryptString($payload) 127 | { 128 | return $this->decrypt($payload, false); 129 | } 130 | 131 | /** 132 | * Create a MAC for the given value. 133 | * 134 | * @param string $iv 135 | * @param mixed $value 136 | * @return string 137 | */ 138 | protected function hash($iv, $value) 139 | { 140 | return hash_hmac('sha256', $iv.$value, $this->key); 141 | } 142 | 143 | /** 144 | * @param $payload 145 | * @return mixed 146 | */ 147 | protected function getJsonPayload($payload) 148 | { 149 | $payload = json_decode(base64_decode($payload), true); 150 | 151 | // If the payload is not valid JSON or does not have the proper keys set we will 152 | // assume it is invalid and bail out of the routine since we will not be able 153 | // to decrypt the given value. We'll also check the MAC for this encryption. 154 | if (! $this->validPayload($payload)) { 155 | throw new DecryptException('The payload is invalid.'); 156 | } 157 | 158 | if (! $this->validMac($payload)) { 159 | throw new DecryptException('The MAC is invalid.'); 160 | } 161 | 162 | return $payload; 163 | } 164 | 165 | /** 166 | * Verify that the encryption payload is valid. 167 | * 168 | * @param mixed $payload 169 | * @return bool 170 | */ 171 | protected function validPayload($payload) 172 | { 173 | return is_array($payload) && isset( 174 | $payload['iv'], $payload['value'], $payload['mac'] 175 | ); 176 | } 177 | 178 | /** 179 | * Determine if the MAC for the given payload is valid. 180 | * 181 | * @param array $payload 182 | * @return bool 183 | */ 184 | protected function validMac(array $payload) 185 | { 186 | $calculated = $this->calculateMac($payload, $bytes = random_bytes(16)); 187 | 188 | return hash_equals( 189 | hash_hmac('sha256', $payload['mac'], $bytes, true), $calculated 190 | ); 191 | } 192 | 193 | /** 194 | * Calculate the hash of the given payload. 195 | * 196 | * @param array $payload 197 | * @param string $bytes 198 | * @return string 199 | */ 200 | protected function calculateMac($payload, $bytes) 201 | { 202 | return hash_hmac( 203 | 'sha256', $this->hash($payload['iv'], $payload['value']), $bytes, true 204 | ); 205 | } 206 | 207 | /** 208 | * Get the encryption key. 209 | * 210 | * @return string 211 | */ 212 | public function getKey() 213 | { 214 | return $this->key; 215 | } 216 | } 217 | -------------------------------------------------------------------------------- /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#composer-lock-the-lock-file", 5 | "This file is @generated automatically" 6 | ], 7 | "content-hash": "a9b5db77d56fdda8dc8edf5087a171bf", 8 | "packages": [ 9 | { 10 | "name": "paragonie/random_compat", 11 | "version": "v2.0.11", 12 | "source": { 13 | "type": "git", 14 | "url": "https://github.com/paragonie/random_compat.git", 15 | "reference": "5da4d3c796c275c55f057af5a643ae297d96b4d8" 16 | }, 17 | "dist": { 18 | "type": "zip", 19 | "url": "https://api.github.com/repos/paragonie/random_compat/zipball/5da4d3c796c275c55f057af5a643ae297d96b4d8", 20 | "reference": "5da4d3c796c275c55f057af5a643ae297d96b4d8", 21 | "shasum": "" 22 | }, 23 | "require": { 24 | "php": ">=5.2.0" 25 | }, 26 | "require-dev": { 27 | "phpunit/phpunit": "4.*|5.*" 28 | }, 29 | "suggest": { 30 | "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." 31 | }, 32 | "type": "library", 33 | "autoload": { 34 | "files": [ 35 | "lib/random.php" 36 | ] 37 | }, 38 | "notification-url": "https://packagist.org/downloads/", 39 | "license": [ 40 | "MIT" 41 | ], 42 | "authors": [ 43 | { 44 | "name": "Paragon Initiative Enterprises", 45 | "email": "security@paragonie.com", 46 | "homepage": "https://paragonie.com" 47 | } 48 | ], 49 | "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", 50 | "keywords": [ 51 | "csprng", 52 | "pseudorandom", 53 | "random" 54 | ], 55 | "time": "2017-09-27T21:40:39+00:00" 56 | } 57 | ], 58 | "packages-dev": [ 59 | { 60 | "name": "classpreloader/classpreloader", 61 | "version": "1.0.2", 62 | "source": { 63 | "type": "git", 64 | "url": "https://github.com/ClassPreloader/ClassPreloader.git", 65 | "reference": "2c9f3bcbab329570c57339895bd11b5dd3b00877" 66 | }, 67 | "dist": { 68 | "type": "zip", 69 | "url": "https://api.github.com/repos/ClassPreloader/ClassPreloader/zipball/2c9f3bcbab329570c57339895bd11b5dd3b00877", 70 | "reference": "2c9f3bcbab329570c57339895bd11b5dd3b00877", 71 | "shasum": "" 72 | }, 73 | "require": { 74 | "nikic/php-parser": "~0.9", 75 | "php": ">=5.3.3", 76 | "symfony/console": "~2.1", 77 | "symfony/filesystem": "~2.1", 78 | "symfony/finder": "~2.1" 79 | }, 80 | "bin": [ 81 | "classpreloader.php" 82 | ], 83 | "type": "library", 84 | "extra": { 85 | "branch-alias": { 86 | "dev-master": "1.0-dev" 87 | } 88 | }, 89 | "autoload": { 90 | "psr-0": { 91 | "ClassPreloader": "src/" 92 | } 93 | }, 94 | "notification-url": "https://packagist.org/downloads/", 95 | "license": [ 96 | "MIT" 97 | ], 98 | "description": "Helps class loading performance by generating a single PHP file containing all of the autoloaded files for a specific use case", 99 | "keywords": [ 100 | "autoload", 101 | "class", 102 | "preload" 103 | ], 104 | "time": "2014-03-12T00:05:31+00:00" 105 | }, 106 | { 107 | "name": "d11wtq/boris", 108 | "version": "v1.0.10", 109 | "source": { 110 | "type": "git", 111 | "url": "https://github.com/borisrepl/boris.git", 112 | "reference": "31055b15e2d3fe47f31f6aa8e277f8f3fc7eb483" 113 | }, 114 | "dist": { 115 | "type": "zip", 116 | "url": "https://api.github.com/repos/borisrepl/boris/zipball/31055b15e2d3fe47f31f6aa8e277f8f3fc7eb483", 117 | "reference": "31055b15e2d3fe47f31f6aa8e277f8f3fc7eb483", 118 | "shasum": "" 119 | }, 120 | "require": { 121 | "ext-pcntl": "*", 122 | "ext-posix": "*", 123 | "ext-readline": "*", 124 | "php": ">=5.3.0" 125 | }, 126 | "bin": [ 127 | "bin/boris" 128 | ], 129 | "type": "library", 130 | "autoload": { 131 | "psr-0": { 132 | "Boris": "lib" 133 | } 134 | }, 135 | "notification-url": "https://packagist.org/downloads/", 136 | "license": [ 137 | "MIT" 138 | ], 139 | "description": "A tiny, but robust REPL (Read-Evaluate-Print-Loop) for PHP.", 140 | "time": "2015-03-01T08:05:19+00:00" 141 | }, 142 | { 143 | "name": "doctrine/instantiator", 144 | "version": "1.1.0", 145 | "source": { 146 | "type": "git", 147 | "url": "https://github.com/doctrine/instantiator.git", 148 | "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda" 149 | }, 150 | "dist": { 151 | "type": "zip", 152 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", 153 | "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", 154 | "shasum": "" 155 | }, 156 | "require": { 157 | "php": "^7.1" 158 | }, 159 | "require-dev": { 160 | "athletic/athletic": "~0.1.8", 161 | "ext-pdo": "*", 162 | "ext-phar": "*", 163 | "phpunit/phpunit": "^6.2.3", 164 | "squizlabs/php_codesniffer": "^3.0.2" 165 | }, 166 | "type": "library", 167 | "extra": { 168 | "branch-alias": { 169 | "dev-master": "1.2.x-dev" 170 | } 171 | }, 172 | "autoload": { 173 | "psr-4": { 174 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" 175 | } 176 | }, 177 | "notification-url": "https://packagist.org/downloads/", 178 | "license": [ 179 | "MIT" 180 | ], 181 | "authors": [ 182 | { 183 | "name": "Marco Pivetta", 184 | "email": "ocramius@gmail.com", 185 | "homepage": "http://ocramius.github.com/" 186 | } 187 | ], 188 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", 189 | "homepage": "https://github.com/doctrine/instantiator", 190 | "keywords": [ 191 | "constructor", 192 | "instantiate" 193 | ], 194 | "time": "2017-07-22T11:58:36+00:00" 195 | }, 196 | { 197 | "name": "filp/whoops", 198 | "version": "1.1.10", 199 | "source": { 200 | "type": "git", 201 | "url": "https://github.com/filp/whoops.git", 202 | "reference": "72538eeb70bbfb11964412a3d098d109efd012f7" 203 | }, 204 | "dist": { 205 | "type": "zip", 206 | "url": "https://api.github.com/repos/filp/whoops/zipball/72538eeb70bbfb11964412a3d098d109efd012f7", 207 | "reference": "72538eeb70bbfb11964412a3d098d109efd012f7", 208 | "shasum": "" 209 | }, 210 | "require": { 211 | "php": ">=5.3.0" 212 | }, 213 | "require-dev": { 214 | "mockery/mockery": "0.9.*" 215 | }, 216 | "type": "library", 217 | "extra": { 218 | "branch-alias": { 219 | "dev-master": "1.2-dev" 220 | } 221 | }, 222 | "autoload": { 223 | "psr-0": { 224 | "Whoops": "src/" 225 | }, 226 | "classmap": [ 227 | "src/deprecated" 228 | ] 229 | }, 230 | "notification-url": "https://packagist.org/downloads/", 231 | "license": [ 232 | "MIT" 233 | ], 234 | "authors": [ 235 | { 236 | "name": "Filipe Dobreira", 237 | "homepage": "https://github.com/filp", 238 | "role": "Developer" 239 | } 240 | ], 241 | "description": "php error handling for cool kids", 242 | "homepage": "https://github.com/filp/whoops", 243 | "keywords": [ 244 | "error", 245 | "exception", 246 | "handling", 247 | "library", 248 | "silex-provider", 249 | "whoops", 250 | "zf2" 251 | ], 252 | "time": "2015-06-29T05:42:04+00:00" 253 | }, 254 | { 255 | "name": "ircmaxell/password-compat", 256 | "version": "v1.0.4", 257 | "source": { 258 | "type": "git", 259 | "url": "https://github.com/ircmaxell/password_compat.git", 260 | "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c" 261 | }, 262 | "dist": { 263 | "type": "zip", 264 | "url": "https://api.github.com/repos/ircmaxell/password_compat/zipball/5c5cde8822a69545767f7c7f3058cb15ff84614c", 265 | "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c", 266 | "shasum": "" 267 | }, 268 | "require-dev": { 269 | "phpunit/phpunit": "4.*" 270 | }, 271 | "type": "library", 272 | "autoload": { 273 | "files": [ 274 | "lib/password.php" 275 | ] 276 | }, 277 | "notification-url": "https://packagist.org/downloads/", 278 | "license": [ 279 | "MIT" 280 | ], 281 | "authors": [ 282 | { 283 | "name": "Anthony Ferrara", 284 | "email": "ircmaxell@php.net", 285 | "homepage": "http://blog.ircmaxell.com" 286 | } 287 | ], 288 | "description": "A compatibility library for the proposed simplified password hashing algorithm: https://wiki.php.net/rfc/password_hash", 289 | "homepage": "https://github.com/ircmaxell/password_compat", 290 | "keywords": [ 291 | "hashing", 292 | "password" 293 | ], 294 | "time": "2014-11-20T16:49:30+00:00" 295 | }, 296 | { 297 | "name": "jeremeamia/SuperClosure", 298 | "version": "1.0.2", 299 | "source": { 300 | "type": "git", 301 | "url": "https://github.com/jeremeamia/super_closure.git", 302 | "reference": "4d89ca74994feab128ea46d5b3add92e6cb84554" 303 | }, 304 | "dist": { 305 | "type": "zip", 306 | "url": "https://api.github.com/repos/jeremeamia/super_closure/zipball/4d89ca74994feab128ea46d5b3add92e6cb84554", 307 | "reference": "4d89ca74994feab128ea46d5b3add92e6cb84554", 308 | "shasum": "" 309 | }, 310 | "require": { 311 | "nikic/php-parser": "~0.9", 312 | "php": ">=5.3.3" 313 | }, 314 | "require-dev": { 315 | "phpunit/phpunit": "~3.7" 316 | }, 317 | "type": "library", 318 | "autoload": { 319 | "psr-0": { 320 | "Jeremeamia\\SuperClosure": "src/" 321 | } 322 | }, 323 | "notification-url": "https://packagist.org/downloads/", 324 | "license": [ 325 | "MIT" 326 | ], 327 | "authors": [ 328 | { 329 | "name": "Jeremy Lindblom" 330 | } 331 | ], 332 | "description": "Doing interesting things with closures like serialization.", 333 | "homepage": "https://github.com/jeremeamia/super_closure", 334 | "keywords": [ 335 | "closure", 336 | "function", 337 | "parser", 338 | "serializable", 339 | "serialize", 340 | "tokenizer" 341 | ], 342 | "time": "2015-01-10T01:09:28+00:00" 343 | }, 344 | { 345 | "name": "laravel/framework", 346 | "version": "v4.2.22", 347 | "source": { 348 | "type": "git", 349 | "url": "https://github.com/laravel/framework.git", 350 | "reference": "7bfe4a10387d726569856bb4ceaec576e60ae7bb" 351 | }, 352 | "dist": { 353 | "type": "zip", 354 | "url": "https://api.github.com/repos/laravel/framework/zipball/7bfe4a10387d726569856bb4ceaec576e60ae7bb", 355 | "reference": "7bfe4a10387d726569856bb4ceaec576e60ae7bb", 356 | "shasum": "" 357 | }, 358 | "require": { 359 | "classpreloader/classpreloader": "~1.0.2", 360 | "d11wtq/boris": "~1.0", 361 | "filp/whoops": "1.1.*", 362 | "ircmaxell/password-compat": "~1.0", 363 | "jeremeamia/superclosure": "~1.0.1", 364 | "monolog/monolog": "~1.6", 365 | "nesbot/carbon": "~1.0", 366 | "patchwork/utf8": "~1.1", 367 | "php": ">=5.4.0", 368 | "phpseclib/phpseclib": "0.3.*", 369 | "predis/predis": "0.8.*", 370 | "stack/builder": "~1.0", 371 | "swiftmailer/swiftmailer": "~5.1", 372 | "symfony/browser-kit": "2.7.*", 373 | "symfony/console": "2.7.*", 374 | "symfony/css-selector": "2.7.*", 375 | "symfony/debug": "2.7.*", 376 | "symfony/dom-crawler": "2.7.*", 377 | "symfony/finder": "2.7.*", 378 | "symfony/http-foundation": "2.7.*", 379 | "symfony/http-kernel": "2.7.*", 380 | "symfony/process": "2.7.*", 381 | "symfony/routing": "2.7.*", 382 | "symfony/security-core": "2.7.*", 383 | "symfony/translation": "2.7.*" 384 | }, 385 | "replace": { 386 | "illuminate/auth": "self.version", 387 | "illuminate/cache": "self.version", 388 | "illuminate/config": "self.version", 389 | "illuminate/console": "self.version", 390 | "illuminate/container": "self.version", 391 | "illuminate/cookie": "self.version", 392 | "illuminate/database": "self.version", 393 | "illuminate/encryption": "self.version", 394 | "illuminate/events": "self.version", 395 | "illuminate/exception": "self.version", 396 | "illuminate/filesystem": "self.version", 397 | "illuminate/foundation": "self.version", 398 | "illuminate/hashing": "self.version", 399 | "illuminate/html": "self.version", 400 | "illuminate/http": "self.version", 401 | "illuminate/log": "self.version", 402 | "illuminate/mail": "self.version", 403 | "illuminate/pagination": "self.version", 404 | "illuminate/queue": "self.version", 405 | "illuminate/redis": "self.version", 406 | "illuminate/remote": "self.version", 407 | "illuminate/routing": "self.version", 408 | "illuminate/session": "self.version", 409 | "illuminate/support": "self.version", 410 | "illuminate/translation": "self.version", 411 | "illuminate/validation": "self.version", 412 | "illuminate/view": "self.version", 413 | "illuminate/workbench": "self.version" 414 | }, 415 | "require-dev": { 416 | "aws/aws-sdk-php": "~2.6", 417 | "iron-io/iron_mq": "~1.5", 418 | "mockery/mockery": "~0.9", 419 | "pda/pheanstalk": "~2.1", 420 | "phpunit/phpunit": "~4.0" 421 | }, 422 | "suggest": { 423 | "doctrine/dbal": "Allow renaming columns and dropping SQLite columns." 424 | }, 425 | "type": "library", 426 | "extra": { 427 | "branch-alias": { 428 | "dev-master": "4.2-dev" 429 | } 430 | }, 431 | "autoload": { 432 | "classmap": [ 433 | "src/Illuminate/Queue/IlluminateQueueClosure.php" 434 | ], 435 | "files": [ 436 | "src/Illuminate/Support/helpers.php" 437 | ], 438 | "psr-0": { 439 | "Illuminate": "src/" 440 | } 441 | }, 442 | "notification-url": "https://packagist.org/downloads/", 443 | "license": [ 444 | "MIT" 445 | ], 446 | "authors": [ 447 | { 448 | "name": "Taylor Otwell", 449 | "email": "taylorotwell@gmail.com" 450 | } 451 | ], 452 | "description": "The Laravel Framework.", 453 | "keywords": [ 454 | "framework", 455 | "laravel" 456 | ], 457 | "time": "2016-11-12T01:41:37+00:00" 458 | }, 459 | { 460 | "name": "laravel/laravel", 461 | "version": "v4.2.11", 462 | "source": { 463 | "type": "git", 464 | "url": "https://github.com/laravel/laravel.git", 465 | "reference": "ba0cf2a1c9280e99d39aad5d4d686d554941eea1" 466 | }, 467 | "dist": { 468 | "type": "zip", 469 | "url": "https://api.github.com/repos/laravel/laravel/zipball/ba0cf2a1c9280e99d39aad5d4d686d554941eea1", 470 | "reference": "ba0cf2a1c9280e99d39aad5d4d686d554941eea1", 471 | "shasum": "" 472 | }, 473 | "require": { 474 | "laravel/framework": "4.2.*" 475 | }, 476 | "type": "project", 477 | "autoload": { 478 | "classmap": [ 479 | "app/commands", 480 | "app/controllers", 481 | "app/models", 482 | "app/database/migrations", 483 | "app/database/seeds", 484 | "app/tests/TestCase.php" 485 | ] 486 | }, 487 | "notification-url": "https://packagist.org/downloads/", 488 | "license": [ 489 | "MIT" 490 | ], 491 | "description": "The Laravel Framework.", 492 | "keywords": [ 493 | "framework", 494 | "laravel" 495 | ], 496 | "time": "2014-11-09T22:29:56+00:00" 497 | }, 498 | { 499 | "name": "monolog/monolog", 500 | "version": "1.23.0", 501 | "source": { 502 | "type": "git", 503 | "url": "https://github.com/Seldaek/monolog.git", 504 | "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4" 505 | }, 506 | "dist": { 507 | "type": "zip", 508 | "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fd8c787753b3a2ad11bc60c063cff1358a32a3b4", 509 | "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4", 510 | "shasum": "" 511 | }, 512 | "require": { 513 | "php": ">=5.3.0", 514 | "psr/log": "~1.0" 515 | }, 516 | "provide": { 517 | "psr/log-implementation": "1.0.0" 518 | }, 519 | "require-dev": { 520 | "aws/aws-sdk-php": "^2.4.9 || ^3.0", 521 | "doctrine/couchdb": "~1.0@dev", 522 | "graylog2/gelf-php": "~1.0", 523 | "jakub-onderka/php-parallel-lint": "0.9", 524 | "php-amqplib/php-amqplib": "~2.4", 525 | "php-console/php-console": "^3.1.3", 526 | "phpunit/phpunit": "~4.5", 527 | "phpunit/phpunit-mock-objects": "2.3.0", 528 | "ruflin/elastica": ">=0.90 <3.0", 529 | "sentry/sentry": "^0.13", 530 | "swiftmailer/swiftmailer": "^5.3|^6.0" 531 | }, 532 | "suggest": { 533 | "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", 534 | "doctrine/couchdb": "Allow sending log messages to a CouchDB server", 535 | "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", 536 | "ext-mongo": "Allow sending log messages to a MongoDB server", 537 | "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", 538 | "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", 539 | "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", 540 | "php-console/php-console": "Allow sending log messages to Google Chrome", 541 | "rollbar/rollbar": "Allow sending log messages to Rollbar", 542 | "ruflin/elastica": "Allow sending log messages to an Elastic Search server", 543 | "sentry/sentry": "Allow sending log messages to a Sentry server" 544 | }, 545 | "type": "library", 546 | "extra": { 547 | "branch-alias": { 548 | "dev-master": "2.0.x-dev" 549 | } 550 | }, 551 | "autoload": { 552 | "psr-4": { 553 | "Monolog\\": "src/Monolog" 554 | } 555 | }, 556 | "notification-url": "https://packagist.org/downloads/", 557 | "license": [ 558 | "MIT" 559 | ], 560 | "authors": [ 561 | { 562 | "name": "Jordi Boggiano", 563 | "email": "j.boggiano@seld.be", 564 | "homepage": "http://seld.be" 565 | } 566 | ], 567 | "description": "Sends your logs to files, sockets, inboxes, databases and various web services", 568 | "homepage": "http://github.com/Seldaek/monolog", 569 | "keywords": [ 570 | "log", 571 | "logging", 572 | "psr-3" 573 | ], 574 | "time": "2017-06-19T01:22:40+00:00" 575 | }, 576 | { 577 | "name": "myclabs/deep-copy", 578 | "version": "1.7.0", 579 | "source": { 580 | "type": "git", 581 | "url": "https://github.com/myclabs/DeepCopy.git", 582 | "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e" 583 | }, 584 | "dist": { 585 | "type": "zip", 586 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", 587 | "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", 588 | "shasum": "" 589 | }, 590 | "require": { 591 | "php": "^5.6 || ^7.0" 592 | }, 593 | "require-dev": { 594 | "doctrine/collections": "^1.0", 595 | "doctrine/common": "^2.6", 596 | "phpunit/phpunit": "^4.1" 597 | }, 598 | "type": "library", 599 | "autoload": { 600 | "psr-4": { 601 | "DeepCopy\\": "src/DeepCopy/" 602 | }, 603 | "files": [ 604 | "src/DeepCopy/deep_copy.php" 605 | ] 606 | }, 607 | "notification-url": "https://packagist.org/downloads/", 608 | "license": [ 609 | "MIT" 610 | ], 611 | "description": "Create deep copies (clones) of your objects", 612 | "keywords": [ 613 | "clone", 614 | "copy", 615 | "duplicate", 616 | "object", 617 | "object graph" 618 | ], 619 | "time": "2017-10-19T19:58:43+00:00" 620 | }, 621 | { 622 | "name": "nesbot/carbon", 623 | "version": "1.22.1", 624 | "source": { 625 | "type": "git", 626 | "url": "https://github.com/briannesbitt/Carbon.git", 627 | "reference": "7cdf42c0b1cc763ab7e4c33c47a24e27c66bfccc" 628 | }, 629 | "dist": { 630 | "type": "zip", 631 | "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/7cdf42c0b1cc763ab7e4c33c47a24e27c66bfccc", 632 | "reference": "7cdf42c0b1cc763ab7e4c33c47a24e27c66bfccc", 633 | "shasum": "" 634 | }, 635 | "require": { 636 | "php": ">=5.3.0", 637 | "symfony/translation": "~2.6 || ~3.0" 638 | }, 639 | "require-dev": { 640 | "friendsofphp/php-cs-fixer": "~2", 641 | "phpunit/phpunit": "~4.0 || ~5.0" 642 | }, 643 | "type": "library", 644 | "extra": { 645 | "branch-alias": { 646 | "dev-master": "1.23-dev" 647 | } 648 | }, 649 | "autoload": { 650 | "psr-4": { 651 | "Carbon\\": "src/Carbon/" 652 | } 653 | }, 654 | "notification-url": "https://packagist.org/downloads/", 655 | "license": [ 656 | "MIT" 657 | ], 658 | "authors": [ 659 | { 660 | "name": "Brian Nesbitt", 661 | "email": "brian@nesbot.com", 662 | "homepage": "http://nesbot.com" 663 | } 664 | ], 665 | "description": "A simple API extension for DateTime.", 666 | "homepage": "http://carbon.nesbot.com", 667 | "keywords": [ 668 | "date", 669 | "datetime", 670 | "time" 671 | ], 672 | "time": "2017-01-16T07:55:07+00:00" 673 | }, 674 | { 675 | "name": "nikic/php-parser", 676 | "version": "v0.9.5", 677 | "source": { 678 | "type": "git", 679 | "url": "https://github.com/nikic/PHP-Parser.git", 680 | "reference": "ef70767475434bdb3615b43c327e2cae17ef12eb" 681 | }, 682 | "dist": { 683 | "type": "zip", 684 | "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/ef70767475434bdb3615b43c327e2cae17ef12eb", 685 | "reference": "ef70767475434bdb3615b43c327e2cae17ef12eb", 686 | "shasum": "" 687 | }, 688 | "require": { 689 | "ext-tokenizer": "*", 690 | "php": ">=5.2" 691 | }, 692 | "type": "library", 693 | "extra": { 694 | "branch-alias": { 695 | "dev-master": "0.9-dev" 696 | } 697 | }, 698 | "autoload": { 699 | "psr-0": { 700 | "PHPParser": "lib/" 701 | } 702 | }, 703 | "notification-url": "https://packagist.org/downloads/", 704 | "license": [ 705 | "BSD-3-Clause" 706 | ], 707 | "authors": [ 708 | { 709 | "name": "Nikita Popov" 710 | } 711 | ], 712 | "description": "A PHP parser written in PHP", 713 | "keywords": [ 714 | "parser", 715 | "php" 716 | ], 717 | "time": "2014-07-23T18:24:17+00:00" 718 | }, 719 | { 720 | "name": "patchwork/utf8", 721 | "version": "v1.3.1", 722 | "source": { 723 | "type": "git", 724 | "url": "https://github.com/tchwork/utf8.git", 725 | "reference": "30ec6451aec7d2536f0af8fe535f70c764f2c47a" 726 | }, 727 | "dist": { 728 | "type": "zip", 729 | "url": "https://api.github.com/repos/tchwork/utf8/zipball/30ec6451aec7d2536f0af8fe535f70c764f2c47a", 730 | "reference": "30ec6451aec7d2536f0af8fe535f70c764f2c47a", 731 | "shasum": "" 732 | }, 733 | "require": { 734 | "lib-pcre": ">=7.3", 735 | "php": ">=5.3.0" 736 | }, 737 | "suggest": { 738 | "ext-iconv": "Use iconv for best performance", 739 | "ext-intl": "Use Intl for best performance", 740 | "ext-mbstring": "Use Mbstring for best performance", 741 | "ext-wfio": "Use WFIO for UTF-8 filesystem access on Windows" 742 | }, 743 | "type": "library", 744 | "extra": { 745 | "branch-alias": { 746 | "dev-master": "1.3-dev" 747 | } 748 | }, 749 | "autoload": { 750 | "psr-4": { 751 | "Patchwork\\": "src/Patchwork/" 752 | }, 753 | "classmap": [ 754 | "src/Normalizer.php" 755 | ] 756 | }, 757 | "notification-url": "https://packagist.org/downloads/", 758 | "license": [ 759 | "(Apache-2.0 or GPL-2.0)" 760 | ], 761 | "authors": [ 762 | { 763 | "name": "Nicolas Grekas", 764 | "email": "p@tchwork.com" 765 | } 766 | ], 767 | "description": "Portable and performant UTF-8, Unicode and Grapheme Clusters for PHP", 768 | "homepage": "https://github.com/tchwork/utf8", 769 | "keywords": [ 770 | "grapheme", 771 | "i18n", 772 | "unicode", 773 | "utf-8", 774 | "utf8" 775 | ], 776 | "time": "2016-05-18T13:57:10+00:00" 777 | }, 778 | { 779 | "name": "phpdocumentor/reflection-common", 780 | "version": "1.0.1", 781 | "source": { 782 | "type": "git", 783 | "url": "https://github.com/phpDocumentor/ReflectionCommon.git", 784 | "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" 785 | }, 786 | "dist": { 787 | "type": "zip", 788 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", 789 | "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", 790 | "shasum": "" 791 | }, 792 | "require": { 793 | "php": ">=5.5" 794 | }, 795 | "require-dev": { 796 | "phpunit/phpunit": "^4.6" 797 | }, 798 | "type": "library", 799 | "extra": { 800 | "branch-alias": { 801 | "dev-master": "1.0.x-dev" 802 | } 803 | }, 804 | "autoload": { 805 | "psr-4": { 806 | "phpDocumentor\\Reflection\\": [ 807 | "src" 808 | ] 809 | } 810 | }, 811 | "notification-url": "https://packagist.org/downloads/", 812 | "license": [ 813 | "MIT" 814 | ], 815 | "authors": [ 816 | { 817 | "name": "Jaap van Otterdijk", 818 | "email": "opensource@ijaap.nl" 819 | } 820 | ], 821 | "description": "Common reflection classes used by phpdocumentor to reflect the code structure", 822 | "homepage": "http://www.phpdoc.org", 823 | "keywords": [ 824 | "FQSEN", 825 | "phpDocumentor", 826 | "phpdoc", 827 | "reflection", 828 | "static analysis" 829 | ], 830 | "time": "2017-09-11T18:02:19+00:00" 831 | }, 832 | { 833 | "name": "phpdocumentor/reflection-docblock", 834 | "version": "4.3.0", 835 | "source": { 836 | "type": "git", 837 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", 838 | "reference": "94fd0001232e47129dd3504189fa1c7225010d08" 839 | }, 840 | "dist": { 841 | "type": "zip", 842 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08", 843 | "reference": "94fd0001232e47129dd3504189fa1c7225010d08", 844 | "shasum": "" 845 | }, 846 | "require": { 847 | "php": "^7.0", 848 | "phpdocumentor/reflection-common": "^1.0.0", 849 | "phpdocumentor/type-resolver": "^0.4.0", 850 | "webmozart/assert": "^1.0" 851 | }, 852 | "require-dev": { 853 | "doctrine/instantiator": "~1.0.5", 854 | "mockery/mockery": "^1.0", 855 | "phpunit/phpunit": "^6.4" 856 | }, 857 | "type": "library", 858 | "extra": { 859 | "branch-alias": { 860 | "dev-master": "4.x-dev" 861 | } 862 | }, 863 | "autoload": { 864 | "psr-4": { 865 | "phpDocumentor\\Reflection\\": [ 866 | "src/" 867 | ] 868 | } 869 | }, 870 | "notification-url": "https://packagist.org/downloads/", 871 | "license": [ 872 | "MIT" 873 | ], 874 | "authors": [ 875 | { 876 | "name": "Mike van Riel", 877 | "email": "me@mikevanriel.com" 878 | } 879 | ], 880 | "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", 881 | "time": "2017-11-30T07:14:17+00:00" 882 | }, 883 | { 884 | "name": "phpdocumentor/type-resolver", 885 | "version": "0.4.0", 886 | "source": { 887 | "type": "git", 888 | "url": "https://github.com/phpDocumentor/TypeResolver.git", 889 | "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" 890 | }, 891 | "dist": { 892 | "type": "zip", 893 | "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", 894 | "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", 895 | "shasum": "" 896 | }, 897 | "require": { 898 | "php": "^5.5 || ^7.0", 899 | "phpdocumentor/reflection-common": "^1.0" 900 | }, 901 | "require-dev": { 902 | "mockery/mockery": "^0.9.4", 903 | "phpunit/phpunit": "^5.2||^4.8.24" 904 | }, 905 | "type": "library", 906 | "extra": { 907 | "branch-alias": { 908 | "dev-master": "1.0.x-dev" 909 | } 910 | }, 911 | "autoload": { 912 | "psr-4": { 913 | "phpDocumentor\\Reflection\\": [ 914 | "src/" 915 | ] 916 | } 917 | }, 918 | "notification-url": "https://packagist.org/downloads/", 919 | "license": [ 920 | "MIT" 921 | ], 922 | "authors": [ 923 | { 924 | "name": "Mike van Riel", 925 | "email": "me@mikevanriel.com" 926 | } 927 | ], 928 | "time": "2017-07-14T14:27:02+00:00" 929 | }, 930 | { 931 | "name": "phpseclib/phpseclib", 932 | "version": "0.3.10", 933 | "source": { 934 | "type": "git", 935 | "url": "https://github.com/phpseclib/phpseclib.git", 936 | "reference": "d15bba1edcc7c89e09cc74c5d961317a8b947bf4" 937 | }, 938 | "dist": { 939 | "type": "zip", 940 | "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/d15bba1edcc7c89e09cc74c5d961317a8b947bf4", 941 | "reference": "d15bba1edcc7c89e09cc74c5d961317a8b947bf4", 942 | "shasum": "" 943 | }, 944 | "require": { 945 | "php": ">=5.0.0" 946 | }, 947 | "require-dev": { 948 | "phing/phing": "~2.7", 949 | "phpunit/phpunit": "~4.0", 950 | "sami/sami": "~2.0", 951 | "squizlabs/php_codesniffer": "~1.5" 952 | }, 953 | "suggest": { 954 | "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.", 955 | "ext-mcrypt": "Install the Mcrypt extension in order to speed up a wide variety of cryptographic operations.", 956 | "pear-pear/PHP_Compat": "Install PHP_Compat to get phpseclib working on PHP < 4.3.3." 957 | }, 958 | "type": "library", 959 | "extra": { 960 | "branch-alias": { 961 | "dev-master": "0.3-dev" 962 | } 963 | }, 964 | "autoload": { 965 | "psr-0": { 966 | "Crypt": "phpseclib/", 967 | "File": "phpseclib/", 968 | "Math": "phpseclib/", 969 | "Net": "phpseclib/", 970 | "System": "phpseclib/" 971 | }, 972 | "files": [ 973 | "phpseclib/Crypt/Random.php" 974 | ] 975 | }, 976 | "notification-url": "https://packagist.org/downloads/", 977 | "include-path": [ 978 | "phpseclib/" 979 | ], 980 | "license": [ 981 | "MIT" 982 | ], 983 | "authors": [ 984 | { 985 | "name": "Jim Wigginton", 986 | "email": "terrafrost@php.net", 987 | "role": "Lead Developer" 988 | }, 989 | { 990 | "name": "Patrick Monnerat", 991 | "email": "pm@datasphere.ch", 992 | "role": "Developer" 993 | }, 994 | { 995 | "name": "Andreas Fischer", 996 | "email": "bantu@phpbb.com", 997 | "role": "Developer" 998 | }, 999 | { 1000 | "name": "Hans-Jürgen Petrich", 1001 | "email": "petrich@tronic-media.com", 1002 | "role": "Developer" 1003 | } 1004 | ], 1005 | "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.", 1006 | "homepage": "http://phpseclib.sourceforge.net", 1007 | "keywords": [ 1008 | "BigInteger", 1009 | "aes", 1010 | "asn.1", 1011 | "asn1", 1012 | "blowfish", 1013 | "crypto", 1014 | "cryptography", 1015 | "encryption", 1016 | "rsa", 1017 | "security", 1018 | "sftp", 1019 | "signature", 1020 | "signing", 1021 | "ssh", 1022 | "twofish", 1023 | "x.509", 1024 | "x509" 1025 | ], 1026 | "time": "2015-01-28T21:50:33+00:00" 1027 | }, 1028 | { 1029 | "name": "phpspec/prophecy", 1030 | "version": "1.7.3", 1031 | "source": { 1032 | "type": "git", 1033 | "url": "https://github.com/phpspec/prophecy.git", 1034 | "reference": "e4ed002c67da8eceb0eb8ddb8b3847bb53c5c2bf" 1035 | }, 1036 | "dist": { 1037 | "type": "zip", 1038 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/e4ed002c67da8eceb0eb8ddb8b3847bb53c5c2bf", 1039 | "reference": "e4ed002c67da8eceb0eb8ddb8b3847bb53c5c2bf", 1040 | "shasum": "" 1041 | }, 1042 | "require": { 1043 | "doctrine/instantiator": "^1.0.2", 1044 | "php": "^5.3|^7.0", 1045 | "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", 1046 | "sebastian/comparator": "^1.1|^2.0", 1047 | "sebastian/recursion-context": "^1.0|^2.0|^3.0" 1048 | }, 1049 | "require-dev": { 1050 | "phpspec/phpspec": "^2.5|^3.2", 1051 | "phpunit/phpunit": "^4.8.35 || ^5.7" 1052 | }, 1053 | "type": "library", 1054 | "extra": { 1055 | "branch-alias": { 1056 | "dev-master": "1.7.x-dev" 1057 | } 1058 | }, 1059 | "autoload": { 1060 | "psr-0": { 1061 | "Prophecy\\": "src/" 1062 | } 1063 | }, 1064 | "notification-url": "https://packagist.org/downloads/", 1065 | "license": [ 1066 | "MIT" 1067 | ], 1068 | "authors": [ 1069 | { 1070 | "name": "Konstantin Kudryashov", 1071 | "email": "ever.zet@gmail.com", 1072 | "homepage": "http://everzet.com" 1073 | }, 1074 | { 1075 | "name": "Marcello Duarte", 1076 | "email": "marcello.duarte@gmail.com" 1077 | } 1078 | ], 1079 | "description": "Highly opinionated mocking framework for PHP 5.3+", 1080 | "homepage": "https://github.com/phpspec/prophecy", 1081 | "keywords": [ 1082 | "Double", 1083 | "Dummy", 1084 | "fake", 1085 | "mock", 1086 | "spy", 1087 | "stub" 1088 | ], 1089 | "time": "2017-11-24T13:59:53+00:00" 1090 | }, 1091 | { 1092 | "name": "phpunit/php-code-coverage", 1093 | "version": "4.0.8", 1094 | "source": { 1095 | "type": "git", 1096 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git", 1097 | "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d" 1098 | }, 1099 | "dist": { 1100 | "type": "zip", 1101 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ef7b2f56815df854e66ceaee8ebe9393ae36a40d", 1102 | "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d", 1103 | "shasum": "" 1104 | }, 1105 | "require": { 1106 | "ext-dom": "*", 1107 | "ext-xmlwriter": "*", 1108 | "php": "^5.6 || ^7.0", 1109 | "phpunit/php-file-iterator": "^1.3", 1110 | "phpunit/php-text-template": "^1.2", 1111 | "phpunit/php-token-stream": "^1.4.2 || ^2.0", 1112 | "sebastian/code-unit-reverse-lookup": "^1.0", 1113 | "sebastian/environment": "^1.3.2 || ^2.0", 1114 | "sebastian/version": "^1.0 || ^2.0" 1115 | }, 1116 | "require-dev": { 1117 | "ext-xdebug": "^2.1.4", 1118 | "phpunit/phpunit": "^5.7" 1119 | }, 1120 | "suggest": { 1121 | "ext-xdebug": "^2.5.1" 1122 | }, 1123 | "type": "library", 1124 | "extra": { 1125 | "branch-alias": { 1126 | "dev-master": "4.0.x-dev" 1127 | } 1128 | }, 1129 | "autoload": { 1130 | "classmap": [ 1131 | "src/" 1132 | ] 1133 | }, 1134 | "notification-url": "https://packagist.org/downloads/", 1135 | "license": [ 1136 | "BSD-3-Clause" 1137 | ], 1138 | "authors": [ 1139 | { 1140 | "name": "Sebastian Bergmann", 1141 | "email": "sb@sebastian-bergmann.de", 1142 | "role": "lead" 1143 | } 1144 | ], 1145 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", 1146 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage", 1147 | "keywords": [ 1148 | "coverage", 1149 | "testing", 1150 | "xunit" 1151 | ], 1152 | "time": "2017-04-02T07:44:40+00:00" 1153 | }, 1154 | { 1155 | "name": "phpunit/php-file-iterator", 1156 | "version": "1.4.5", 1157 | "source": { 1158 | "type": "git", 1159 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git", 1160 | "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" 1161 | }, 1162 | "dist": { 1163 | "type": "zip", 1164 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", 1165 | "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", 1166 | "shasum": "" 1167 | }, 1168 | "require": { 1169 | "php": ">=5.3.3" 1170 | }, 1171 | "type": "library", 1172 | "extra": { 1173 | "branch-alias": { 1174 | "dev-master": "1.4.x-dev" 1175 | } 1176 | }, 1177 | "autoload": { 1178 | "classmap": [ 1179 | "src/" 1180 | ] 1181 | }, 1182 | "notification-url": "https://packagist.org/downloads/", 1183 | "license": [ 1184 | "BSD-3-Clause" 1185 | ], 1186 | "authors": [ 1187 | { 1188 | "name": "Sebastian Bergmann", 1189 | "email": "sb@sebastian-bergmann.de", 1190 | "role": "lead" 1191 | } 1192 | ], 1193 | "description": "FilterIterator implementation that filters files based on a list of suffixes.", 1194 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", 1195 | "keywords": [ 1196 | "filesystem", 1197 | "iterator" 1198 | ], 1199 | "time": "2017-11-27T13:52:08+00:00" 1200 | }, 1201 | { 1202 | "name": "phpunit/php-text-template", 1203 | "version": "1.2.1", 1204 | "source": { 1205 | "type": "git", 1206 | "url": "https://github.com/sebastianbergmann/php-text-template.git", 1207 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" 1208 | }, 1209 | "dist": { 1210 | "type": "zip", 1211 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 1212 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 1213 | "shasum": "" 1214 | }, 1215 | "require": { 1216 | "php": ">=5.3.3" 1217 | }, 1218 | "type": "library", 1219 | "autoload": { 1220 | "classmap": [ 1221 | "src/" 1222 | ] 1223 | }, 1224 | "notification-url": "https://packagist.org/downloads/", 1225 | "license": [ 1226 | "BSD-3-Clause" 1227 | ], 1228 | "authors": [ 1229 | { 1230 | "name": "Sebastian Bergmann", 1231 | "email": "sebastian@phpunit.de", 1232 | "role": "lead" 1233 | } 1234 | ], 1235 | "description": "Simple template engine.", 1236 | "homepage": "https://github.com/sebastianbergmann/php-text-template/", 1237 | "keywords": [ 1238 | "template" 1239 | ], 1240 | "time": "2015-06-21T13:50:34+00:00" 1241 | }, 1242 | { 1243 | "name": "phpunit/php-timer", 1244 | "version": "1.0.9", 1245 | "source": { 1246 | "type": "git", 1247 | "url": "https://github.com/sebastianbergmann/php-timer.git", 1248 | "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" 1249 | }, 1250 | "dist": { 1251 | "type": "zip", 1252 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", 1253 | "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", 1254 | "shasum": "" 1255 | }, 1256 | "require": { 1257 | "php": "^5.3.3 || ^7.0" 1258 | }, 1259 | "require-dev": { 1260 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" 1261 | }, 1262 | "type": "library", 1263 | "extra": { 1264 | "branch-alias": { 1265 | "dev-master": "1.0-dev" 1266 | } 1267 | }, 1268 | "autoload": { 1269 | "classmap": [ 1270 | "src/" 1271 | ] 1272 | }, 1273 | "notification-url": "https://packagist.org/downloads/", 1274 | "license": [ 1275 | "BSD-3-Clause" 1276 | ], 1277 | "authors": [ 1278 | { 1279 | "name": "Sebastian Bergmann", 1280 | "email": "sb@sebastian-bergmann.de", 1281 | "role": "lead" 1282 | } 1283 | ], 1284 | "description": "Utility class for timing", 1285 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 1286 | "keywords": [ 1287 | "timer" 1288 | ], 1289 | "time": "2017-02-26T11:10:40+00:00" 1290 | }, 1291 | { 1292 | "name": "phpunit/php-token-stream", 1293 | "version": "2.0.2", 1294 | "source": { 1295 | "type": "git", 1296 | "url": "https://github.com/sebastianbergmann/php-token-stream.git", 1297 | "reference": "791198a2c6254db10131eecfe8c06670700904db" 1298 | }, 1299 | "dist": { 1300 | "type": "zip", 1301 | "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/791198a2c6254db10131eecfe8c06670700904db", 1302 | "reference": "791198a2c6254db10131eecfe8c06670700904db", 1303 | "shasum": "" 1304 | }, 1305 | "require": { 1306 | "ext-tokenizer": "*", 1307 | "php": "^7.0" 1308 | }, 1309 | "require-dev": { 1310 | "phpunit/phpunit": "^6.2.4" 1311 | }, 1312 | "type": "library", 1313 | "extra": { 1314 | "branch-alias": { 1315 | "dev-master": "2.0-dev" 1316 | } 1317 | }, 1318 | "autoload": { 1319 | "classmap": [ 1320 | "src/" 1321 | ] 1322 | }, 1323 | "notification-url": "https://packagist.org/downloads/", 1324 | "license": [ 1325 | "BSD-3-Clause" 1326 | ], 1327 | "authors": [ 1328 | { 1329 | "name": "Sebastian Bergmann", 1330 | "email": "sebastian@phpunit.de" 1331 | } 1332 | ], 1333 | "description": "Wrapper around PHP's tokenizer extension.", 1334 | "homepage": "https://github.com/sebastianbergmann/php-token-stream/", 1335 | "keywords": [ 1336 | "tokenizer" 1337 | ], 1338 | "time": "2017-11-27T05:48:46+00:00" 1339 | }, 1340 | { 1341 | "name": "phpunit/phpunit", 1342 | "version": "5.7.26", 1343 | "source": { 1344 | "type": "git", 1345 | "url": "https://github.com/sebastianbergmann/phpunit.git", 1346 | "reference": "7fbc25c13309de0c4c9bb48b7361f1eca34c7fbd" 1347 | }, 1348 | "dist": { 1349 | "type": "zip", 1350 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/7fbc25c13309de0c4c9bb48b7361f1eca34c7fbd", 1351 | "reference": "7fbc25c13309de0c4c9bb48b7361f1eca34c7fbd", 1352 | "shasum": "" 1353 | }, 1354 | "require": { 1355 | "ext-dom": "*", 1356 | "ext-json": "*", 1357 | "ext-libxml": "*", 1358 | "ext-mbstring": "*", 1359 | "ext-xml": "*", 1360 | "myclabs/deep-copy": "~1.3", 1361 | "php": "^5.6 || ^7.0", 1362 | "phpspec/prophecy": "^1.6.2", 1363 | "phpunit/php-code-coverage": "^4.0.4", 1364 | "phpunit/php-file-iterator": "~1.4", 1365 | "phpunit/php-text-template": "~1.2", 1366 | "phpunit/php-timer": "^1.0.6", 1367 | "phpunit/phpunit-mock-objects": "^3.2", 1368 | "sebastian/comparator": "^1.2.4", 1369 | "sebastian/diff": "^1.4.3", 1370 | "sebastian/environment": "^1.3.4 || ^2.0", 1371 | "sebastian/exporter": "~2.0", 1372 | "sebastian/global-state": "^1.1", 1373 | "sebastian/object-enumerator": "~2.0", 1374 | "sebastian/resource-operations": "~1.0", 1375 | "sebastian/version": "~1.0.3|~2.0", 1376 | "symfony/yaml": "~2.1|~3.0|~4.0" 1377 | }, 1378 | "conflict": { 1379 | "phpdocumentor/reflection-docblock": "3.0.2" 1380 | }, 1381 | "require-dev": { 1382 | "ext-pdo": "*" 1383 | }, 1384 | "suggest": { 1385 | "ext-xdebug": "*", 1386 | "phpunit/php-invoker": "~1.1" 1387 | }, 1388 | "bin": [ 1389 | "phpunit" 1390 | ], 1391 | "type": "library", 1392 | "extra": { 1393 | "branch-alias": { 1394 | "dev-master": "5.7.x-dev" 1395 | } 1396 | }, 1397 | "autoload": { 1398 | "classmap": [ 1399 | "src/" 1400 | ] 1401 | }, 1402 | "notification-url": "https://packagist.org/downloads/", 1403 | "license": [ 1404 | "BSD-3-Clause" 1405 | ], 1406 | "authors": [ 1407 | { 1408 | "name": "Sebastian Bergmann", 1409 | "email": "sebastian@phpunit.de", 1410 | "role": "lead" 1411 | } 1412 | ], 1413 | "description": "The PHP Unit Testing framework.", 1414 | "homepage": "https://phpunit.de/", 1415 | "keywords": [ 1416 | "phpunit", 1417 | "testing", 1418 | "xunit" 1419 | ], 1420 | "time": "2017-12-17T06:14:38+00:00" 1421 | }, 1422 | { 1423 | "name": "phpunit/phpunit-mock-objects", 1424 | "version": "3.4.4", 1425 | "source": { 1426 | "type": "git", 1427 | "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", 1428 | "reference": "a23b761686d50a560cc56233b9ecf49597cc9118" 1429 | }, 1430 | "dist": { 1431 | "type": "zip", 1432 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/a23b761686d50a560cc56233b9ecf49597cc9118", 1433 | "reference": "a23b761686d50a560cc56233b9ecf49597cc9118", 1434 | "shasum": "" 1435 | }, 1436 | "require": { 1437 | "doctrine/instantiator": "^1.0.2", 1438 | "php": "^5.6 || ^7.0", 1439 | "phpunit/php-text-template": "^1.2", 1440 | "sebastian/exporter": "^1.2 || ^2.0" 1441 | }, 1442 | "conflict": { 1443 | "phpunit/phpunit": "<5.4.0" 1444 | }, 1445 | "require-dev": { 1446 | "phpunit/phpunit": "^5.4" 1447 | }, 1448 | "suggest": { 1449 | "ext-soap": "*" 1450 | }, 1451 | "type": "library", 1452 | "extra": { 1453 | "branch-alias": { 1454 | "dev-master": "3.2.x-dev" 1455 | } 1456 | }, 1457 | "autoload": { 1458 | "classmap": [ 1459 | "src/" 1460 | ] 1461 | }, 1462 | "notification-url": "https://packagist.org/downloads/", 1463 | "license": [ 1464 | "BSD-3-Clause" 1465 | ], 1466 | "authors": [ 1467 | { 1468 | "name": "Sebastian Bergmann", 1469 | "email": "sb@sebastian-bergmann.de", 1470 | "role": "lead" 1471 | } 1472 | ], 1473 | "description": "Mock Object library for PHPUnit", 1474 | "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", 1475 | "keywords": [ 1476 | "mock", 1477 | "xunit" 1478 | ], 1479 | "time": "2017-06-30T09:13:00+00:00" 1480 | }, 1481 | { 1482 | "name": "predis/predis", 1483 | "version": "v0.8.7", 1484 | "source": { 1485 | "type": "git", 1486 | "url": "https://github.com/nrk/predis.git", 1487 | "reference": "4123fcd85d61354c6c9900db76c9597dbd129bf6" 1488 | }, 1489 | "dist": { 1490 | "type": "zip", 1491 | "url": "https://api.github.com/repos/nrk/predis/zipball/4123fcd85d61354c6c9900db76c9597dbd129bf6", 1492 | "reference": "4123fcd85d61354c6c9900db76c9597dbd129bf6", 1493 | "shasum": "" 1494 | }, 1495 | "require": { 1496 | "php": ">=5.3.2" 1497 | }, 1498 | "require-dev": { 1499 | "phpunit/phpunit": "~4.0" 1500 | }, 1501 | "suggest": { 1502 | "ext-curl": "Allows access to Webdis when paired with phpiredis", 1503 | "ext-phpiredis": "Allows faster serialization and deserialization of the Redis protocol" 1504 | }, 1505 | "type": "library", 1506 | "autoload": { 1507 | "psr-0": { 1508 | "Predis": "lib/" 1509 | } 1510 | }, 1511 | "notification-url": "https://packagist.org/downloads/", 1512 | "license": [ 1513 | "MIT" 1514 | ], 1515 | "authors": [ 1516 | { 1517 | "name": "Daniele Alessandri", 1518 | "email": "suppakilla@gmail.com", 1519 | "homepage": "http://clorophilla.net" 1520 | } 1521 | ], 1522 | "description": "Flexible and feature-complete PHP client library for Redis", 1523 | "homepage": "http://github.com/nrk/predis", 1524 | "keywords": [ 1525 | "nosql", 1526 | "predis", 1527 | "redis" 1528 | ], 1529 | "time": "2014-08-01T09:43:10+00:00" 1530 | }, 1531 | { 1532 | "name": "psr/log", 1533 | "version": "1.0.2", 1534 | "source": { 1535 | "type": "git", 1536 | "url": "https://github.com/php-fig/log.git", 1537 | "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" 1538 | }, 1539 | "dist": { 1540 | "type": "zip", 1541 | "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", 1542 | "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", 1543 | "shasum": "" 1544 | }, 1545 | "require": { 1546 | "php": ">=5.3.0" 1547 | }, 1548 | "type": "library", 1549 | "extra": { 1550 | "branch-alias": { 1551 | "dev-master": "1.0.x-dev" 1552 | } 1553 | }, 1554 | "autoload": { 1555 | "psr-4": { 1556 | "Psr\\Log\\": "Psr/Log/" 1557 | } 1558 | }, 1559 | "notification-url": "https://packagist.org/downloads/", 1560 | "license": [ 1561 | "MIT" 1562 | ], 1563 | "authors": [ 1564 | { 1565 | "name": "PHP-FIG", 1566 | "homepage": "http://www.php-fig.org/" 1567 | } 1568 | ], 1569 | "description": "Common interface for logging libraries", 1570 | "homepage": "https://github.com/php-fig/log", 1571 | "keywords": [ 1572 | "log", 1573 | "psr", 1574 | "psr-3" 1575 | ], 1576 | "time": "2016-10-10T12:19:37+00:00" 1577 | }, 1578 | { 1579 | "name": "sebastian/code-unit-reverse-lookup", 1580 | "version": "1.0.1", 1581 | "source": { 1582 | "type": "git", 1583 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", 1584 | "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" 1585 | }, 1586 | "dist": { 1587 | "type": "zip", 1588 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", 1589 | "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", 1590 | "shasum": "" 1591 | }, 1592 | "require": { 1593 | "php": "^5.6 || ^7.0" 1594 | }, 1595 | "require-dev": { 1596 | "phpunit/phpunit": "^5.7 || ^6.0" 1597 | }, 1598 | "type": "library", 1599 | "extra": { 1600 | "branch-alias": { 1601 | "dev-master": "1.0.x-dev" 1602 | } 1603 | }, 1604 | "autoload": { 1605 | "classmap": [ 1606 | "src/" 1607 | ] 1608 | }, 1609 | "notification-url": "https://packagist.org/downloads/", 1610 | "license": [ 1611 | "BSD-3-Clause" 1612 | ], 1613 | "authors": [ 1614 | { 1615 | "name": "Sebastian Bergmann", 1616 | "email": "sebastian@phpunit.de" 1617 | } 1618 | ], 1619 | "description": "Looks up which function or method a line of code belongs to", 1620 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", 1621 | "time": "2017-03-04T06:30:41+00:00" 1622 | }, 1623 | { 1624 | "name": "sebastian/comparator", 1625 | "version": "1.2.4", 1626 | "source": { 1627 | "type": "git", 1628 | "url": "https://github.com/sebastianbergmann/comparator.git", 1629 | "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be" 1630 | }, 1631 | "dist": { 1632 | "type": "zip", 1633 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", 1634 | "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", 1635 | "shasum": "" 1636 | }, 1637 | "require": { 1638 | "php": ">=5.3.3", 1639 | "sebastian/diff": "~1.2", 1640 | "sebastian/exporter": "~1.2 || ~2.0" 1641 | }, 1642 | "require-dev": { 1643 | "phpunit/phpunit": "~4.4" 1644 | }, 1645 | "type": "library", 1646 | "extra": { 1647 | "branch-alias": { 1648 | "dev-master": "1.2.x-dev" 1649 | } 1650 | }, 1651 | "autoload": { 1652 | "classmap": [ 1653 | "src/" 1654 | ] 1655 | }, 1656 | "notification-url": "https://packagist.org/downloads/", 1657 | "license": [ 1658 | "BSD-3-Clause" 1659 | ], 1660 | "authors": [ 1661 | { 1662 | "name": "Jeff Welch", 1663 | "email": "whatthejeff@gmail.com" 1664 | }, 1665 | { 1666 | "name": "Volker Dusch", 1667 | "email": "github@wallbash.com" 1668 | }, 1669 | { 1670 | "name": "Bernhard Schussek", 1671 | "email": "bschussek@2bepublished.at" 1672 | }, 1673 | { 1674 | "name": "Sebastian Bergmann", 1675 | "email": "sebastian@phpunit.de" 1676 | } 1677 | ], 1678 | "description": "Provides the functionality to compare PHP values for equality", 1679 | "homepage": "http://www.github.com/sebastianbergmann/comparator", 1680 | "keywords": [ 1681 | "comparator", 1682 | "compare", 1683 | "equality" 1684 | ], 1685 | "time": "2017-01-29T09:50:25+00:00" 1686 | }, 1687 | { 1688 | "name": "sebastian/diff", 1689 | "version": "1.4.3", 1690 | "source": { 1691 | "type": "git", 1692 | "url": "https://github.com/sebastianbergmann/diff.git", 1693 | "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4" 1694 | }, 1695 | "dist": { 1696 | "type": "zip", 1697 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4", 1698 | "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4", 1699 | "shasum": "" 1700 | }, 1701 | "require": { 1702 | "php": "^5.3.3 || ^7.0" 1703 | }, 1704 | "require-dev": { 1705 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" 1706 | }, 1707 | "type": "library", 1708 | "extra": { 1709 | "branch-alias": { 1710 | "dev-master": "1.4-dev" 1711 | } 1712 | }, 1713 | "autoload": { 1714 | "classmap": [ 1715 | "src/" 1716 | ] 1717 | }, 1718 | "notification-url": "https://packagist.org/downloads/", 1719 | "license": [ 1720 | "BSD-3-Clause" 1721 | ], 1722 | "authors": [ 1723 | { 1724 | "name": "Kore Nordmann", 1725 | "email": "mail@kore-nordmann.de" 1726 | }, 1727 | { 1728 | "name": "Sebastian Bergmann", 1729 | "email": "sebastian@phpunit.de" 1730 | } 1731 | ], 1732 | "description": "Diff implementation", 1733 | "homepage": "https://github.com/sebastianbergmann/diff", 1734 | "keywords": [ 1735 | "diff" 1736 | ], 1737 | "time": "2017-05-22T07:24:03+00:00" 1738 | }, 1739 | { 1740 | "name": "sebastian/environment", 1741 | "version": "2.0.0", 1742 | "source": { 1743 | "type": "git", 1744 | "url": "https://github.com/sebastianbergmann/environment.git", 1745 | "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac" 1746 | }, 1747 | "dist": { 1748 | "type": "zip", 1749 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac", 1750 | "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac", 1751 | "shasum": "" 1752 | }, 1753 | "require": { 1754 | "php": "^5.6 || ^7.0" 1755 | }, 1756 | "require-dev": { 1757 | "phpunit/phpunit": "^5.0" 1758 | }, 1759 | "type": "library", 1760 | "extra": { 1761 | "branch-alias": { 1762 | "dev-master": "2.0.x-dev" 1763 | } 1764 | }, 1765 | "autoload": { 1766 | "classmap": [ 1767 | "src/" 1768 | ] 1769 | }, 1770 | "notification-url": "https://packagist.org/downloads/", 1771 | "license": [ 1772 | "BSD-3-Clause" 1773 | ], 1774 | "authors": [ 1775 | { 1776 | "name": "Sebastian Bergmann", 1777 | "email": "sebastian@phpunit.de" 1778 | } 1779 | ], 1780 | "description": "Provides functionality to handle HHVM/PHP environments", 1781 | "homepage": "http://www.github.com/sebastianbergmann/environment", 1782 | "keywords": [ 1783 | "Xdebug", 1784 | "environment", 1785 | "hhvm" 1786 | ], 1787 | "time": "2016-11-26T07:53:53+00:00" 1788 | }, 1789 | { 1790 | "name": "sebastian/exporter", 1791 | "version": "2.0.0", 1792 | "source": { 1793 | "type": "git", 1794 | "url": "https://github.com/sebastianbergmann/exporter.git", 1795 | "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4" 1796 | }, 1797 | "dist": { 1798 | "type": "zip", 1799 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4", 1800 | "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4", 1801 | "shasum": "" 1802 | }, 1803 | "require": { 1804 | "php": ">=5.3.3", 1805 | "sebastian/recursion-context": "~2.0" 1806 | }, 1807 | "require-dev": { 1808 | "ext-mbstring": "*", 1809 | "phpunit/phpunit": "~4.4" 1810 | }, 1811 | "type": "library", 1812 | "extra": { 1813 | "branch-alias": { 1814 | "dev-master": "2.0.x-dev" 1815 | } 1816 | }, 1817 | "autoload": { 1818 | "classmap": [ 1819 | "src/" 1820 | ] 1821 | }, 1822 | "notification-url": "https://packagist.org/downloads/", 1823 | "license": [ 1824 | "BSD-3-Clause" 1825 | ], 1826 | "authors": [ 1827 | { 1828 | "name": "Jeff Welch", 1829 | "email": "whatthejeff@gmail.com" 1830 | }, 1831 | { 1832 | "name": "Volker Dusch", 1833 | "email": "github@wallbash.com" 1834 | }, 1835 | { 1836 | "name": "Bernhard Schussek", 1837 | "email": "bschussek@2bepublished.at" 1838 | }, 1839 | { 1840 | "name": "Sebastian Bergmann", 1841 | "email": "sebastian@phpunit.de" 1842 | }, 1843 | { 1844 | "name": "Adam Harvey", 1845 | "email": "aharvey@php.net" 1846 | } 1847 | ], 1848 | "description": "Provides the functionality to export PHP variables for visualization", 1849 | "homepage": "http://www.github.com/sebastianbergmann/exporter", 1850 | "keywords": [ 1851 | "export", 1852 | "exporter" 1853 | ], 1854 | "time": "2016-11-19T08:54:04+00:00" 1855 | }, 1856 | { 1857 | "name": "sebastian/global-state", 1858 | "version": "1.1.1", 1859 | "source": { 1860 | "type": "git", 1861 | "url": "https://github.com/sebastianbergmann/global-state.git", 1862 | "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" 1863 | }, 1864 | "dist": { 1865 | "type": "zip", 1866 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", 1867 | "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", 1868 | "shasum": "" 1869 | }, 1870 | "require": { 1871 | "php": ">=5.3.3" 1872 | }, 1873 | "require-dev": { 1874 | "phpunit/phpunit": "~4.2" 1875 | }, 1876 | "suggest": { 1877 | "ext-uopz": "*" 1878 | }, 1879 | "type": "library", 1880 | "extra": { 1881 | "branch-alias": { 1882 | "dev-master": "1.0-dev" 1883 | } 1884 | }, 1885 | "autoload": { 1886 | "classmap": [ 1887 | "src/" 1888 | ] 1889 | }, 1890 | "notification-url": "https://packagist.org/downloads/", 1891 | "license": [ 1892 | "BSD-3-Clause" 1893 | ], 1894 | "authors": [ 1895 | { 1896 | "name": "Sebastian Bergmann", 1897 | "email": "sebastian@phpunit.de" 1898 | } 1899 | ], 1900 | "description": "Snapshotting of global state", 1901 | "homepage": "http://www.github.com/sebastianbergmann/global-state", 1902 | "keywords": [ 1903 | "global state" 1904 | ], 1905 | "time": "2015-10-12T03:26:01+00:00" 1906 | }, 1907 | { 1908 | "name": "sebastian/object-enumerator", 1909 | "version": "2.0.1", 1910 | "source": { 1911 | "type": "git", 1912 | "url": "https://github.com/sebastianbergmann/object-enumerator.git", 1913 | "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7" 1914 | }, 1915 | "dist": { 1916 | "type": "zip", 1917 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1311872ac850040a79c3c058bea3e22d0f09cbb7", 1918 | "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7", 1919 | "shasum": "" 1920 | }, 1921 | "require": { 1922 | "php": ">=5.6", 1923 | "sebastian/recursion-context": "~2.0" 1924 | }, 1925 | "require-dev": { 1926 | "phpunit/phpunit": "~5" 1927 | }, 1928 | "type": "library", 1929 | "extra": { 1930 | "branch-alias": { 1931 | "dev-master": "2.0.x-dev" 1932 | } 1933 | }, 1934 | "autoload": { 1935 | "classmap": [ 1936 | "src/" 1937 | ] 1938 | }, 1939 | "notification-url": "https://packagist.org/downloads/", 1940 | "license": [ 1941 | "BSD-3-Clause" 1942 | ], 1943 | "authors": [ 1944 | { 1945 | "name": "Sebastian Bergmann", 1946 | "email": "sebastian@phpunit.de" 1947 | } 1948 | ], 1949 | "description": "Traverses array structures and object graphs to enumerate all referenced objects", 1950 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/", 1951 | "time": "2017-02-18T15:18:39+00:00" 1952 | }, 1953 | { 1954 | "name": "sebastian/recursion-context", 1955 | "version": "2.0.0", 1956 | "source": { 1957 | "type": "git", 1958 | "url": "https://github.com/sebastianbergmann/recursion-context.git", 1959 | "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a" 1960 | }, 1961 | "dist": { 1962 | "type": "zip", 1963 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/2c3ba150cbec723aa057506e73a8d33bdb286c9a", 1964 | "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a", 1965 | "shasum": "" 1966 | }, 1967 | "require": { 1968 | "php": ">=5.3.3" 1969 | }, 1970 | "require-dev": { 1971 | "phpunit/phpunit": "~4.4" 1972 | }, 1973 | "type": "library", 1974 | "extra": { 1975 | "branch-alias": { 1976 | "dev-master": "2.0.x-dev" 1977 | } 1978 | }, 1979 | "autoload": { 1980 | "classmap": [ 1981 | "src/" 1982 | ] 1983 | }, 1984 | "notification-url": "https://packagist.org/downloads/", 1985 | "license": [ 1986 | "BSD-3-Clause" 1987 | ], 1988 | "authors": [ 1989 | { 1990 | "name": "Jeff Welch", 1991 | "email": "whatthejeff@gmail.com" 1992 | }, 1993 | { 1994 | "name": "Sebastian Bergmann", 1995 | "email": "sebastian@phpunit.de" 1996 | }, 1997 | { 1998 | "name": "Adam Harvey", 1999 | "email": "aharvey@php.net" 2000 | } 2001 | ], 2002 | "description": "Provides functionality to recursively process PHP variables", 2003 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context", 2004 | "time": "2016-11-19T07:33:16+00:00" 2005 | }, 2006 | { 2007 | "name": "sebastian/resource-operations", 2008 | "version": "1.0.0", 2009 | "source": { 2010 | "type": "git", 2011 | "url": "https://github.com/sebastianbergmann/resource-operations.git", 2012 | "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" 2013 | }, 2014 | "dist": { 2015 | "type": "zip", 2016 | "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", 2017 | "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", 2018 | "shasum": "" 2019 | }, 2020 | "require": { 2021 | "php": ">=5.6.0" 2022 | }, 2023 | "type": "library", 2024 | "extra": { 2025 | "branch-alias": { 2026 | "dev-master": "1.0.x-dev" 2027 | } 2028 | }, 2029 | "autoload": { 2030 | "classmap": [ 2031 | "src/" 2032 | ] 2033 | }, 2034 | "notification-url": "https://packagist.org/downloads/", 2035 | "license": [ 2036 | "BSD-3-Clause" 2037 | ], 2038 | "authors": [ 2039 | { 2040 | "name": "Sebastian Bergmann", 2041 | "email": "sebastian@phpunit.de" 2042 | } 2043 | ], 2044 | "description": "Provides a list of PHP built-in functions that operate on resources", 2045 | "homepage": "https://www.github.com/sebastianbergmann/resource-operations", 2046 | "time": "2015-07-28T20:34:47+00:00" 2047 | }, 2048 | { 2049 | "name": "sebastian/version", 2050 | "version": "2.0.1", 2051 | "source": { 2052 | "type": "git", 2053 | "url": "https://github.com/sebastianbergmann/version.git", 2054 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" 2055 | }, 2056 | "dist": { 2057 | "type": "zip", 2058 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", 2059 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", 2060 | "shasum": "" 2061 | }, 2062 | "require": { 2063 | "php": ">=5.6" 2064 | }, 2065 | "type": "library", 2066 | "extra": { 2067 | "branch-alias": { 2068 | "dev-master": "2.0.x-dev" 2069 | } 2070 | }, 2071 | "autoload": { 2072 | "classmap": [ 2073 | "src/" 2074 | ] 2075 | }, 2076 | "notification-url": "https://packagist.org/downloads/", 2077 | "license": [ 2078 | "BSD-3-Clause" 2079 | ], 2080 | "authors": [ 2081 | { 2082 | "name": "Sebastian Bergmann", 2083 | "email": "sebastian@phpunit.de", 2084 | "role": "lead" 2085 | } 2086 | ], 2087 | "description": "Library that helps with managing the version number of Git-hosted PHP projects", 2088 | "homepage": "https://github.com/sebastianbergmann/version", 2089 | "time": "2016-10-03T07:35:21+00:00" 2090 | }, 2091 | { 2092 | "name": "stack/builder", 2093 | "version": "v1.0.5", 2094 | "source": { 2095 | "type": "git", 2096 | "url": "https://github.com/stackphp/builder.git", 2097 | "reference": "fb3d136d04c6be41120ebf8c0cc71fe9507d750a" 2098 | }, 2099 | "dist": { 2100 | "type": "zip", 2101 | "url": "https://api.github.com/repos/stackphp/builder/zipball/fb3d136d04c6be41120ebf8c0cc71fe9507d750a", 2102 | "reference": "fb3d136d04c6be41120ebf8c0cc71fe9507d750a", 2103 | "shasum": "" 2104 | }, 2105 | "require": { 2106 | "php": ">=5.3.0", 2107 | "symfony/http-foundation": "~2.1|~3.0|~4.0", 2108 | "symfony/http-kernel": "~2.1|~3.0|~4.0" 2109 | }, 2110 | "require-dev": { 2111 | "silex/silex": "~1.0" 2112 | }, 2113 | "type": "library", 2114 | "extra": { 2115 | "branch-alias": { 2116 | "dev-master": "1.0-dev" 2117 | } 2118 | }, 2119 | "autoload": { 2120 | "psr-0": { 2121 | "Stack": "src" 2122 | } 2123 | }, 2124 | "notification-url": "https://packagist.org/downloads/", 2125 | "license": [ 2126 | "MIT" 2127 | ], 2128 | "authors": [ 2129 | { 2130 | "name": "Igor Wiedler", 2131 | "email": "igor@wiedler.ch" 2132 | } 2133 | ], 2134 | "description": "Builder for stack middlewares based on HttpKernelInterface.", 2135 | "keywords": [ 2136 | "stack" 2137 | ], 2138 | "time": "2017-11-18T14:57:29+00:00" 2139 | }, 2140 | { 2141 | "name": "swiftmailer/swiftmailer", 2142 | "version": "v5.4.9", 2143 | "source": { 2144 | "type": "git", 2145 | "url": "https://github.com/swiftmailer/swiftmailer.git", 2146 | "reference": "7ffc1ea296ed14bf8260b6ef11b80208dbadba91" 2147 | }, 2148 | "dist": { 2149 | "type": "zip", 2150 | "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/7ffc1ea296ed14bf8260b6ef11b80208dbadba91", 2151 | "reference": "7ffc1ea296ed14bf8260b6ef11b80208dbadba91", 2152 | "shasum": "" 2153 | }, 2154 | "require": { 2155 | "php": ">=5.3.3" 2156 | }, 2157 | "require-dev": { 2158 | "mockery/mockery": "~0.9.1", 2159 | "symfony/phpunit-bridge": "~3.2" 2160 | }, 2161 | "type": "library", 2162 | "extra": { 2163 | "branch-alias": { 2164 | "dev-master": "5.4-dev" 2165 | } 2166 | }, 2167 | "autoload": { 2168 | "files": [ 2169 | "lib/swift_required.php" 2170 | ] 2171 | }, 2172 | "notification-url": "https://packagist.org/downloads/", 2173 | "license": [ 2174 | "MIT" 2175 | ], 2176 | "authors": [ 2177 | { 2178 | "name": "Chris Corbyn" 2179 | }, 2180 | { 2181 | "name": "Fabien Potencier", 2182 | "email": "fabien@symfony.com" 2183 | } 2184 | ], 2185 | "description": "Swiftmailer, free feature-rich PHP mailer", 2186 | "homepage": "https://swiftmailer.symfony.com", 2187 | "keywords": [ 2188 | "email", 2189 | "mail", 2190 | "mailer" 2191 | ], 2192 | "time": "2018-01-23T07:37:21+00:00" 2193 | }, 2194 | { 2195 | "name": "symfony/browser-kit", 2196 | "version": "v2.7.41", 2197 | "source": { 2198 | "type": "git", 2199 | "url": "https://github.com/symfony/browser-kit.git", 2200 | "reference": "ba85401ff184aa4151f08a0db4f717fd45455e68" 2201 | }, 2202 | "dist": { 2203 | "type": "zip", 2204 | "url": "https://api.github.com/repos/symfony/browser-kit/zipball/ba85401ff184aa4151f08a0db4f717fd45455e68", 2205 | "reference": "ba85401ff184aa4151f08a0db4f717fd45455e68", 2206 | "shasum": "" 2207 | }, 2208 | "require": { 2209 | "php": ">=5.3.9", 2210 | "symfony/dom-crawler": "~2.1" 2211 | }, 2212 | "require-dev": { 2213 | "symfony/css-selector": "^2.0.5", 2214 | "symfony/process": "~2.3.34|^2.7.6" 2215 | }, 2216 | "suggest": { 2217 | "symfony/process": "" 2218 | }, 2219 | "type": "library", 2220 | "extra": { 2221 | "branch-alias": { 2222 | "dev-master": "2.7-dev" 2223 | } 2224 | }, 2225 | "autoload": { 2226 | "psr-4": { 2227 | "Symfony\\Component\\BrowserKit\\": "" 2228 | }, 2229 | "exclude-from-classmap": [ 2230 | "/Tests/" 2231 | ] 2232 | }, 2233 | "notification-url": "https://packagist.org/downloads/", 2234 | "license": [ 2235 | "MIT" 2236 | ], 2237 | "authors": [ 2238 | { 2239 | "name": "Fabien Potencier", 2240 | "email": "fabien@symfony.com" 2241 | }, 2242 | { 2243 | "name": "Symfony Community", 2244 | "homepage": "https://symfony.com/contributors" 2245 | } 2246 | ], 2247 | "description": "Symfony BrowserKit Component", 2248 | "homepage": "https://symfony.com", 2249 | "time": "2018-01-03T07:23:28+00:00" 2250 | }, 2251 | { 2252 | "name": "symfony/console", 2253 | "version": "v2.7.41", 2254 | "source": { 2255 | "type": "git", 2256 | "url": "https://github.com/symfony/console.git", 2257 | "reference": "a39062a5a1e98a1f1e392e4253a6b3b0ebdece18" 2258 | }, 2259 | "dist": { 2260 | "type": "zip", 2261 | "url": "https://api.github.com/repos/symfony/console/zipball/a39062a5a1e98a1f1e392e4253a6b3b0ebdece18", 2262 | "reference": "a39062a5a1e98a1f1e392e4253a6b3b0ebdece18", 2263 | "shasum": "" 2264 | }, 2265 | "require": { 2266 | "php": ">=5.3.9", 2267 | "symfony/debug": "^2.7.2" 2268 | }, 2269 | "require-dev": { 2270 | "psr/log": "~1.0", 2271 | "symfony/event-dispatcher": "~2.1", 2272 | "symfony/process": "~2.1" 2273 | }, 2274 | "suggest": { 2275 | "psr/log": "For using the console logger", 2276 | "symfony/event-dispatcher": "", 2277 | "symfony/process": "" 2278 | }, 2279 | "type": "library", 2280 | "extra": { 2281 | "branch-alias": { 2282 | "dev-master": "2.7-dev" 2283 | } 2284 | }, 2285 | "autoload": { 2286 | "psr-4": { 2287 | "Symfony\\Component\\Console\\": "" 2288 | }, 2289 | "exclude-from-classmap": [ 2290 | "/Tests/" 2291 | ] 2292 | }, 2293 | "notification-url": "https://packagist.org/downloads/", 2294 | "license": [ 2295 | "MIT" 2296 | ], 2297 | "authors": [ 2298 | { 2299 | "name": "Fabien Potencier", 2300 | "email": "fabien@symfony.com" 2301 | }, 2302 | { 2303 | "name": "Symfony Community", 2304 | "homepage": "https://symfony.com/contributors" 2305 | } 2306 | ], 2307 | "description": "Symfony Console Component", 2308 | "homepage": "https://symfony.com", 2309 | "time": "2018-01-26T15:25:25+00:00" 2310 | }, 2311 | { 2312 | "name": "symfony/css-selector", 2313 | "version": "v2.7.41", 2314 | "source": { 2315 | "type": "git", 2316 | "url": "https://github.com/symfony/css-selector.git", 2317 | "reference": "4f270b68f68e388e5b2a4abec4f96935ab2ef147" 2318 | }, 2319 | "dist": { 2320 | "type": "zip", 2321 | "url": "https://api.github.com/repos/symfony/css-selector/zipball/4f270b68f68e388e5b2a4abec4f96935ab2ef147", 2322 | "reference": "4f270b68f68e388e5b2a4abec4f96935ab2ef147", 2323 | "shasum": "" 2324 | }, 2325 | "require": { 2326 | "php": ">=5.3.9" 2327 | }, 2328 | "type": "library", 2329 | "extra": { 2330 | "branch-alias": { 2331 | "dev-master": "2.7-dev" 2332 | } 2333 | }, 2334 | "autoload": { 2335 | "psr-4": { 2336 | "Symfony\\Component\\CssSelector\\": "" 2337 | }, 2338 | "exclude-from-classmap": [ 2339 | "/Tests/" 2340 | ] 2341 | }, 2342 | "notification-url": "https://packagist.org/downloads/", 2343 | "license": [ 2344 | "MIT" 2345 | ], 2346 | "authors": [ 2347 | { 2348 | "name": "Jean-François Simon", 2349 | "email": "jeanfrancois.simon@sensiolabs.com" 2350 | }, 2351 | { 2352 | "name": "Fabien Potencier", 2353 | "email": "fabien@symfony.com" 2354 | }, 2355 | { 2356 | "name": "Symfony Community", 2357 | "homepage": "https://symfony.com/contributors" 2358 | } 2359 | ], 2360 | "description": "Symfony CssSelector Component", 2361 | "homepage": "https://symfony.com", 2362 | "time": "2018-01-03T07:23:28+00:00" 2363 | }, 2364 | { 2365 | "name": "symfony/debug", 2366 | "version": "v2.7.41", 2367 | "source": { 2368 | "type": "git", 2369 | "url": "https://github.com/symfony/debug.git", 2370 | "reference": "bc9e38887a540abd287ff43c1a334f8e3f7aebea" 2371 | }, 2372 | "dist": { 2373 | "type": "zip", 2374 | "url": "https://api.github.com/repos/symfony/debug/zipball/bc9e38887a540abd287ff43c1a334f8e3f7aebea", 2375 | "reference": "bc9e38887a540abd287ff43c1a334f8e3f7aebea", 2376 | "shasum": "" 2377 | }, 2378 | "require": { 2379 | "php": ">=5.3.9", 2380 | "psr/log": "~1.0" 2381 | }, 2382 | "conflict": { 2383 | "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" 2384 | }, 2385 | "require-dev": { 2386 | "symfony/class-loader": "~2.2", 2387 | "symfony/http-kernel": "~2.3.24|~2.5.9|^2.6.2" 2388 | }, 2389 | "type": "library", 2390 | "extra": { 2391 | "branch-alias": { 2392 | "dev-master": "2.7-dev" 2393 | } 2394 | }, 2395 | "autoload": { 2396 | "psr-4": { 2397 | "Symfony\\Component\\Debug\\": "" 2398 | }, 2399 | "exclude-from-classmap": [ 2400 | "/Tests/" 2401 | ] 2402 | }, 2403 | "notification-url": "https://packagist.org/downloads/", 2404 | "license": [ 2405 | "MIT" 2406 | ], 2407 | "authors": [ 2408 | { 2409 | "name": "Fabien Potencier", 2410 | "email": "fabien@symfony.com" 2411 | }, 2412 | { 2413 | "name": "Symfony Community", 2414 | "homepage": "https://symfony.com/contributors" 2415 | } 2416 | ], 2417 | "description": "Symfony Debug Component", 2418 | "homepage": "https://symfony.com", 2419 | "time": "2018-01-18T22:01:50+00:00" 2420 | }, 2421 | { 2422 | "name": "symfony/dom-crawler", 2423 | "version": "v2.7.41", 2424 | "source": { 2425 | "type": "git", 2426 | "url": "https://github.com/symfony/dom-crawler.git", 2427 | "reference": "2855b6b05c1e163f9d7bd97c8137c9ad6e8223d8" 2428 | }, 2429 | "dist": { 2430 | "type": "zip", 2431 | "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/2855b6b05c1e163f9d7bd97c8137c9ad6e8223d8", 2432 | "reference": "2855b6b05c1e163f9d7bd97c8137c9ad6e8223d8", 2433 | "shasum": "" 2434 | }, 2435 | "require": { 2436 | "php": ">=5.3.9" 2437 | }, 2438 | "require-dev": { 2439 | "symfony/css-selector": "~2.3" 2440 | }, 2441 | "suggest": { 2442 | "symfony/css-selector": "" 2443 | }, 2444 | "type": "library", 2445 | "extra": { 2446 | "branch-alias": { 2447 | "dev-master": "2.7-dev" 2448 | } 2449 | }, 2450 | "autoload": { 2451 | "psr-4": { 2452 | "Symfony\\Component\\DomCrawler\\": "" 2453 | }, 2454 | "exclude-from-classmap": [ 2455 | "/Tests/" 2456 | ] 2457 | }, 2458 | "notification-url": "https://packagist.org/downloads/", 2459 | "license": [ 2460 | "MIT" 2461 | ], 2462 | "authors": [ 2463 | { 2464 | "name": "Fabien Potencier", 2465 | "email": "fabien@symfony.com" 2466 | }, 2467 | { 2468 | "name": "Symfony Community", 2469 | "homepage": "https://symfony.com/contributors" 2470 | } 2471 | ], 2472 | "description": "Symfony DomCrawler Component", 2473 | "homepage": "https://symfony.com", 2474 | "time": "2018-01-03T07:23:28+00:00" 2475 | }, 2476 | { 2477 | "name": "symfony/event-dispatcher", 2478 | "version": "v2.8.34", 2479 | "source": { 2480 | "type": "git", 2481 | "url": "https://github.com/symfony/event-dispatcher.git", 2482 | "reference": "d64be24fc1eba62f9daace8a8918f797fc8e87cc" 2483 | }, 2484 | "dist": { 2485 | "type": "zip", 2486 | "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d64be24fc1eba62f9daace8a8918f797fc8e87cc", 2487 | "reference": "d64be24fc1eba62f9daace8a8918f797fc8e87cc", 2488 | "shasum": "" 2489 | }, 2490 | "require": { 2491 | "php": ">=5.3.9" 2492 | }, 2493 | "require-dev": { 2494 | "psr/log": "~1.0", 2495 | "symfony/config": "^2.0.5|~3.0.0", 2496 | "symfony/dependency-injection": "~2.6|~3.0.0", 2497 | "symfony/expression-language": "~2.6|~3.0.0", 2498 | "symfony/stopwatch": "~2.3|~3.0.0" 2499 | }, 2500 | "suggest": { 2501 | "symfony/dependency-injection": "", 2502 | "symfony/http-kernel": "" 2503 | }, 2504 | "type": "library", 2505 | "extra": { 2506 | "branch-alias": { 2507 | "dev-master": "2.8-dev" 2508 | } 2509 | }, 2510 | "autoload": { 2511 | "psr-4": { 2512 | "Symfony\\Component\\EventDispatcher\\": "" 2513 | }, 2514 | "exclude-from-classmap": [ 2515 | "/Tests/" 2516 | ] 2517 | }, 2518 | "notification-url": "https://packagist.org/downloads/", 2519 | "license": [ 2520 | "MIT" 2521 | ], 2522 | "authors": [ 2523 | { 2524 | "name": "Fabien Potencier", 2525 | "email": "fabien@symfony.com" 2526 | }, 2527 | { 2528 | "name": "Symfony Community", 2529 | "homepage": "https://symfony.com/contributors" 2530 | } 2531 | ], 2532 | "description": "Symfony EventDispatcher Component", 2533 | "homepage": "https://symfony.com", 2534 | "time": "2018-01-03T07:36:31+00:00" 2535 | }, 2536 | { 2537 | "name": "symfony/filesystem", 2538 | "version": "v2.8.34", 2539 | "source": { 2540 | "type": "git", 2541 | "url": "https://github.com/symfony/filesystem.git", 2542 | "reference": "1f4e8351e0196562f5e8ec584baeceeb8e2e92f6" 2543 | }, 2544 | "dist": { 2545 | "type": "zip", 2546 | "url": "https://api.github.com/repos/symfony/filesystem/zipball/1f4e8351e0196562f5e8ec584baeceeb8e2e92f6", 2547 | "reference": "1f4e8351e0196562f5e8ec584baeceeb8e2e92f6", 2548 | "shasum": "" 2549 | }, 2550 | "require": { 2551 | "php": ">=5.3.9" 2552 | }, 2553 | "type": "library", 2554 | "extra": { 2555 | "branch-alias": { 2556 | "dev-master": "2.8-dev" 2557 | } 2558 | }, 2559 | "autoload": { 2560 | "psr-4": { 2561 | "Symfony\\Component\\Filesystem\\": "" 2562 | }, 2563 | "exclude-from-classmap": [ 2564 | "/Tests/" 2565 | ] 2566 | }, 2567 | "notification-url": "https://packagist.org/downloads/", 2568 | "license": [ 2569 | "MIT" 2570 | ], 2571 | "authors": [ 2572 | { 2573 | "name": "Fabien Potencier", 2574 | "email": "fabien@symfony.com" 2575 | }, 2576 | { 2577 | "name": "Symfony Community", 2578 | "homepage": "https://symfony.com/contributors" 2579 | } 2580 | ], 2581 | "description": "Symfony Filesystem Component", 2582 | "homepage": "https://symfony.com", 2583 | "time": "2018-01-03T07:36:31+00:00" 2584 | }, 2585 | { 2586 | "name": "symfony/finder", 2587 | "version": "v2.7.41", 2588 | "source": { 2589 | "type": "git", 2590 | "url": "https://github.com/symfony/finder.git", 2591 | "reference": "75f766f4a1c60407ec371cd2a7ef0a09d0e8e745" 2592 | }, 2593 | "dist": { 2594 | "type": "zip", 2595 | "url": "https://api.github.com/repos/symfony/finder/zipball/75f766f4a1c60407ec371cd2a7ef0a09d0e8e745", 2596 | "reference": "75f766f4a1c60407ec371cd2a7ef0a09d0e8e745", 2597 | "shasum": "" 2598 | }, 2599 | "require": { 2600 | "php": ">=5.3.9" 2601 | }, 2602 | "type": "library", 2603 | "extra": { 2604 | "branch-alias": { 2605 | "dev-master": "2.7-dev" 2606 | } 2607 | }, 2608 | "autoload": { 2609 | "psr-4": { 2610 | "Symfony\\Component\\Finder\\": "" 2611 | }, 2612 | "exclude-from-classmap": [ 2613 | "/Tests/" 2614 | ] 2615 | }, 2616 | "notification-url": "https://packagist.org/downloads/", 2617 | "license": [ 2618 | "MIT" 2619 | ], 2620 | "authors": [ 2621 | { 2622 | "name": "Fabien Potencier", 2623 | "email": "fabien@symfony.com" 2624 | }, 2625 | { 2626 | "name": "Symfony Community", 2627 | "homepage": "https://symfony.com/contributors" 2628 | } 2629 | ], 2630 | "description": "Symfony Finder Component", 2631 | "homepage": "https://symfony.com", 2632 | "time": "2018-01-24T17:56:32+00:00" 2633 | }, 2634 | { 2635 | "name": "symfony/http-foundation", 2636 | "version": "v2.7.41", 2637 | "source": { 2638 | "type": "git", 2639 | "url": "https://github.com/symfony/http-foundation.git", 2640 | "reference": "38383ce661cc260dfcd0e4b0b588f3dfa5572fb0" 2641 | }, 2642 | "dist": { 2643 | "type": "zip", 2644 | "url": "https://api.github.com/repos/symfony/http-foundation/zipball/38383ce661cc260dfcd0e4b0b588f3dfa5572fb0", 2645 | "reference": "38383ce661cc260dfcd0e4b0b588f3dfa5572fb0", 2646 | "shasum": "" 2647 | }, 2648 | "require": { 2649 | "php": ">=5.3.9", 2650 | "symfony/polyfill-mbstring": "~1.1" 2651 | }, 2652 | "require-dev": { 2653 | "symfony/expression-language": "~2.4" 2654 | }, 2655 | "type": "library", 2656 | "extra": { 2657 | "branch-alias": { 2658 | "dev-master": "2.7-dev" 2659 | } 2660 | }, 2661 | "autoload": { 2662 | "psr-4": { 2663 | "Symfony\\Component\\HttpFoundation\\": "" 2664 | }, 2665 | "classmap": [ 2666 | "Resources/stubs" 2667 | ], 2668 | "exclude-from-classmap": [ 2669 | "/Tests/" 2670 | ] 2671 | }, 2672 | "notification-url": "https://packagist.org/downloads/", 2673 | "license": [ 2674 | "MIT" 2675 | ], 2676 | "authors": [ 2677 | { 2678 | "name": "Fabien Potencier", 2679 | "email": "fabien@symfony.com" 2680 | }, 2681 | { 2682 | "name": "Symfony Community", 2683 | "homepage": "https://symfony.com/contributors" 2684 | } 2685 | ], 2686 | "description": "Symfony HttpFoundation Component", 2687 | "homepage": "https://symfony.com", 2688 | "time": "2018-01-29T09:18:42+00:00" 2689 | }, 2690 | { 2691 | "name": "symfony/http-kernel", 2692 | "version": "v2.7.41", 2693 | "source": { 2694 | "type": "git", 2695 | "url": "https://github.com/symfony/http-kernel.git", 2696 | "reference": "6b1759b40031e7f82cf3231c0be43785699e6706" 2697 | }, 2698 | "dist": { 2699 | "type": "zip", 2700 | "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6b1759b40031e7f82cf3231c0be43785699e6706", 2701 | "reference": "6b1759b40031e7f82cf3231c0be43785699e6706", 2702 | "shasum": "" 2703 | }, 2704 | "require": { 2705 | "php": ">=5.3.9", 2706 | "psr/log": "~1.0", 2707 | "symfony/debug": "^2.6.2", 2708 | "symfony/event-dispatcher": "^2.6.7", 2709 | "symfony/http-foundation": "~2.7.36|^2.8.29" 2710 | }, 2711 | "conflict": { 2712 | "symfony/config": "<2.7", 2713 | "twig/twig": "<1.34|<2.4,>=2" 2714 | }, 2715 | "require-dev": { 2716 | "symfony/browser-kit": "~2.3", 2717 | "symfony/class-loader": "~2.1", 2718 | "symfony/config": "~2.7", 2719 | "symfony/console": "~2.3", 2720 | "symfony/css-selector": "^2.0.5", 2721 | "symfony/dependency-injection": "~2.2", 2722 | "symfony/dom-crawler": "^2.0.5", 2723 | "symfony/expression-language": "~2.4", 2724 | "symfony/finder": "^2.0.5", 2725 | "symfony/process": "^2.0.5", 2726 | "symfony/routing": "~2.2", 2727 | "symfony/stopwatch": "~2.3", 2728 | "symfony/templating": "~2.2", 2729 | "symfony/translation": "^2.0.5", 2730 | "symfony/var-dumper": "~2.6" 2731 | }, 2732 | "suggest": { 2733 | "symfony/browser-kit": "", 2734 | "symfony/class-loader": "", 2735 | "symfony/config": "", 2736 | "symfony/console": "", 2737 | "symfony/dependency-injection": "", 2738 | "symfony/finder": "", 2739 | "symfony/var-dumper": "" 2740 | }, 2741 | "type": "library", 2742 | "extra": { 2743 | "branch-alias": { 2744 | "dev-master": "2.7-dev" 2745 | } 2746 | }, 2747 | "autoload": { 2748 | "psr-4": { 2749 | "Symfony\\Component\\HttpKernel\\": "" 2750 | }, 2751 | "exclude-from-classmap": [ 2752 | "/Tests/" 2753 | ] 2754 | }, 2755 | "notification-url": "https://packagist.org/downloads/", 2756 | "license": [ 2757 | "MIT" 2758 | ], 2759 | "authors": [ 2760 | { 2761 | "name": "Fabien Potencier", 2762 | "email": "fabien@symfony.com" 2763 | }, 2764 | { 2765 | "name": "Symfony Community", 2766 | "homepage": "https://symfony.com/contributors" 2767 | } 2768 | ], 2769 | "description": "Symfony HttpKernel Component", 2770 | "homepage": "https://symfony.com", 2771 | "time": "2018-01-29T10:08:39+00:00" 2772 | }, 2773 | { 2774 | "name": "symfony/polyfill-mbstring", 2775 | "version": "v1.6.0", 2776 | "source": { 2777 | "type": "git", 2778 | "url": "https://github.com/symfony/polyfill-mbstring.git", 2779 | "reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296" 2780 | }, 2781 | "dist": { 2782 | "type": "zip", 2783 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296", 2784 | "reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296", 2785 | "shasum": "" 2786 | }, 2787 | "require": { 2788 | "php": ">=5.3.3" 2789 | }, 2790 | "suggest": { 2791 | "ext-mbstring": "For best performance" 2792 | }, 2793 | "type": "library", 2794 | "extra": { 2795 | "branch-alias": { 2796 | "dev-master": "1.6-dev" 2797 | } 2798 | }, 2799 | "autoload": { 2800 | "psr-4": { 2801 | "Symfony\\Polyfill\\Mbstring\\": "" 2802 | }, 2803 | "files": [ 2804 | "bootstrap.php" 2805 | ] 2806 | }, 2807 | "notification-url": "https://packagist.org/downloads/", 2808 | "license": [ 2809 | "MIT" 2810 | ], 2811 | "authors": [ 2812 | { 2813 | "name": "Nicolas Grekas", 2814 | "email": "p@tchwork.com" 2815 | }, 2816 | { 2817 | "name": "Symfony Community", 2818 | "homepage": "https://symfony.com/contributors" 2819 | } 2820 | ], 2821 | "description": "Symfony polyfill for the Mbstring extension", 2822 | "homepage": "https://symfony.com", 2823 | "keywords": [ 2824 | "compatibility", 2825 | "mbstring", 2826 | "polyfill", 2827 | "portable", 2828 | "shim" 2829 | ], 2830 | "time": "2017-10-11T12:05:26+00:00" 2831 | }, 2832 | { 2833 | "name": "symfony/process", 2834 | "version": "v2.7.41", 2835 | "source": { 2836 | "type": "git", 2837 | "url": "https://github.com/symfony/process.git", 2838 | "reference": "9f3ba7d13b39d3808ce46715da5350b98368b9de" 2839 | }, 2840 | "dist": { 2841 | "type": "zip", 2842 | "url": "https://api.github.com/repos/symfony/process/zipball/9f3ba7d13b39d3808ce46715da5350b98368b9de", 2843 | "reference": "9f3ba7d13b39d3808ce46715da5350b98368b9de", 2844 | "shasum": "" 2845 | }, 2846 | "require": { 2847 | "php": ">=5.3.9" 2848 | }, 2849 | "type": "library", 2850 | "extra": { 2851 | "branch-alias": { 2852 | "dev-master": "2.7-dev" 2853 | } 2854 | }, 2855 | "autoload": { 2856 | "psr-4": { 2857 | "Symfony\\Component\\Process\\": "" 2858 | }, 2859 | "exclude-from-classmap": [ 2860 | "/Tests/" 2861 | ] 2862 | }, 2863 | "notification-url": "https://packagist.org/downloads/", 2864 | "license": [ 2865 | "MIT" 2866 | ], 2867 | "authors": [ 2868 | { 2869 | "name": "Fabien Potencier", 2870 | "email": "fabien@symfony.com" 2871 | }, 2872 | { 2873 | "name": "Symfony Community", 2874 | "homepage": "https://symfony.com/contributors" 2875 | } 2876 | ], 2877 | "description": "Symfony Process Component", 2878 | "homepage": "https://symfony.com", 2879 | "time": "2018-01-21T19:40:00+00:00" 2880 | }, 2881 | { 2882 | "name": "symfony/routing", 2883 | "version": "v2.7.41", 2884 | "source": { 2885 | "type": "git", 2886 | "url": "https://github.com/symfony/routing.git", 2887 | "reference": "f9e62983a64343f9845ab4a15656cf1e1719809a" 2888 | }, 2889 | "dist": { 2890 | "type": "zip", 2891 | "url": "https://api.github.com/repos/symfony/routing/zipball/f9e62983a64343f9845ab4a15656cf1e1719809a", 2892 | "reference": "f9e62983a64343f9845ab4a15656cf1e1719809a", 2893 | "shasum": "" 2894 | }, 2895 | "require": { 2896 | "php": ">=5.3.9" 2897 | }, 2898 | "conflict": { 2899 | "symfony/config": "<2.7" 2900 | }, 2901 | "require-dev": { 2902 | "doctrine/annotations": "~1.0", 2903 | "doctrine/common": "~2.2", 2904 | "psr/log": "~1.0", 2905 | "symfony/config": "~2.7", 2906 | "symfony/expression-language": "~2.4", 2907 | "symfony/http-foundation": "~2.3", 2908 | "symfony/yaml": "^2.0.5" 2909 | }, 2910 | "suggest": { 2911 | "doctrine/annotations": "For using the annotation loader", 2912 | "symfony/config": "For using the all-in-one router or any loader", 2913 | "symfony/expression-language": "For using expression matching", 2914 | "symfony/http-foundation": "For using a Symfony Request object", 2915 | "symfony/yaml": "For using the YAML loader" 2916 | }, 2917 | "type": "library", 2918 | "extra": { 2919 | "branch-alias": { 2920 | "dev-master": "2.7-dev" 2921 | } 2922 | }, 2923 | "autoload": { 2924 | "psr-4": { 2925 | "Symfony\\Component\\Routing\\": "" 2926 | }, 2927 | "exclude-from-classmap": [ 2928 | "/Tests/" 2929 | ] 2930 | }, 2931 | "notification-url": "https://packagist.org/downloads/", 2932 | "license": [ 2933 | "MIT" 2934 | ], 2935 | "authors": [ 2936 | { 2937 | "name": "Fabien Potencier", 2938 | "email": "fabien@symfony.com" 2939 | }, 2940 | { 2941 | "name": "Symfony Community", 2942 | "homepage": "https://symfony.com/contributors" 2943 | } 2944 | ], 2945 | "description": "Symfony Routing Component", 2946 | "homepage": "https://symfony.com", 2947 | "keywords": [ 2948 | "router", 2949 | "routing", 2950 | "uri", 2951 | "url" 2952 | ], 2953 | "time": "2018-01-16T16:51:05+00:00" 2954 | }, 2955 | { 2956 | "name": "symfony/security-core", 2957 | "version": "v2.7.8", 2958 | "source": { 2959 | "type": "git", 2960 | "url": "https://github.com/symfony/security-core.git", 2961 | "reference": "e8521e268aab1a1ae39764353d194da59e818551" 2962 | }, 2963 | "dist": { 2964 | "type": "zip", 2965 | "url": "https://api.github.com/repos/symfony/security-core/zipball/e8521e268aab1a1ae39764353d194da59e818551", 2966 | "reference": "e8521e268aab1a1ae39764353d194da59e818551", 2967 | "shasum": "" 2968 | }, 2969 | "require": { 2970 | "php": ">=5.3.9" 2971 | }, 2972 | "require-dev": { 2973 | "ircmaxell/password-compat": "1.0.*", 2974 | "psr/log": "~1.0", 2975 | "symfony/event-dispatcher": "~2.1", 2976 | "symfony/expression-language": "~2.6", 2977 | "symfony/http-foundation": "~2.4", 2978 | "symfony/validator": "~2.5,>=2.5.9" 2979 | }, 2980 | "suggest": { 2981 | "ircmaxell/password-compat": "For using the BCrypt password encoder in PHP <5.5", 2982 | "symfony/event-dispatcher": "", 2983 | "symfony/expression-language": "For using the expression voter", 2984 | "symfony/http-foundation": "", 2985 | "symfony/validator": "For using the user password constraint" 2986 | }, 2987 | "type": "library", 2988 | "extra": { 2989 | "branch-alias": { 2990 | "dev-master": "2.7-dev" 2991 | } 2992 | }, 2993 | "autoload": { 2994 | "psr-4": { 2995 | "Symfony\\Component\\Security\\Core\\": "" 2996 | }, 2997 | "exclude-from-classmap": [ 2998 | "/Tests/" 2999 | ] 3000 | }, 3001 | "notification-url": "https://packagist.org/downloads/", 3002 | "license": [ 3003 | "MIT" 3004 | ], 3005 | "authors": [ 3006 | { 3007 | "name": "Fabien Potencier", 3008 | "email": "fabien@symfony.com" 3009 | }, 3010 | { 3011 | "name": "Symfony Community", 3012 | "homepage": "https://symfony.com/contributors" 3013 | } 3014 | ], 3015 | "description": "Symfony Security Component - Core Library", 3016 | "homepage": "https://symfony.com", 3017 | "time": "2015-12-23T18:13:52+00:00" 3018 | }, 3019 | { 3020 | "name": "symfony/translation", 3021 | "version": "v2.7.41", 3022 | "source": { 3023 | "type": "git", 3024 | "url": "https://github.com/symfony/translation.git", 3025 | "reference": "bf521bfd1ba3f532810a1b3e2a81e8bfa15dce47" 3026 | }, 3027 | "dist": { 3028 | "type": "zip", 3029 | "url": "https://api.github.com/repos/symfony/translation/zipball/bf521bfd1ba3f532810a1b3e2a81e8bfa15dce47", 3030 | "reference": "bf521bfd1ba3f532810a1b3e2a81e8bfa15dce47", 3031 | "shasum": "" 3032 | }, 3033 | "require": { 3034 | "php": ">=5.3.9" 3035 | }, 3036 | "conflict": { 3037 | "symfony/config": "<2.7" 3038 | }, 3039 | "require-dev": { 3040 | "psr/log": "~1.0", 3041 | "symfony/config": "~2.7", 3042 | "symfony/intl": "~2.7.25|^2.8.18", 3043 | "symfony/yaml": "~2.2" 3044 | }, 3045 | "suggest": { 3046 | "psr/log": "To use logging capability in translator", 3047 | "symfony/config": "", 3048 | "symfony/yaml": "" 3049 | }, 3050 | "type": "library", 3051 | "extra": { 3052 | "branch-alias": { 3053 | "dev-master": "2.7-dev" 3054 | } 3055 | }, 3056 | "autoload": { 3057 | "psr-4": { 3058 | "Symfony\\Component\\Translation\\": "" 3059 | }, 3060 | "exclude-from-classmap": [ 3061 | "/Tests/" 3062 | ] 3063 | }, 3064 | "notification-url": "https://packagist.org/downloads/", 3065 | "license": [ 3066 | "MIT" 3067 | ], 3068 | "authors": [ 3069 | { 3070 | "name": "Fabien Potencier", 3071 | "email": "fabien@symfony.com" 3072 | }, 3073 | { 3074 | "name": "Symfony Community", 3075 | "homepage": "https://symfony.com/contributors" 3076 | } 3077 | ], 3078 | "description": "Symfony Translation Component", 3079 | "homepage": "https://symfony.com", 3080 | "time": "2018-01-17T08:38:26+00:00" 3081 | }, 3082 | { 3083 | "name": "symfony/yaml", 3084 | "version": "v3.3.16", 3085 | "source": { 3086 | "type": "git", 3087 | "url": "https://github.com/symfony/yaml.git", 3088 | "reference": "af615970e265543a26ee712c958404eb9b7ac93d" 3089 | }, 3090 | "dist": { 3091 | "type": "zip", 3092 | "url": "https://api.github.com/repos/symfony/yaml/zipball/af615970e265543a26ee712c958404eb9b7ac93d", 3093 | "reference": "af615970e265543a26ee712c958404eb9b7ac93d", 3094 | "shasum": "" 3095 | }, 3096 | "require": { 3097 | "php": "^5.5.9|>=7.0.8" 3098 | }, 3099 | "require-dev": { 3100 | "symfony/console": "~2.8|~3.0" 3101 | }, 3102 | "suggest": { 3103 | "symfony/console": "For validating YAML files using the lint command" 3104 | }, 3105 | "type": "library", 3106 | "extra": { 3107 | "branch-alias": { 3108 | "dev-master": "3.3-dev" 3109 | } 3110 | }, 3111 | "autoload": { 3112 | "psr-4": { 3113 | "Symfony\\Component\\Yaml\\": "" 3114 | }, 3115 | "exclude-from-classmap": [ 3116 | "/Tests/" 3117 | ] 3118 | }, 3119 | "notification-url": "https://packagist.org/downloads/", 3120 | "license": [ 3121 | "MIT" 3122 | ], 3123 | "authors": [ 3124 | { 3125 | "name": "Fabien Potencier", 3126 | "email": "fabien@symfony.com" 3127 | }, 3128 | { 3129 | "name": "Symfony Community", 3130 | "homepage": "https://symfony.com/contributors" 3131 | } 3132 | ], 3133 | "description": "Symfony Yaml Component", 3134 | "homepage": "https://symfony.com", 3135 | "time": "2018-01-20T15:04:53+00:00" 3136 | }, 3137 | { 3138 | "name": "webmozart/assert", 3139 | "version": "1.3.0", 3140 | "source": { 3141 | "type": "git", 3142 | "url": "https://github.com/webmozart/assert.git", 3143 | "reference": "0df1908962e7a3071564e857d86874dad1ef204a" 3144 | }, 3145 | "dist": { 3146 | "type": "zip", 3147 | "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a", 3148 | "reference": "0df1908962e7a3071564e857d86874dad1ef204a", 3149 | "shasum": "" 3150 | }, 3151 | "require": { 3152 | "php": "^5.3.3 || ^7.0" 3153 | }, 3154 | "require-dev": { 3155 | "phpunit/phpunit": "^4.6", 3156 | "sebastian/version": "^1.0.1" 3157 | }, 3158 | "type": "library", 3159 | "extra": { 3160 | "branch-alias": { 3161 | "dev-master": "1.3-dev" 3162 | } 3163 | }, 3164 | "autoload": { 3165 | "psr-4": { 3166 | "Webmozart\\Assert\\": "src/" 3167 | } 3168 | }, 3169 | "notification-url": "https://packagist.org/downloads/", 3170 | "license": [ 3171 | "MIT" 3172 | ], 3173 | "authors": [ 3174 | { 3175 | "name": "Bernhard Schussek", 3176 | "email": "bschussek@gmail.com" 3177 | } 3178 | ], 3179 | "description": "Assertions to validate method input/output with nice error messages.", 3180 | "keywords": [ 3181 | "assert", 3182 | "check", 3183 | "validate" 3184 | ], 3185 | "time": "2018-01-29T19:49:41+00:00" 3186 | } 3187 | ], 3188 | "aliases": [], 3189 | "minimum-stability": "stable", 3190 | "stability-flags": [], 3191 | "prefer-stable": false, 3192 | "prefer-lowest": false, 3193 | "platform": { 3194 | "php": ">=5.6.4", 3195 | "ext-openssl": "*" 3196 | }, 3197 | "platform-dev": [] 3198 | } 3199 | --------------------------------------------------------------------------------