├── .env ├── .gitignore ├── app ├── Console │ ├── Commands │ │ └── .gitkeep │ └── Kernel.php ├── Events │ └── Event.php ├── Exceptions │ └── Handler.php ├── Http │ ├── Controllers │ │ ├── AuthenticateController.php │ │ ├── BackendController.php │ │ └── Controller.php │ ├── Middleware │ │ └── ExampleMiddleware.php │ └── routes.php ├── Jobs │ └── Job.php ├── Listeners │ └── Listener.php ├── Models │ └── ApiSubscriber.php └── Providers │ ├── AppServiceProvider.php │ ├── AuthServiceProvider.php │ └── EventServiceProvider.php ├── artisan ├── bootstrap └── app.php ├── composer.json ├── composer.lock ├── config ├── auth.php ├── cors.php └── jwt.php ├── database ├── factories │ └── ModelFactory.php ├── migrations │ ├── .gitkeep │ └── 2015_11_30_095335_create_api_subscribers_table.php └── seeds │ └── DatabaseSeeder.php ├── lumendingojwtapi.json.postman_collection ├── phpunit.xml ├── public ├── .htaccess └── index.php ├── readme.md ├── resources ├── lang │ └── en │ │ └── validation.php └── views │ └── .gitkeep ├── server.php ├── storage ├── app │ └── .gitignore ├── framework │ ├── cache │ │ └── .gitignore │ ├── sessions │ │ └── .gitignore │ └── views │ │ └── .gitignore └── logs │ └── .gitignore └── tests ├── ExampleTest.php └── TestCase.php /.env: -------------------------------------------------------------------------------- 1 | APP_ENV=local 2 | APP_DEBUG=true 3 | APP_KEY=SomeRandomKey!!! 4 | 5 | APP_LOCALE=en 6 | APP_FALLBACK_LOCALE=en 7 | 8 | DB_CONNECTION=mysql 9 | DB_HOST=localhost 10 | DB_PORT=3306 11 | DB_DATABASE=lumendingojwtapi 12 | DB_USERNAME=homestead 13 | DB_PASSWORD=secret 14 | 15 | CACHE_DRIVER=memcached 16 | SESSION_DRIVER=memcached 17 | QUEUE_DRIVER=database 18 | 19 | # MAIL_DRIVER=smtp 20 | # MAIL_HOST=mailtrap.io 21 | # MAIL_PORT=2525 22 | # MAIL_USERNAME=null 23 | # MAIL_PASSWORD=null 24 | # MAIL_FROM_ADDRESS=null 25 | # MAIL_FROM_NAME=null 26 | 27 | # FILESYSTEM_DRIVER=local 28 | # FILESYSTEM_CLOUD=s3 29 | 30 | # S3_KEY=null 31 | # S3_SECRET=null 32 | # S3_REGION=null 33 | # S3_BUCKET=null 34 | 35 | # RACKSPACE_USERNAME=null 36 | # RACKSPACE_KEY=null 37 | # RACKSPACE_CONTAINER=null 38 | # RACKSPACE_REGION=null 39 | 40 | # DINGO/API 41 | API_STANDARDS_TREE=vnd 42 | API_DOMAIN=lumendingojwtapi.local 43 | API_VERSION=v1 44 | API_NAME=lumendingojwtapi 45 | API_CONDITIONAL_REQUEST=true 46 | API_STRICT=false 47 | API_DEBUG=true 48 | 49 | # JWT 50 | JWT_SECRET=GenerateWith:: #php artisan jwt:secret -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /vendor 2 | .idea 3 | -------------------------------------------------------------------------------- /app/Console/Commands/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0plus1/lumendingojwtapi/06f020d44ca8db5711122bd638f4e8347b27f7a1/app/Console/Commands/.gitkeep -------------------------------------------------------------------------------- /app/Console/Kernel.php: -------------------------------------------------------------------------------- 1 | auth = $auth; 14 | } 15 | 16 | public function backend(Request $request) 17 | { 18 | // grab credentials from the request 19 | $credentials = $request->only('email', 'password'); 20 | 21 | try { 22 | // attempt to verify the credentials and create a token for the user 23 | if (! $token = $this->auth->attempt($credentials)) { 24 | return response()->json(['error' => 'invalid_credentials'], 401); 25 | } 26 | } catch (JWTException $e) { 27 | // something went wrong whilst attempting to encode the token 28 | return response()->json(['error' => 'could_not_create_token'], 500); 29 | } 30 | 31 | // all good so return the token 32 | return response()->json(compact('token')); 33 | } 34 | } -------------------------------------------------------------------------------- /app/Http/Controllers/BackendController.php: -------------------------------------------------------------------------------- 1 | user(); 19 | 20 | return $user; 21 | } 22 | } -------------------------------------------------------------------------------- /app/Http/Controllers/Controller.php: -------------------------------------------------------------------------------- 1 | version('v1', ['middleware' => 'api.auth', 'providers' => 'jwt'], function ($api) { 18 | $api->get('/index', 'App\Http\Controllers\BackendController@index'); 19 | }); 20 | 21 | // Publicly accessible routes 22 | $api->version('v1', [], function ($api) { 23 | $api->post('/authenticate', 'App\Http\Controllers\AuthenticateController@backend'); 24 | }); 25 | -------------------------------------------------------------------------------- /app/Jobs/Job.php: -------------------------------------------------------------------------------- 1 | attributes['password'] = app('hash')->make($value); 23 | } 24 | 25 | /** 26 | * Get the identifier that will be stored in the subject claim of the JWT 27 | * 28 | * @return mixed 29 | */ 30 | public function getJWTIdentifier() 31 | { 32 | return $this->getKey(); 33 | } 34 | /** 35 | * Return a key value array, containing any custom claims to be added to the JWT 36 | * 37 | * @return array 38 | */ 39 | public function getJWTCustomClaims() 40 | { 41 | return []; 42 | } 43 | } -------------------------------------------------------------------------------- /app/Providers/AppServiceProvider.php: -------------------------------------------------------------------------------- 1 | app['auth']->viaRequest('api', function ($request) { 34 | if ($request->input('api_token')) { 35 | return User::where('api_token', $request->input('api_token'))->first(); 36 | } 37 | }); 38 | } 39 | } -------------------------------------------------------------------------------- /app/Providers/EventServiceProvider.php: -------------------------------------------------------------------------------- 1 | [ 16 | 'App\Listeners\EventListener', 17 | ], 18 | ]; 19 | } 20 | -------------------------------------------------------------------------------- /artisan: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env php 2 | make( 32 | 'Illuminate\Contracts\Console\Kernel' 33 | ); 34 | 35 | exit($kernel->handle(new ArgvInput, new ConsoleOutput)); 36 | -------------------------------------------------------------------------------- /bootstrap/app.php: -------------------------------------------------------------------------------- 1 | load(); 7 | } catch (Dotenv\Exception\InvalidPathException $e) { 8 | // 9 | } 10 | 11 | /* 12 | |-------------------------------------------------------------------------- 13 | | Create The Application 14 | |-------------------------------------------------------------------------- 15 | | 16 | | Here we will load the environment and create the application instance 17 | | that serves as the central piece of this framework. We'll use this 18 | | application as an "IoC" container and router for this framework. 19 | | 20 | */ 21 | 22 | $app = new Laravel\Lumen\Application( 23 | realpath(__DIR__.'/../') 24 | ); 25 | 26 | // $app->withFacades(); 27 | 28 | $app->withEloquent(); 29 | 30 | // Register config files 31 | $app->configure('auth'); 32 | $app->configure('jwt'); 33 | $app->configure('cors'); 34 | 35 | /* 36 | |-------------------------------------------------------------------------- 37 | | Register Container Bindings 38 | |-------------------------------------------------------------------------- 39 | | 40 | | Now we will register a few bindings in the service container. We will 41 | | register the exception handler and the console kernel. You may add 42 | | your own bindings here if you like or you can make another file. 43 | | 44 | */ 45 | 46 | $app->singleton( 47 | Illuminate\Contracts\Debug\ExceptionHandler::class, 48 | App\Exceptions\Handler::class 49 | ); 50 | 51 | $app->singleton( 52 | Illuminate\Contracts\Console\Kernel::class, 53 | App\Console\Kernel::class 54 | ); 55 | 56 | /* 57 | |-------------------------------------------------------------------------- 58 | | Register Middleware 59 | |-------------------------------------------------------------------------- 60 | | 61 | | Next, we will register the middleware with the application. These can 62 | | be global middleware that run before and after each request into a 63 | | route or middleware that'll be assigned to some specific routes. 64 | | 65 | */ 66 | 67 | $app->middleware([ 68 | // // Illuminate\Cookie\Middleware\EncryptCookies::class, 69 | // // Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, 70 | // // Illuminate\Session\Middleware\StartSession::class, 71 | // // Illuminate\View\Middleware\ShareErrorsFromSession::class, 72 | // // Laravel\Lumen\Http\Middleware\VerifyCsrfToken::class, 73 | Barryvdh\Cors\HandleCors::class, 74 | Barryvdh\Cors\HandlePreflightSimple::class 75 | ]); 76 | 77 | // $app->routeMiddleware([ 78 | // 'auth' => App\Http\Middleware\Authenticate::class, 79 | // ]); 80 | 81 | /* 82 | |-------------------------------------------------------------------------- 83 | | Register Service Providers 84 | |-------------------------------------------------------------------------- 85 | | 86 | | Here we will register all of the application's service providers which 87 | | are used to bind services into the container. Service providers are 88 | | totally optional, so you are not required to uncomment this line. 89 | | 90 | */ 91 | 92 | $app->register(App\Providers\AppServiceProvider::class); 93 | // $app->register(App\Providers\EventServiceProvider::class); 94 | 95 | $app->register(Dingo\Api\Provider\LumenServiceProvider::class); 96 | $app->register(Tymon\JWTAuth\Providers\LumenServiceProvider::class); 97 | 98 | app('Dingo\Api\Auth\Auth')->extend('jwt', function ($app) { 99 | return new Dingo\Api\Auth\Provider\JWT($app['Tymon\JWTAuth\JWTAuth']); 100 | }); 101 | 102 | $app->register(Barryvdh\Cors\LumenServiceProvider::class); 103 | /* 104 | |-------------------------------------------------------------------------- 105 | | Load The Application Routes 106 | |-------------------------------------------------------------------------- 107 | | 108 | | Next we will include the routes file so that they can all be added to 109 | | the application. This will provide all of the URLs the application 110 | | can respond to, as well as the controllers that may handle them. 111 | | 112 | */ 113 | 114 | $app->group(['namespace' => 'App\Http\Controllers'], function ($app) { 115 | require __DIR__.'/../app/Http/routes.php'; 116 | }); 117 | 118 | return $app; 119 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "laravel/lumen", 3 | "description": "The Laravel Lumen Framework.", 4 | "keywords": ["framework", "laravel", "lumen"], 5 | "license": "MIT", 6 | "type": "project", 7 | "require": { 8 | "php": ">=5.5.9", 9 | "laravel/lumen-framework": "5.3.*", 10 | "vlucas/phpdotenv": "~2.2", 11 | "dingo/api": "1.0.*@dev", 12 | "tymon/jwt-auth": "dev-master#c153d85", 13 | "barryvdh/laravel-cors": "0.8.2" 14 | }, 15 | "require-dev": { 16 | "fzaninotto/faker": "~1.4", 17 | "phpunit/phpunit": "~4.0" 18 | }, 19 | "autoload": { 20 | "psr-4": { 21 | "App\\": "app/" 22 | } 23 | }, 24 | "autoload-dev": { 25 | "classmap": [ 26 | "tests/", 27 | "database/" 28 | ] 29 | }, 30 | "scripts": { 31 | "post-root-package-install": [ 32 | "php -r \"copy('.env.example', '.env');\"" 33 | ] 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /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 | "hash": "46c12c6e7329b2bdad523b3100ce21a3", 8 | "content-hash": "c1261d9cacdf0ca036b4f9a80254e1f2", 9 | "packages": [ 10 | { 11 | "name": "barryvdh/laravel-cors", 12 | "version": "v0.8.2", 13 | "source": { 14 | "type": "git", 15 | "url": "https://github.com/barryvdh/laravel-cors.git", 16 | "reference": "bc7f40a71221b46d24971da7f0230ed4a75a18c6" 17 | }, 18 | "dist": { 19 | "type": "zip", 20 | "url": "https://api.github.com/repos/barryvdh/laravel-cors/zipball/bc7f40a71221b46d24971da7f0230ed4a75a18c6", 21 | "reference": "bc7f40a71221b46d24971da7f0230ed4a75a18c6", 22 | "shasum": "" 23 | }, 24 | "require": { 25 | "illuminate/support": "5.1.x|5.2.x|5.3.x", 26 | "php": ">=5.5.9", 27 | "symfony/http-foundation": "~2.7|~3.0", 28 | "symfony/http-kernel": "~2.7|~3.0" 29 | }, 30 | "require-dev": { 31 | "phpunit/phpunit": "^4.8|^5.2" 32 | }, 33 | "type": "library", 34 | "extra": { 35 | "branch-alias": { 36 | "dev-master": "0.8-dev" 37 | } 38 | }, 39 | "autoload": { 40 | "psr-4": { 41 | "Barryvdh\\Cors\\": "src/" 42 | } 43 | }, 44 | "notification-url": "https://packagist.org/downloads/", 45 | "license": [ 46 | "MIT" 47 | ], 48 | "authors": [ 49 | { 50 | "name": "Barry vd. Heuvel", 51 | "email": "barryvdh@gmail.com" 52 | } 53 | ], 54 | "description": "Adds CORS (Cross-Origin Resource Sharing) headers support in your Laravel application", 55 | "keywords": [ 56 | "api", 57 | "cors", 58 | "crossdomain", 59 | "laravel" 60 | ], 61 | "time": "2016-08-11 08:46:01" 62 | }, 63 | { 64 | "name": "dingo/api", 65 | "version": "dev-master", 66 | "source": { 67 | "type": "git", 68 | "url": "https://github.com/dingo/api.git", 69 | "reference": "242411efbb9f01104a00b780c4defb2c18a45856" 70 | }, 71 | "dist": { 72 | "type": "zip", 73 | "url": "https://api.github.com/repos/dingo/api/zipball/242411efbb9f01104a00b780c4defb2c18a45856", 74 | "reference": "242411efbb9f01104a00b780c4defb2c18a45856", 75 | "shasum": "" 76 | }, 77 | "require": { 78 | "dingo/blueprint": "0.2.*", 79 | "doctrine/annotations": "1.2.*", 80 | "illuminate/routing": "5.1.* || 5.2.* || 5.3.*", 81 | "illuminate/support": "5.1.* || 5.2.* || 5.3.*", 82 | "league/fractal": ">=0.12.0", 83 | "php": "^5.5.9 || ^7.0" 84 | }, 85 | "require-dev": { 86 | "illuminate/auth": "5.1.* || 5.2.* || 5.3.*", 87 | "illuminate/cache": "5.1.* || 5.2.* || 5.3.*", 88 | "illuminate/console": "5.1.* || 5.2.* || 5.3.*", 89 | "illuminate/database": "5.1.* || 5.2.* || 5.3.*", 90 | "illuminate/events": "5.1.* || 5.2.* || 5.3.*", 91 | "illuminate/filesystem": "5.1.* || 5.2.* || 5.3.*", 92 | "illuminate/log": "5.1.* || 5.2.* || 5.3.*", 93 | "illuminate/pagination": "5.1.* || 5.2.* || 5.3.*", 94 | "laravel/lumen-framework": "5.1.* || 5.2.*", 95 | "lucadegasperi/oauth2-server-laravel": "5.0.*", 96 | "mockery/mockery": "~0.9", 97 | "phpunit/phpunit": "^4.8 || ^5.0", 98 | "squizlabs/php_codesniffer": "~2.0", 99 | "tymon/jwt-auth": "1.0.*" 100 | }, 101 | "suggest": { 102 | "lucadegasperi/oauth2-server-laravel": "Protect your API with OAuth 2.0.", 103 | "tymon/jwt-auth": "Protect your API with JSON Web Tokens." 104 | }, 105 | "type": "library", 106 | "extra": { 107 | "branch-alias": { 108 | "dev-master": "1.0-dev" 109 | } 110 | }, 111 | "autoload": { 112 | "psr-4": { 113 | "Dingo\\Api\\": "src/" 114 | }, 115 | "files": [ 116 | "src/helpers.php" 117 | ] 118 | }, 119 | "notification-url": "https://packagist.org/downloads/", 120 | "license": [ 121 | "BSD-3-Clause" 122 | ], 123 | "authors": [ 124 | { 125 | "name": "Jason Lewis", 126 | "email": "jason.lewis1991@gmail.com" 127 | } 128 | ], 129 | "description": "A RESTful API package for the Laravel and Lumen frameworks.", 130 | "keywords": [ 131 | "api", 132 | "dingo", 133 | "laravel", 134 | "restful" 135 | ], 136 | "time": "2016-09-02 05:51:07" 137 | }, 138 | { 139 | "name": "dingo/blueprint", 140 | "version": "v0.2.0", 141 | "source": { 142 | "type": "git", 143 | "url": "https://github.com/dingo/blueprint.git", 144 | "reference": "d37fb7433aeadb3d40d5e790978c3c8d229d0e7d" 145 | }, 146 | "dist": { 147 | "type": "zip", 148 | "url": "https://api.github.com/repos/dingo/blueprint/zipball/d37fb7433aeadb3d40d5e790978c3c8d229d0e7d", 149 | "reference": "d37fb7433aeadb3d40d5e790978c3c8d229d0e7d", 150 | "shasum": "" 151 | }, 152 | "require": { 153 | "doctrine/annotations": "1.2.*", 154 | "illuminate/filesystem": "5.1.* || 5.2.* || 5.3.*", 155 | "illuminate/support": "5.1.* || 5.2.* || 5.3.*", 156 | "php": ">=5.5.9", 157 | "phpdocumentor/reflection-docblock": "3.1.*" 158 | }, 159 | "require-dev": { 160 | "phpunit/phpunit": "~4.0", 161 | "squizlabs/php_codesniffer": "~2.0" 162 | }, 163 | "type": "library", 164 | "extra": { 165 | "branch-alias": { 166 | "dev-master": "0.2-dev" 167 | } 168 | }, 169 | "autoload": { 170 | "psr-4": { 171 | "Dingo\\Blueprint\\": "src" 172 | } 173 | }, 174 | "notification-url": "https://packagist.org/downloads/", 175 | "license": [ 176 | "BSD-3-Clause" 177 | ], 178 | "authors": [ 179 | { 180 | "name": "Jason Lewis", 181 | "email": "jason.lewis1991@gmail.com" 182 | } 183 | ], 184 | "description": "API Blueprint documentation generator.", 185 | "keywords": [ 186 | "api", 187 | "blueprint", 188 | "dingo", 189 | "docs", 190 | "laravel" 191 | ], 192 | "time": "2016-08-30 03:27:49" 193 | }, 194 | { 195 | "name": "doctrine/annotations", 196 | "version": "v1.2.7", 197 | "source": { 198 | "type": "git", 199 | "url": "https://github.com/doctrine/annotations.git", 200 | "reference": "f25c8aab83e0c3e976fd7d19875f198ccf2f7535" 201 | }, 202 | "dist": { 203 | "type": "zip", 204 | "url": "https://api.github.com/repos/doctrine/annotations/zipball/f25c8aab83e0c3e976fd7d19875f198ccf2f7535", 205 | "reference": "f25c8aab83e0c3e976fd7d19875f198ccf2f7535", 206 | "shasum": "" 207 | }, 208 | "require": { 209 | "doctrine/lexer": "1.*", 210 | "php": ">=5.3.2" 211 | }, 212 | "require-dev": { 213 | "doctrine/cache": "1.*", 214 | "phpunit/phpunit": "4.*" 215 | }, 216 | "type": "library", 217 | "extra": { 218 | "branch-alias": { 219 | "dev-master": "1.3.x-dev" 220 | } 221 | }, 222 | "autoload": { 223 | "psr-0": { 224 | "Doctrine\\Common\\Annotations\\": "lib/" 225 | } 226 | }, 227 | "notification-url": "https://packagist.org/downloads/", 228 | "license": [ 229 | "MIT" 230 | ], 231 | "authors": [ 232 | { 233 | "name": "Roman Borschel", 234 | "email": "roman@code-factory.org" 235 | }, 236 | { 237 | "name": "Benjamin Eberlei", 238 | "email": "kontakt@beberlei.de" 239 | }, 240 | { 241 | "name": "Guilherme Blanco", 242 | "email": "guilhermeblanco@gmail.com" 243 | }, 244 | { 245 | "name": "Jonathan Wage", 246 | "email": "jonwage@gmail.com" 247 | }, 248 | { 249 | "name": "Johannes Schmitt", 250 | "email": "schmittjoh@gmail.com" 251 | } 252 | ], 253 | "description": "Docblock Annotations Parser", 254 | "homepage": "http://www.doctrine-project.org", 255 | "keywords": [ 256 | "annotations", 257 | "docblock", 258 | "parser" 259 | ], 260 | "time": "2015-08-31 12:32:49" 261 | }, 262 | { 263 | "name": "doctrine/inflector", 264 | "version": "v1.1.0", 265 | "source": { 266 | "type": "git", 267 | "url": "https://github.com/doctrine/inflector.git", 268 | "reference": "90b2128806bfde671b6952ab8bea493942c1fdae" 269 | }, 270 | "dist": { 271 | "type": "zip", 272 | "url": "https://api.github.com/repos/doctrine/inflector/zipball/90b2128806bfde671b6952ab8bea493942c1fdae", 273 | "reference": "90b2128806bfde671b6952ab8bea493942c1fdae", 274 | "shasum": "" 275 | }, 276 | "require": { 277 | "php": ">=5.3.2" 278 | }, 279 | "require-dev": { 280 | "phpunit/phpunit": "4.*" 281 | }, 282 | "type": "library", 283 | "extra": { 284 | "branch-alias": { 285 | "dev-master": "1.1.x-dev" 286 | } 287 | }, 288 | "autoload": { 289 | "psr-0": { 290 | "Doctrine\\Common\\Inflector\\": "lib/" 291 | } 292 | }, 293 | "notification-url": "https://packagist.org/downloads/", 294 | "license": [ 295 | "MIT" 296 | ], 297 | "authors": [ 298 | { 299 | "name": "Roman Borschel", 300 | "email": "roman@code-factory.org" 301 | }, 302 | { 303 | "name": "Benjamin Eberlei", 304 | "email": "kontakt@beberlei.de" 305 | }, 306 | { 307 | "name": "Guilherme Blanco", 308 | "email": "guilhermeblanco@gmail.com" 309 | }, 310 | { 311 | "name": "Jonathan Wage", 312 | "email": "jonwage@gmail.com" 313 | }, 314 | { 315 | "name": "Johannes Schmitt", 316 | "email": "schmittjoh@gmail.com" 317 | } 318 | ], 319 | "description": "Common String Manipulations with regard to casing and singular/plural rules.", 320 | "homepage": "http://www.doctrine-project.org", 321 | "keywords": [ 322 | "inflection", 323 | "pluralize", 324 | "singularize", 325 | "string" 326 | ], 327 | "time": "2015-11-06 14:35:42" 328 | }, 329 | { 330 | "name": "doctrine/lexer", 331 | "version": "v1.0.1", 332 | "source": { 333 | "type": "git", 334 | "url": "https://github.com/doctrine/lexer.git", 335 | "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c" 336 | }, 337 | "dist": { 338 | "type": "zip", 339 | "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c", 340 | "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c", 341 | "shasum": "" 342 | }, 343 | "require": { 344 | "php": ">=5.3.2" 345 | }, 346 | "type": "library", 347 | "extra": { 348 | "branch-alias": { 349 | "dev-master": "1.0.x-dev" 350 | } 351 | }, 352 | "autoload": { 353 | "psr-0": { 354 | "Doctrine\\Common\\Lexer\\": "lib/" 355 | } 356 | }, 357 | "notification-url": "https://packagist.org/downloads/", 358 | "license": [ 359 | "MIT" 360 | ], 361 | "authors": [ 362 | { 363 | "name": "Roman Borschel", 364 | "email": "roman@code-factory.org" 365 | }, 366 | { 367 | "name": "Guilherme Blanco", 368 | "email": "guilhermeblanco@gmail.com" 369 | }, 370 | { 371 | "name": "Johannes Schmitt", 372 | "email": "schmittjoh@gmail.com" 373 | } 374 | ], 375 | "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", 376 | "homepage": "http://www.doctrine-project.org", 377 | "keywords": [ 378 | "lexer", 379 | "parser" 380 | ], 381 | "time": "2014-09-09 13:34:57" 382 | }, 383 | { 384 | "name": "illuminate/auth", 385 | "version": "v5.3.4", 386 | "source": { 387 | "type": "git", 388 | "url": "https://github.com/illuminate/auth.git", 389 | "reference": "28b2f2e74bd99e7702da4a0498c6895824c1faa0" 390 | }, 391 | "dist": { 392 | "type": "zip", 393 | "url": "https://api.github.com/repos/illuminate/auth/zipball/28b2f2e74bd99e7702da4a0498c6895824c1faa0", 394 | "reference": "28b2f2e74bd99e7702da4a0498c6895824c1faa0", 395 | "shasum": "" 396 | }, 397 | "require": { 398 | "illuminate/contracts": "5.3.*", 399 | "illuminate/http": "5.3.*", 400 | "illuminate/support": "5.3.*", 401 | "nesbot/carbon": "~1.20", 402 | "php": ">=5.6.4" 403 | }, 404 | "suggest": { 405 | "illuminate/console": "Required to use the auth:clear-resets command (5.3.*).", 406 | "illuminate/queue": "Required to fire login / logout events (5.3.*).", 407 | "illuminate/session": "Required to use the session based guard (5.3.*)." 408 | }, 409 | "type": "library", 410 | "extra": { 411 | "branch-alias": { 412 | "dev-master": "5.3-dev" 413 | } 414 | }, 415 | "autoload": { 416 | "psr-4": { 417 | "Illuminate\\Auth\\": "" 418 | } 419 | }, 420 | "notification-url": "https://packagist.org/downloads/", 421 | "license": [ 422 | "MIT" 423 | ], 424 | "authors": [ 425 | { 426 | "name": "Taylor Otwell", 427 | "email": "taylor@laravel.com" 428 | } 429 | ], 430 | "description": "The Illuminate Auth package.", 431 | "homepage": "https://laravel.com", 432 | "time": "2016-08-24 08:32:23" 433 | }, 434 | { 435 | "name": "illuminate/broadcasting", 436 | "version": "v5.3.4", 437 | "source": { 438 | "type": "git", 439 | "url": "https://github.com/illuminate/broadcasting.git", 440 | "reference": "eba625365df97eb03d5f0f1933b5d41861184200" 441 | }, 442 | "dist": { 443 | "type": "zip", 444 | "url": "https://api.github.com/repos/illuminate/broadcasting/zipball/eba625365df97eb03d5f0f1933b5d41861184200", 445 | "reference": "eba625365df97eb03d5f0f1933b5d41861184200", 446 | "shasum": "" 447 | }, 448 | "require": { 449 | "illuminate/contracts": "5.3.*", 450 | "illuminate/support": "5.3.*", 451 | "php": ">=5.6.4" 452 | }, 453 | "suggest": { 454 | "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (~2.0)." 455 | }, 456 | "type": "library", 457 | "extra": { 458 | "branch-alias": { 459 | "dev-master": "5.3-dev" 460 | } 461 | }, 462 | "autoload": { 463 | "psr-4": { 464 | "Illuminate\\Broadcasting\\": "" 465 | } 466 | }, 467 | "notification-url": "https://packagist.org/downloads/", 468 | "license": [ 469 | "MIT" 470 | ], 471 | "authors": [ 472 | { 473 | "name": "Taylor Otwell", 474 | "email": "taylor@laravel.com" 475 | } 476 | ], 477 | "description": "The Illuminate Broadcasting package.", 478 | "homepage": "https://laravel.com", 479 | "time": "2016-08-18 13:29:15" 480 | }, 481 | { 482 | "name": "illuminate/bus", 483 | "version": "v5.3.4", 484 | "source": { 485 | "type": "git", 486 | "url": "https://github.com/illuminate/bus.git", 487 | "reference": "7529b1c33e1da13afde5a3cfede3f98efab2c3b1" 488 | }, 489 | "dist": { 490 | "type": "zip", 491 | "url": "https://api.github.com/repos/illuminate/bus/zipball/7529b1c33e1da13afde5a3cfede3f98efab2c3b1", 492 | "reference": "7529b1c33e1da13afde5a3cfede3f98efab2c3b1", 493 | "shasum": "" 494 | }, 495 | "require": { 496 | "illuminate/contracts": "5.3.*", 497 | "illuminate/pipeline": "5.3.*", 498 | "illuminate/support": "5.3.*", 499 | "php": ">=5.6.4" 500 | }, 501 | "type": "library", 502 | "extra": { 503 | "branch-alias": { 504 | "dev-master": "5.3-dev" 505 | } 506 | }, 507 | "autoload": { 508 | "psr-4": { 509 | "Illuminate\\Bus\\": "" 510 | } 511 | }, 512 | "notification-url": "https://packagist.org/downloads/", 513 | "license": [ 514 | "MIT" 515 | ], 516 | "authors": [ 517 | { 518 | "name": "Taylor Otwell", 519 | "email": "taylor@laravel.com" 520 | } 521 | ], 522 | "description": "The Illuminate Bus package.", 523 | "homepage": "https://laravel.com", 524 | "time": "2016-08-19 13:12:34" 525 | }, 526 | { 527 | "name": "illuminate/cache", 528 | "version": "v5.3.4", 529 | "source": { 530 | "type": "git", 531 | "url": "https://github.com/illuminate/cache.git", 532 | "reference": "b0d8ea63556c97d67740a864ed6f1877978864f0" 533 | }, 534 | "dist": { 535 | "type": "zip", 536 | "url": "https://api.github.com/repos/illuminate/cache/zipball/b0d8ea63556c97d67740a864ed6f1877978864f0", 537 | "reference": "b0d8ea63556c97d67740a864ed6f1877978864f0", 538 | "shasum": "" 539 | }, 540 | "require": { 541 | "illuminate/contracts": "5.3.*", 542 | "illuminate/support": "5.3.*", 543 | "nesbot/carbon": "~1.20", 544 | "php": ">=5.6.4" 545 | }, 546 | "suggest": { 547 | "illuminate/database": "Required to use the database cache driver (5.3.*).", 548 | "illuminate/filesystem": "Required to use the file cache driver (5.3.*).", 549 | "illuminate/redis": "Required to use the redis cache driver (5.3.*)." 550 | }, 551 | "type": "library", 552 | "extra": { 553 | "branch-alias": { 554 | "dev-master": "5.3-dev" 555 | } 556 | }, 557 | "autoload": { 558 | "psr-4": { 559 | "Illuminate\\Cache\\": "" 560 | } 561 | }, 562 | "notification-url": "https://packagist.org/downloads/", 563 | "license": [ 564 | "MIT" 565 | ], 566 | "authors": [ 567 | { 568 | "name": "Taylor Otwell", 569 | "email": "taylor@laravel.com" 570 | } 571 | ], 572 | "description": "The Illuminate Cache package.", 573 | "homepage": "https://laravel.com", 574 | "time": "2016-08-26 17:53:01" 575 | }, 576 | { 577 | "name": "illuminate/config", 578 | "version": "v5.3.4", 579 | "source": { 580 | "type": "git", 581 | "url": "https://github.com/illuminate/config.git", 582 | "reference": "26df89fa2999754e882890e642b67c6521432057" 583 | }, 584 | "dist": { 585 | "type": "zip", 586 | "url": "https://api.github.com/repos/illuminate/config/zipball/26df89fa2999754e882890e642b67c6521432057", 587 | "reference": "26df89fa2999754e882890e642b67c6521432057", 588 | "shasum": "" 589 | }, 590 | "require": { 591 | "illuminate/contracts": "5.3.*", 592 | "illuminate/filesystem": "5.3.*", 593 | "illuminate/support": "5.3.*", 594 | "php": ">=5.6.4" 595 | }, 596 | "type": "library", 597 | "extra": { 598 | "branch-alias": { 599 | "dev-master": "5.3-dev" 600 | } 601 | }, 602 | "autoload": { 603 | "psr-4": { 604 | "Illuminate\\Config\\": "" 605 | } 606 | }, 607 | "notification-url": "https://packagist.org/downloads/", 608 | "license": [ 609 | "MIT" 610 | ], 611 | "authors": [ 612 | { 613 | "name": "Taylor Otwell", 614 | "email": "taylor@laravel.com" 615 | } 616 | ], 617 | "description": "The Illuminate Config package.", 618 | "homepage": "https://laravel.com", 619 | "time": "2016-08-05 14:48:10" 620 | }, 621 | { 622 | "name": "illuminate/console", 623 | "version": "v5.3.4", 624 | "source": { 625 | "type": "git", 626 | "url": "https://github.com/illuminate/console.git", 627 | "reference": "a2a0804a5bf26172f67ba3d491ad8a19028bbab5" 628 | }, 629 | "dist": { 630 | "type": "zip", 631 | "url": "https://api.github.com/repos/illuminate/console/zipball/a2a0804a5bf26172f67ba3d491ad8a19028bbab5", 632 | "reference": "a2a0804a5bf26172f67ba3d491ad8a19028bbab5", 633 | "shasum": "" 634 | }, 635 | "require": { 636 | "illuminate/contracts": "5.3.*", 637 | "illuminate/support": "5.3.*", 638 | "nesbot/carbon": "~1.20", 639 | "php": ">=5.6.4", 640 | "symfony/console": "3.1.*" 641 | }, 642 | "suggest": { 643 | "guzzlehttp/guzzle": "Required to use the ping methods on schedules (~5.3|~6.0).", 644 | "mtdowling/cron-expression": "Required to use scheduling component (~1.0).", 645 | "symfony/process": "Required to use scheduling component (3.1.*)." 646 | }, 647 | "type": "library", 648 | "extra": { 649 | "branch-alias": { 650 | "dev-master": "5.3-dev" 651 | } 652 | }, 653 | "autoload": { 654 | "psr-4": { 655 | "Illuminate\\Console\\": "" 656 | } 657 | }, 658 | "notification-url": "https://packagist.org/downloads/", 659 | "license": [ 660 | "MIT" 661 | ], 662 | "authors": [ 663 | { 664 | "name": "Taylor Otwell", 665 | "email": "taylor@laravel.com" 666 | } 667 | ], 668 | "description": "The Illuminate Console package.", 669 | "homepage": "https://laravel.com", 670 | "time": "2016-08-07 19:56:57" 671 | }, 672 | { 673 | "name": "illuminate/container", 674 | "version": "v5.3.4", 675 | "source": { 676 | "type": "git", 677 | "url": "https://github.com/illuminate/container.git", 678 | "reference": "360f4900dbaa7e76ecfbb58e0ad4b244a90edfe3" 679 | }, 680 | "dist": { 681 | "type": "zip", 682 | "url": "https://api.github.com/repos/illuminate/container/zipball/360f4900dbaa7e76ecfbb58e0ad4b244a90edfe3", 683 | "reference": "360f4900dbaa7e76ecfbb58e0ad4b244a90edfe3", 684 | "shasum": "" 685 | }, 686 | "require": { 687 | "illuminate/contracts": "5.3.*", 688 | "php": ">=5.6.4" 689 | }, 690 | "type": "library", 691 | "extra": { 692 | "branch-alias": { 693 | "dev-master": "5.3-dev" 694 | } 695 | }, 696 | "autoload": { 697 | "psr-4": { 698 | "Illuminate\\Container\\": "" 699 | } 700 | }, 701 | "notification-url": "https://packagist.org/downloads/", 702 | "license": [ 703 | "MIT" 704 | ], 705 | "authors": [ 706 | { 707 | "name": "Taylor Otwell", 708 | "email": "taylor@laravel.com" 709 | } 710 | ], 711 | "description": "The Illuminate Container package.", 712 | "homepage": "https://laravel.com", 713 | "time": "2016-08-05 14:48:10" 714 | }, 715 | { 716 | "name": "illuminate/contracts", 717 | "version": "v5.3.4", 718 | "source": { 719 | "type": "git", 720 | "url": "https://github.com/illuminate/contracts.git", 721 | "reference": "f766fc0452d82d545b866a8ad5860b20ccd50763" 722 | }, 723 | "dist": { 724 | "type": "zip", 725 | "url": "https://api.github.com/repos/illuminate/contracts/zipball/f766fc0452d82d545b866a8ad5860b20ccd50763", 726 | "reference": "f766fc0452d82d545b866a8ad5860b20ccd50763", 727 | "shasum": "" 728 | }, 729 | "require": { 730 | "php": ">=5.6.4" 731 | }, 732 | "type": "library", 733 | "extra": { 734 | "branch-alias": { 735 | "dev-master": "5.3-dev" 736 | } 737 | }, 738 | "autoload": { 739 | "psr-4": { 740 | "Illuminate\\Contracts\\": "" 741 | } 742 | }, 743 | "notification-url": "https://packagist.org/downloads/", 744 | "license": [ 745 | "MIT" 746 | ], 747 | "authors": [ 748 | { 749 | "name": "Taylor Otwell", 750 | "email": "taylor@laravel.com" 751 | } 752 | ], 753 | "description": "The Illuminate Contracts package.", 754 | "homepage": "https://laravel.com", 755 | "time": "2016-08-21 12:37:00" 756 | }, 757 | { 758 | "name": "illuminate/database", 759 | "version": "v5.3.4", 760 | "source": { 761 | "type": "git", 762 | "url": "https://github.com/illuminate/database.git", 763 | "reference": "048a65ba4a7ed250e16c82b6bb323daf38410050" 764 | }, 765 | "dist": { 766 | "type": "zip", 767 | "url": "https://api.github.com/repos/illuminate/database/zipball/048a65ba4a7ed250e16c82b6bb323daf38410050", 768 | "reference": "048a65ba4a7ed250e16c82b6bb323daf38410050", 769 | "shasum": "" 770 | }, 771 | "require": { 772 | "illuminate/container": "5.3.*", 773 | "illuminate/contracts": "5.3.*", 774 | "illuminate/support": "5.3.*", 775 | "nesbot/carbon": "~1.20", 776 | "php": ">=5.6.4" 777 | }, 778 | "suggest": { 779 | "doctrine/dbal": "Required to rename columns and drop SQLite columns (~2.4).", 780 | "fzaninotto/faker": "Required to use the eloquent factory builder (~1.4).", 781 | "illuminate/console": "Required to use the database commands (5.3.*).", 782 | "illuminate/events": "Required to use the observers with Eloquent (5.3.*).", 783 | "illuminate/filesystem": "Required to use the migrations (5.3.*).", 784 | "illuminate/pagination": "Required to paginate the result set (5.3.*)." 785 | }, 786 | "type": "library", 787 | "extra": { 788 | "branch-alias": { 789 | "dev-master": "5.3-dev" 790 | } 791 | }, 792 | "autoload": { 793 | "psr-4": { 794 | "Illuminate\\Database\\": "" 795 | } 796 | }, 797 | "notification-url": "https://packagist.org/downloads/", 798 | "license": [ 799 | "MIT" 800 | ], 801 | "authors": [ 802 | { 803 | "name": "Taylor Otwell", 804 | "email": "taylor@laravel.com" 805 | } 806 | ], 807 | "description": "The Illuminate Database package.", 808 | "homepage": "https://laravel.com", 809 | "keywords": [ 810 | "database", 811 | "laravel", 812 | "orm", 813 | "sql" 814 | ], 815 | "time": "2016-08-25 15:46:46" 816 | }, 817 | { 818 | "name": "illuminate/encryption", 819 | "version": "v5.3.4", 820 | "source": { 821 | "type": "git", 822 | "url": "https://github.com/illuminate/encryption.git", 823 | "reference": "e21e60b55df1d63bc138628e4516da9cea5ee018" 824 | }, 825 | "dist": { 826 | "type": "zip", 827 | "url": "https://api.github.com/repos/illuminate/encryption/zipball/e21e60b55df1d63bc138628e4516da9cea5ee018", 828 | "reference": "e21e60b55df1d63bc138628e4516da9cea5ee018", 829 | "shasum": "" 830 | }, 831 | "require": { 832 | "ext-mbstring": "*", 833 | "ext-openssl": "*", 834 | "illuminate/contracts": "5.3.*", 835 | "illuminate/support": "5.3.*", 836 | "paragonie/random_compat": "~1.4|~2.0", 837 | "php": ">=5.6.4" 838 | }, 839 | "type": "library", 840 | "extra": { 841 | "branch-alias": { 842 | "dev-master": "5.3-dev" 843 | } 844 | }, 845 | "autoload": { 846 | "psr-4": { 847 | "Illuminate\\Encryption\\": "" 848 | } 849 | }, 850 | "notification-url": "https://packagist.org/downloads/", 851 | "license": [ 852 | "MIT" 853 | ], 854 | "authors": [ 855 | { 856 | "name": "Taylor Otwell", 857 | "email": "taylor@laravel.com" 858 | } 859 | ], 860 | "description": "The Illuminate Encryption package.", 861 | "homepage": "https://laravel.com", 862 | "time": "2016-08-05 14:48:10" 863 | }, 864 | { 865 | "name": "illuminate/events", 866 | "version": "v5.3.4", 867 | "source": { 868 | "type": "git", 869 | "url": "https://github.com/illuminate/events.git", 870 | "reference": "cb29124d4eaba8a60bad40e95e3d8b199d040d77" 871 | }, 872 | "dist": { 873 | "type": "zip", 874 | "url": "https://api.github.com/repos/illuminate/events/zipball/cb29124d4eaba8a60bad40e95e3d8b199d040d77", 875 | "reference": "cb29124d4eaba8a60bad40e95e3d8b199d040d77", 876 | "shasum": "" 877 | }, 878 | "require": { 879 | "illuminate/container": "5.3.*", 880 | "illuminate/contracts": "5.3.*", 881 | "illuminate/support": "5.3.*", 882 | "php": ">=5.6.4" 883 | }, 884 | "type": "library", 885 | "extra": { 886 | "branch-alias": { 887 | "dev-master": "5.3-dev" 888 | } 889 | }, 890 | "autoload": { 891 | "psr-4": { 892 | "Illuminate\\Events\\": "" 893 | } 894 | }, 895 | "notification-url": "https://packagist.org/downloads/", 896 | "license": [ 897 | "MIT" 898 | ], 899 | "authors": [ 900 | { 901 | "name": "Taylor Otwell", 902 | "email": "taylor@laravel.com" 903 | } 904 | ], 905 | "description": "The Illuminate Events package.", 906 | "homepage": "https://laravel.com", 907 | "time": "2016-08-12 14:24:30" 908 | }, 909 | { 910 | "name": "illuminate/filesystem", 911 | "version": "v5.3.4", 912 | "source": { 913 | "type": "git", 914 | "url": "https://github.com/illuminate/filesystem.git", 915 | "reference": "72da79358499a38b437ff4b0e42f909660555298" 916 | }, 917 | "dist": { 918 | "type": "zip", 919 | "url": "https://api.github.com/repos/illuminate/filesystem/zipball/72da79358499a38b437ff4b0e42f909660555298", 920 | "reference": "72da79358499a38b437ff4b0e42f909660555298", 921 | "shasum": "" 922 | }, 923 | "require": { 924 | "illuminate/contracts": "5.3.*", 925 | "illuminate/support": "5.3.*", 926 | "php": ">=5.6.4", 927 | "symfony/finder": "3.1.*" 928 | }, 929 | "suggest": { 930 | "league/flysystem": "Required to use the Flysystem local and FTP drivers (~1.0).", 931 | "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (~1.0).", 932 | "league/flysystem-rackspace": "Required to use the Flysystem Rackspace driver (~1.0)." 933 | }, 934 | "type": "library", 935 | "extra": { 936 | "branch-alias": { 937 | "dev-master": "5.3-dev" 938 | } 939 | }, 940 | "autoload": { 941 | "psr-4": { 942 | "Illuminate\\Filesystem\\": "" 943 | } 944 | }, 945 | "notification-url": "https://packagist.org/downloads/", 946 | "license": [ 947 | "MIT" 948 | ], 949 | "authors": [ 950 | { 951 | "name": "Taylor Otwell", 952 | "email": "taylor@laravel.com" 953 | } 954 | ], 955 | "description": "The Illuminate Filesystem package.", 956 | "homepage": "https://laravel.com", 957 | "time": "2016-08-22 03:02:14" 958 | }, 959 | { 960 | "name": "illuminate/hashing", 961 | "version": "v5.3.4", 962 | "source": { 963 | "type": "git", 964 | "url": "https://github.com/illuminate/hashing.git", 965 | "reference": "65afb491fe4de8617b0896edbcf35fd863c42c9d" 966 | }, 967 | "dist": { 968 | "type": "zip", 969 | "url": "https://api.github.com/repos/illuminate/hashing/zipball/65afb491fe4de8617b0896edbcf35fd863c42c9d", 970 | "reference": "65afb491fe4de8617b0896edbcf35fd863c42c9d", 971 | "shasum": "" 972 | }, 973 | "require": { 974 | "illuminate/contracts": "5.3.*", 975 | "illuminate/support": "5.3.*", 976 | "php": ">=5.6.4" 977 | }, 978 | "type": "library", 979 | "extra": { 980 | "branch-alias": { 981 | "dev-master": "5.3-dev" 982 | } 983 | }, 984 | "autoload": { 985 | "psr-4": { 986 | "Illuminate\\Hashing\\": "" 987 | } 988 | }, 989 | "notification-url": "https://packagist.org/downloads/", 990 | "license": [ 991 | "MIT" 992 | ], 993 | "authors": [ 994 | { 995 | "name": "Taylor Otwell", 996 | "email": "taylor@laravel.com" 997 | } 998 | ], 999 | "description": "The Illuminate Hashing package.", 1000 | "homepage": "https://laravel.com", 1001 | "time": "2016-08-05 14:48:10" 1002 | }, 1003 | { 1004 | "name": "illuminate/http", 1005 | "version": "v5.3.4", 1006 | "source": { 1007 | "type": "git", 1008 | "url": "https://github.com/illuminate/http.git", 1009 | "reference": "333263fe8aa6db11187a256ea55c2e9e97f28c4b" 1010 | }, 1011 | "dist": { 1012 | "type": "zip", 1013 | "url": "https://api.github.com/repos/illuminate/http/zipball/333263fe8aa6db11187a256ea55c2e9e97f28c4b", 1014 | "reference": "333263fe8aa6db11187a256ea55c2e9e97f28c4b", 1015 | "shasum": "" 1016 | }, 1017 | "require": { 1018 | "illuminate/session": "5.3.*", 1019 | "illuminate/support": "5.3.*", 1020 | "php": ">=5.6.4", 1021 | "symfony/http-foundation": "3.1.*", 1022 | "symfony/http-kernel": "3.1.*" 1023 | }, 1024 | "type": "library", 1025 | "extra": { 1026 | "branch-alias": { 1027 | "dev-master": "5.3-dev" 1028 | } 1029 | }, 1030 | "autoload": { 1031 | "psr-4": { 1032 | "Illuminate\\Http\\": "" 1033 | } 1034 | }, 1035 | "notification-url": "https://packagist.org/downloads/", 1036 | "license": [ 1037 | "MIT" 1038 | ], 1039 | "authors": [ 1040 | { 1041 | "name": "Taylor Otwell", 1042 | "email": "taylor@laravel.com" 1043 | } 1044 | ], 1045 | "description": "The Illuminate Http package.", 1046 | "homepage": "https://laravel.com", 1047 | "time": "2016-08-22 10:25:11" 1048 | }, 1049 | { 1050 | "name": "illuminate/pagination", 1051 | "version": "v5.3.4", 1052 | "source": { 1053 | "type": "git", 1054 | "url": "https://github.com/illuminate/pagination.git", 1055 | "reference": "735d44b9a3dedce5d2fd7caf41258b40507a1c23" 1056 | }, 1057 | "dist": { 1058 | "type": "zip", 1059 | "url": "https://api.github.com/repos/illuminate/pagination/zipball/735d44b9a3dedce5d2fd7caf41258b40507a1c23", 1060 | "reference": "735d44b9a3dedce5d2fd7caf41258b40507a1c23", 1061 | "shasum": "" 1062 | }, 1063 | "require": { 1064 | "illuminate/contracts": "5.3.*", 1065 | "illuminate/support": "5.3.*", 1066 | "php": ">=5.6.4" 1067 | }, 1068 | "type": "library", 1069 | "extra": { 1070 | "branch-alias": { 1071 | "dev-master": "5.3-dev" 1072 | } 1073 | }, 1074 | "autoload": { 1075 | "psr-4": { 1076 | "Illuminate\\Pagination\\": "" 1077 | } 1078 | }, 1079 | "notification-url": "https://packagist.org/downloads/", 1080 | "license": [ 1081 | "MIT" 1082 | ], 1083 | "authors": [ 1084 | { 1085 | "name": "Taylor Otwell", 1086 | "email": "taylor@laravel.com" 1087 | } 1088 | ], 1089 | "description": "The Illuminate Pagination package.", 1090 | "homepage": "https://laravel.com", 1091 | "time": "2016-08-12 18:26:25" 1092 | }, 1093 | { 1094 | "name": "illuminate/pipeline", 1095 | "version": "v5.3.4", 1096 | "source": { 1097 | "type": "git", 1098 | "url": "https://github.com/illuminate/pipeline.git", 1099 | "reference": "cd469572fad11243e7f4c5c02fca410657f0a457" 1100 | }, 1101 | "dist": { 1102 | "type": "zip", 1103 | "url": "https://api.github.com/repos/illuminate/pipeline/zipball/cd469572fad11243e7f4c5c02fca410657f0a457", 1104 | "reference": "cd469572fad11243e7f4c5c02fca410657f0a457", 1105 | "shasum": "" 1106 | }, 1107 | "require": { 1108 | "illuminate/contracts": "5.3.*", 1109 | "illuminate/support": "5.3.*", 1110 | "php": ">=5.6.4" 1111 | }, 1112 | "type": "library", 1113 | "extra": { 1114 | "branch-alias": { 1115 | "dev-master": "5.3-dev" 1116 | } 1117 | }, 1118 | "autoload": { 1119 | "psr-4": { 1120 | "Illuminate\\Pipeline\\": "" 1121 | } 1122 | }, 1123 | "notification-url": "https://packagist.org/downloads/", 1124 | "license": [ 1125 | "MIT" 1126 | ], 1127 | "authors": [ 1128 | { 1129 | "name": "Taylor Otwell", 1130 | "email": "taylor@laravel.com" 1131 | } 1132 | ], 1133 | "description": "The Illuminate Pipeline package.", 1134 | "homepage": "https://laravel.com", 1135 | "time": "2016-08-07 17:26:10" 1136 | }, 1137 | { 1138 | "name": "illuminate/queue", 1139 | "version": "v5.3.4", 1140 | "source": { 1141 | "type": "git", 1142 | "url": "https://github.com/illuminate/queue.git", 1143 | "reference": "0aa9daeba74521ff4f607ffc027dfea01a12ffff" 1144 | }, 1145 | "dist": { 1146 | "type": "zip", 1147 | "url": "https://api.github.com/repos/illuminate/queue/zipball/0aa9daeba74521ff4f607ffc027dfea01a12ffff", 1148 | "reference": "0aa9daeba74521ff4f607ffc027dfea01a12ffff", 1149 | "shasum": "" 1150 | }, 1151 | "require": { 1152 | "illuminate/console": "5.3.*", 1153 | "illuminate/container": "5.3.*", 1154 | "illuminate/contracts": "5.3.*", 1155 | "illuminate/support": "5.3.*", 1156 | "nesbot/carbon": "~1.20", 1157 | "php": ">=5.6.4", 1158 | "symfony/debug": "3.1.*", 1159 | "symfony/process": "3.1.*" 1160 | }, 1161 | "suggest": { 1162 | "aws/aws-sdk-php": "Required to use the SQS queue driver (~3.0).", 1163 | "illuminate/redis": "Required to use the Redis queue driver (5.3.*).", 1164 | "pda/pheanstalk": "Required to use the Beanstalk queue driver (~3.0)." 1165 | }, 1166 | "type": "library", 1167 | "extra": { 1168 | "branch-alias": { 1169 | "dev-master": "5.3-dev" 1170 | } 1171 | }, 1172 | "autoload": { 1173 | "psr-4": { 1174 | "Illuminate\\Queue\\": "" 1175 | } 1176 | }, 1177 | "notification-url": "https://packagist.org/downloads/", 1178 | "license": [ 1179 | "MIT" 1180 | ], 1181 | "authors": [ 1182 | { 1183 | "name": "Taylor Otwell", 1184 | "email": "taylor@laravel.com" 1185 | } 1186 | ], 1187 | "description": "The Illuminate Queue package.", 1188 | "homepage": "https://laravel.com", 1189 | "time": "2016-08-20 16:10:31" 1190 | }, 1191 | { 1192 | "name": "illuminate/routing", 1193 | "version": "v5.3.4", 1194 | "source": { 1195 | "type": "git", 1196 | "url": "https://github.com/illuminate/routing.git", 1197 | "reference": "3dafc280a93178c8290828218b450ec4906235b4" 1198 | }, 1199 | "dist": { 1200 | "type": "zip", 1201 | "url": "https://api.github.com/repos/illuminate/routing/zipball/3dafc280a93178c8290828218b450ec4906235b4", 1202 | "reference": "3dafc280a93178c8290828218b450ec4906235b4", 1203 | "shasum": "" 1204 | }, 1205 | "require": { 1206 | "illuminate/container": "5.3.*", 1207 | "illuminate/contracts": "5.3.*", 1208 | "illuminate/http": "5.3.*", 1209 | "illuminate/pipeline": "5.3.*", 1210 | "illuminate/session": "5.3.*", 1211 | "illuminate/support": "5.3.*", 1212 | "php": ">=5.6.4", 1213 | "symfony/debug": "3.1.*", 1214 | "symfony/http-foundation": "3.1.*", 1215 | "symfony/http-kernel": "3.1.*", 1216 | "symfony/routing": "3.1.*" 1217 | }, 1218 | "suggest": { 1219 | "illuminate/console": "Required to use the make commands (5.3.*).", 1220 | "symfony/psr-http-message-bridge": "Required to psr7 bridging features (0.2.*)." 1221 | }, 1222 | "type": "library", 1223 | "extra": { 1224 | "branch-alias": { 1225 | "dev-master": "5.3-dev" 1226 | } 1227 | }, 1228 | "autoload": { 1229 | "psr-4": { 1230 | "Illuminate\\Routing\\": "" 1231 | } 1232 | }, 1233 | "notification-url": "https://packagist.org/downloads/", 1234 | "license": [ 1235 | "MIT" 1236 | ], 1237 | "authors": [ 1238 | { 1239 | "name": "Taylor Otwell", 1240 | "email": "taylor@laravel.com" 1241 | } 1242 | ], 1243 | "description": "The Illuminate Routing package.", 1244 | "homepage": "https://laravel.com", 1245 | "time": "2016-08-26 21:12:19" 1246 | }, 1247 | { 1248 | "name": "illuminate/session", 1249 | "version": "v5.3.4", 1250 | "source": { 1251 | "type": "git", 1252 | "url": "https://github.com/illuminate/session.git", 1253 | "reference": "0f818548aa248f64d89f8129229a4de84184f59e" 1254 | }, 1255 | "dist": { 1256 | "type": "zip", 1257 | "url": "https://api.github.com/repos/illuminate/session/zipball/0f818548aa248f64d89f8129229a4de84184f59e", 1258 | "reference": "0f818548aa248f64d89f8129229a4de84184f59e", 1259 | "shasum": "" 1260 | }, 1261 | "require": { 1262 | "illuminate/contracts": "5.3.*", 1263 | "illuminate/support": "5.3.*", 1264 | "nesbot/carbon": "~1.20", 1265 | "php": ">=5.6.4", 1266 | "symfony/finder": "3.1.*", 1267 | "symfony/http-foundation": "3.1.*" 1268 | }, 1269 | "suggest": { 1270 | "illuminate/console": "Required to use the session:table command (5.3.*)." 1271 | }, 1272 | "type": "library", 1273 | "extra": { 1274 | "branch-alias": { 1275 | "dev-master": "5.3-dev" 1276 | } 1277 | }, 1278 | "autoload": { 1279 | "psr-4": { 1280 | "Illuminate\\Session\\": "" 1281 | } 1282 | }, 1283 | "notification-url": "https://packagist.org/downloads/", 1284 | "license": [ 1285 | "MIT" 1286 | ], 1287 | "authors": [ 1288 | { 1289 | "name": "Taylor Otwell", 1290 | "email": "taylor@laravel.com" 1291 | } 1292 | ], 1293 | "description": "The Illuminate Session package.", 1294 | "homepage": "https://laravel.com", 1295 | "time": "2016-08-11 22:24:39" 1296 | }, 1297 | { 1298 | "name": "illuminate/support", 1299 | "version": "v5.3.4", 1300 | "source": { 1301 | "type": "git", 1302 | "url": "https://github.com/illuminate/support.git", 1303 | "reference": "1b4f32dfa799dd8d0e0d11e0aaaf677e2829d6e8" 1304 | }, 1305 | "dist": { 1306 | "type": "zip", 1307 | "url": "https://api.github.com/repos/illuminate/support/zipball/1b4f32dfa799dd8d0e0d11e0aaaf677e2829d6e8", 1308 | "reference": "1b4f32dfa799dd8d0e0d11e0aaaf677e2829d6e8", 1309 | "shasum": "" 1310 | }, 1311 | "require": { 1312 | "doctrine/inflector": "~1.0", 1313 | "ext-mbstring": "*", 1314 | "illuminate/contracts": "5.3.*", 1315 | "paragonie/random_compat": "~1.4|~2.0", 1316 | "php": ">=5.6.4" 1317 | }, 1318 | "replace": { 1319 | "tightenco/collect": "self.version" 1320 | }, 1321 | "suggest": { 1322 | "illuminate/filesystem": "Required to use the composer class (5.2.*).", 1323 | "symfony/process": "Required to use the composer class (3.1.*).", 1324 | "symfony/var-dumper": "Required to use the dd function (3.1.*)." 1325 | }, 1326 | "type": "library", 1327 | "extra": { 1328 | "branch-alias": { 1329 | "dev-master": "5.3-dev" 1330 | } 1331 | }, 1332 | "autoload": { 1333 | "psr-4": { 1334 | "Illuminate\\Support\\": "" 1335 | }, 1336 | "files": [ 1337 | "helpers.php" 1338 | ] 1339 | }, 1340 | "notification-url": "https://packagist.org/downloads/", 1341 | "license": [ 1342 | "MIT" 1343 | ], 1344 | "authors": [ 1345 | { 1346 | "name": "Taylor Otwell", 1347 | "email": "taylor@laravel.com" 1348 | } 1349 | ], 1350 | "description": "The Illuminate Support package.", 1351 | "homepage": "https://laravel.com", 1352 | "time": "2016-08-26 17:26:49" 1353 | }, 1354 | { 1355 | "name": "illuminate/translation", 1356 | "version": "v5.3.4", 1357 | "source": { 1358 | "type": "git", 1359 | "url": "https://github.com/illuminate/translation.git", 1360 | "reference": "87c27cbe7d234683c112896b47a4603f91f435c1" 1361 | }, 1362 | "dist": { 1363 | "type": "zip", 1364 | "url": "https://api.github.com/repos/illuminate/translation/zipball/87c27cbe7d234683c112896b47a4603f91f435c1", 1365 | "reference": "87c27cbe7d234683c112896b47a4603f91f435c1", 1366 | "shasum": "" 1367 | }, 1368 | "require": { 1369 | "illuminate/filesystem": "5.3.*", 1370 | "illuminate/support": "5.3.*", 1371 | "php": ">=5.6.4", 1372 | "symfony/translation": "3.1.*" 1373 | }, 1374 | "type": "library", 1375 | "extra": { 1376 | "branch-alias": { 1377 | "dev-master": "5.3-dev" 1378 | } 1379 | }, 1380 | "autoload": { 1381 | "psr-4": { 1382 | "Illuminate\\Translation\\": "" 1383 | } 1384 | }, 1385 | "notification-url": "https://packagist.org/downloads/", 1386 | "license": [ 1387 | "MIT" 1388 | ], 1389 | "authors": [ 1390 | { 1391 | "name": "Taylor Otwell", 1392 | "email": "taylor@laravel.com" 1393 | } 1394 | ], 1395 | "description": "The Illuminate Translation package.", 1396 | "homepage": "https://laravel.com", 1397 | "time": "2016-08-16 15:38:33" 1398 | }, 1399 | { 1400 | "name": "illuminate/validation", 1401 | "version": "v5.3.4", 1402 | "source": { 1403 | "type": "git", 1404 | "url": "https://github.com/illuminate/validation.git", 1405 | "reference": "4eb398841b697b3e15d6b619633ed2881e9db0c1" 1406 | }, 1407 | "dist": { 1408 | "type": "zip", 1409 | "url": "https://api.github.com/repos/illuminate/validation/zipball/4eb398841b697b3e15d6b619633ed2881e9db0c1", 1410 | "reference": "4eb398841b697b3e15d6b619633ed2881e9db0c1", 1411 | "shasum": "" 1412 | }, 1413 | "require": { 1414 | "illuminate/container": "5.3.*", 1415 | "illuminate/contracts": "5.3.*", 1416 | "illuminate/support": "5.3.*", 1417 | "php": ">=5.6.4", 1418 | "symfony/http-foundation": "3.1.*", 1419 | "symfony/translation": "3.1.*" 1420 | }, 1421 | "suggest": { 1422 | "illuminate/database": "Required to use the database presence verifier (5.3.*)." 1423 | }, 1424 | "type": "library", 1425 | "extra": { 1426 | "branch-alias": { 1427 | "dev-master": "5.3-dev" 1428 | } 1429 | }, 1430 | "autoload": { 1431 | "psr-4": { 1432 | "Illuminate\\Validation\\": "" 1433 | } 1434 | }, 1435 | "notification-url": "https://packagist.org/downloads/", 1436 | "license": [ 1437 | "MIT" 1438 | ], 1439 | "authors": [ 1440 | { 1441 | "name": "Taylor Otwell", 1442 | "email": "taylor@laravel.com" 1443 | } 1444 | ], 1445 | "description": "The Illuminate Validation package.", 1446 | "homepage": "https://laravel.com", 1447 | "time": "2016-08-12 15:28:10" 1448 | }, 1449 | { 1450 | "name": "illuminate/view", 1451 | "version": "v5.3.4", 1452 | "source": { 1453 | "type": "git", 1454 | "url": "https://github.com/illuminate/view.git", 1455 | "reference": "cbafb75c07e93aff38eea6e917cc7e8ee1deeaa1" 1456 | }, 1457 | "dist": { 1458 | "type": "zip", 1459 | "url": "https://api.github.com/repos/illuminate/view/zipball/cbafb75c07e93aff38eea6e917cc7e8ee1deeaa1", 1460 | "reference": "cbafb75c07e93aff38eea6e917cc7e8ee1deeaa1", 1461 | "shasum": "" 1462 | }, 1463 | "require": { 1464 | "illuminate/container": "5.3.*", 1465 | "illuminate/contracts": "5.3.*", 1466 | "illuminate/events": "5.3.*", 1467 | "illuminate/filesystem": "5.3.*", 1468 | "illuminate/support": "5.3.*", 1469 | "php": ">=5.6.4", 1470 | "symfony/debug": "3.1.*" 1471 | }, 1472 | "type": "library", 1473 | "extra": { 1474 | "branch-alias": { 1475 | "dev-master": "5.3-dev" 1476 | } 1477 | }, 1478 | "autoload": { 1479 | "psr-4": { 1480 | "Illuminate\\View\\": "" 1481 | } 1482 | }, 1483 | "notification-url": "https://packagist.org/downloads/", 1484 | "license": [ 1485 | "MIT" 1486 | ], 1487 | "authors": [ 1488 | { 1489 | "name": "Taylor Otwell", 1490 | "email": "taylor@laravel.com" 1491 | } 1492 | ], 1493 | "description": "The Illuminate View package.", 1494 | "homepage": "https://laravel.com", 1495 | "time": "2016-08-24 08:31:50" 1496 | }, 1497 | { 1498 | "name": "laravel/lumen-framework", 1499 | "version": "v5.3.0", 1500 | "source": { 1501 | "type": "git", 1502 | "url": "https://github.com/laravel/lumen-framework.git", 1503 | "reference": "414fa00eb0efadb1e39f977b8703ed4a3c579323" 1504 | }, 1505 | "dist": { 1506 | "type": "zip", 1507 | "url": "https://api.github.com/repos/laravel/lumen-framework/zipball/414fa00eb0efadb1e39f977b8703ed4a3c579323", 1508 | "reference": "414fa00eb0efadb1e39f977b8703ed4a3c579323", 1509 | "shasum": "" 1510 | }, 1511 | "require": { 1512 | "illuminate/auth": "5.3.*", 1513 | "illuminate/broadcasting": "5.3.*", 1514 | "illuminate/bus": "5.3.*", 1515 | "illuminate/cache": "5.3.*", 1516 | "illuminate/config": "5.3.*", 1517 | "illuminate/container": "5.3.*", 1518 | "illuminate/contracts": "5.3.*", 1519 | "illuminate/database": "5.3.*", 1520 | "illuminate/encryption": "5.3.*", 1521 | "illuminate/events": "5.3.*", 1522 | "illuminate/filesystem": "5.3.*", 1523 | "illuminate/hashing": "5.3.*", 1524 | "illuminate/http": "5.3.*", 1525 | "illuminate/pagination": "5.3.*", 1526 | "illuminate/pipeline": "5.3.*", 1527 | "illuminate/queue": "5.3.*", 1528 | "illuminate/support": "5.3.*", 1529 | "illuminate/translation": "5.3.*", 1530 | "illuminate/validation": "5.3.*", 1531 | "illuminate/view": "5.3.*", 1532 | "monolog/monolog": "~1.11", 1533 | "mtdowling/cron-expression": "~1.0", 1534 | "nikic/fast-route": "~1.0", 1535 | "paragonie/random_compat": "~1.4|~2.0", 1536 | "php": ">=5.6.4", 1537 | "symfony/http-foundation": "3.1.*", 1538 | "symfony/http-kernel": "3.1.*" 1539 | }, 1540 | "require-dev": { 1541 | "mockery/mockery": "~0.9", 1542 | "phpunit/phpunit": "~5.0" 1543 | }, 1544 | "suggest": { 1545 | "vlucas/phpdotenv": "Required to use .env files (~2.2)." 1546 | }, 1547 | "type": "library", 1548 | "extra": { 1549 | "branch-alias": { 1550 | "dev-master": "5.3-dev" 1551 | } 1552 | }, 1553 | "autoload": { 1554 | "psr-4": { 1555 | "Laravel\\Lumen\\": "src/" 1556 | }, 1557 | "files": [ 1558 | "src/helpers.php" 1559 | ] 1560 | }, 1561 | "notification-url": "https://packagist.org/downloads/", 1562 | "license": [ 1563 | "MIT" 1564 | ], 1565 | "authors": [ 1566 | { 1567 | "name": "Taylor Otwell", 1568 | "email": "taylorotwell@gmail.com" 1569 | } 1570 | ], 1571 | "description": "The Laravel Lumen Framework.", 1572 | "homepage": "http://laravel.com", 1573 | "keywords": [ 1574 | "framework", 1575 | "laravel", 1576 | "lumen" 1577 | ], 1578 | "time": "2016-09-07 18:38:54" 1579 | }, 1580 | { 1581 | "name": "league/fractal", 1582 | "version": "0.14.0", 1583 | "source": { 1584 | "type": "git", 1585 | "url": "https://github.com/thephpleague/fractal.git", 1586 | "reference": "56ad8933fbb40328ca3321c84143b2c16186eebf" 1587 | }, 1588 | "dist": { 1589 | "type": "zip", 1590 | "url": "https://api.github.com/repos/thephpleague/fractal/zipball/56ad8933fbb40328ca3321c84143b2c16186eebf", 1591 | "reference": "56ad8933fbb40328ca3321c84143b2c16186eebf", 1592 | "shasum": "" 1593 | }, 1594 | "require": { 1595 | "php": ">=5.4" 1596 | }, 1597 | "require-dev": { 1598 | "illuminate/contracts": "~5.0", 1599 | "mockery/mockery": "~0.9", 1600 | "pagerfanta/pagerfanta": "~1.0.0", 1601 | "phpunit/phpunit": "~4.0", 1602 | "squizlabs/php_codesniffer": "~1.5", 1603 | "zendframework/zend-paginator": "~2.3" 1604 | }, 1605 | "suggest": { 1606 | "illuminate/pagination": "The Illuminate Pagination component.", 1607 | "pagerfanta/pagerfanta": "Pagerfanta Paginator", 1608 | "zendframework/zend-paginator": "Zend Framework Paginator" 1609 | }, 1610 | "type": "library", 1611 | "extra": { 1612 | "branch-alias": { 1613 | "dev-master": "0.13-dev" 1614 | } 1615 | }, 1616 | "autoload": { 1617 | "psr-4": { 1618 | "League\\Fractal\\": "src" 1619 | } 1620 | }, 1621 | "notification-url": "https://packagist.org/downloads/", 1622 | "license": [ 1623 | "MIT" 1624 | ], 1625 | "authors": [ 1626 | { 1627 | "name": "Phil Sturgeon", 1628 | "email": "me@philsturgeon.uk", 1629 | "homepage": "http://philsturgeon.uk/", 1630 | "role": "Developer" 1631 | } 1632 | ], 1633 | "description": "Handle the output of complex data structures ready for API output.", 1634 | "homepage": "http://fractal.thephpleague.com/", 1635 | "keywords": [ 1636 | "api", 1637 | "json", 1638 | "league", 1639 | "rest" 1640 | ], 1641 | "time": "2016-07-21 09:56:14" 1642 | }, 1643 | { 1644 | "name": "monolog/monolog", 1645 | "version": "1.21.0", 1646 | "source": { 1647 | "type": "git", 1648 | "url": "https://github.com/Seldaek/monolog.git", 1649 | "reference": "f42fbdfd53e306bda545845e4dbfd3e72edb4952" 1650 | }, 1651 | "dist": { 1652 | "type": "zip", 1653 | "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f42fbdfd53e306bda545845e4dbfd3e72edb4952", 1654 | "reference": "f42fbdfd53e306bda545845e4dbfd3e72edb4952", 1655 | "shasum": "" 1656 | }, 1657 | "require": { 1658 | "php": ">=5.3.0", 1659 | "psr/log": "~1.0" 1660 | }, 1661 | "provide": { 1662 | "psr/log-implementation": "1.0.0" 1663 | }, 1664 | "require-dev": { 1665 | "aws/aws-sdk-php": "^2.4.9", 1666 | "doctrine/couchdb": "~1.0@dev", 1667 | "graylog2/gelf-php": "~1.0", 1668 | "jakub-onderka/php-parallel-lint": "0.9", 1669 | "php-amqplib/php-amqplib": "~2.4", 1670 | "php-console/php-console": "^3.1.3", 1671 | "phpunit/phpunit": "~4.5", 1672 | "phpunit/phpunit-mock-objects": "2.3.0", 1673 | "ruflin/elastica": ">=0.90 <3.0", 1674 | "sentry/sentry": "^0.13", 1675 | "swiftmailer/swiftmailer": "~5.3" 1676 | }, 1677 | "suggest": { 1678 | "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", 1679 | "doctrine/couchdb": "Allow sending log messages to a CouchDB server", 1680 | "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", 1681 | "ext-mongo": "Allow sending log messages to a MongoDB server", 1682 | "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", 1683 | "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", 1684 | "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", 1685 | "php-console/php-console": "Allow sending log messages to Google Chrome", 1686 | "rollbar/rollbar": "Allow sending log messages to Rollbar", 1687 | "ruflin/elastica": "Allow sending log messages to an Elastic Search server", 1688 | "sentry/sentry": "Allow sending log messages to a Sentry server" 1689 | }, 1690 | "type": "library", 1691 | "extra": { 1692 | "branch-alias": { 1693 | "dev-master": "2.0.x-dev" 1694 | } 1695 | }, 1696 | "autoload": { 1697 | "psr-4": { 1698 | "Monolog\\": "src/Monolog" 1699 | } 1700 | }, 1701 | "notification-url": "https://packagist.org/downloads/", 1702 | "license": [ 1703 | "MIT" 1704 | ], 1705 | "authors": [ 1706 | { 1707 | "name": "Jordi Boggiano", 1708 | "email": "j.boggiano@seld.be", 1709 | "homepage": "http://seld.be" 1710 | } 1711 | ], 1712 | "description": "Sends your logs to files, sockets, inboxes, databases and various web services", 1713 | "homepage": "http://github.com/Seldaek/monolog", 1714 | "keywords": [ 1715 | "log", 1716 | "logging", 1717 | "psr-3" 1718 | ], 1719 | "time": "2016-07-29 03:23:52" 1720 | }, 1721 | { 1722 | "name": "mtdowling/cron-expression", 1723 | "version": "v1.1.0", 1724 | "source": { 1725 | "type": "git", 1726 | "url": "https://github.com/mtdowling/cron-expression.git", 1727 | "reference": "c9ee7886f5a12902b225a1a12f36bb45f9ab89e5" 1728 | }, 1729 | "dist": { 1730 | "type": "zip", 1731 | "url": "https://api.github.com/repos/mtdowling/cron-expression/zipball/c9ee7886f5a12902b225a1a12f36bb45f9ab89e5", 1732 | "reference": "c9ee7886f5a12902b225a1a12f36bb45f9ab89e5", 1733 | "shasum": "" 1734 | }, 1735 | "require": { 1736 | "php": ">=5.3.2" 1737 | }, 1738 | "require-dev": { 1739 | "phpunit/phpunit": "~4.0|~5.0" 1740 | }, 1741 | "type": "library", 1742 | "autoload": { 1743 | "psr-0": { 1744 | "Cron": "src/" 1745 | } 1746 | }, 1747 | "notification-url": "https://packagist.org/downloads/", 1748 | "license": [ 1749 | "MIT" 1750 | ], 1751 | "authors": [ 1752 | { 1753 | "name": "Michael Dowling", 1754 | "email": "mtdowling@gmail.com", 1755 | "homepage": "https://github.com/mtdowling" 1756 | } 1757 | ], 1758 | "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", 1759 | "keywords": [ 1760 | "cron", 1761 | "schedule" 1762 | ], 1763 | "time": "2016-01-26 21:23:30" 1764 | }, 1765 | { 1766 | "name": "namshi/jose", 1767 | "version": "5.0.2", 1768 | "source": { 1769 | "type": "git", 1770 | "url": "https://github.com/namshi/jose.git", 1771 | "reference": "8c7eba486f74c014ea1d8faedafe5109a31ea95b" 1772 | }, 1773 | "dist": { 1774 | "type": "zip", 1775 | "url": "https://api.github.com/repos/namshi/jose/zipball/8c7eba486f74c014ea1d8faedafe5109a31ea95b", 1776 | "reference": "8c7eba486f74c014ea1d8faedafe5109a31ea95b", 1777 | "shasum": "" 1778 | }, 1779 | "require": { 1780 | "lib-openssl": "*", 1781 | "php": ">=5.3.3", 1782 | "phpseclib/phpseclib": "~0.3" 1783 | }, 1784 | "require-dev": { 1785 | "phpunit/phpunit": "~4.5", 1786 | "satooshi/php-coveralls": "dev-master" 1787 | }, 1788 | "type": "library", 1789 | "autoload": { 1790 | "psr-0": { 1791 | "Namshi\\JOSE": "src/" 1792 | } 1793 | }, 1794 | "notification-url": "https://packagist.org/downloads/", 1795 | "license": [ 1796 | "MIT" 1797 | ], 1798 | "authors": [ 1799 | { 1800 | "name": "Alessandro Nadalin", 1801 | "email": "alessandro.nadalin@gmail.com" 1802 | } 1803 | ], 1804 | "description": "JSON Object Signing and Encryption library for PHP.", 1805 | "keywords": [ 1806 | "JSON Web Signature", 1807 | "JSON Web Token", 1808 | "JWS", 1809 | "json", 1810 | "jwt", 1811 | "token" 1812 | ], 1813 | "time": "2015-06-29 05:41:44" 1814 | }, 1815 | { 1816 | "name": "nesbot/carbon", 1817 | "version": "1.21.0", 1818 | "source": { 1819 | "type": "git", 1820 | "url": "https://github.com/briannesbitt/Carbon.git", 1821 | "reference": "7b08ec6f75791e130012f206e3f7b0e76e18e3d7" 1822 | }, 1823 | "dist": { 1824 | "type": "zip", 1825 | "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/7b08ec6f75791e130012f206e3f7b0e76e18e3d7", 1826 | "reference": "7b08ec6f75791e130012f206e3f7b0e76e18e3d7", 1827 | "shasum": "" 1828 | }, 1829 | "require": { 1830 | "php": ">=5.3.0", 1831 | "symfony/translation": "~2.6|~3.0" 1832 | }, 1833 | "require-dev": { 1834 | "phpunit/phpunit": "~4.0|~5.0" 1835 | }, 1836 | "type": "library", 1837 | "autoload": { 1838 | "psr-4": { 1839 | "Carbon\\": "src/Carbon/" 1840 | } 1841 | }, 1842 | "notification-url": "https://packagist.org/downloads/", 1843 | "license": [ 1844 | "MIT" 1845 | ], 1846 | "authors": [ 1847 | { 1848 | "name": "Brian Nesbitt", 1849 | "email": "brian@nesbot.com", 1850 | "homepage": "http://nesbot.com" 1851 | } 1852 | ], 1853 | "description": "A simple API extension for DateTime.", 1854 | "homepage": "http://carbon.nesbot.com", 1855 | "keywords": [ 1856 | "date", 1857 | "datetime", 1858 | "time" 1859 | ], 1860 | "time": "2015-11-04 20:07:17" 1861 | }, 1862 | { 1863 | "name": "nikic/fast-route", 1864 | "version": "v1.0.1", 1865 | "source": { 1866 | "type": "git", 1867 | "url": "https://github.com/nikic/FastRoute.git", 1868 | "reference": "8ea928195fa9b907f0d6e48312d323c1a13cc2af" 1869 | }, 1870 | "dist": { 1871 | "type": "zip", 1872 | "url": "https://api.github.com/repos/nikic/FastRoute/zipball/8ea928195fa9b907f0d6e48312d323c1a13cc2af", 1873 | "reference": "8ea928195fa9b907f0d6e48312d323c1a13cc2af", 1874 | "shasum": "" 1875 | }, 1876 | "require": { 1877 | "php": ">=5.4.0" 1878 | }, 1879 | "type": "library", 1880 | "autoload": { 1881 | "psr-4": { 1882 | "FastRoute\\": "src/" 1883 | }, 1884 | "files": [ 1885 | "src/functions.php" 1886 | ] 1887 | }, 1888 | "notification-url": "https://packagist.org/downloads/", 1889 | "license": [ 1890 | "BSD-3-Clause" 1891 | ], 1892 | "authors": [ 1893 | { 1894 | "name": "Nikita Popov", 1895 | "email": "nikic@php.net" 1896 | } 1897 | ], 1898 | "description": "Fast request router for PHP", 1899 | "keywords": [ 1900 | "router", 1901 | "routing" 1902 | ], 1903 | "time": "2016-06-12 19:08:51" 1904 | }, 1905 | { 1906 | "name": "paragonie/random_compat", 1907 | "version": "v2.0.2", 1908 | "source": { 1909 | "type": "git", 1910 | "url": "https://github.com/paragonie/random_compat.git", 1911 | "reference": "088c04e2f261c33bed6ca5245491cfca69195ccf" 1912 | }, 1913 | "dist": { 1914 | "type": "zip", 1915 | "url": "https://api.github.com/repos/paragonie/random_compat/zipball/088c04e2f261c33bed6ca5245491cfca69195ccf", 1916 | "reference": "088c04e2f261c33bed6ca5245491cfca69195ccf", 1917 | "shasum": "" 1918 | }, 1919 | "require": { 1920 | "php": ">=5.2.0" 1921 | }, 1922 | "require-dev": { 1923 | "phpunit/phpunit": "4.*|5.*" 1924 | }, 1925 | "suggest": { 1926 | "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." 1927 | }, 1928 | "type": "library", 1929 | "autoload": { 1930 | "files": [ 1931 | "lib/random.php" 1932 | ] 1933 | }, 1934 | "notification-url": "https://packagist.org/downloads/", 1935 | "license": [ 1936 | "MIT" 1937 | ], 1938 | "authors": [ 1939 | { 1940 | "name": "Paragon Initiative Enterprises", 1941 | "email": "security@paragonie.com", 1942 | "homepage": "https://paragonie.com" 1943 | } 1944 | ], 1945 | "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", 1946 | "keywords": [ 1947 | "csprng", 1948 | "pseudorandom", 1949 | "random" 1950 | ], 1951 | "time": "2016-04-03 06:00:07" 1952 | }, 1953 | { 1954 | "name": "phpdocumentor/reflection-common", 1955 | "version": "1.0", 1956 | "source": { 1957 | "type": "git", 1958 | "url": "https://github.com/phpDocumentor/ReflectionCommon.git", 1959 | "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c" 1960 | }, 1961 | "dist": { 1962 | "type": "zip", 1963 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/144c307535e82c8fdcaacbcfc1d6d8eeb896687c", 1964 | "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c", 1965 | "shasum": "" 1966 | }, 1967 | "require": { 1968 | "php": ">=5.5" 1969 | }, 1970 | "require-dev": { 1971 | "phpunit/phpunit": "^4.6" 1972 | }, 1973 | "type": "library", 1974 | "extra": { 1975 | "branch-alias": { 1976 | "dev-master": "1.0.x-dev" 1977 | } 1978 | }, 1979 | "autoload": { 1980 | "psr-4": { 1981 | "phpDocumentor\\Reflection\\": [ 1982 | "src" 1983 | ] 1984 | } 1985 | }, 1986 | "notification-url": "https://packagist.org/downloads/", 1987 | "license": [ 1988 | "MIT" 1989 | ], 1990 | "authors": [ 1991 | { 1992 | "name": "Jaap van Otterdijk", 1993 | "email": "opensource@ijaap.nl" 1994 | } 1995 | ], 1996 | "description": "Common reflection classes used by phpdocumentor to reflect the code structure", 1997 | "homepage": "http://www.phpdoc.org", 1998 | "keywords": [ 1999 | "FQSEN", 2000 | "phpDocumentor", 2001 | "phpdoc", 2002 | "reflection", 2003 | "static analysis" 2004 | ], 2005 | "time": "2015-12-27 11:43:31" 2006 | }, 2007 | { 2008 | "name": "phpdocumentor/reflection-docblock", 2009 | "version": "3.1.0", 2010 | "source": { 2011 | "type": "git", 2012 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", 2013 | "reference": "9270140b940ff02e58ec577c237274e92cd40cdd" 2014 | }, 2015 | "dist": { 2016 | "type": "zip", 2017 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/9270140b940ff02e58ec577c237274e92cd40cdd", 2018 | "reference": "9270140b940ff02e58ec577c237274e92cd40cdd", 2019 | "shasum": "" 2020 | }, 2021 | "require": { 2022 | "php": ">=5.5", 2023 | "phpdocumentor/reflection-common": "^1.0@dev", 2024 | "phpdocumentor/type-resolver": "^0.2.0", 2025 | "webmozart/assert": "^1.0" 2026 | }, 2027 | "require-dev": { 2028 | "mockery/mockery": "^0.9.4", 2029 | "phpunit/phpunit": "^4.4" 2030 | }, 2031 | "type": "library", 2032 | "autoload": { 2033 | "psr-4": { 2034 | "phpDocumentor\\Reflection\\": [ 2035 | "src/" 2036 | ] 2037 | } 2038 | }, 2039 | "notification-url": "https://packagist.org/downloads/", 2040 | "license": [ 2041 | "MIT" 2042 | ], 2043 | "authors": [ 2044 | { 2045 | "name": "Mike van Riel", 2046 | "email": "me@mikevanriel.com" 2047 | } 2048 | ], 2049 | "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", 2050 | "time": "2016-06-10 09:48:41" 2051 | }, 2052 | { 2053 | "name": "phpdocumentor/type-resolver", 2054 | "version": "0.2", 2055 | "source": { 2056 | "type": "git", 2057 | "url": "https://github.com/phpDocumentor/TypeResolver.git", 2058 | "reference": "b39c7a5b194f9ed7bd0dd345c751007a41862443" 2059 | }, 2060 | "dist": { 2061 | "type": "zip", 2062 | "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/b39c7a5b194f9ed7bd0dd345c751007a41862443", 2063 | "reference": "b39c7a5b194f9ed7bd0dd345c751007a41862443", 2064 | "shasum": "" 2065 | }, 2066 | "require": { 2067 | "php": ">=5.5", 2068 | "phpdocumentor/reflection-common": "^1.0" 2069 | }, 2070 | "require-dev": { 2071 | "mockery/mockery": "^0.9.4", 2072 | "phpunit/phpunit": "^5.2||^4.8.24" 2073 | }, 2074 | "type": "library", 2075 | "extra": { 2076 | "branch-alias": { 2077 | "dev-master": "1.0.x-dev" 2078 | } 2079 | }, 2080 | "autoload": { 2081 | "psr-4": { 2082 | "phpDocumentor\\Reflection\\": [ 2083 | "src/" 2084 | ] 2085 | } 2086 | }, 2087 | "notification-url": "https://packagist.org/downloads/", 2088 | "license": [ 2089 | "MIT" 2090 | ], 2091 | "authors": [ 2092 | { 2093 | "name": "Mike van Riel", 2094 | "email": "me@mikevanriel.com" 2095 | } 2096 | ], 2097 | "time": "2016-06-10 07:14:17" 2098 | }, 2099 | { 2100 | "name": "phpseclib/phpseclib", 2101 | "version": "0.3.10", 2102 | "source": { 2103 | "type": "git", 2104 | "url": "https://github.com/phpseclib/phpseclib.git", 2105 | "reference": "d15bba1edcc7c89e09cc74c5d961317a8b947bf4" 2106 | }, 2107 | "dist": { 2108 | "type": "zip", 2109 | "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/d15bba1edcc7c89e09cc74c5d961317a8b947bf4", 2110 | "reference": "d15bba1edcc7c89e09cc74c5d961317a8b947bf4", 2111 | "shasum": "" 2112 | }, 2113 | "require": { 2114 | "php": ">=5.0.0" 2115 | }, 2116 | "require-dev": { 2117 | "phing/phing": "~2.7", 2118 | "phpunit/phpunit": "~4.0", 2119 | "sami/sami": "~2.0", 2120 | "squizlabs/php_codesniffer": "~1.5" 2121 | }, 2122 | "suggest": { 2123 | "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.", 2124 | "ext-mcrypt": "Install the Mcrypt extension in order to speed up a wide variety of cryptographic operations.", 2125 | "pear-pear/PHP_Compat": "Install PHP_Compat to get phpseclib working on PHP < 4.3.3." 2126 | }, 2127 | "type": "library", 2128 | "extra": { 2129 | "branch-alias": { 2130 | "dev-master": "0.3-dev" 2131 | } 2132 | }, 2133 | "autoload": { 2134 | "psr-0": { 2135 | "Crypt": "phpseclib/", 2136 | "File": "phpseclib/", 2137 | "Math": "phpseclib/", 2138 | "Net": "phpseclib/", 2139 | "System": "phpseclib/" 2140 | }, 2141 | "files": [ 2142 | "phpseclib/Crypt/Random.php" 2143 | ] 2144 | }, 2145 | "notification-url": "https://packagist.org/downloads/", 2146 | "include-path": [ 2147 | "phpseclib/" 2148 | ], 2149 | "license": [ 2150 | "MIT" 2151 | ], 2152 | "authors": [ 2153 | { 2154 | "name": "Jim Wigginton", 2155 | "email": "terrafrost@php.net", 2156 | "role": "Lead Developer" 2157 | }, 2158 | { 2159 | "name": "Patrick Monnerat", 2160 | "email": "pm@datasphere.ch", 2161 | "role": "Developer" 2162 | }, 2163 | { 2164 | "name": "Andreas Fischer", 2165 | "email": "bantu@phpbb.com", 2166 | "role": "Developer" 2167 | }, 2168 | { 2169 | "name": "Hans-Jürgen Petrich", 2170 | "email": "petrich@tronic-media.com", 2171 | "role": "Developer" 2172 | } 2173 | ], 2174 | "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.", 2175 | "homepage": "http://phpseclib.sourceforge.net", 2176 | "keywords": [ 2177 | "BigInteger", 2178 | "aes", 2179 | "asn.1", 2180 | "asn1", 2181 | "blowfish", 2182 | "crypto", 2183 | "cryptography", 2184 | "encryption", 2185 | "rsa", 2186 | "security", 2187 | "sftp", 2188 | "signature", 2189 | "signing", 2190 | "ssh", 2191 | "twofish", 2192 | "x.509", 2193 | "x509" 2194 | ], 2195 | "time": "2015-01-28 21:50:33" 2196 | }, 2197 | { 2198 | "name": "psr/log", 2199 | "version": "1.0.1", 2200 | "source": { 2201 | "type": "git", 2202 | "url": "https://github.com/php-fig/log.git", 2203 | "reference": "5277094ed527a1c4477177d102fe4c53551953e0" 2204 | }, 2205 | "dist": { 2206 | "type": "zip", 2207 | "url": "https://api.github.com/repos/php-fig/log/zipball/5277094ed527a1c4477177d102fe4c53551953e0", 2208 | "reference": "5277094ed527a1c4477177d102fe4c53551953e0", 2209 | "shasum": "" 2210 | }, 2211 | "require": { 2212 | "php": ">=5.3.0" 2213 | }, 2214 | "type": "library", 2215 | "extra": { 2216 | "branch-alias": { 2217 | "dev-master": "1.0.x-dev" 2218 | } 2219 | }, 2220 | "autoload": { 2221 | "psr-4": { 2222 | "Psr\\Log\\": "Psr/Log/" 2223 | } 2224 | }, 2225 | "notification-url": "https://packagist.org/downloads/", 2226 | "license": [ 2227 | "MIT" 2228 | ], 2229 | "authors": [ 2230 | { 2231 | "name": "PHP-FIG", 2232 | "homepage": "http://www.php-fig.org/" 2233 | } 2234 | ], 2235 | "description": "Common interface for logging libraries", 2236 | "homepage": "https://github.com/php-fig/log", 2237 | "keywords": [ 2238 | "log", 2239 | "psr", 2240 | "psr-3" 2241 | ], 2242 | "time": "2016-09-19 16:02:08" 2243 | }, 2244 | { 2245 | "name": "symfony/console", 2246 | "version": "v3.1.4", 2247 | "source": { 2248 | "type": "git", 2249 | "url": "https://github.com/symfony/console.git", 2250 | "reference": "8ea494c34f0f772c3954b5fbe00bffc5a435e563" 2251 | }, 2252 | "dist": { 2253 | "type": "zip", 2254 | "url": "https://api.github.com/repos/symfony/console/zipball/8ea494c34f0f772c3954b5fbe00bffc5a435e563", 2255 | "reference": "8ea494c34f0f772c3954b5fbe00bffc5a435e563", 2256 | "shasum": "" 2257 | }, 2258 | "require": { 2259 | "php": ">=5.5.9", 2260 | "symfony/polyfill-mbstring": "~1.0" 2261 | }, 2262 | "require-dev": { 2263 | "psr/log": "~1.0", 2264 | "symfony/event-dispatcher": "~2.8|~3.0", 2265 | "symfony/process": "~2.8|~3.0" 2266 | }, 2267 | "suggest": { 2268 | "psr/log": "For using the console logger", 2269 | "symfony/event-dispatcher": "", 2270 | "symfony/process": "" 2271 | }, 2272 | "type": "library", 2273 | "extra": { 2274 | "branch-alias": { 2275 | "dev-master": "3.1-dev" 2276 | } 2277 | }, 2278 | "autoload": { 2279 | "psr-4": { 2280 | "Symfony\\Component\\Console\\": "" 2281 | }, 2282 | "exclude-from-classmap": [ 2283 | "/Tests/" 2284 | ] 2285 | }, 2286 | "notification-url": "https://packagist.org/downloads/", 2287 | "license": [ 2288 | "MIT" 2289 | ], 2290 | "authors": [ 2291 | { 2292 | "name": "Fabien Potencier", 2293 | "email": "fabien@symfony.com" 2294 | }, 2295 | { 2296 | "name": "Symfony Community", 2297 | "homepage": "https://symfony.com/contributors" 2298 | } 2299 | ], 2300 | "description": "Symfony Console Component", 2301 | "homepage": "https://symfony.com", 2302 | "time": "2016-08-19 06:48:39" 2303 | }, 2304 | { 2305 | "name": "symfony/debug", 2306 | "version": "v3.1.4", 2307 | "source": { 2308 | "type": "git", 2309 | "url": "https://github.com/symfony/debug.git", 2310 | "reference": "34f6ac18c2974ca5fce68adf419ee7d15def6f11" 2311 | }, 2312 | "dist": { 2313 | "type": "zip", 2314 | "url": "https://api.github.com/repos/symfony/debug/zipball/34f6ac18c2974ca5fce68adf419ee7d15def6f11", 2315 | "reference": "34f6ac18c2974ca5fce68adf419ee7d15def6f11", 2316 | "shasum": "" 2317 | }, 2318 | "require": { 2319 | "php": ">=5.5.9", 2320 | "psr/log": "~1.0" 2321 | }, 2322 | "conflict": { 2323 | "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" 2324 | }, 2325 | "require-dev": { 2326 | "symfony/class-loader": "~2.8|~3.0", 2327 | "symfony/http-kernel": "~2.8|~3.0" 2328 | }, 2329 | "type": "library", 2330 | "extra": { 2331 | "branch-alias": { 2332 | "dev-master": "3.1-dev" 2333 | } 2334 | }, 2335 | "autoload": { 2336 | "psr-4": { 2337 | "Symfony\\Component\\Debug\\": "" 2338 | }, 2339 | "exclude-from-classmap": [ 2340 | "/Tests/" 2341 | ] 2342 | }, 2343 | "notification-url": "https://packagist.org/downloads/", 2344 | "license": [ 2345 | "MIT" 2346 | ], 2347 | "authors": [ 2348 | { 2349 | "name": "Fabien Potencier", 2350 | "email": "fabien@symfony.com" 2351 | }, 2352 | { 2353 | "name": "Symfony Community", 2354 | "homepage": "https://symfony.com/contributors" 2355 | } 2356 | ], 2357 | "description": "Symfony Debug Component", 2358 | "homepage": "https://symfony.com", 2359 | "time": "2016-08-23 13:39:15" 2360 | }, 2361 | { 2362 | "name": "symfony/event-dispatcher", 2363 | "version": "v3.1.4", 2364 | "source": { 2365 | "type": "git", 2366 | "url": "https://github.com/symfony/event-dispatcher.git", 2367 | "reference": "c0c00c80b3a69132c4e55c3e7db32b4a387615e5" 2368 | }, 2369 | "dist": { 2370 | "type": "zip", 2371 | "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/c0c00c80b3a69132c4e55c3e7db32b4a387615e5", 2372 | "reference": "c0c00c80b3a69132c4e55c3e7db32b4a387615e5", 2373 | "shasum": "" 2374 | }, 2375 | "require": { 2376 | "php": ">=5.5.9" 2377 | }, 2378 | "require-dev": { 2379 | "psr/log": "~1.0", 2380 | "symfony/config": "~2.8|~3.0", 2381 | "symfony/dependency-injection": "~2.8|~3.0", 2382 | "symfony/expression-language": "~2.8|~3.0", 2383 | "symfony/stopwatch": "~2.8|~3.0" 2384 | }, 2385 | "suggest": { 2386 | "symfony/dependency-injection": "", 2387 | "symfony/http-kernel": "" 2388 | }, 2389 | "type": "library", 2390 | "extra": { 2391 | "branch-alias": { 2392 | "dev-master": "3.1-dev" 2393 | } 2394 | }, 2395 | "autoload": { 2396 | "psr-4": { 2397 | "Symfony\\Component\\EventDispatcher\\": "" 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 EventDispatcher Component", 2418 | "homepage": "https://symfony.com", 2419 | "time": "2016-07-19 10:45:57" 2420 | }, 2421 | { 2422 | "name": "symfony/finder", 2423 | "version": "v3.1.4", 2424 | "source": { 2425 | "type": "git", 2426 | "url": "https://github.com/symfony/finder.git", 2427 | "reference": "e568ef1784f447a0e54dcb6f6de30b9747b0f577" 2428 | }, 2429 | "dist": { 2430 | "type": "zip", 2431 | "url": "https://api.github.com/repos/symfony/finder/zipball/e568ef1784f447a0e54dcb6f6de30b9747b0f577", 2432 | "reference": "e568ef1784f447a0e54dcb6f6de30b9747b0f577", 2433 | "shasum": "" 2434 | }, 2435 | "require": { 2436 | "php": ">=5.5.9" 2437 | }, 2438 | "type": "library", 2439 | "extra": { 2440 | "branch-alias": { 2441 | "dev-master": "3.1-dev" 2442 | } 2443 | }, 2444 | "autoload": { 2445 | "psr-4": { 2446 | "Symfony\\Component\\Finder\\": "" 2447 | }, 2448 | "exclude-from-classmap": [ 2449 | "/Tests/" 2450 | ] 2451 | }, 2452 | "notification-url": "https://packagist.org/downloads/", 2453 | "license": [ 2454 | "MIT" 2455 | ], 2456 | "authors": [ 2457 | { 2458 | "name": "Fabien Potencier", 2459 | "email": "fabien@symfony.com" 2460 | }, 2461 | { 2462 | "name": "Symfony Community", 2463 | "homepage": "https://symfony.com/contributors" 2464 | } 2465 | ], 2466 | "description": "Symfony Finder Component", 2467 | "homepage": "https://symfony.com", 2468 | "time": "2016-08-26 12:04:02" 2469 | }, 2470 | { 2471 | "name": "symfony/http-foundation", 2472 | "version": "v3.1.4", 2473 | "source": { 2474 | "type": "git", 2475 | "url": "https://github.com/symfony/http-foundation.git", 2476 | "reference": "63592e00fd90632b57ee50220a1ddb29b6bf3bb4" 2477 | }, 2478 | "dist": { 2479 | "type": "zip", 2480 | "url": "https://api.github.com/repos/symfony/http-foundation/zipball/63592e00fd90632b57ee50220a1ddb29b6bf3bb4", 2481 | "reference": "63592e00fd90632b57ee50220a1ddb29b6bf3bb4", 2482 | "shasum": "" 2483 | }, 2484 | "require": { 2485 | "php": ">=5.5.9", 2486 | "symfony/polyfill-mbstring": "~1.1" 2487 | }, 2488 | "require-dev": { 2489 | "symfony/expression-language": "~2.8|~3.0" 2490 | }, 2491 | "type": "library", 2492 | "extra": { 2493 | "branch-alias": { 2494 | "dev-master": "3.1-dev" 2495 | } 2496 | }, 2497 | "autoload": { 2498 | "psr-4": { 2499 | "Symfony\\Component\\HttpFoundation\\": "" 2500 | }, 2501 | "exclude-from-classmap": [ 2502 | "/Tests/" 2503 | ] 2504 | }, 2505 | "notification-url": "https://packagist.org/downloads/", 2506 | "license": [ 2507 | "MIT" 2508 | ], 2509 | "authors": [ 2510 | { 2511 | "name": "Fabien Potencier", 2512 | "email": "fabien@symfony.com" 2513 | }, 2514 | { 2515 | "name": "Symfony Community", 2516 | "homepage": "https://symfony.com/contributors" 2517 | } 2518 | ], 2519 | "description": "Symfony HttpFoundation Component", 2520 | "homepage": "https://symfony.com", 2521 | "time": "2016-08-22 12:11:19" 2522 | }, 2523 | { 2524 | "name": "symfony/http-kernel", 2525 | "version": "v3.1.4", 2526 | "source": { 2527 | "type": "git", 2528 | "url": "https://github.com/symfony/http-kernel.git", 2529 | "reference": "aeda215d6b01f119508c090d2a09ebb5b0bc61f3" 2530 | }, 2531 | "dist": { 2532 | "type": "zip", 2533 | "url": "https://api.github.com/repos/symfony/http-kernel/zipball/aeda215d6b01f119508c090d2a09ebb5b0bc61f3", 2534 | "reference": "aeda215d6b01f119508c090d2a09ebb5b0bc61f3", 2535 | "shasum": "" 2536 | }, 2537 | "require": { 2538 | "php": ">=5.5.9", 2539 | "psr/log": "~1.0", 2540 | "symfony/debug": "~2.8|~3.0", 2541 | "symfony/event-dispatcher": "~2.8|~3.0", 2542 | "symfony/http-foundation": "~2.8.8|~3.0.8|~3.1.2|~3.2" 2543 | }, 2544 | "conflict": { 2545 | "symfony/config": "<2.8" 2546 | }, 2547 | "require-dev": { 2548 | "symfony/browser-kit": "~2.8|~3.0", 2549 | "symfony/class-loader": "~2.8|~3.0", 2550 | "symfony/config": "~2.8|~3.0", 2551 | "symfony/console": "~2.8|~3.0", 2552 | "symfony/css-selector": "~2.8|~3.0", 2553 | "symfony/dependency-injection": "~2.8|~3.0", 2554 | "symfony/dom-crawler": "~2.8|~3.0", 2555 | "symfony/expression-language": "~2.8|~3.0", 2556 | "symfony/finder": "~2.8|~3.0", 2557 | "symfony/process": "~2.8|~3.0", 2558 | "symfony/routing": "~2.8|~3.0", 2559 | "symfony/stopwatch": "~2.8|~3.0", 2560 | "symfony/templating": "~2.8|~3.0", 2561 | "symfony/translation": "~2.8|~3.0", 2562 | "symfony/var-dumper": "~2.8|~3.0" 2563 | }, 2564 | "suggest": { 2565 | "symfony/browser-kit": "", 2566 | "symfony/class-loader": "", 2567 | "symfony/config": "", 2568 | "symfony/console": "", 2569 | "symfony/dependency-injection": "", 2570 | "symfony/finder": "", 2571 | "symfony/var-dumper": "" 2572 | }, 2573 | "type": "library", 2574 | "extra": { 2575 | "branch-alias": { 2576 | "dev-master": "3.1-dev" 2577 | } 2578 | }, 2579 | "autoload": { 2580 | "psr-4": { 2581 | "Symfony\\Component\\HttpKernel\\": "" 2582 | }, 2583 | "exclude-from-classmap": [ 2584 | "/Tests/" 2585 | ] 2586 | }, 2587 | "notification-url": "https://packagist.org/downloads/", 2588 | "license": [ 2589 | "MIT" 2590 | ], 2591 | "authors": [ 2592 | { 2593 | "name": "Fabien Potencier", 2594 | "email": "fabien@symfony.com" 2595 | }, 2596 | { 2597 | "name": "Symfony Community", 2598 | "homepage": "https://symfony.com/contributors" 2599 | } 2600 | ], 2601 | "description": "Symfony HttpKernel Component", 2602 | "homepage": "https://symfony.com", 2603 | "time": "2016-09-03 15:28:24" 2604 | }, 2605 | { 2606 | "name": "symfony/polyfill-mbstring", 2607 | "version": "v1.2.0", 2608 | "source": { 2609 | "type": "git", 2610 | "url": "https://github.com/symfony/polyfill-mbstring.git", 2611 | "reference": "dff51f72b0706335131b00a7f49606168c582594" 2612 | }, 2613 | "dist": { 2614 | "type": "zip", 2615 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/dff51f72b0706335131b00a7f49606168c582594", 2616 | "reference": "dff51f72b0706335131b00a7f49606168c582594", 2617 | "shasum": "" 2618 | }, 2619 | "require": { 2620 | "php": ">=5.3.3" 2621 | }, 2622 | "suggest": { 2623 | "ext-mbstring": "For best performance" 2624 | }, 2625 | "type": "library", 2626 | "extra": { 2627 | "branch-alias": { 2628 | "dev-master": "1.2-dev" 2629 | } 2630 | }, 2631 | "autoload": { 2632 | "psr-4": { 2633 | "Symfony\\Polyfill\\Mbstring\\": "" 2634 | }, 2635 | "files": [ 2636 | "bootstrap.php" 2637 | ] 2638 | }, 2639 | "notification-url": "https://packagist.org/downloads/", 2640 | "license": [ 2641 | "MIT" 2642 | ], 2643 | "authors": [ 2644 | { 2645 | "name": "Nicolas Grekas", 2646 | "email": "p@tchwork.com" 2647 | }, 2648 | { 2649 | "name": "Symfony Community", 2650 | "homepage": "https://symfony.com/contributors" 2651 | } 2652 | ], 2653 | "description": "Symfony polyfill for the Mbstring extension", 2654 | "homepage": "https://symfony.com", 2655 | "keywords": [ 2656 | "compatibility", 2657 | "mbstring", 2658 | "polyfill", 2659 | "portable", 2660 | "shim" 2661 | ], 2662 | "time": "2016-05-18 14:26:46" 2663 | }, 2664 | { 2665 | "name": "symfony/process", 2666 | "version": "v3.1.4", 2667 | "source": { 2668 | "type": "git", 2669 | "url": "https://github.com/symfony/process.git", 2670 | "reference": "e64e93041c80e77197ace5ab9385dedb5a143697" 2671 | }, 2672 | "dist": { 2673 | "type": "zip", 2674 | "url": "https://api.github.com/repos/symfony/process/zipball/e64e93041c80e77197ace5ab9385dedb5a143697", 2675 | "reference": "e64e93041c80e77197ace5ab9385dedb5a143697", 2676 | "shasum": "" 2677 | }, 2678 | "require": { 2679 | "php": ">=5.5.9" 2680 | }, 2681 | "type": "library", 2682 | "extra": { 2683 | "branch-alias": { 2684 | "dev-master": "3.1-dev" 2685 | } 2686 | }, 2687 | "autoload": { 2688 | "psr-4": { 2689 | "Symfony\\Component\\Process\\": "" 2690 | }, 2691 | "exclude-from-classmap": [ 2692 | "/Tests/" 2693 | ] 2694 | }, 2695 | "notification-url": "https://packagist.org/downloads/", 2696 | "license": [ 2697 | "MIT" 2698 | ], 2699 | "authors": [ 2700 | { 2701 | "name": "Fabien Potencier", 2702 | "email": "fabien@symfony.com" 2703 | }, 2704 | { 2705 | "name": "Symfony Community", 2706 | "homepage": "https://symfony.com/contributors" 2707 | } 2708 | ], 2709 | "description": "Symfony Process Component", 2710 | "homepage": "https://symfony.com", 2711 | "time": "2016-08-16 14:58:24" 2712 | }, 2713 | { 2714 | "name": "symfony/routing", 2715 | "version": "v3.1.4", 2716 | "source": { 2717 | "type": "git", 2718 | "url": "https://github.com/symfony/routing.git", 2719 | "reference": "8edf62498a1a4c57ba317664a4b698339c10cdf6" 2720 | }, 2721 | "dist": { 2722 | "type": "zip", 2723 | "url": "https://api.github.com/repos/symfony/routing/zipball/8edf62498a1a4c57ba317664a4b698339c10cdf6", 2724 | "reference": "8edf62498a1a4c57ba317664a4b698339c10cdf6", 2725 | "shasum": "" 2726 | }, 2727 | "require": { 2728 | "php": ">=5.5.9" 2729 | }, 2730 | "conflict": { 2731 | "symfony/config": "<2.8" 2732 | }, 2733 | "require-dev": { 2734 | "doctrine/annotations": "~1.0", 2735 | "doctrine/common": "~2.2", 2736 | "psr/log": "~1.0", 2737 | "symfony/config": "~2.8|~3.0", 2738 | "symfony/expression-language": "~2.8|~3.0", 2739 | "symfony/http-foundation": "~2.8|~3.0", 2740 | "symfony/yaml": "~2.8|~3.0" 2741 | }, 2742 | "suggest": { 2743 | "doctrine/annotations": "For using the annotation loader", 2744 | "symfony/config": "For using the all-in-one router or any loader", 2745 | "symfony/dependency-injection": "For loading routes from a service", 2746 | "symfony/expression-language": "For using expression matching", 2747 | "symfony/http-foundation": "For using a Symfony Request object", 2748 | "symfony/yaml": "For using the YAML loader" 2749 | }, 2750 | "type": "library", 2751 | "extra": { 2752 | "branch-alias": { 2753 | "dev-master": "3.1-dev" 2754 | } 2755 | }, 2756 | "autoload": { 2757 | "psr-4": { 2758 | "Symfony\\Component\\Routing\\": "" 2759 | }, 2760 | "exclude-from-classmap": [ 2761 | "/Tests/" 2762 | ] 2763 | }, 2764 | "notification-url": "https://packagist.org/downloads/", 2765 | "license": [ 2766 | "MIT" 2767 | ], 2768 | "authors": [ 2769 | { 2770 | "name": "Fabien Potencier", 2771 | "email": "fabien@symfony.com" 2772 | }, 2773 | { 2774 | "name": "Symfony Community", 2775 | "homepage": "https://symfony.com/contributors" 2776 | } 2777 | ], 2778 | "description": "Symfony Routing Component", 2779 | "homepage": "https://symfony.com", 2780 | "keywords": [ 2781 | "router", 2782 | "routing", 2783 | "uri", 2784 | "url" 2785 | ], 2786 | "time": "2016-08-16 14:58:24" 2787 | }, 2788 | { 2789 | "name": "symfony/translation", 2790 | "version": "v3.1.4", 2791 | "source": { 2792 | "type": "git", 2793 | "url": "https://github.com/symfony/translation.git", 2794 | "reference": "a35edc277513c9bc0f063ca174c36b346f974528" 2795 | }, 2796 | "dist": { 2797 | "type": "zip", 2798 | "url": "https://api.github.com/repos/symfony/translation/zipball/a35edc277513c9bc0f063ca174c36b346f974528", 2799 | "reference": "a35edc277513c9bc0f063ca174c36b346f974528", 2800 | "shasum": "" 2801 | }, 2802 | "require": { 2803 | "php": ">=5.5.9", 2804 | "symfony/polyfill-mbstring": "~1.0" 2805 | }, 2806 | "conflict": { 2807 | "symfony/config": "<2.8" 2808 | }, 2809 | "require-dev": { 2810 | "psr/log": "~1.0", 2811 | "symfony/config": "~2.8|~3.0", 2812 | "symfony/intl": "~2.8|~3.0", 2813 | "symfony/yaml": "~2.8|~3.0" 2814 | }, 2815 | "suggest": { 2816 | "psr/log": "To use logging capability in translator", 2817 | "symfony/config": "", 2818 | "symfony/yaml": "" 2819 | }, 2820 | "type": "library", 2821 | "extra": { 2822 | "branch-alias": { 2823 | "dev-master": "3.1-dev" 2824 | } 2825 | }, 2826 | "autoload": { 2827 | "psr-4": { 2828 | "Symfony\\Component\\Translation\\": "" 2829 | }, 2830 | "exclude-from-classmap": [ 2831 | "/Tests/" 2832 | ] 2833 | }, 2834 | "notification-url": "https://packagist.org/downloads/", 2835 | "license": [ 2836 | "MIT" 2837 | ], 2838 | "authors": [ 2839 | { 2840 | "name": "Fabien Potencier", 2841 | "email": "fabien@symfony.com" 2842 | }, 2843 | { 2844 | "name": "Symfony Community", 2845 | "homepage": "https://symfony.com/contributors" 2846 | } 2847 | ], 2848 | "description": "Symfony Translation Component", 2849 | "homepage": "https://symfony.com", 2850 | "time": "2016-08-05 08:37:39" 2851 | }, 2852 | { 2853 | "name": "tymon/jwt-auth", 2854 | "version": "dev-master", 2855 | "source": { 2856 | "type": "git", 2857 | "url": "https://github.com/tymondesigns/jwt-auth.git", 2858 | "reference": "c153d85" 2859 | }, 2860 | "dist": { 2861 | "type": "zip", 2862 | "url": "https://api.github.com/repos/tymondesigns/jwt-auth/zipball/c153d85", 2863 | "reference": "c153d85", 2864 | "shasum": "" 2865 | }, 2866 | "require": { 2867 | "illuminate/http": "~5.0", 2868 | "illuminate/support": "~5.0", 2869 | "namshi/jose": "5.0.*", 2870 | "nesbot/carbon": "~1.0", 2871 | "php": ">=5.4.0" 2872 | }, 2873 | "require-dev": { 2874 | "illuminate/auth": "~5.0", 2875 | "illuminate/console": "~5.0", 2876 | "illuminate/database": "~5.0", 2877 | "mockery/mockery": "0.9.*", 2878 | "phpunit/phpunit": "4.*" 2879 | }, 2880 | "type": "library", 2881 | "extra": { 2882 | "branch-alias": { 2883 | "dev-develop": "0.5-dev" 2884 | } 2885 | }, 2886 | "autoload": { 2887 | "psr-4": { 2888 | "Tymon\\JWTAuth\\": "src" 2889 | } 2890 | }, 2891 | "notification-url": "https://packagist.org/downloads/", 2892 | "license": [ 2893 | "MIT" 2894 | ], 2895 | "authors": [ 2896 | { 2897 | "name": "Sean Tymon", 2898 | "email": "tymon148@gmail.com", 2899 | "homepage": "http://tymondesigns.com", 2900 | "role": "Developer" 2901 | } 2902 | ], 2903 | "description": "JSON Web Token Authentication for Laravel 4 and 5", 2904 | "homepage": "https://github.com/tymondesigns/jwt-auth", 2905 | "keywords": [ 2906 | "Authentication", 2907 | "JSON Web Token", 2908 | "auth", 2909 | "jwt", 2910 | "laravel", 2911 | "tymon" 2912 | ], 2913 | "time": "2016-09-05 09:04:33" 2914 | }, 2915 | { 2916 | "name": "vlucas/phpdotenv", 2917 | "version": "v2.4.0", 2918 | "source": { 2919 | "type": "git", 2920 | "url": "https://github.com/vlucas/phpdotenv.git", 2921 | "reference": "3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c" 2922 | }, 2923 | "dist": { 2924 | "type": "zip", 2925 | "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c", 2926 | "reference": "3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c", 2927 | "shasum": "" 2928 | }, 2929 | "require": { 2930 | "php": ">=5.3.9" 2931 | }, 2932 | "require-dev": { 2933 | "phpunit/phpunit": "^4.8 || ^5.0" 2934 | }, 2935 | "type": "library", 2936 | "extra": { 2937 | "branch-alias": { 2938 | "dev-master": "2.4-dev" 2939 | } 2940 | }, 2941 | "autoload": { 2942 | "psr-4": { 2943 | "Dotenv\\": "src/" 2944 | } 2945 | }, 2946 | "notification-url": "https://packagist.org/downloads/", 2947 | "license": [ 2948 | "BSD-3-Clause-Attribution" 2949 | ], 2950 | "authors": [ 2951 | { 2952 | "name": "Vance Lucas", 2953 | "email": "vance@vancelucas.com", 2954 | "homepage": "http://www.vancelucas.com" 2955 | } 2956 | ], 2957 | "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", 2958 | "keywords": [ 2959 | "dotenv", 2960 | "env", 2961 | "environment" 2962 | ], 2963 | "time": "2016-09-01 10:05:43" 2964 | }, 2965 | { 2966 | "name": "webmozart/assert", 2967 | "version": "1.1.0", 2968 | "source": { 2969 | "type": "git", 2970 | "url": "https://github.com/webmozart/assert.git", 2971 | "reference": "bb2d123231c095735130cc8f6d31385a44c7b308" 2972 | }, 2973 | "dist": { 2974 | "type": "zip", 2975 | "url": "https://api.github.com/repos/webmozart/assert/zipball/bb2d123231c095735130cc8f6d31385a44c7b308", 2976 | "reference": "bb2d123231c095735130cc8f6d31385a44c7b308", 2977 | "shasum": "" 2978 | }, 2979 | "require": { 2980 | "php": "^5.3.3|^7.0" 2981 | }, 2982 | "require-dev": { 2983 | "phpunit/phpunit": "^4.6", 2984 | "sebastian/version": "^1.0.1" 2985 | }, 2986 | "type": "library", 2987 | "extra": { 2988 | "branch-alias": { 2989 | "dev-master": "1.2-dev" 2990 | } 2991 | }, 2992 | "autoload": { 2993 | "psr-4": { 2994 | "Webmozart\\Assert\\": "src/" 2995 | } 2996 | }, 2997 | "notification-url": "https://packagist.org/downloads/", 2998 | "license": [ 2999 | "MIT" 3000 | ], 3001 | "authors": [ 3002 | { 3003 | "name": "Bernhard Schussek", 3004 | "email": "bschussek@gmail.com" 3005 | } 3006 | ], 3007 | "description": "Assertions to validate method input/output with nice error messages.", 3008 | "keywords": [ 3009 | "assert", 3010 | "check", 3011 | "validate" 3012 | ], 3013 | "time": "2016-08-09 15:02:57" 3014 | } 3015 | ], 3016 | "packages-dev": [ 3017 | { 3018 | "name": "doctrine/instantiator", 3019 | "version": "1.0.5", 3020 | "source": { 3021 | "type": "git", 3022 | "url": "https://github.com/doctrine/instantiator.git", 3023 | "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" 3024 | }, 3025 | "dist": { 3026 | "type": "zip", 3027 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", 3028 | "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", 3029 | "shasum": "" 3030 | }, 3031 | "require": { 3032 | "php": ">=5.3,<8.0-DEV" 3033 | }, 3034 | "require-dev": { 3035 | "athletic/athletic": "~0.1.8", 3036 | "ext-pdo": "*", 3037 | "ext-phar": "*", 3038 | "phpunit/phpunit": "~4.0", 3039 | "squizlabs/php_codesniffer": "~2.0" 3040 | }, 3041 | "type": "library", 3042 | "extra": { 3043 | "branch-alias": { 3044 | "dev-master": "1.0.x-dev" 3045 | } 3046 | }, 3047 | "autoload": { 3048 | "psr-4": { 3049 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" 3050 | } 3051 | }, 3052 | "notification-url": "https://packagist.org/downloads/", 3053 | "license": [ 3054 | "MIT" 3055 | ], 3056 | "authors": [ 3057 | { 3058 | "name": "Marco Pivetta", 3059 | "email": "ocramius@gmail.com", 3060 | "homepage": "http://ocramius.github.com/" 3061 | } 3062 | ], 3063 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", 3064 | "homepage": "https://github.com/doctrine/instantiator", 3065 | "keywords": [ 3066 | "constructor", 3067 | "instantiate" 3068 | ], 3069 | "time": "2015-06-14 21:17:01" 3070 | }, 3071 | { 3072 | "name": "fzaninotto/faker", 3073 | "version": "v1.6.0", 3074 | "source": { 3075 | "type": "git", 3076 | "url": "https://github.com/fzaninotto/Faker.git", 3077 | "reference": "44f9a286a04b80c76a4e5fb7aad8bb539b920123" 3078 | }, 3079 | "dist": { 3080 | "type": "zip", 3081 | "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/44f9a286a04b80c76a4e5fb7aad8bb539b920123", 3082 | "reference": "44f9a286a04b80c76a4e5fb7aad8bb539b920123", 3083 | "shasum": "" 3084 | }, 3085 | "require": { 3086 | "php": "^5.3.3|^7.0" 3087 | }, 3088 | "require-dev": { 3089 | "ext-intl": "*", 3090 | "phpunit/phpunit": "~4.0", 3091 | "squizlabs/php_codesniffer": "~1.5" 3092 | }, 3093 | "type": "library", 3094 | "extra": { 3095 | "branch-alias": [] 3096 | }, 3097 | "autoload": { 3098 | "psr-4": { 3099 | "Faker\\": "src/Faker/" 3100 | } 3101 | }, 3102 | "notification-url": "https://packagist.org/downloads/", 3103 | "license": [ 3104 | "MIT" 3105 | ], 3106 | "authors": [ 3107 | { 3108 | "name": "François Zaninotto" 3109 | } 3110 | ], 3111 | "description": "Faker is a PHP library that generates fake data for you.", 3112 | "keywords": [ 3113 | "data", 3114 | "faker", 3115 | "fixtures" 3116 | ], 3117 | "time": "2016-04-29 12:21:54" 3118 | }, 3119 | { 3120 | "name": "phpspec/prophecy", 3121 | "version": "v1.6.1", 3122 | "source": { 3123 | "type": "git", 3124 | "url": "https://github.com/phpspec/prophecy.git", 3125 | "reference": "58a8137754bc24b25740d4281399a4a3596058e0" 3126 | }, 3127 | "dist": { 3128 | "type": "zip", 3129 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/58a8137754bc24b25740d4281399a4a3596058e0", 3130 | "reference": "58a8137754bc24b25740d4281399a4a3596058e0", 3131 | "shasum": "" 3132 | }, 3133 | "require": { 3134 | "doctrine/instantiator": "^1.0.2", 3135 | "php": "^5.3|^7.0", 3136 | "phpdocumentor/reflection-docblock": "^2.0|^3.0.2", 3137 | "sebastian/comparator": "^1.1", 3138 | "sebastian/recursion-context": "^1.0" 3139 | }, 3140 | "require-dev": { 3141 | "phpspec/phpspec": "^2.0" 3142 | }, 3143 | "type": "library", 3144 | "extra": { 3145 | "branch-alias": { 3146 | "dev-master": "1.6.x-dev" 3147 | } 3148 | }, 3149 | "autoload": { 3150 | "psr-0": { 3151 | "Prophecy\\": "src/" 3152 | } 3153 | }, 3154 | "notification-url": "https://packagist.org/downloads/", 3155 | "license": [ 3156 | "MIT" 3157 | ], 3158 | "authors": [ 3159 | { 3160 | "name": "Konstantin Kudryashov", 3161 | "email": "ever.zet@gmail.com", 3162 | "homepage": "http://everzet.com" 3163 | }, 3164 | { 3165 | "name": "Marcello Duarte", 3166 | "email": "marcello.duarte@gmail.com" 3167 | } 3168 | ], 3169 | "description": "Highly opinionated mocking framework for PHP 5.3+", 3170 | "homepage": "https://github.com/phpspec/prophecy", 3171 | "keywords": [ 3172 | "Double", 3173 | "Dummy", 3174 | "fake", 3175 | "mock", 3176 | "spy", 3177 | "stub" 3178 | ], 3179 | "time": "2016-06-07 08:13:47" 3180 | }, 3181 | { 3182 | "name": "phpunit/php-code-coverage", 3183 | "version": "2.2.4", 3184 | "source": { 3185 | "type": "git", 3186 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git", 3187 | "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979" 3188 | }, 3189 | "dist": { 3190 | "type": "zip", 3191 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979", 3192 | "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979", 3193 | "shasum": "" 3194 | }, 3195 | "require": { 3196 | "php": ">=5.3.3", 3197 | "phpunit/php-file-iterator": "~1.3", 3198 | "phpunit/php-text-template": "~1.2", 3199 | "phpunit/php-token-stream": "~1.3", 3200 | "sebastian/environment": "^1.3.2", 3201 | "sebastian/version": "~1.0" 3202 | }, 3203 | "require-dev": { 3204 | "ext-xdebug": ">=2.1.4", 3205 | "phpunit/phpunit": "~4" 3206 | }, 3207 | "suggest": { 3208 | "ext-dom": "*", 3209 | "ext-xdebug": ">=2.2.1", 3210 | "ext-xmlwriter": "*" 3211 | }, 3212 | "type": "library", 3213 | "extra": { 3214 | "branch-alias": { 3215 | "dev-master": "2.2.x-dev" 3216 | } 3217 | }, 3218 | "autoload": { 3219 | "classmap": [ 3220 | "src/" 3221 | ] 3222 | }, 3223 | "notification-url": "https://packagist.org/downloads/", 3224 | "license": [ 3225 | "BSD-3-Clause" 3226 | ], 3227 | "authors": [ 3228 | { 3229 | "name": "Sebastian Bergmann", 3230 | "email": "sb@sebastian-bergmann.de", 3231 | "role": "lead" 3232 | } 3233 | ], 3234 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", 3235 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage", 3236 | "keywords": [ 3237 | "coverage", 3238 | "testing", 3239 | "xunit" 3240 | ], 3241 | "time": "2015-10-06 15:47:00" 3242 | }, 3243 | { 3244 | "name": "phpunit/php-file-iterator", 3245 | "version": "1.4.1", 3246 | "source": { 3247 | "type": "git", 3248 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git", 3249 | "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0" 3250 | }, 3251 | "dist": { 3252 | "type": "zip", 3253 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/6150bf2c35d3fc379e50c7602b75caceaa39dbf0", 3254 | "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0", 3255 | "shasum": "" 3256 | }, 3257 | "require": { 3258 | "php": ">=5.3.3" 3259 | }, 3260 | "type": "library", 3261 | "extra": { 3262 | "branch-alias": { 3263 | "dev-master": "1.4.x-dev" 3264 | } 3265 | }, 3266 | "autoload": { 3267 | "classmap": [ 3268 | "src/" 3269 | ] 3270 | }, 3271 | "notification-url": "https://packagist.org/downloads/", 3272 | "license": [ 3273 | "BSD-3-Clause" 3274 | ], 3275 | "authors": [ 3276 | { 3277 | "name": "Sebastian Bergmann", 3278 | "email": "sb@sebastian-bergmann.de", 3279 | "role": "lead" 3280 | } 3281 | ], 3282 | "description": "FilterIterator implementation that filters files based on a list of suffixes.", 3283 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", 3284 | "keywords": [ 3285 | "filesystem", 3286 | "iterator" 3287 | ], 3288 | "time": "2015-06-21 13:08:43" 3289 | }, 3290 | { 3291 | "name": "phpunit/php-text-template", 3292 | "version": "1.2.1", 3293 | "source": { 3294 | "type": "git", 3295 | "url": "https://github.com/sebastianbergmann/php-text-template.git", 3296 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" 3297 | }, 3298 | "dist": { 3299 | "type": "zip", 3300 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 3301 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 3302 | "shasum": "" 3303 | }, 3304 | "require": { 3305 | "php": ">=5.3.3" 3306 | }, 3307 | "type": "library", 3308 | "autoload": { 3309 | "classmap": [ 3310 | "src/" 3311 | ] 3312 | }, 3313 | "notification-url": "https://packagist.org/downloads/", 3314 | "license": [ 3315 | "BSD-3-Clause" 3316 | ], 3317 | "authors": [ 3318 | { 3319 | "name": "Sebastian Bergmann", 3320 | "email": "sebastian@phpunit.de", 3321 | "role": "lead" 3322 | } 3323 | ], 3324 | "description": "Simple template engine.", 3325 | "homepage": "https://github.com/sebastianbergmann/php-text-template/", 3326 | "keywords": [ 3327 | "template" 3328 | ], 3329 | "time": "2015-06-21 13:50:34" 3330 | }, 3331 | { 3332 | "name": "phpunit/php-timer", 3333 | "version": "1.0.8", 3334 | "source": { 3335 | "type": "git", 3336 | "url": "https://github.com/sebastianbergmann/php-timer.git", 3337 | "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260" 3338 | }, 3339 | "dist": { 3340 | "type": "zip", 3341 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/38e9124049cf1a164f1e4537caf19c99bf1eb260", 3342 | "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260", 3343 | "shasum": "" 3344 | }, 3345 | "require": { 3346 | "php": ">=5.3.3" 3347 | }, 3348 | "require-dev": { 3349 | "phpunit/phpunit": "~4|~5" 3350 | }, 3351 | "type": "library", 3352 | "autoload": { 3353 | "classmap": [ 3354 | "src/" 3355 | ] 3356 | }, 3357 | "notification-url": "https://packagist.org/downloads/", 3358 | "license": [ 3359 | "BSD-3-Clause" 3360 | ], 3361 | "authors": [ 3362 | { 3363 | "name": "Sebastian Bergmann", 3364 | "email": "sb@sebastian-bergmann.de", 3365 | "role": "lead" 3366 | } 3367 | ], 3368 | "description": "Utility class for timing", 3369 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 3370 | "keywords": [ 3371 | "timer" 3372 | ], 3373 | "time": "2016-05-12 18:03:57" 3374 | }, 3375 | { 3376 | "name": "phpunit/php-token-stream", 3377 | "version": "1.4.8", 3378 | "source": { 3379 | "type": "git", 3380 | "url": "https://github.com/sebastianbergmann/php-token-stream.git", 3381 | "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da" 3382 | }, 3383 | "dist": { 3384 | "type": "zip", 3385 | "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da", 3386 | "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da", 3387 | "shasum": "" 3388 | }, 3389 | "require": { 3390 | "ext-tokenizer": "*", 3391 | "php": ">=5.3.3" 3392 | }, 3393 | "require-dev": { 3394 | "phpunit/phpunit": "~4.2" 3395 | }, 3396 | "type": "library", 3397 | "extra": { 3398 | "branch-alias": { 3399 | "dev-master": "1.4-dev" 3400 | } 3401 | }, 3402 | "autoload": { 3403 | "classmap": [ 3404 | "src/" 3405 | ] 3406 | }, 3407 | "notification-url": "https://packagist.org/downloads/", 3408 | "license": [ 3409 | "BSD-3-Clause" 3410 | ], 3411 | "authors": [ 3412 | { 3413 | "name": "Sebastian Bergmann", 3414 | "email": "sebastian@phpunit.de" 3415 | } 3416 | ], 3417 | "description": "Wrapper around PHP's tokenizer extension.", 3418 | "homepage": "https://github.com/sebastianbergmann/php-token-stream/", 3419 | "keywords": [ 3420 | "tokenizer" 3421 | ], 3422 | "time": "2015-09-15 10:49:45" 3423 | }, 3424 | { 3425 | "name": "phpunit/phpunit", 3426 | "version": "4.8.27", 3427 | "source": { 3428 | "type": "git", 3429 | "url": "https://github.com/sebastianbergmann/phpunit.git", 3430 | "reference": "c062dddcb68e44b563f66ee319ddae2b5a322a90" 3431 | }, 3432 | "dist": { 3433 | "type": "zip", 3434 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c062dddcb68e44b563f66ee319ddae2b5a322a90", 3435 | "reference": "c062dddcb68e44b563f66ee319ddae2b5a322a90", 3436 | "shasum": "" 3437 | }, 3438 | "require": { 3439 | "ext-dom": "*", 3440 | "ext-json": "*", 3441 | "ext-pcre": "*", 3442 | "ext-reflection": "*", 3443 | "ext-spl": "*", 3444 | "php": ">=5.3.3", 3445 | "phpspec/prophecy": "^1.3.1", 3446 | "phpunit/php-code-coverage": "~2.1", 3447 | "phpunit/php-file-iterator": "~1.4", 3448 | "phpunit/php-text-template": "~1.2", 3449 | "phpunit/php-timer": "^1.0.6", 3450 | "phpunit/phpunit-mock-objects": "~2.3", 3451 | "sebastian/comparator": "~1.1", 3452 | "sebastian/diff": "~1.2", 3453 | "sebastian/environment": "~1.3", 3454 | "sebastian/exporter": "~1.2", 3455 | "sebastian/global-state": "~1.0", 3456 | "sebastian/version": "~1.0", 3457 | "symfony/yaml": "~2.1|~3.0" 3458 | }, 3459 | "suggest": { 3460 | "phpunit/php-invoker": "~1.1" 3461 | }, 3462 | "bin": [ 3463 | "phpunit" 3464 | ], 3465 | "type": "library", 3466 | "extra": { 3467 | "branch-alias": { 3468 | "dev-master": "4.8.x-dev" 3469 | } 3470 | }, 3471 | "autoload": { 3472 | "classmap": [ 3473 | "src/" 3474 | ] 3475 | }, 3476 | "notification-url": "https://packagist.org/downloads/", 3477 | "license": [ 3478 | "BSD-3-Clause" 3479 | ], 3480 | "authors": [ 3481 | { 3482 | "name": "Sebastian Bergmann", 3483 | "email": "sebastian@phpunit.de", 3484 | "role": "lead" 3485 | } 3486 | ], 3487 | "description": "The PHP Unit Testing framework.", 3488 | "homepage": "https://phpunit.de/", 3489 | "keywords": [ 3490 | "phpunit", 3491 | "testing", 3492 | "xunit" 3493 | ], 3494 | "time": "2016-07-21 06:48:14" 3495 | }, 3496 | { 3497 | "name": "phpunit/phpunit-mock-objects", 3498 | "version": "2.3.8", 3499 | "source": { 3500 | "type": "git", 3501 | "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", 3502 | "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983" 3503 | }, 3504 | "dist": { 3505 | "type": "zip", 3506 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983", 3507 | "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983", 3508 | "shasum": "" 3509 | }, 3510 | "require": { 3511 | "doctrine/instantiator": "^1.0.2", 3512 | "php": ">=5.3.3", 3513 | "phpunit/php-text-template": "~1.2", 3514 | "sebastian/exporter": "~1.2" 3515 | }, 3516 | "require-dev": { 3517 | "phpunit/phpunit": "~4.4" 3518 | }, 3519 | "suggest": { 3520 | "ext-soap": "*" 3521 | }, 3522 | "type": "library", 3523 | "extra": { 3524 | "branch-alias": { 3525 | "dev-master": "2.3.x-dev" 3526 | } 3527 | }, 3528 | "autoload": { 3529 | "classmap": [ 3530 | "src/" 3531 | ] 3532 | }, 3533 | "notification-url": "https://packagist.org/downloads/", 3534 | "license": [ 3535 | "BSD-3-Clause" 3536 | ], 3537 | "authors": [ 3538 | { 3539 | "name": "Sebastian Bergmann", 3540 | "email": "sb@sebastian-bergmann.de", 3541 | "role": "lead" 3542 | } 3543 | ], 3544 | "description": "Mock Object library for PHPUnit", 3545 | "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", 3546 | "keywords": [ 3547 | "mock", 3548 | "xunit" 3549 | ], 3550 | "time": "2015-10-02 06:51:40" 3551 | }, 3552 | { 3553 | "name": "sebastian/comparator", 3554 | "version": "1.2.0", 3555 | "source": { 3556 | "type": "git", 3557 | "url": "https://github.com/sebastianbergmann/comparator.git", 3558 | "reference": "937efb279bd37a375bcadf584dec0726f84dbf22" 3559 | }, 3560 | "dist": { 3561 | "type": "zip", 3562 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/937efb279bd37a375bcadf584dec0726f84dbf22", 3563 | "reference": "937efb279bd37a375bcadf584dec0726f84dbf22", 3564 | "shasum": "" 3565 | }, 3566 | "require": { 3567 | "php": ">=5.3.3", 3568 | "sebastian/diff": "~1.2", 3569 | "sebastian/exporter": "~1.2" 3570 | }, 3571 | "require-dev": { 3572 | "phpunit/phpunit": "~4.4" 3573 | }, 3574 | "type": "library", 3575 | "extra": { 3576 | "branch-alias": { 3577 | "dev-master": "1.2.x-dev" 3578 | } 3579 | }, 3580 | "autoload": { 3581 | "classmap": [ 3582 | "src/" 3583 | ] 3584 | }, 3585 | "notification-url": "https://packagist.org/downloads/", 3586 | "license": [ 3587 | "BSD-3-Clause" 3588 | ], 3589 | "authors": [ 3590 | { 3591 | "name": "Jeff Welch", 3592 | "email": "whatthejeff@gmail.com" 3593 | }, 3594 | { 3595 | "name": "Volker Dusch", 3596 | "email": "github@wallbash.com" 3597 | }, 3598 | { 3599 | "name": "Bernhard Schussek", 3600 | "email": "bschussek@2bepublished.at" 3601 | }, 3602 | { 3603 | "name": "Sebastian Bergmann", 3604 | "email": "sebastian@phpunit.de" 3605 | } 3606 | ], 3607 | "description": "Provides the functionality to compare PHP values for equality", 3608 | "homepage": "http://www.github.com/sebastianbergmann/comparator", 3609 | "keywords": [ 3610 | "comparator", 3611 | "compare", 3612 | "equality" 3613 | ], 3614 | "time": "2015-07-26 15:48:44" 3615 | }, 3616 | { 3617 | "name": "sebastian/diff", 3618 | "version": "1.4.1", 3619 | "source": { 3620 | "type": "git", 3621 | "url": "https://github.com/sebastianbergmann/diff.git", 3622 | "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e" 3623 | }, 3624 | "dist": { 3625 | "type": "zip", 3626 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e", 3627 | "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e", 3628 | "shasum": "" 3629 | }, 3630 | "require": { 3631 | "php": ">=5.3.3" 3632 | }, 3633 | "require-dev": { 3634 | "phpunit/phpunit": "~4.8" 3635 | }, 3636 | "type": "library", 3637 | "extra": { 3638 | "branch-alias": { 3639 | "dev-master": "1.4-dev" 3640 | } 3641 | }, 3642 | "autoload": { 3643 | "classmap": [ 3644 | "src/" 3645 | ] 3646 | }, 3647 | "notification-url": "https://packagist.org/downloads/", 3648 | "license": [ 3649 | "BSD-3-Clause" 3650 | ], 3651 | "authors": [ 3652 | { 3653 | "name": "Kore Nordmann", 3654 | "email": "mail@kore-nordmann.de" 3655 | }, 3656 | { 3657 | "name": "Sebastian Bergmann", 3658 | "email": "sebastian@phpunit.de" 3659 | } 3660 | ], 3661 | "description": "Diff implementation", 3662 | "homepage": "https://github.com/sebastianbergmann/diff", 3663 | "keywords": [ 3664 | "diff" 3665 | ], 3666 | "time": "2015-12-08 07:14:41" 3667 | }, 3668 | { 3669 | "name": "sebastian/environment", 3670 | "version": "1.3.8", 3671 | "source": { 3672 | "type": "git", 3673 | "url": "https://github.com/sebastianbergmann/environment.git", 3674 | "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea" 3675 | }, 3676 | "dist": { 3677 | "type": "zip", 3678 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/be2c607e43ce4c89ecd60e75c6a85c126e754aea", 3679 | "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea", 3680 | "shasum": "" 3681 | }, 3682 | "require": { 3683 | "php": "^5.3.3 || ^7.0" 3684 | }, 3685 | "require-dev": { 3686 | "phpunit/phpunit": "^4.8 || ^5.0" 3687 | }, 3688 | "type": "library", 3689 | "extra": { 3690 | "branch-alias": { 3691 | "dev-master": "1.3.x-dev" 3692 | } 3693 | }, 3694 | "autoload": { 3695 | "classmap": [ 3696 | "src/" 3697 | ] 3698 | }, 3699 | "notification-url": "https://packagist.org/downloads/", 3700 | "license": [ 3701 | "BSD-3-Clause" 3702 | ], 3703 | "authors": [ 3704 | { 3705 | "name": "Sebastian Bergmann", 3706 | "email": "sebastian@phpunit.de" 3707 | } 3708 | ], 3709 | "description": "Provides functionality to handle HHVM/PHP environments", 3710 | "homepage": "http://www.github.com/sebastianbergmann/environment", 3711 | "keywords": [ 3712 | "Xdebug", 3713 | "environment", 3714 | "hhvm" 3715 | ], 3716 | "time": "2016-08-18 05:49:44" 3717 | }, 3718 | { 3719 | "name": "sebastian/exporter", 3720 | "version": "1.2.2", 3721 | "source": { 3722 | "type": "git", 3723 | "url": "https://github.com/sebastianbergmann/exporter.git", 3724 | "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4" 3725 | }, 3726 | "dist": { 3727 | "type": "zip", 3728 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4", 3729 | "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4", 3730 | "shasum": "" 3731 | }, 3732 | "require": { 3733 | "php": ">=5.3.3", 3734 | "sebastian/recursion-context": "~1.0" 3735 | }, 3736 | "require-dev": { 3737 | "ext-mbstring": "*", 3738 | "phpunit/phpunit": "~4.4" 3739 | }, 3740 | "type": "library", 3741 | "extra": { 3742 | "branch-alias": { 3743 | "dev-master": "1.3.x-dev" 3744 | } 3745 | }, 3746 | "autoload": { 3747 | "classmap": [ 3748 | "src/" 3749 | ] 3750 | }, 3751 | "notification-url": "https://packagist.org/downloads/", 3752 | "license": [ 3753 | "BSD-3-Clause" 3754 | ], 3755 | "authors": [ 3756 | { 3757 | "name": "Jeff Welch", 3758 | "email": "whatthejeff@gmail.com" 3759 | }, 3760 | { 3761 | "name": "Volker Dusch", 3762 | "email": "github@wallbash.com" 3763 | }, 3764 | { 3765 | "name": "Bernhard Schussek", 3766 | "email": "bschussek@2bepublished.at" 3767 | }, 3768 | { 3769 | "name": "Sebastian Bergmann", 3770 | "email": "sebastian@phpunit.de" 3771 | }, 3772 | { 3773 | "name": "Adam Harvey", 3774 | "email": "aharvey@php.net" 3775 | } 3776 | ], 3777 | "description": "Provides the functionality to export PHP variables for visualization", 3778 | "homepage": "http://www.github.com/sebastianbergmann/exporter", 3779 | "keywords": [ 3780 | "export", 3781 | "exporter" 3782 | ], 3783 | "time": "2016-06-17 09:04:28" 3784 | }, 3785 | { 3786 | "name": "sebastian/global-state", 3787 | "version": "1.1.1", 3788 | "source": { 3789 | "type": "git", 3790 | "url": "https://github.com/sebastianbergmann/global-state.git", 3791 | "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" 3792 | }, 3793 | "dist": { 3794 | "type": "zip", 3795 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", 3796 | "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", 3797 | "shasum": "" 3798 | }, 3799 | "require": { 3800 | "php": ">=5.3.3" 3801 | }, 3802 | "require-dev": { 3803 | "phpunit/phpunit": "~4.2" 3804 | }, 3805 | "suggest": { 3806 | "ext-uopz": "*" 3807 | }, 3808 | "type": "library", 3809 | "extra": { 3810 | "branch-alias": { 3811 | "dev-master": "1.0-dev" 3812 | } 3813 | }, 3814 | "autoload": { 3815 | "classmap": [ 3816 | "src/" 3817 | ] 3818 | }, 3819 | "notification-url": "https://packagist.org/downloads/", 3820 | "license": [ 3821 | "BSD-3-Clause" 3822 | ], 3823 | "authors": [ 3824 | { 3825 | "name": "Sebastian Bergmann", 3826 | "email": "sebastian@phpunit.de" 3827 | } 3828 | ], 3829 | "description": "Snapshotting of global state", 3830 | "homepage": "http://www.github.com/sebastianbergmann/global-state", 3831 | "keywords": [ 3832 | "global state" 3833 | ], 3834 | "time": "2015-10-12 03:26:01" 3835 | }, 3836 | { 3837 | "name": "sebastian/recursion-context", 3838 | "version": "1.0.2", 3839 | "source": { 3840 | "type": "git", 3841 | "url": "https://github.com/sebastianbergmann/recursion-context.git", 3842 | "reference": "913401df809e99e4f47b27cdd781f4a258d58791" 3843 | }, 3844 | "dist": { 3845 | "type": "zip", 3846 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/913401df809e99e4f47b27cdd781f4a258d58791", 3847 | "reference": "913401df809e99e4f47b27cdd781f4a258d58791", 3848 | "shasum": "" 3849 | }, 3850 | "require": { 3851 | "php": ">=5.3.3" 3852 | }, 3853 | "require-dev": { 3854 | "phpunit/phpunit": "~4.4" 3855 | }, 3856 | "type": "library", 3857 | "extra": { 3858 | "branch-alias": { 3859 | "dev-master": "1.0.x-dev" 3860 | } 3861 | }, 3862 | "autoload": { 3863 | "classmap": [ 3864 | "src/" 3865 | ] 3866 | }, 3867 | "notification-url": "https://packagist.org/downloads/", 3868 | "license": [ 3869 | "BSD-3-Clause" 3870 | ], 3871 | "authors": [ 3872 | { 3873 | "name": "Jeff Welch", 3874 | "email": "whatthejeff@gmail.com" 3875 | }, 3876 | { 3877 | "name": "Sebastian Bergmann", 3878 | "email": "sebastian@phpunit.de" 3879 | }, 3880 | { 3881 | "name": "Adam Harvey", 3882 | "email": "aharvey@php.net" 3883 | } 3884 | ], 3885 | "description": "Provides functionality to recursively process PHP variables", 3886 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context", 3887 | "time": "2015-11-11 19:50:13" 3888 | }, 3889 | { 3890 | "name": "sebastian/version", 3891 | "version": "1.0.6", 3892 | "source": { 3893 | "type": "git", 3894 | "url": "https://github.com/sebastianbergmann/version.git", 3895 | "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6" 3896 | }, 3897 | "dist": { 3898 | "type": "zip", 3899 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", 3900 | "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", 3901 | "shasum": "" 3902 | }, 3903 | "type": "library", 3904 | "autoload": { 3905 | "classmap": [ 3906 | "src/" 3907 | ] 3908 | }, 3909 | "notification-url": "https://packagist.org/downloads/", 3910 | "license": [ 3911 | "BSD-3-Clause" 3912 | ], 3913 | "authors": [ 3914 | { 3915 | "name": "Sebastian Bergmann", 3916 | "email": "sebastian@phpunit.de", 3917 | "role": "lead" 3918 | } 3919 | ], 3920 | "description": "Library that helps with managing the version number of Git-hosted PHP projects", 3921 | "homepage": "https://github.com/sebastianbergmann/version", 3922 | "time": "2015-06-21 13:59:46" 3923 | }, 3924 | { 3925 | "name": "symfony/yaml", 3926 | "version": "v3.1.4", 3927 | "source": { 3928 | "type": "git", 3929 | "url": "https://github.com/symfony/yaml.git", 3930 | "reference": "f291ed25eb1435bddbe8a96caaef16469c2a092d" 3931 | }, 3932 | "dist": { 3933 | "type": "zip", 3934 | "url": "https://api.github.com/repos/symfony/yaml/zipball/f291ed25eb1435bddbe8a96caaef16469c2a092d", 3935 | "reference": "f291ed25eb1435bddbe8a96caaef16469c2a092d", 3936 | "shasum": "" 3937 | }, 3938 | "require": { 3939 | "php": ">=5.5.9" 3940 | }, 3941 | "type": "library", 3942 | "extra": { 3943 | "branch-alias": { 3944 | "dev-master": "3.1-dev" 3945 | } 3946 | }, 3947 | "autoload": { 3948 | "psr-4": { 3949 | "Symfony\\Component\\Yaml\\": "" 3950 | }, 3951 | "exclude-from-classmap": [ 3952 | "/Tests/" 3953 | ] 3954 | }, 3955 | "notification-url": "https://packagist.org/downloads/", 3956 | "license": [ 3957 | "MIT" 3958 | ], 3959 | "authors": [ 3960 | { 3961 | "name": "Fabien Potencier", 3962 | "email": "fabien@symfony.com" 3963 | }, 3964 | { 3965 | "name": "Symfony Community", 3966 | "homepage": "https://symfony.com/contributors" 3967 | } 3968 | ], 3969 | "description": "Symfony Yaml Component", 3970 | "homepage": "https://symfony.com", 3971 | "time": "2016-09-02 02:12:52" 3972 | } 3973 | ], 3974 | "aliases": [], 3975 | "minimum-stability": "stable", 3976 | "stability-flags": { 3977 | "dingo/api": 20, 3978 | "tymon/jwt-auth": 20 3979 | }, 3980 | "prefer-stable": false, 3981 | "prefer-lowest": false, 3982 | "platform": { 3983 | "php": ">=5.5.9" 3984 | }, 3985 | "platform-dev": [] 3986 | } 3987 | -------------------------------------------------------------------------------- /config/auth.php: -------------------------------------------------------------------------------- 1 | [ 17 | 'guard' => 'jwt', 18 | 'passwords' => 'users', 19 | ], 20 | 21 | /* 22 | |-------------------------------------------------------------------------- 23 | | Authentication Guards 24 | |-------------------------------------------------------------------------- 25 | | 26 | | Next, you may define every authentication guard for your application. 27 | | Of course, a great default configuration has been defined for you 28 | | here which uses session storage and the Eloquent user provider. 29 | | 30 | | All authentication drivers have a user provider. This defines how the 31 | | users are actually retrieved out of your database or other storage 32 | | mechanisms used by this application to persist your user's data. 33 | | 34 | | Supported: "session", "token" 35 | | 36 | */ 37 | 38 | 'guards' => [ 39 | 'api' => [ 40 | 'driver' => 'token', 41 | 'provider' => 'users', 42 | ], 43 | 'jwt' => [ 44 | 'driver' => 'jwt', 45 | 'provider' => 'users', 46 | ], 47 | ], 48 | 49 | /* 50 | |-------------------------------------------------------------------------- 51 | | User Providers 52 | |-------------------------------------------------------------------------- 53 | | 54 | | All authentication drivers have a user provider. This defines how the 55 | | users are actually retrieved out of your database or other storage 56 | | mechanisms used by this application to persist your user's data. 57 | | 58 | | If you have multiple user tables or models you may configure multiple 59 | | sources which represent each model / table. These sources may then 60 | | be assigned to any extra authentication guards you have defined. 61 | | 62 | | Supported: "database", "eloquent" 63 | | 64 | */ 65 | 66 | 'providers' => [ 67 | 'users' => [ 68 | 'driver' => 'eloquent', 69 | 'model' => '\App\Models\ApiSubscriber' 70 | ], 71 | 72 | // 'users' => [ 73 | // 'driver' => 'database', 74 | // 'table' => 'users', 75 | // ], 76 | ], 77 | 78 | /* 79 | |-------------------------------------------------------------------------- 80 | | Resetting Passwords 81 | |-------------------------------------------------------------------------- 82 | | 83 | | Here you may set the options for resetting passwords including the view 84 | | that is your password reset e-mail. You may also set the name of the 85 | | table that maintains all of the reset tokens for your application. 86 | | 87 | | You may specify multiple password reset configurations if you have more 88 | | than one user table or model in the application and you want to have 89 | | separate password reset settings based on the specific user types. 90 | | 91 | | The expire time is the number of minutes that the reset token should be 92 | | considered valid. This security feature keeps tokens short-lived so 93 | | they have less time to be guessed. You may change this as needed. 94 | | 95 | */ 96 | 97 | 'passwords' => [ 98 | 'users' => [ 99 | 'provider' => 'users', 100 | 'email' => 'auth.emails.password', 101 | 'table' => 'password_resets', 102 | 'expire' => 60, 103 | ], 104 | ], 105 | 106 | ]; -------------------------------------------------------------------------------- /config/cors.php: -------------------------------------------------------------------------------- 1 | false, 13 | 'allowedOrigins' => ['*'], 14 | 'allowedHeaders' => ['*'], 15 | 'allowedMethods' => ['GET', 'POST', 'PUT', 'DELETE'], 16 | 'exposedHeaders' => ['Authorization'], 17 | 'maxAge' => 0, 18 | 'hosts' => [], 19 | ]; -------------------------------------------------------------------------------- /config/jwt.php: -------------------------------------------------------------------------------- 1 | env('JWT_SECRET'), 17 | 18 | /* 19 | |-------------------------------------------------------------------------- 20 | | JWT time to live 21 | |-------------------------------------------------------------------------- 22 | | 23 | | Specify the length of time (in minutes) that the token will be valid for. 24 | | Defaults to 1 hour. 25 | | 26 | | You can also set this to null, to yield a never expiring token. 27 | | Some people may want this behaviour for e.g. a mobile app. 28 | | This is not particularly recommended, so make sure you have appropriate 29 | | systems in place to revoke the token if necessary. 30 | | 31 | */ 32 | 33 | 'ttl' => env('JWT_TTL', 60), 34 | 35 | /* 36 | |-------------------------------------------------------------------------- 37 | | Refresh time to live 38 | |-------------------------------------------------------------------------- 39 | | 40 | | Specify the length of time (in minutes) that the token can be refreshed 41 | | within. I.E. The user can refresh their token within a 2 week window of 42 | | the original token being created until they must re-authenticate. 43 | | Defaults to 2 weeks 44 | | 45 | */ 46 | 47 | 'refresh_ttl' => env('JWT_REFRESH_TTL', 20160), 48 | 49 | /* 50 | |-------------------------------------------------------------------------- 51 | | JWT hashing algorithm 52 | |-------------------------------------------------------------------------- 53 | | 54 | | Specify the hashing algorithm that will be used to sign the token. 55 | | 56 | | See here: https://github.com/namshi/jose/tree/2.2.0/src/Namshi/JOSE/Signer 57 | | for possible values 58 | | 59 | */ 60 | 61 | 'algo' => env('JWT_ALGO', 'HS256'), 62 | 63 | /* 64 | |-------------------------------------------------------------------------- 65 | | Required Claims 66 | |-------------------------------------------------------------------------- 67 | | 68 | | Specify the required claims that must exist in any token. 69 | | A TokenInvalidException will be thrown if any of these claims are not 70 | | present in the payload. 71 | | 72 | */ 73 | 74 | 'required_claims' => ['iss', 'iat', 'exp', 'nbf', 'sub', 'jti'], 75 | 76 | /* 77 | |-------------------------------------------------------------------------- 78 | | Blacklist Enabled 79 | |-------------------------------------------------------------------------- 80 | | 81 | | In order to invalidate tokens, you must have the the blacklist enabled. 82 | | If you do not want or need this functionality, then set this to false. 83 | | 84 | */ 85 | 86 | 'blacklist_enabled' => env('JWT_BLACKLIST_ENABLED', true), 87 | 88 | /* 89 | | ------------------------------------------------------------------------- 90 | | Blacklist Grace Period 91 | | ------------------------------------------------------------------------- 92 | | 93 | | When multiple concurrent requests are made with the same JWT, 94 | | it is possible that some of them fail, due to token regeneration 95 | | on every request. 96 | | 97 | | Set grace period in seconds to prevent parallel request failure. 98 | | 99 | */ 100 | 101 | 'blacklist_grace_period' => env('JWT_BLACKLIST_GRACE_PERIOD', 0), 102 | 103 | /* 104 | |-------------------------------------------------------------------------- 105 | | Providers 106 | |-------------------------------------------------------------------------- 107 | | 108 | | Specify the various providers used throughout the package. 109 | | 110 | */ 111 | 112 | 'providers' => [ 113 | 114 | 'user' => \App\Models\ApiSubscriber::class, 115 | 116 | /* 117 | |-------------------------------------------------------------------------- 118 | | JWT Provider 119 | |-------------------------------------------------------------------------- 120 | | 121 | | Specify the provider that is used to create and decode the tokens. 122 | | 123 | */ 124 | 125 | 'jwt' => Tymon\JWTAuth\Providers\JWT\Namshi::class, 126 | 127 | /* 128 | |-------------------------------------------------------------------------- 129 | | Authentication Provider 130 | |-------------------------------------------------------------------------- 131 | | 132 | | Specify the provider that is used to authenticate users. 133 | | 134 | */ 135 | 136 | 'auth' => Tymon\JWTAuth\Providers\Auth\Illuminate::class, 137 | 138 | /* 139 | |-------------------------------------------------------------------------- 140 | | Storage Provider 141 | |-------------------------------------------------------------------------- 142 | | 143 | | Specify the provider that is used to store tokens in the blacklist 144 | | 145 | */ 146 | 147 | 'storage' => Tymon\JWTAuth\Providers\Storage\Illuminate::class 148 | 149 | ] 150 | 151 | ]; 152 | -------------------------------------------------------------------------------- /database/factories/ModelFactory.php: -------------------------------------------------------------------------------- 1 | define(App\User::class, function ($faker) { 15 | return [ 16 | 'name' => $faker->name, 17 | 'email' => $faker->email, 18 | 'password' => str_random(10), 19 | 'remember_token' => str_random(10), 20 | ]; 21 | }); 22 | -------------------------------------------------------------------------------- /database/migrations/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0plus1/lumendingojwtapi/06f020d44ca8db5711122bd638f4e8347b27f7a1/database/migrations/.gitkeep -------------------------------------------------------------------------------- /database/migrations/2015_11_30_095335_create_api_subscribers_table.php: -------------------------------------------------------------------------------- 1 | increments('api_subscriber_id'); 17 | $table->string('email', 255); 18 | $table->string('password', 255); 19 | $table->timestamps(); 20 | $table->softDeletes(); 21 | 22 | // unique key 23 | $table->unique('email'); 24 | 25 | // indexes 26 | $table->index(['email', 'password']); 27 | }); 28 | } 29 | 30 | /** 31 | * Reverse the migrations. 32 | * 33 | * @return void 34 | */ 35 | public function down() 36 | { 37 | Schema::drop('api_subscribers'); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /database/seeds/DatabaseSeeder.php: -------------------------------------------------------------------------------- 1 | call('DefaultPopulator'); 18 | 19 | Model::reguard(); 20 | } 21 | } 22 | 23 | /** 24 | * Class DefaultPopulator 25 | */ 26 | class DefaultPopulator extends Seeder 27 | { 28 | public function run() 29 | { 30 | $ApiSubscriber = App\Models\ApiSubscriber::create( 31 | [ 32 | 'email' => 'test@user.dev', 33 | 'password' => 'secret', 34 | ] 35 | ); 36 | 37 | unset($ApiSubscriber); 38 | return; 39 | } 40 | 41 | 42 | } -------------------------------------------------------------------------------- /lumendingojwtapi.json.postman_collection: -------------------------------------------------------------------------------- 1 | { 2 | "id": "97176123-789b-4f53-e8d8-32a24dab2f68", 3 | "name": "lumendingojwtapi", 4 | "description": "", 5 | "order": [ 6 | "bfb5fdeb-91b7-ec7d-f3cc-cab767b4ff1d", 7 | "ea4b5d15-fd7b-a675-ca02-86a7bd55bd91" 8 | ], 9 | "folders": [], 10 | "timestamp": 1448877693431, 11 | "owner": "37016", 12 | "remoteLink": "", 13 | "public": false, 14 | "requests": [ 15 | { 16 | "id": "bfb5fdeb-91b7-ec7d-f3cc-cab767b4ff1d", 17 | "headers": "", 18 | "url": "lumendingojwtapi.local/authenticate", 19 | "preRequestScript": "", 20 | "pathVariables": {}, 21 | "method": "POST", 22 | "data": [ 23 | { 24 | "key": "email", 25 | "value": "test@user.dev", 26 | "type": "text", 27 | "enabled": true 28 | }, 29 | { 30 | "key": "password", 31 | "value": "secret", 32 | "type": "text", 33 | "enabled": true 34 | } 35 | ], 36 | "dataMode": "urlencoded", 37 | "version": 2, 38 | "tests": "", 39 | "currentHelper": "normal", 40 | "helperAttributes": {}, 41 | "time": 1448878089915, 42 | "name": "login", 43 | "description": "", 44 | "collectionId": "97176123-789b-4f53-e8d8-32a24dab2f68", 45 | "responses": [] 46 | }, 47 | { 48 | "id": "ea4b5d15-fd7b-a675-ca02-86a7bd55bd91", 49 | "headers": "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vbHVtZW5kaW5nb2p3dGFwaS5sb2NhbC9hdXRoZW50aWNhdGUiLCJpYXQiOjE0NDg4NzgxNTEsImV4cCI6MTQ0ODg4MTc1MSwibmJmIjoxNDQ4ODc4MTUxLCJqdGkiOiIyMzUzZmMyMmE3ZWE1OTExMjQwZjg4YTJjNjdmOTU0OSIsInN1YiI6MX0.BrMTtG_NflVmIbQDTQNy1zV_AIyyO8IMngFBuq4MRm8\n", 50 | "url": "lumendingojwtapi.local/index", 51 | "preRequestScript": "", 52 | "pathVariables": {}, 53 | "method": "GET", 54 | "data": [], 55 | "dataMode": "params", 56 | "version": 2, 57 | "tests": "", 58 | "currentHelper": "normal", 59 | "helperAttributes": {}, 60 | "time": 1448878180565, 61 | "name": "index", 62 | "description": "", 63 | "collectionId": "97176123-789b-4f53-e8d8-32a24dab2f68", 64 | "responses": [] 65 | } 66 | ] 67 | } -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | ./tests/ 15 | 16 | 17 | 18 | 19 | app/ 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /public/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | 3 | Options -MultiViews 4 | 5 | 6 | RewriteEngine On 7 | 8 | # Redirect Trailing Slashes If Not A Folder... 9 | RewriteCond %{REQUEST_FILENAME} !-d 10 | RewriteRule ^(.*)/$ /$1 [L,R=301] 11 | 12 | # Handle Front Controller... 13 | RewriteCond %{REQUEST_FILENAME} !-d 14 | RewriteCond %{REQUEST_FILENAME} !-f 15 | RewriteRule ^ index.php [L] 16 | 17 | -------------------------------------------------------------------------------- /public/index.php: -------------------------------------------------------------------------------- 1 | run(); 29 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | ## Lumen 5.* + Dingo API + JWT Auth + CORS 2 | 3 | Boilerplate of Lumen 5.** with Dingo API using JWT Auth to secure endpoints. CORS complaint. 4 | Facades are [disabled](http://programmingarehard.com/2014/01/11/stop-using-facades.html/), Eloquent is enabled. 5 | 6 | Easy to clone for a new project or just to get over the obstacles of your own implementation. 7 | 8 | #### Install 9 | 1. Create lumendingojwtapi database 10 | 2. php artisan migrate && php artisan db:seed 11 | 12 | #### Versions 13 | * v1.x.x family is based on Lumen 5.1.x 14 | * v2.x.x family is based on Lumen 5.2.x 15 | * v3.x.x family is based on Lumen 5.3.x 16 | 17 | #### Postman collection 18 | Assumes: //lumendingojwtapi.local url. 19 | -------------------------------------------------------------------------------- /resources/lang/en/validation.php: -------------------------------------------------------------------------------- 1 | 'The :attribute must be accepted.', 17 | 'active_url' => 'The :attribute is not a valid URL.', 18 | 'after' => 'The :attribute must be a date after :date.', 19 | 'alpha' => 'The :attribute may only contain letters.', 20 | 'alpha_dash' => 'The :attribute may only contain letters, numbers, and dashes.', 21 | 'alpha_num' => 'The :attribute may only contain letters and numbers.', 22 | 'array' => 'The :attribute must be an array.', 23 | 'before' => 'The :attribute must be a date before :date.', 24 | 'between' => [ 25 | 'numeric' => 'The :attribute must be between :min and :max.', 26 | 'file' => 'The :attribute must be between :min and :max kilobytes.', 27 | 'string' => 'The :attribute must be between :min and :max characters.', 28 | 'array' => 'The :attribute must have between :min and :max items.', 29 | ], 30 | 'boolean' => 'The :attribute field must be true or false.', 31 | 'confirmed' => 'The :attribute confirmation does not match.', 32 | 'date' => 'The :attribute is not a valid date.', 33 | 'date_format' => 'The :attribute does not match the format :format.', 34 | 'different' => 'The :attribute and :other must be different.', 35 | 'digits' => 'The :attribute must be :digits digits.', 36 | 'digits_between' => 'The :attribute must be between :min and :max digits.', 37 | 'email' => 'The :attribute must be a valid email address.', 38 | 'exists' => 'The selected :attribute is invalid.', 39 | 'filled' => 'The :attribute field is required.', 40 | 'image' => 'The :attribute must be an image.', 41 | 'in' => 'The selected :attribute is invalid.', 42 | 'integer' => 'The :attribute must be an integer.', 43 | 'ip' => 'The :attribute must be a valid IP address.', 44 | 'json' => 'The :attribute must be a valid JSON string.', 45 | 'max' => [ 46 | 'numeric' => 'The :attribute may not be greater than :max.', 47 | 'file' => 'The :attribute may not be greater than :max kilobytes.', 48 | 'string' => 'The :attribute may not be greater than :max characters.', 49 | 'array' => 'The :attribute may not have more than :max items.', 50 | ], 51 | 'mimes' => 'The :attribute must be a file of type: :values.', 52 | 'min' => [ 53 | 'numeric' => 'The :attribute must be at least :min.', 54 | 'file' => 'The :attribute must be at least :min kilobytes.', 55 | 'string' => 'The :attribute must be at least :min characters.', 56 | 'array' => 'The :attribute must have at least :min items.', 57 | ], 58 | 'not_in' => 'The selected :attribute is invalid.', 59 | 'numeric' => 'The :attribute must be a number.', 60 | 'regex' => 'The :attribute format is invalid.', 61 | 'required' => 'The :attribute field is required.', 62 | 'required_if' => 'The :attribute field is required when :other is :value.', 63 | 'required_with' => 'The :attribute field is required when :values is present.', 64 | 'required_with_all' => 'The :attribute field is required when :values is present.', 65 | 'required_without' => 'The :attribute field is required when :values is not present.', 66 | 'required_without_all' => 'The :attribute field is required when none of :values are present.', 67 | 'same' => 'The :attribute and :other must match.', 68 | 'size' => [ 69 | 'numeric' => 'The :attribute must be :size.', 70 | 'file' => 'The :attribute must be :size kilobytes.', 71 | 'string' => 'The :attribute must be :size characters.', 72 | 'array' => 'The :attribute must contain :size items.', 73 | ], 74 | 'string' => 'The :attribute must be a string.', 75 | 'timezone' => 'The :attribute must be a valid zone.', 76 | 'unique' => 'The :attribute has already been taken.', 77 | 'url' => 'The :attribute format is invalid.', 78 | 79 | /* 80 | |-------------------------------------------------------------------------- 81 | | Custom Validation Language Lines 82 | |-------------------------------------------------------------------------- 83 | | 84 | | Here you may specify custom validation messages for attributes using the 85 | | convention "attribute.rule" to name the lines. This makes it quick to 86 | | specify a specific custom language line for a given attribute rule. 87 | | 88 | */ 89 | 90 | 'custom' => [ 91 | 'attribute-name' => [ 92 | 'rule-name' => 'custom-message', 93 | ], 94 | ], 95 | 96 | /* 97 | |-------------------------------------------------------------------------- 98 | | Custom Validation Attributes 99 | |-------------------------------------------------------------------------- 100 | | 101 | | The following language lines are used to swap attribute place-holders 102 | | with something more reader friendly such as E-Mail Address instead 103 | | of "email". This simply helps us make messages a little cleaner. 104 | | 105 | */ 106 | 107 | 'attributes' => [], 108 | 109 | ]; 110 | -------------------------------------------------------------------------------- /resources/views/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0plus1/lumendingojwtapi/06f020d44ca8db5711122bd638f4e8347b27f7a1/resources/views/.gitkeep -------------------------------------------------------------------------------- /server.php: -------------------------------------------------------------------------------- 1 | visit('/') 13 | ->see('Lumen.'); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /tests/TestCase.php: -------------------------------------------------------------------------------- 1 |