├── .gitignore ├── LICENSE ├── composer.json ├── composer.lock ├── readme.md └── src ├── Route.php ├── TestServer.php └── server └── public └── index.php /.gitignore: -------------------------------------------------------------------------------- 1 | src/server/storage 2 | vendor 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 makewebau 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "makeweb/test-server", 3 | "description": "Create a simple HTTP server on your local environment capable of handling responses for test purposes", 4 | "license": "MIT", 5 | "authors": [ 6 | { 7 | "name": "Andrew Feeney", 8 | "email": "webspannerdev@gmail.com" 9 | } 10 | ], 11 | "require": { 12 | "laravel/lumen-framework": "5.6.*", 13 | "jeremeamia/superclosure": "^2.4" 14 | }, 15 | "autoload": { 16 | "psr-4": { 17 | "MakeWeb\\TestServer\\": "src/" 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_readme": [ 3 | "This file locks the dependencies of your project to a known state", 4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", 5 | "This file is @generated automatically" 6 | ], 7 | "content-hash": "29c1714e082862c298a8464aff84cdb5", 8 | "packages": [ 9 | { 10 | "name": "doctrine/inflector", 11 | "version": "v1.3.0", 12 | "source": { 13 | "type": "git", 14 | "url": "https://github.com/doctrine/inflector.git", 15 | "reference": "5527a48b7313d15261292c149e55e26eae771b0a" 16 | }, 17 | "dist": { 18 | "type": "zip", 19 | "url": "https://api.github.com/repos/doctrine/inflector/zipball/5527a48b7313d15261292c149e55e26eae771b0a", 20 | "reference": "5527a48b7313d15261292c149e55e26eae771b0a", 21 | "shasum": "" 22 | }, 23 | "require": { 24 | "php": "^7.1" 25 | }, 26 | "require-dev": { 27 | "phpunit/phpunit": "^6.2" 28 | }, 29 | "type": "library", 30 | "extra": { 31 | "branch-alias": { 32 | "dev-master": "1.3.x-dev" 33 | } 34 | }, 35 | "autoload": { 36 | "psr-4": { 37 | "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector" 38 | } 39 | }, 40 | "notification-url": "https://packagist.org/downloads/", 41 | "license": [ 42 | "MIT" 43 | ], 44 | "authors": [ 45 | { 46 | "name": "Roman Borschel", 47 | "email": "roman@code-factory.org" 48 | }, 49 | { 50 | "name": "Benjamin Eberlei", 51 | "email": "kontakt@beberlei.de" 52 | }, 53 | { 54 | "name": "Guilherme Blanco", 55 | "email": "guilhermeblanco@gmail.com" 56 | }, 57 | { 58 | "name": "Jonathan Wage", 59 | "email": "jonwage@gmail.com" 60 | }, 61 | { 62 | "name": "Johannes Schmitt", 63 | "email": "schmittjoh@gmail.com" 64 | } 65 | ], 66 | "description": "Common String Manipulations with regard to casing and singular/plural rules.", 67 | "homepage": "http://www.doctrine-project.org", 68 | "keywords": [ 69 | "inflection", 70 | "pluralize", 71 | "singularize", 72 | "string" 73 | ], 74 | "time": "2018-01-09T20:05:19+00:00" 75 | }, 76 | { 77 | "name": "dragonmantank/cron-expression", 78 | "version": "v2.1.0", 79 | "source": { 80 | "type": "git", 81 | "url": "https://github.com/dragonmantank/cron-expression.git", 82 | "reference": "3f00985deec8df53d4cc1e5c33619bda1ee309a5" 83 | }, 84 | "dist": { 85 | "type": "zip", 86 | "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/3f00985deec8df53d4cc1e5c33619bda1ee309a5", 87 | "reference": "3f00985deec8df53d4cc1e5c33619bda1ee309a5", 88 | "shasum": "" 89 | }, 90 | "require": { 91 | "php": ">=7.0.0" 92 | }, 93 | "require-dev": { 94 | "phpunit/phpunit": "~6.4" 95 | }, 96 | "type": "library", 97 | "autoload": { 98 | "psr-4": { 99 | "Cron\\": "src/Cron/" 100 | } 101 | }, 102 | "notification-url": "https://packagist.org/downloads/", 103 | "license": [ 104 | "MIT" 105 | ], 106 | "authors": [ 107 | { 108 | "name": "Michael Dowling", 109 | "email": "mtdowling@gmail.com", 110 | "homepage": "https://github.com/mtdowling" 111 | }, 112 | { 113 | "name": "Chris Tankersley", 114 | "email": "chris@ctankersley.com", 115 | "homepage": "https://github.com/dragonmantank" 116 | } 117 | ], 118 | "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", 119 | "keywords": [ 120 | "cron", 121 | "schedule" 122 | ], 123 | "time": "2018-04-06T15:51:55+00:00" 124 | }, 125 | { 126 | "name": "illuminate/auth", 127 | "version": "v5.6.17", 128 | "source": { 129 | "type": "git", 130 | "url": "https://github.com/illuminate/auth.git", 131 | "reference": "6651ee80fb51c089bae325a6b314f3f016e90b4c" 132 | }, 133 | "dist": { 134 | "type": "zip", 135 | "url": "https://api.github.com/repos/illuminate/auth/zipball/6651ee80fb51c089bae325a6b314f3f016e90b4c", 136 | "reference": "6651ee80fb51c089bae325a6b314f3f016e90b4c", 137 | "shasum": "" 138 | }, 139 | "require": { 140 | "illuminate/contracts": "5.6.*", 141 | "illuminate/http": "5.6.*", 142 | "illuminate/queue": "5.6.*", 143 | "illuminate/support": "5.6.*", 144 | "php": "^7.1.3" 145 | }, 146 | "suggest": { 147 | "illuminate/console": "Required to use the auth:clear-resets command (5.6.*).", 148 | "illuminate/queue": "Required to fire login / logout events (5.6.*).", 149 | "illuminate/session": "Required to use the session based guard (5.6.*)." 150 | }, 151 | "type": "library", 152 | "extra": { 153 | "branch-alias": { 154 | "dev-master": "5.6-dev" 155 | } 156 | }, 157 | "autoload": { 158 | "psr-4": { 159 | "Illuminate\\Auth\\": "" 160 | } 161 | }, 162 | "notification-url": "https://packagist.org/downloads/", 163 | "license": [ 164 | "MIT" 165 | ], 166 | "authors": [ 167 | { 168 | "name": "Taylor Otwell", 169 | "email": "taylor@laravel.com" 170 | } 171 | ], 172 | "description": "The Illuminate Auth package.", 173 | "homepage": "https://laravel.com", 174 | "time": "2018-04-16T12:10:28+00:00" 175 | }, 176 | { 177 | "name": "illuminate/broadcasting", 178 | "version": "v5.6.17", 179 | "source": { 180 | "type": "git", 181 | "url": "https://github.com/illuminate/broadcasting.git", 182 | "reference": "a255f12022513843a0c38757315eaceeb2bebe2d" 183 | }, 184 | "dist": { 185 | "type": "zip", 186 | "url": "https://api.github.com/repos/illuminate/broadcasting/zipball/a255f12022513843a0c38757315eaceeb2bebe2d", 187 | "reference": "a255f12022513843a0c38757315eaceeb2bebe2d", 188 | "shasum": "" 189 | }, 190 | "require": { 191 | "illuminate/bus": "5.6.*", 192 | "illuminate/contracts": "5.6.*", 193 | "illuminate/queue": "5.6.*", 194 | "illuminate/support": "5.6.*", 195 | "php": "^7.1.3", 196 | "psr/log": "~1.0" 197 | }, 198 | "suggest": { 199 | "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (~3.0)." 200 | }, 201 | "type": "library", 202 | "extra": { 203 | "branch-alias": { 204 | "dev-master": "5.6-dev" 205 | } 206 | }, 207 | "autoload": { 208 | "psr-4": { 209 | "Illuminate\\Broadcasting\\": "" 210 | } 211 | }, 212 | "notification-url": "https://packagist.org/downloads/", 213 | "license": [ 214 | "MIT" 215 | ], 216 | "authors": [ 217 | { 218 | "name": "Taylor Otwell", 219 | "email": "taylor@laravel.com" 220 | } 221 | ], 222 | "description": "The Illuminate Broadcasting package.", 223 | "homepage": "https://laravel.com", 224 | "time": "2018-04-07T17:05:26+00:00" 225 | }, 226 | { 227 | "name": "illuminate/bus", 228 | "version": "v5.6.17", 229 | "source": { 230 | "type": "git", 231 | "url": "https://github.com/illuminate/bus.git", 232 | "reference": "8702a90ae06fabf080cb2cfffda3efaeae0e417a" 233 | }, 234 | "dist": { 235 | "type": "zip", 236 | "url": "https://api.github.com/repos/illuminate/bus/zipball/8702a90ae06fabf080cb2cfffda3efaeae0e417a", 237 | "reference": "8702a90ae06fabf080cb2cfffda3efaeae0e417a", 238 | "shasum": "" 239 | }, 240 | "require": { 241 | "illuminate/contracts": "5.6.*", 242 | "illuminate/pipeline": "5.6.*", 243 | "illuminate/support": "5.6.*", 244 | "php": "^7.1.3" 245 | }, 246 | "type": "library", 247 | "extra": { 248 | "branch-alias": { 249 | "dev-master": "5.6-dev" 250 | } 251 | }, 252 | "autoload": { 253 | "psr-4": { 254 | "Illuminate\\Bus\\": "" 255 | } 256 | }, 257 | "notification-url": "https://packagist.org/downloads/", 258 | "license": [ 259 | "MIT" 260 | ], 261 | "authors": [ 262 | { 263 | "name": "Taylor Otwell", 264 | "email": "taylor@laravel.com" 265 | } 266 | ], 267 | "description": "The Illuminate Bus package.", 268 | "homepage": "https://laravel.com", 269 | "time": "2017-12-14T13:30:55+00:00" 270 | }, 271 | { 272 | "name": "illuminate/cache", 273 | "version": "v5.6.17", 274 | "source": { 275 | "type": "git", 276 | "url": "https://github.com/illuminate/cache.git", 277 | "reference": "c04e07baf0377671031b12469c3165c4c2ebb3e4" 278 | }, 279 | "dist": { 280 | "type": "zip", 281 | "url": "https://api.github.com/repos/illuminate/cache/zipball/c04e07baf0377671031b12469c3165c4c2ebb3e4", 282 | "reference": "c04e07baf0377671031b12469c3165c4c2ebb3e4", 283 | "shasum": "" 284 | }, 285 | "require": { 286 | "illuminate/contracts": "5.6.*", 287 | "illuminate/support": "5.6.*", 288 | "php": "^7.1.3" 289 | }, 290 | "suggest": { 291 | "illuminate/database": "Required to use the database cache driver (5.6.*).", 292 | "illuminate/filesystem": "Required to use the file cache driver (5.6.*).", 293 | "illuminate/redis": "Required to use the redis cache driver (5.6.*)." 294 | }, 295 | "type": "library", 296 | "extra": { 297 | "branch-alias": { 298 | "dev-master": "5.6-dev" 299 | } 300 | }, 301 | "autoload": { 302 | "psr-4": { 303 | "Illuminate\\Cache\\": "" 304 | } 305 | }, 306 | "notification-url": "https://packagist.org/downloads/", 307 | "license": [ 308 | "MIT" 309 | ], 310 | "authors": [ 311 | { 312 | "name": "Taylor Otwell", 313 | "email": "taylor@laravel.com" 314 | } 315 | ], 316 | "description": "The Illuminate Cache package.", 317 | "homepage": "https://laravel.com", 318 | "time": "2018-04-07T17:05:26+00:00" 319 | }, 320 | { 321 | "name": "illuminate/config", 322 | "version": "v5.6.17", 323 | "source": { 324 | "type": "git", 325 | "url": "https://github.com/illuminate/config.git", 326 | "reference": "e8158dff3189deed846c84c66c60fa68c21ee579" 327 | }, 328 | "dist": { 329 | "type": "zip", 330 | "url": "https://api.github.com/repos/illuminate/config/zipball/e8158dff3189deed846c84c66c60fa68c21ee579", 331 | "reference": "e8158dff3189deed846c84c66c60fa68c21ee579", 332 | "shasum": "" 333 | }, 334 | "require": { 335 | "illuminate/contracts": "5.6.*", 336 | "illuminate/support": "5.6.*", 337 | "php": "^7.1.3" 338 | }, 339 | "type": "library", 340 | "extra": { 341 | "branch-alias": { 342 | "dev-master": "5.6-dev" 343 | } 344 | }, 345 | "autoload": { 346 | "psr-4": { 347 | "Illuminate\\Config\\": "" 348 | } 349 | }, 350 | "notification-url": "https://packagist.org/downloads/", 351 | "license": [ 352 | "MIT" 353 | ], 354 | "authors": [ 355 | { 356 | "name": "Taylor Otwell", 357 | "email": "taylor@laravel.com" 358 | } 359 | ], 360 | "description": "The Illuminate Config package.", 361 | "homepage": "https://laravel.com", 362 | "time": "2017-11-07T20:23:51+00:00" 363 | }, 364 | { 365 | "name": "illuminate/console", 366 | "version": "v5.6.17", 367 | "source": { 368 | "type": "git", 369 | "url": "https://github.com/illuminate/console.git", 370 | "reference": "8e276273dd518d83e229488b358ddf3a0b47acff" 371 | }, 372 | "dist": { 373 | "type": "zip", 374 | "url": "https://api.github.com/repos/illuminate/console/zipball/8e276273dd518d83e229488b358ddf3a0b47acff", 375 | "reference": "8e276273dd518d83e229488b358ddf3a0b47acff", 376 | "shasum": "" 377 | }, 378 | "require": { 379 | "illuminate/contracts": "5.6.*", 380 | "illuminate/support": "5.6.*", 381 | "php": "^7.1.3", 382 | "symfony/console": "~4.0" 383 | }, 384 | "suggest": { 385 | "dragonmantank/cron-expression": "Required to use scheduling component (~2.0).", 386 | "guzzlehttp/guzzle": "Required to use the ping methods on schedules (~6.0).", 387 | "symfony/process": "Required to use scheduling component (~4.0)." 388 | }, 389 | "type": "library", 390 | "extra": { 391 | "branch-alias": { 392 | "dev-master": "5.6-dev" 393 | } 394 | }, 395 | "autoload": { 396 | "psr-4": { 397 | "Illuminate\\Console\\": "" 398 | } 399 | }, 400 | "notification-url": "https://packagist.org/downloads/", 401 | "license": [ 402 | "MIT" 403 | ], 404 | "authors": [ 405 | { 406 | "name": "Taylor Otwell", 407 | "email": "taylor@laravel.com" 408 | } 409 | ], 410 | "description": "The Illuminate Console package.", 411 | "homepage": "https://laravel.com", 412 | "time": "2018-04-07T17:05:26+00:00" 413 | }, 414 | { 415 | "name": "illuminate/container", 416 | "version": "v5.6.17", 417 | "source": { 418 | "type": "git", 419 | "url": "https://github.com/illuminate/container.git", 420 | "reference": "4a42d667a05ec6d31f05b532cdac7e8e68e5ea2a" 421 | }, 422 | "dist": { 423 | "type": "zip", 424 | "url": "https://api.github.com/repos/illuminate/container/zipball/4a42d667a05ec6d31f05b532cdac7e8e68e5ea2a", 425 | "reference": "4a42d667a05ec6d31f05b532cdac7e8e68e5ea2a", 426 | "shasum": "" 427 | }, 428 | "require": { 429 | "illuminate/contracts": "5.6.*", 430 | "php": "^7.1.3", 431 | "psr/container": "~1.0" 432 | }, 433 | "type": "library", 434 | "extra": { 435 | "branch-alias": { 436 | "dev-master": "5.6-dev" 437 | } 438 | }, 439 | "autoload": { 440 | "psr-4": { 441 | "Illuminate\\Container\\": "" 442 | } 443 | }, 444 | "notification-url": "https://packagist.org/downloads/", 445 | "license": [ 446 | "MIT" 447 | ], 448 | "authors": [ 449 | { 450 | "name": "Taylor Otwell", 451 | "email": "taylor@laravel.com" 452 | } 453 | ], 454 | "description": "The Illuminate Container package.", 455 | "homepage": "https://laravel.com", 456 | "time": "2018-01-21T02:13:38+00:00" 457 | }, 458 | { 459 | "name": "illuminate/contracts", 460 | "version": "v5.6.17", 461 | "source": { 462 | "type": "git", 463 | "url": "https://github.com/illuminate/contracts.git", 464 | "reference": "322ec80498b3bf85bc4025d028e130a9b50242b9" 465 | }, 466 | "dist": { 467 | "type": "zip", 468 | "url": "https://api.github.com/repos/illuminate/contracts/zipball/322ec80498b3bf85bc4025d028e130a9b50242b9", 469 | "reference": "322ec80498b3bf85bc4025d028e130a9b50242b9", 470 | "shasum": "" 471 | }, 472 | "require": { 473 | "php": "^7.1.3", 474 | "psr/container": "~1.0", 475 | "psr/simple-cache": "~1.0" 476 | }, 477 | "type": "library", 478 | "extra": { 479 | "branch-alias": { 480 | "dev-master": "5.6-dev" 481 | } 482 | }, 483 | "autoload": { 484 | "psr-4": { 485 | "Illuminate\\Contracts\\": "" 486 | } 487 | }, 488 | "notification-url": "https://packagist.org/downloads/", 489 | "license": [ 490 | "MIT" 491 | ], 492 | "authors": [ 493 | { 494 | "name": "Taylor Otwell", 495 | "email": "taylor@laravel.com" 496 | } 497 | ], 498 | "description": "The Illuminate Contracts package.", 499 | "homepage": "https://laravel.com", 500 | "time": "2018-04-07T17:05:26+00:00" 501 | }, 502 | { 503 | "name": "illuminate/database", 504 | "version": "v5.6.17", 505 | "source": { 506 | "type": "git", 507 | "url": "https://github.com/illuminate/database.git", 508 | "reference": "a949e082dbb520fdcb2798e0a5408669724aa197" 509 | }, 510 | "dist": { 511 | "type": "zip", 512 | "url": "https://api.github.com/repos/illuminate/database/zipball/a949e082dbb520fdcb2798e0a5408669724aa197", 513 | "reference": "a949e082dbb520fdcb2798e0a5408669724aa197", 514 | "shasum": "" 515 | }, 516 | "require": { 517 | "illuminate/container": "5.6.*", 518 | "illuminate/contracts": "5.6.*", 519 | "illuminate/support": "5.6.*", 520 | "php": "^7.1.3" 521 | }, 522 | "suggest": { 523 | "doctrine/dbal": "Required to rename columns and drop SQLite columns (~2.6).", 524 | "fzaninotto/faker": "Required to use the eloquent factory builder (~1.4).", 525 | "illuminate/console": "Required to use the database commands (5.6.*).", 526 | "illuminate/events": "Required to use the observers with Eloquent (5.6.*).", 527 | "illuminate/filesystem": "Required to use the migrations (5.6.*).", 528 | "illuminate/pagination": "Required to paginate the result set (5.6.*)." 529 | }, 530 | "type": "library", 531 | "extra": { 532 | "branch-alias": { 533 | "dev-master": "5.6-dev" 534 | } 535 | }, 536 | "autoload": { 537 | "psr-4": { 538 | "Illuminate\\Database\\": "" 539 | } 540 | }, 541 | "notification-url": "https://packagist.org/downloads/", 542 | "license": [ 543 | "MIT" 544 | ], 545 | "authors": [ 546 | { 547 | "name": "Taylor Otwell", 548 | "email": "taylor@laravel.com" 549 | } 550 | ], 551 | "description": "The Illuminate Database package.", 552 | "homepage": "https://laravel.com", 553 | "keywords": [ 554 | "database", 555 | "laravel", 556 | "orm", 557 | "sql" 558 | ], 559 | "time": "2018-04-17T12:36:27+00:00" 560 | }, 561 | { 562 | "name": "illuminate/encryption", 563 | "version": "v5.6.17", 564 | "source": { 565 | "type": "git", 566 | "url": "https://github.com/illuminate/encryption.git", 567 | "reference": "c80b1da6a0412bd74bd56dc80f6126f561631b05" 568 | }, 569 | "dist": { 570 | "type": "zip", 571 | "url": "https://api.github.com/repos/illuminate/encryption/zipball/c80b1da6a0412bd74bd56dc80f6126f561631b05", 572 | "reference": "c80b1da6a0412bd74bd56dc80f6126f561631b05", 573 | "shasum": "" 574 | }, 575 | "require": { 576 | "ext-mbstring": "*", 577 | "ext-openssl": "*", 578 | "illuminate/contracts": "5.6.*", 579 | "illuminate/support": "5.6.*", 580 | "php": "^7.1.3" 581 | }, 582 | "type": "library", 583 | "extra": { 584 | "branch-alias": { 585 | "dev-master": "5.6-dev" 586 | } 587 | }, 588 | "autoload": { 589 | "psr-4": { 590 | "Illuminate\\Encryption\\": "" 591 | } 592 | }, 593 | "notification-url": "https://packagist.org/downloads/", 594 | "license": [ 595 | "MIT" 596 | ], 597 | "authors": [ 598 | { 599 | "name": "Taylor Otwell", 600 | "email": "taylor@laravel.com" 601 | } 602 | ], 603 | "description": "The Illuminate Encryption package.", 604 | "homepage": "https://laravel.com", 605 | "time": "2018-03-30T13:24:57+00:00" 606 | }, 607 | { 608 | "name": "illuminate/events", 609 | "version": "v5.6.17", 610 | "source": { 611 | "type": "git", 612 | "url": "https://github.com/illuminate/events.git", 613 | "reference": "b6e73ed40478cef2ef98d5ddb27f333291606cea" 614 | }, 615 | "dist": { 616 | "type": "zip", 617 | "url": "https://api.github.com/repos/illuminate/events/zipball/b6e73ed40478cef2ef98d5ddb27f333291606cea", 618 | "reference": "b6e73ed40478cef2ef98d5ddb27f333291606cea", 619 | "shasum": "" 620 | }, 621 | "require": { 622 | "illuminate/container": "5.6.*", 623 | "illuminate/contracts": "5.6.*", 624 | "illuminate/support": "5.6.*", 625 | "php": "^7.1.3" 626 | }, 627 | "type": "library", 628 | "extra": { 629 | "branch-alias": { 630 | "dev-master": "5.6-dev" 631 | } 632 | }, 633 | "autoload": { 634 | "psr-4": { 635 | "Illuminate\\Events\\": "" 636 | } 637 | }, 638 | "notification-url": "https://packagist.org/downloads/", 639 | "license": [ 640 | "MIT" 641 | ], 642 | "authors": [ 643 | { 644 | "name": "Taylor Otwell", 645 | "email": "taylor@laravel.com" 646 | } 647 | ], 648 | "description": "The Illuminate Events package.", 649 | "homepage": "https://laravel.com", 650 | "time": "2018-02-26T19:00:55+00:00" 651 | }, 652 | { 653 | "name": "illuminate/filesystem", 654 | "version": "v5.6.17", 655 | "source": { 656 | "type": "git", 657 | "url": "https://github.com/illuminate/filesystem.git", 658 | "reference": "c9ab9376076cedd88a374d7281d62b619634d578" 659 | }, 660 | "dist": { 661 | "type": "zip", 662 | "url": "https://api.github.com/repos/illuminate/filesystem/zipball/c9ab9376076cedd88a374d7281d62b619634d578", 663 | "reference": "c9ab9376076cedd88a374d7281d62b619634d578", 664 | "shasum": "" 665 | }, 666 | "require": { 667 | "illuminate/contracts": "5.6.*", 668 | "illuminate/support": "5.6.*", 669 | "php": "^7.1.3", 670 | "symfony/finder": "~4.0" 671 | }, 672 | "suggest": { 673 | "league/flysystem": "Required to use the Flysystem local and FTP drivers (~1.0).", 674 | "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (~1.0).", 675 | "league/flysystem-cached-adapter": "Required to use the Flysystem cache (~1.0).", 676 | "league/flysystem-rackspace": "Required to use the Flysystem Rackspace driver (~1.0).", 677 | "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (~1.0)." 678 | }, 679 | "type": "library", 680 | "extra": { 681 | "branch-alias": { 682 | "dev-master": "5.6-dev" 683 | } 684 | }, 685 | "autoload": { 686 | "psr-4": { 687 | "Illuminate\\Filesystem\\": "" 688 | } 689 | }, 690 | "notification-url": "https://packagist.org/downloads/", 691 | "license": [ 692 | "MIT" 693 | ], 694 | "authors": [ 695 | { 696 | "name": "Taylor Otwell", 697 | "email": "taylor@laravel.com" 698 | } 699 | ], 700 | "description": "The Illuminate Filesystem package.", 701 | "homepage": "https://laravel.com", 702 | "time": "2018-04-06T13:15:37+00:00" 703 | }, 704 | { 705 | "name": "illuminate/hashing", 706 | "version": "v5.6.17", 707 | "source": { 708 | "type": "git", 709 | "url": "https://github.com/illuminate/hashing.git", 710 | "reference": "230859eb01c72dfe1d17e0283e27b6720337abb5" 711 | }, 712 | "dist": { 713 | "type": "zip", 714 | "url": "https://api.github.com/repos/illuminate/hashing/zipball/230859eb01c72dfe1d17e0283e27b6720337abb5", 715 | "reference": "230859eb01c72dfe1d17e0283e27b6720337abb5", 716 | "shasum": "" 717 | }, 718 | "require": { 719 | "illuminate/contracts": "5.6.*", 720 | "illuminate/support": "5.6.*", 721 | "php": "^7.1.3" 722 | }, 723 | "type": "library", 724 | "extra": { 725 | "branch-alias": { 726 | "dev-master": "5.6-dev" 727 | } 728 | }, 729 | "autoload": { 730 | "psr-4": { 731 | "Illuminate\\Hashing\\": "" 732 | } 733 | }, 734 | "notification-url": "https://packagist.org/downloads/", 735 | "license": [ 736 | "MIT" 737 | ], 738 | "authors": [ 739 | { 740 | "name": "Taylor Otwell", 741 | "email": "taylor@laravel.com" 742 | } 743 | ], 744 | "description": "The Illuminate Hashing package.", 745 | "homepage": "https://laravel.com", 746 | "time": "2018-03-18T12:58:03+00:00" 747 | }, 748 | { 749 | "name": "illuminate/http", 750 | "version": "v5.6.17", 751 | "source": { 752 | "type": "git", 753 | "url": "https://github.com/illuminate/http.git", 754 | "reference": "1c58a1fd0b668c9d7203c6e69ba7391431815e47" 755 | }, 756 | "dist": { 757 | "type": "zip", 758 | "url": "https://api.github.com/repos/illuminate/http/zipball/1c58a1fd0b668c9d7203c6e69ba7391431815e47", 759 | "reference": "1c58a1fd0b668c9d7203c6e69ba7391431815e47", 760 | "shasum": "" 761 | }, 762 | "require": { 763 | "illuminate/session": "5.6.*", 764 | "illuminate/support": "5.6.*", 765 | "php": "^7.1.3", 766 | "symfony/http-foundation": "~4.0", 767 | "symfony/http-kernel": "~4.0" 768 | }, 769 | "type": "library", 770 | "extra": { 771 | "branch-alias": { 772 | "dev-master": "5.6-dev" 773 | } 774 | }, 775 | "autoload": { 776 | "psr-4": { 777 | "Illuminate\\Http\\": "" 778 | } 779 | }, 780 | "notification-url": "https://packagist.org/downloads/", 781 | "license": [ 782 | "MIT" 783 | ], 784 | "authors": [ 785 | { 786 | "name": "Taylor Otwell", 787 | "email": "taylor@laravel.com" 788 | } 789 | ], 790 | "description": "The Illuminate Http package.", 791 | "homepage": "https://laravel.com", 792 | "time": "2018-03-12T13:37:01+00:00" 793 | }, 794 | { 795 | "name": "illuminate/log", 796 | "version": "v5.6.17", 797 | "source": { 798 | "type": "git", 799 | "url": "https://github.com/illuminate/log.git", 800 | "reference": "4ea8e89851344e59e84b9e3084a73553739bae2f" 801 | }, 802 | "dist": { 803 | "type": "zip", 804 | "url": "https://api.github.com/repos/illuminate/log/zipball/4ea8e89851344e59e84b9e3084a73553739bae2f", 805 | "reference": "4ea8e89851344e59e84b9e3084a73553739bae2f", 806 | "shasum": "" 807 | }, 808 | "require": { 809 | "illuminate/contracts": "5.6.*", 810 | "illuminate/support": "5.6.*", 811 | "monolog/monolog": "~1.11", 812 | "php": "^7.1.3" 813 | }, 814 | "type": "library", 815 | "extra": { 816 | "branch-alias": { 817 | "dev-master": "5.6-dev" 818 | } 819 | }, 820 | "autoload": { 821 | "psr-4": { 822 | "Illuminate\\Log\\": "" 823 | } 824 | }, 825 | "notification-url": "https://packagist.org/downloads/", 826 | "license": [ 827 | "MIT" 828 | ], 829 | "authors": [ 830 | { 831 | "name": "Taylor Otwell", 832 | "email": "taylor@laravel.com" 833 | } 834 | ], 835 | "description": "The Illuminate Log package.", 836 | "homepage": "https://laravel.com", 837 | "time": "2018-03-14T12:38:13+00:00" 838 | }, 839 | { 840 | "name": "illuminate/pagination", 841 | "version": "v5.6.17", 842 | "source": { 843 | "type": "git", 844 | "url": "https://github.com/illuminate/pagination.git", 845 | "reference": "77e9cfd4daf526aab9bf9c75ee1676f3ba6dff51" 846 | }, 847 | "dist": { 848 | "type": "zip", 849 | "url": "https://api.github.com/repos/illuminate/pagination/zipball/77e9cfd4daf526aab9bf9c75ee1676f3ba6dff51", 850 | "reference": "77e9cfd4daf526aab9bf9c75ee1676f3ba6dff51", 851 | "shasum": "" 852 | }, 853 | "require": { 854 | "illuminate/contracts": "5.6.*", 855 | "illuminate/support": "5.6.*", 856 | "php": "^7.1.3" 857 | }, 858 | "type": "library", 859 | "extra": { 860 | "branch-alias": { 861 | "dev-master": "5.6-dev" 862 | } 863 | }, 864 | "autoload": { 865 | "psr-4": { 866 | "Illuminate\\Pagination\\": "" 867 | } 868 | }, 869 | "notification-url": "https://packagist.org/downloads/", 870 | "license": [ 871 | "MIT" 872 | ], 873 | "authors": [ 874 | { 875 | "name": "Taylor Otwell", 876 | "email": "taylor@laravel.com" 877 | } 878 | ], 879 | "description": "The Illuminate Pagination package.", 880 | "homepage": "https://laravel.com", 881 | "time": "2018-03-26T13:17:45+00:00" 882 | }, 883 | { 884 | "name": "illuminate/pipeline", 885 | "version": "v5.6.17", 886 | "source": { 887 | "type": "git", 888 | "url": "https://github.com/illuminate/pipeline.git", 889 | "reference": "0ea9439ed6e4b0bbbc74bf15aab84e4c9a3a9b3b" 890 | }, 891 | "dist": { 892 | "type": "zip", 893 | "url": "https://api.github.com/repos/illuminate/pipeline/zipball/0ea9439ed6e4b0bbbc74bf15aab84e4c9a3a9b3b", 894 | "reference": "0ea9439ed6e4b0bbbc74bf15aab84e4c9a3a9b3b", 895 | "shasum": "" 896 | }, 897 | "require": { 898 | "illuminate/contracts": "5.6.*", 899 | "illuminate/support": "5.6.*", 900 | "php": "^7.1.3" 901 | }, 902 | "type": "library", 903 | "extra": { 904 | "branch-alias": { 905 | "dev-master": "5.6-dev" 906 | } 907 | }, 908 | "autoload": { 909 | "psr-4": { 910 | "Illuminate\\Pipeline\\": "" 911 | } 912 | }, 913 | "notification-url": "https://packagist.org/downloads/", 914 | "license": [ 915 | "MIT" 916 | ], 917 | "authors": [ 918 | { 919 | "name": "Taylor Otwell", 920 | "email": "taylor@laravel.com" 921 | } 922 | ], 923 | "description": "The Illuminate Pipeline package.", 924 | "homepage": "https://laravel.com", 925 | "time": "2017-11-07T20:23:51+00:00" 926 | }, 927 | { 928 | "name": "illuminate/queue", 929 | "version": "v5.6.17", 930 | "source": { 931 | "type": "git", 932 | "url": "https://github.com/illuminate/queue.git", 933 | "reference": "667bbc163528443fecfb7e9ceb98e3607817dd04" 934 | }, 935 | "dist": { 936 | "type": "zip", 937 | "url": "https://api.github.com/repos/illuminate/queue/zipball/667bbc163528443fecfb7e9ceb98e3607817dd04", 938 | "reference": "667bbc163528443fecfb7e9ceb98e3607817dd04", 939 | "shasum": "" 940 | }, 941 | "require": { 942 | "illuminate/console": "5.6.*", 943 | "illuminate/container": "5.6.*", 944 | "illuminate/contracts": "5.6.*", 945 | "illuminate/database": "5.6.*", 946 | "illuminate/filesystem": "5.6.*", 947 | "illuminate/support": "5.6.*", 948 | "php": "^7.1.3", 949 | "symfony/debug": "~4.0", 950 | "symfony/process": "~4.0" 951 | }, 952 | "suggest": { 953 | "aws/aws-sdk-php": "Required to use the SQS queue driver (~3.0).", 954 | "ext-pcntl": "Required to use all features of the queue worker.", 955 | "ext-posix": "Required to use all features of the queue worker.", 956 | "illuminate/redis": "Required to use the Redis queue driver (5.6.*).", 957 | "pda/pheanstalk": "Required to use the Beanstalk queue driver (~3.0)." 958 | }, 959 | "type": "library", 960 | "extra": { 961 | "branch-alias": { 962 | "dev-master": "5.6-dev" 963 | } 964 | }, 965 | "autoload": { 966 | "psr-4": { 967 | "Illuminate\\Queue\\": "" 968 | } 969 | }, 970 | "notification-url": "https://packagist.org/downloads/", 971 | "license": [ 972 | "MIT" 973 | ], 974 | "authors": [ 975 | { 976 | "name": "Taylor Otwell", 977 | "email": "taylor@laravel.com" 978 | } 979 | ], 980 | "description": "The Illuminate Queue package.", 981 | "homepage": "https://laravel.com", 982 | "time": "2018-03-31T14:14:19+00:00" 983 | }, 984 | { 985 | "name": "illuminate/session", 986 | "version": "v5.6.17", 987 | "source": { 988 | "type": "git", 989 | "url": "https://github.com/illuminate/session.git", 990 | "reference": "90bb5857fb64e269d8d331f02f820555ee471f64" 991 | }, 992 | "dist": { 993 | "type": "zip", 994 | "url": "https://api.github.com/repos/illuminate/session/zipball/90bb5857fb64e269d8d331f02f820555ee471f64", 995 | "reference": "90bb5857fb64e269d8d331f02f820555ee471f64", 996 | "shasum": "" 997 | }, 998 | "require": { 999 | "illuminate/contracts": "5.6.*", 1000 | "illuminate/filesystem": "5.6.*", 1001 | "illuminate/support": "5.6.*", 1002 | "php": "^7.1.3", 1003 | "symfony/finder": "~4.0", 1004 | "symfony/http-foundation": "~4.0" 1005 | }, 1006 | "suggest": { 1007 | "illuminate/console": "Required to use the session:table command (5.6.*)." 1008 | }, 1009 | "type": "library", 1010 | "extra": { 1011 | "branch-alias": { 1012 | "dev-master": "5.6-dev" 1013 | } 1014 | }, 1015 | "autoload": { 1016 | "psr-4": { 1017 | "Illuminate\\Session\\": "" 1018 | } 1019 | }, 1020 | "notification-url": "https://packagist.org/downloads/", 1021 | "license": [ 1022 | "MIT" 1023 | ], 1024 | "authors": [ 1025 | { 1026 | "name": "Taylor Otwell", 1027 | "email": "taylor@laravel.com" 1028 | } 1029 | ], 1030 | "description": "The Illuminate Session package.", 1031 | "homepage": "https://laravel.com", 1032 | "time": "2018-03-06T14:29:02+00:00" 1033 | }, 1034 | { 1035 | "name": "illuminate/support", 1036 | "version": "v5.6.17", 1037 | "source": { 1038 | "type": "git", 1039 | "url": "https://github.com/illuminate/support.git", 1040 | "reference": "cc8d6f5cef3a901de6bb7d1b362102a6db001085" 1041 | }, 1042 | "dist": { 1043 | "type": "zip", 1044 | "url": "https://api.github.com/repos/illuminate/support/zipball/cc8d6f5cef3a901de6bb7d1b362102a6db001085", 1045 | "reference": "cc8d6f5cef3a901de6bb7d1b362102a6db001085", 1046 | "shasum": "" 1047 | }, 1048 | "require": { 1049 | "doctrine/inflector": "~1.1", 1050 | "ext-mbstring": "*", 1051 | "illuminate/contracts": "5.6.*", 1052 | "nesbot/carbon": "^1.24.1", 1053 | "php": "^7.1.3" 1054 | }, 1055 | "conflict": { 1056 | "tightenco/collect": "<5.5.33" 1057 | }, 1058 | "suggest": { 1059 | "illuminate/filesystem": "Required to use the composer class (5.6.*).", 1060 | "symfony/process": "Required to use the composer class (~4.0).", 1061 | "symfony/var-dumper": "Required to use the dd function (~4.0)." 1062 | }, 1063 | "type": "library", 1064 | "extra": { 1065 | "branch-alias": { 1066 | "dev-master": "5.6-dev" 1067 | } 1068 | }, 1069 | "autoload": { 1070 | "psr-4": { 1071 | "Illuminate\\Support\\": "" 1072 | }, 1073 | "files": [ 1074 | "helpers.php" 1075 | ] 1076 | }, 1077 | "notification-url": "https://packagist.org/downloads/", 1078 | "license": [ 1079 | "MIT" 1080 | ], 1081 | "authors": [ 1082 | { 1083 | "name": "Taylor Otwell", 1084 | "email": "taylor@laravel.com" 1085 | } 1086 | ], 1087 | "description": "The Illuminate Support package.", 1088 | "homepage": "https://laravel.com", 1089 | "time": "2018-04-17T12:26:47+00:00" 1090 | }, 1091 | { 1092 | "name": "illuminate/translation", 1093 | "version": "v5.6.17", 1094 | "source": { 1095 | "type": "git", 1096 | "url": "https://github.com/illuminate/translation.git", 1097 | "reference": "3612f41b450b8d14e7f5785c087af451ccd3be9c" 1098 | }, 1099 | "dist": { 1100 | "type": "zip", 1101 | "url": "https://api.github.com/repos/illuminate/translation/zipball/3612f41b450b8d14e7f5785c087af451ccd3be9c", 1102 | "reference": "3612f41b450b8d14e7f5785c087af451ccd3be9c", 1103 | "shasum": "" 1104 | }, 1105 | "require": { 1106 | "illuminate/contracts": "5.6.*", 1107 | "illuminate/filesystem": "5.6.*", 1108 | "illuminate/support": "5.6.*", 1109 | "php": "^7.1.3" 1110 | }, 1111 | "type": "library", 1112 | "extra": { 1113 | "branch-alias": { 1114 | "dev-master": "5.6-dev" 1115 | } 1116 | }, 1117 | "autoload": { 1118 | "psr-4": { 1119 | "Illuminate\\Translation\\": "" 1120 | } 1121 | }, 1122 | "notification-url": "https://packagist.org/downloads/", 1123 | "license": [ 1124 | "MIT" 1125 | ], 1126 | "authors": [ 1127 | { 1128 | "name": "Taylor Otwell", 1129 | "email": "taylor@laravel.com" 1130 | } 1131 | ], 1132 | "description": "The Illuminate Translation package.", 1133 | "homepage": "https://laravel.com", 1134 | "time": "2018-02-22T15:33:29+00:00" 1135 | }, 1136 | { 1137 | "name": "illuminate/validation", 1138 | "version": "v5.6.17", 1139 | "source": { 1140 | "type": "git", 1141 | "url": "https://github.com/illuminate/validation.git", 1142 | "reference": "31b9d073a0d560f838e907574437dc5945d38966" 1143 | }, 1144 | "dist": { 1145 | "type": "zip", 1146 | "url": "https://api.github.com/repos/illuminate/validation/zipball/31b9d073a0d560f838e907574437dc5945d38966", 1147 | "reference": "31b9d073a0d560f838e907574437dc5945d38966", 1148 | "shasum": "" 1149 | }, 1150 | "require": { 1151 | "illuminate/container": "5.6.*", 1152 | "illuminate/contracts": "5.6.*", 1153 | "illuminate/support": "5.6.*", 1154 | "illuminate/translation": "5.6.*", 1155 | "php": "^7.1.3", 1156 | "symfony/http-foundation": "~4.0" 1157 | }, 1158 | "suggest": { 1159 | "illuminate/database": "Required to use the database presence verifier (5.6.*)." 1160 | }, 1161 | "type": "library", 1162 | "extra": { 1163 | "branch-alias": { 1164 | "dev-master": "5.6-dev" 1165 | } 1166 | }, 1167 | "autoload": { 1168 | "psr-4": { 1169 | "Illuminate\\Validation\\": "" 1170 | } 1171 | }, 1172 | "notification-url": "https://packagist.org/downloads/", 1173 | "license": [ 1174 | "MIT" 1175 | ], 1176 | "authors": [ 1177 | { 1178 | "name": "Taylor Otwell", 1179 | "email": "taylor@laravel.com" 1180 | } 1181 | ], 1182 | "description": "The Illuminate Validation package.", 1183 | "homepage": "https://laravel.com", 1184 | "time": "2018-04-17T12:31:29+00:00" 1185 | }, 1186 | { 1187 | "name": "illuminate/view", 1188 | "version": "v5.6.17", 1189 | "source": { 1190 | "type": "git", 1191 | "url": "https://github.com/illuminate/view.git", 1192 | "reference": "54eaf45ee7946d8f8cde13d5e89c5ea2e997040d" 1193 | }, 1194 | "dist": { 1195 | "type": "zip", 1196 | "url": "https://api.github.com/repos/illuminate/view/zipball/54eaf45ee7946d8f8cde13d5e89c5ea2e997040d", 1197 | "reference": "54eaf45ee7946d8f8cde13d5e89c5ea2e997040d", 1198 | "shasum": "" 1199 | }, 1200 | "require": { 1201 | "illuminate/container": "5.6.*", 1202 | "illuminate/contracts": "5.6.*", 1203 | "illuminate/events": "5.6.*", 1204 | "illuminate/filesystem": "5.6.*", 1205 | "illuminate/support": "5.6.*", 1206 | "php": "^7.1.3", 1207 | "symfony/debug": "~4.0" 1208 | }, 1209 | "type": "library", 1210 | "extra": { 1211 | "branch-alias": { 1212 | "dev-master": "5.6-dev" 1213 | } 1214 | }, 1215 | "autoload": { 1216 | "psr-4": { 1217 | "Illuminate\\View\\": "" 1218 | } 1219 | }, 1220 | "notification-url": "https://packagist.org/downloads/", 1221 | "license": [ 1222 | "MIT" 1223 | ], 1224 | "authors": [ 1225 | { 1226 | "name": "Taylor Otwell", 1227 | "email": "taylor@laravel.com" 1228 | } 1229 | ], 1230 | "description": "The Illuminate View package.", 1231 | "homepage": "https://laravel.com", 1232 | "time": "2018-04-03T12:56:35+00:00" 1233 | }, 1234 | { 1235 | "name": "jeremeamia/SuperClosure", 1236 | "version": "2.4.0", 1237 | "source": { 1238 | "type": "git", 1239 | "url": "https://github.com/jeremeamia/super_closure.git", 1240 | "reference": "5707d5821b30b9a07acfb4d76949784aaa0e9ce9" 1241 | }, 1242 | "dist": { 1243 | "type": "zip", 1244 | "url": "https://api.github.com/repos/jeremeamia/super_closure/zipball/5707d5821b30b9a07acfb4d76949784aaa0e9ce9", 1245 | "reference": "5707d5821b30b9a07acfb4d76949784aaa0e9ce9", 1246 | "shasum": "" 1247 | }, 1248 | "require": { 1249 | "nikic/php-parser": "^1.2|^2.0|^3.0|^4.0", 1250 | "php": ">=5.4", 1251 | "symfony/polyfill-php56": "^1.0" 1252 | }, 1253 | "require-dev": { 1254 | "phpunit/phpunit": "^4.0|^5.0" 1255 | }, 1256 | "type": "library", 1257 | "extra": { 1258 | "branch-alias": { 1259 | "dev-master": "2.4-dev" 1260 | } 1261 | }, 1262 | "autoload": { 1263 | "psr-4": { 1264 | "SuperClosure\\": "src/" 1265 | } 1266 | }, 1267 | "notification-url": "https://packagist.org/downloads/", 1268 | "license": [ 1269 | "MIT" 1270 | ], 1271 | "authors": [ 1272 | { 1273 | "name": "Jeremy Lindblom", 1274 | "email": "jeremeamia@gmail.com", 1275 | "homepage": "https://github.com/jeremeamia", 1276 | "role": "Developer" 1277 | } 1278 | ], 1279 | "description": "Serialize Closure objects, including their context and binding", 1280 | "homepage": "https://github.com/jeremeamia/super_closure", 1281 | "keywords": [ 1282 | "closure", 1283 | "function", 1284 | "lambda", 1285 | "parser", 1286 | "serializable", 1287 | "serialize", 1288 | "tokenizer" 1289 | ], 1290 | "time": "2018-03-21T22:21:57+00:00" 1291 | }, 1292 | { 1293 | "name": "laravel/lumen-framework", 1294 | "version": "v5.6.3", 1295 | "source": { 1296 | "type": "git", 1297 | "url": "https://github.com/laravel/lumen-framework.git", 1298 | "reference": "ada8052dc09642d24792fb0019252c8287494e6c" 1299 | }, 1300 | "dist": { 1301 | "type": "zip", 1302 | "url": "https://api.github.com/repos/laravel/lumen-framework/zipball/ada8052dc09642d24792fb0019252c8287494e6c", 1303 | "reference": "ada8052dc09642d24792fb0019252c8287494e6c", 1304 | "shasum": "" 1305 | }, 1306 | "require": { 1307 | "dragonmantank/cron-expression": "~2.0", 1308 | "illuminate/auth": "5.6.*", 1309 | "illuminate/broadcasting": "5.6.*", 1310 | "illuminate/bus": "5.6.*", 1311 | "illuminate/cache": "5.6.*", 1312 | "illuminate/config": "5.6.*", 1313 | "illuminate/container": "5.6.*", 1314 | "illuminate/contracts": "5.6.*", 1315 | "illuminate/database": "5.6.*", 1316 | "illuminate/encryption": "5.6.*", 1317 | "illuminate/events": "5.6.*", 1318 | "illuminate/filesystem": "5.6.*", 1319 | "illuminate/hashing": "5.6.*", 1320 | "illuminate/http": "5.6.*", 1321 | "illuminate/log": "5.6.*", 1322 | "illuminate/pagination": "5.6.*", 1323 | "illuminate/pipeline": "5.6.*", 1324 | "illuminate/queue": "5.6.*", 1325 | "illuminate/support": "5.6.*", 1326 | "illuminate/translation": "5.6.*", 1327 | "illuminate/validation": "5.6.*", 1328 | "illuminate/view": "5.6.*", 1329 | "nikic/fast-route": "~1.2", 1330 | "php": "^7.1.3", 1331 | "symfony/http-foundation": "~4.0", 1332 | "symfony/http-kernel": "~4.0" 1333 | }, 1334 | "require-dev": { 1335 | "mockery/mockery": "~1.0", 1336 | "phpunit/phpunit": "~6.0" 1337 | }, 1338 | "suggest": { 1339 | "laravel/tinker": "Required to use the tinker console command (~1.0).", 1340 | "vlucas/phpdotenv": "Required to use .env files (~2.2)." 1341 | }, 1342 | "type": "library", 1343 | "extra": { 1344 | "branch-alias": { 1345 | "dev-master": "5.6-dev" 1346 | } 1347 | }, 1348 | "autoload": { 1349 | "psr-4": { 1350 | "Laravel\\Lumen\\": "src/" 1351 | }, 1352 | "files": [ 1353 | "src/helpers.php" 1354 | ] 1355 | }, 1356 | "notification-url": "https://packagist.org/downloads/", 1357 | "license": [ 1358 | "MIT" 1359 | ], 1360 | "authors": [ 1361 | { 1362 | "name": "Taylor Otwell", 1363 | "email": "taylorotwell@gmail.com" 1364 | } 1365 | ], 1366 | "description": "The Laravel Lumen Framework.", 1367 | "homepage": "https://lumen.laravel.com", 1368 | "keywords": [ 1369 | "framework", 1370 | "laravel", 1371 | "lumen" 1372 | ], 1373 | "time": "2018-03-27T16:21:45+00:00" 1374 | }, 1375 | { 1376 | "name": "monolog/monolog", 1377 | "version": "1.23.0", 1378 | "source": { 1379 | "type": "git", 1380 | "url": "https://github.com/Seldaek/monolog.git", 1381 | "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4" 1382 | }, 1383 | "dist": { 1384 | "type": "zip", 1385 | "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fd8c787753b3a2ad11bc60c063cff1358a32a3b4", 1386 | "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4", 1387 | "shasum": "" 1388 | }, 1389 | "require": { 1390 | "php": ">=5.3.0", 1391 | "psr/log": "~1.0" 1392 | }, 1393 | "provide": { 1394 | "psr/log-implementation": "1.0.0" 1395 | }, 1396 | "require-dev": { 1397 | "aws/aws-sdk-php": "^2.4.9 || ^3.0", 1398 | "doctrine/couchdb": "~1.0@dev", 1399 | "graylog2/gelf-php": "~1.0", 1400 | "jakub-onderka/php-parallel-lint": "0.9", 1401 | "php-amqplib/php-amqplib": "~2.4", 1402 | "php-console/php-console": "^3.1.3", 1403 | "phpunit/phpunit": "~4.5", 1404 | "phpunit/phpunit-mock-objects": "2.3.0", 1405 | "ruflin/elastica": ">=0.90 <3.0", 1406 | "sentry/sentry": "^0.13", 1407 | "swiftmailer/swiftmailer": "^5.3|^6.0" 1408 | }, 1409 | "suggest": { 1410 | "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", 1411 | "doctrine/couchdb": "Allow sending log messages to a CouchDB server", 1412 | "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", 1413 | "ext-mongo": "Allow sending log messages to a MongoDB server", 1414 | "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", 1415 | "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", 1416 | "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", 1417 | "php-console/php-console": "Allow sending log messages to Google Chrome", 1418 | "rollbar/rollbar": "Allow sending log messages to Rollbar", 1419 | "ruflin/elastica": "Allow sending log messages to an Elastic Search server", 1420 | "sentry/sentry": "Allow sending log messages to a Sentry server" 1421 | }, 1422 | "type": "library", 1423 | "extra": { 1424 | "branch-alias": { 1425 | "dev-master": "2.0.x-dev" 1426 | } 1427 | }, 1428 | "autoload": { 1429 | "psr-4": { 1430 | "Monolog\\": "src/Monolog" 1431 | } 1432 | }, 1433 | "notification-url": "https://packagist.org/downloads/", 1434 | "license": [ 1435 | "MIT" 1436 | ], 1437 | "authors": [ 1438 | { 1439 | "name": "Jordi Boggiano", 1440 | "email": "j.boggiano@seld.be", 1441 | "homepage": "http://seld.be" 1442 | } 1443 | ], 1444 | "description": "Sends your logs to files, sockets, inboxes, databases and various web services", 1445 | "homepage": "http://github.com/Seldaek/monolog", 1446 | "keywords": [ 1447 | "log", 1448 | "logging", 1449 | "psr-3" 1450 | ], 1451 | "time": "2017-06-19T01:22:40+00:00" 1452 | }, 1453 | { 1454 | "name": "nesbot/carbon", 1455 | "version": "1.26.4", 1456 | "source": { 1457 | "type": "git", 1458 | "url": "https://github.com/briannesbitt/Carbon.git", 1459 | "reference": "e3d9014279133a3cccc01f6a691322a2d5a6a87b" 1460 | }, 1461 | "dist": { 1462 | "type": "zip", 1463 | "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/e3d9014279133a3cccc01f6a691322a2d5a6a87b", 1464 | "reference": "e3d9014279133a3cccc01f6a691322a2d5a6a87b", 1465 | "shasum": "" 1466 | }, 1467 | "require": { 1468 | "php": ">=5.3.9", 1469 | "symfony/translation": "~2.6 || ~3.0 || ~4.0" 1470 | }, 1471 | "require-dev": { 1472 | "friendsofphp/php-cs-fixer": "~2", 1473 | "phpunit/phpunit": "^4.8.35 || ^5.7" 1474 | }, 1475 | "type": "library", 1476 | "autoload": { 1477 | "psr-4": { 1478 | "": "src/" 1479 | } 1480 | }, 1481 | "notification-url": "https://packagist.org/downloads/", 1482 | "license": [ 1483 | "MIT" 1484 | ], 1485 | "authors": [ 1486 | { 1487 | "name": "Brian Nesbitt", 1488 | "email": "brian@nesbot.com", 1489 | "homepage": "http://nesbot.com" 1490 | } 1491 | ], 1492 | "description": "A simple API extension for DateTime.", 1493 | "homepage": "http://carbon.nesbot.com", 1494 | "keywords": [ 1495 | "date", 1496 | "datetime", 1497 | "time" 1498 | ], 1499 | "time": "2018-04-17T15:35:42+00:00" 1500 | }, 1501 | { 1502 | "name": "nikic/fast-route", 1503 | "version": "v1.3.0", 1504 | "source": { 1505 | "type": "git", 1506 | "url": "https://github.com/nikic/FastRoute.git", 1507 | "reference": "181d480e08d9476e61381e04a71b34dc0432e812" 1508 | }, 1509 | "dist": { 1510 | "type": "zip", 1511 | "url": "https://api.github.com/repos/nikic/FastRoute/zipball/181d480e08d9476e61381e04a71b34dc0432e812", 1512 | "reference": "181d480e08d9476e61381e04a71b34dc0432e812", 1513 | "shasum": "" 1514 | }, 1515 | "require": { 1516 | "php": ">=5.4.0" 1517 | }, 1518 | "require-dev": { 1519 | "phpunit/phpunit": "^4.8.35|~5.7" 1520 | }, 1521 | "type": "library", 1522 | "autoload": { 1523 | "psr-4": { 1524 | "FastRoute\\": "src/" 1525 | }, 1526 | "files": [ 1527 | "src/functions.php" 1528 | ] 1529 | }, 1530 | "notification-url": "https://packagist.org/downloads/", 1531 | "license": [ 1532 | "BSD-3-Clause" 1533 | ], 1534 | "authors": [ 1535 | { 1536 | "name": "Nikita Popov", 1537 | "email": "nikic@php.net" 1538 | } 1539 | ], 1540 | "description": "Fast request router for PHP", 1541 | "keywords": [ 1542 | "router", 1543 | "routing" 1544 | ], 1545 | "time": "2018-02-13T20:26:39+00:00" 1546 | }, 1547 | { 1548 | "name": "nikic/php-parser", 1549 | "version": "v4.0.1", 1550 | "source": { 1551 | "type": "git", 1552 | "url": "https://github.com/nikic/PHP-Parser.git", 1553 | "reference": "e4a54fa90a5cd8e8dd3fb4099942681731c5cdd3" 1554 | }, 1555 | "dist": { 1556 | "type": "zip", 1557 | "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/e4a54fa90a5cd8e8dd3fb4099942681731c5cdd3", 1558 | "reference": "e4a54fa90a5cd8e8dd3fb4099942681731c5cdd3", 1559 | "shasum": "" 1560 | }, 1561 | "require": { 1562 | "ext-tokenizer": "*", 1563 | "php": ">=7.0" 1564 | }, 1565 | "require-dev": { 1566 | "phpunit/phpunit": "^6.5 || ^7.0" 1567 | }, 1568 | "bin": [ 1569 | "bin/php-parse" 1570 | ], 1571 | "type": "library", 1572 | "extra": { 1573 | "branch-alias": { 1574 | "dev-master": "4.0-dev" 1575 | } 1576 | }, 1577 | "autoload": { 1578 | "psr-4": { 1579 | "PhpParser\\": "lib/PhpParser" 1580 | } 1581 | }, 1582 | "notification-url": "https://packagist.org/downloads/", 1583 | "license": [ 1584 | "BSD-3-Clause" 1585 | ], 1586 | "authors": [ 1587 | { 1588 | "name": "Nikita Popov" 1589 | } 1590 | ], 1591 | "description": "A PHP parser written in PHP", 1592 | "keywords": [ 1593 | "parser", 1594 | "php" 1595 | ], 1596 | "time": "2018-03-25T17:35:16+00:00" 1597 | }, 1598 | { 1599 | "name": "psr/container", 1600 | "version": "1.0.0", 1601 | "source": { 1602 | "type": "git", 1603 | "url": "https://github.com/php-fig/container.git", 1604 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" 1605 | }, 1606 | "dist": { 1607 | "type": "zip", 1608 | "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", 1609 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", 1610 | "shasum": "" 1611 | }, 1612 | "require": { 1613 | "php": ">=5.3.0" 1614 | }, 1615 | "type": "library", 1616 | "extra": { 1617 | "branch-alias": { 1618 | "dev-master": "1.0.x-dev" 1619 | } 1620 | }, 1621 | "autoload": { 1622 | "psr-4": { 1623 | "Psr\\Container\\": "src/" 1624 | } 1625 | }, 1626 | "notification-url": "https://packagist.org/downloads/", 1627 | "license": [ 1628 | "MIT" 1629 | ], 1630 | "authors": [ 1631 | { 1632 | "name": "PHP-FIG", 1633 | "homepage": "http://www.php-fig.org/" 1634 | } 1635 | ], 1636 | "description": "Common Container Interface (PHP FIG PSR-11)", 1637 | "homepage": "https://github.com/php-fig/container", 1638 | "keywords": [ 1639 | "PSR-11", 1640 | "container", 1641 | "container-interface", 1642 | "container-interop", 1643 | "psr" 1644 | ], 1645 | "time": "2017-02-14T16:28:37+00:00" 1646 | }, 1647 | { 1648 | "name": "psr/log", 1649 | "version": "1.0.2", 1650 | "source": { 1651 | "type": "git", 1652 | "url": "https://github.com/php-fig/log.git", 1653 | "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" 1654 | }, 1655 | "dist": { 1656 | "type": "zip", 1657 | "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", 1658 | "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", 1659 | "shasum": "" 1660 | }, 1661 | "require": { 1662 | "php": ">=5.3.0" 1663 | }, 1664 | "type": "library", 1665 | "extra": { 1666 | "branch-alias": { 1667 | "dev-master": "1.0.x-dev" 1668 | } 1669 | }, 1670 | "autoload": { 1671 | "psr-4": { 1672 | "Psr\\Log\\": "Psr/Log/" 1673 | } 1674 | }, 1675 | "notification-url": "https://packagist.org/downloads/", 1676 | "license": [ 1677 | "MIT" 1678 | ], 1679 | "authors": [ 1680 | { 1681 | "name": "PHP-FIG", 1682 | "homepage": "http://www.php-fig.org/" 1683 | } 1684 | ], 1685 | "description": "Common interface for logging libraries", 1686 | "homepage": "https://github.com/php-fig/log", 1687 | "keywords": [ 1688 | "log", 1689 | "psr", 1690 | "psr-3" 1691 | ], 1692 | "time": "2016-10-10T12:19:37+00:00" 1693 | }, 1694 | { 1695 | "name": "psr/simple-cache", 1696 | "version": "1.0.1", 1697 | "source": { 1698 | "type": "git", 1699 | "url": "https://github.com/php-fig/simple-cache.git", 1700 | "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" 1701 | }, 1702 | "dist": { 1703 | "type": "zip", 1704 | "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", 1705 | "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", 1706 | "shasum": "" 1707 | }, 1708 | "require": { 1709 | "php": ">=5.3.0" 1710 | }, 1711 | "type": "library", 1712 | "extra": { 1713 | "branch-alias": { 1714 | "dev-master": "1.0.x-dev" 1715 | } 1716 | }, 1717 | "autoload": { 1718 | "psr-4": { 1719 | "Psr\\SimpleCache\\": "src/" 1720 | } 1721 | }, 1722 | "notification-url": "https://packagist.org/downloads/", 1723 | "license": [ 1724 | "MIT" 1725 | ], 1726 | "authors": [ 1727 | { 1728 | "name": "PHP-FIG", 1729 | "homepage": "http://www.php-fig.org/" 1730 | } 1731 | ], 1732 | "description": "Common interfaces for simple caching", 1733 | "keywords": [ 1734 | "cache", 1735 | "caching", 1736 | "psr", 1737 | "psr-16", 1738 | "simple-cache" 1739 | ], 1740 | "time": "2017-10-23T01:57:42+00:00" 1741 | }, 1742 | { 1743 | "name": "symfony/console", 1744 | "version": "v4.0.8", 1745 | "source": { 1746 | "type": "git", 1747 | "url": "https://github.com/symfony/console.git", 1748 | "reference": "aad9a6fe47319f22748fd764f52d3a7ca6fa6b64" 1749 | }, 1750 | "dist": { 1751 | "type": "zip", 1752 | "url": "https://api.github.com/repos/symfony/console/zipball/aad9a6fe47319f22748fd764f52d3a7ca6fa6b64", 1753 | "reference": "aad9a6fe47319f22748fd764f52d3a7ca6fa6b64", 1754 | "shasum": "" 1755 | }, 1756 | "require": { 1757 | "php": "^7.1.3", 1758 | "symfony/polyfill-mbstring": "~1.0" 1759 | }, 1760 | "conflict": { 1761 | "symfony/dependency-injection": "<3.4", 1762 | "symfony/process": "<3.3" 1763 | }, 1764 | "require-dev": { 1765 | "psr/log": "~1.0", 1766 | "symfony/config": "~3.4|~4.0", 1767 | "symfony/dependency-injection": "~3.4|~4.0", 1768 | "symfony/event-dispatcher": "~3.4|~4.0", 1769 | "symfony/lock": "~3.4|~4.0", 1770 | "symfony/process": "~3.4|~4.0" 1771 | }, 1772 | "suggest": { 1773 | "psr/log": "For using the console logger", 1774 | "symfony/event-dispatcher": "", 1775 | "symfony/lock": "", 1776 | "symfony/process": "" 1777 | }, 1778 | "type": "library", 1779 | "extra": { 1780 | "branch-alias": { 1781 | "dev-master": "4.0-dev" 1782 | } 1783 | }, 1784 | "autoload": { 1785 | "psr-4": { 1786 | "Symfony\\Component\\Console\\": "" 1787 | }, 1788 | "exclude-from-classmap": [ 1789 | "/Tests/" 1790 | ] 1791 | }, 1792 | "notification-url": "https://packagist.org/downloads/", 1793 | "license": [ 1794 | "MIT" 1795 | ], 1796 | "authors": [ 1797 | { 1798 | "name": "Fabien Potencier", 1799 | "email": "fabien@symfony.com" 1800 | }, 1801 | { 1802 | "name": "Symfony Community", 1803 | "homepage": "https://symfony.com/contributors" 1804 | } 1805 | ], 1806 | "description": "Symfony Console Component", 1807 | "homepage": "https://symfony.com", 1808 | "time": "2018-04-03T05:24:00+00:00" 1809 | }, 1810 | { 1811 | "name": "symfony/debug", 1812 | "version": "v4.0.8", 1813 | "source": { 1814 | "type": "git", 1815 | "url": "https://github.com/symfony/debug.git", 1816 | "reference": "5961d02d48828671f5d8a7805e06579d692f6ede" 1817 | }, 1818 | "dist": { 1819 | "type": "zip", 1820 | "url": "https://api.github.com/repos/symfony/debug/zipball/5961d02d48828671f5d8a7805e06579d692f6ede", 1821 | "reference": "5961d02d48828671f5d8a7805e06579d692f6ede", 1822 | "shasum": "" 1823 | }, 1824 | "require": { 1825 | "php": "^7.1.3", 1826 | "psr/log": "~1.0" 1827 | }, 1828 | "conflict": { 1829 | "symfony/http-kernel": "<3.4" 1830 | }, 1831 | "require-dev": { 1832 | "symfony/http-kernel": "~3.4|~4.0" 1833 | }, 1834 | "type": "library", 1835 | "extra": { 1836 | "branch-alias": { 1837 | "dev-master": "4.0-dev" 1838 | } 1839 | }, 1840 | "autoload": { 1841 | "psr-4": { 1842 | "Symfony\\Component\\Debug\\": "" 1843 | }, 1844 | "exclude-from-classmap": [ 1845 | "/Tests/" 1846 | ] 1847 | }, 1848 | "notification-url": "https://packagist.org/downloads/", 1849 | "license": [ 1850 | "MIT" 1851 | ], 1852 | "authors": [ 1853 | { 1854 | "name": "Fabien Potencier", 1855 | "email": "fabien@symfony.com" 1856 | }, 1857 | { 1858 | "name": "Symfony Community", 1859 | "homepage": "https://symfony.com/contributors" 1860 | } 1861 | ], 1862 | "description": "Symfony Debug Component", 1863 | "homepage": "https://symfony.com", 1864 | "time": "2018-04-03T05:24:00+00:00" 1865 | }, 1866 | { 1867 | "name": "symfony/event-dispatcher", 1868 | "version": "v4.0.8", 1869 | "source": { 1870 | "type": "git", 1871 | "url": "https://github.com/symfony/event-dispatcher.git", 1872 | "reference": "63353a71073faf08f62caab4e6889b06a787f07b" 1873 | }, 1874 | "dist": { 1875 | "type": "zip", 1876 | "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/63353a71073faf08f62caab4e6889b06a787f07b", 1877 | "reference": "63353a71073faf08f62caab4e6889b06a787f07b", 1878 | "shasum": "" 1879 | }, 1880 | "require": { 1881 | "php": "^7.1.3" 1882 | }, 1883 | "conflict": { 1884 | "symfony/dependency-injection": "<3.4" 1885 | }, 1886 | "require-dev": { 1887 | "psr/log": "~1.0", 1888 | "symfony/config": "~3.4|~4.0", 1889 | "symfony/dependency-injection": "~3.4|~4.0", 1890 | "symfony/expression-language": "~3.4|~4.0", 1891 | "symfony/stopwatch": "~3.4|~4.0" 1892 | }, 1893 | "suggest": { 1894 | "symfony/dependency-injection": "", 1895 | "symfony/http-kernel": "" 1896 | }, 1897 | "type": "library", 1898 | "extra": { 1899 | "branch-alias": { 1900 | "dev-master": "4.0-dev" 1901 | } 1902 | }, 1903 | "autoload": { 1904 | "psr-4": { 1905 | "Symfony\\Component\\EventDispatcher\\": "" 1906 | }, 1907 | "exclude-from-classmap": [ 1908 | "/Tests/" 1909 | ] 1910 | }, 1911 | "notification-url": "https://packagist.org/downloads/", 1912 | "license": [ 1913 | "MIT" 1914 | ], 1915 | "authors": [ 1916 | { 1917 | "name": "Fabien Potencier", 1918 | "email": "fabien@symfony.com" 1919 | }, 1920 | { 1921 | "name": "Symfony Community", 1922 | "homepage": "https://symfony.com/contributors" 1923 | } 1924 | ], 1925 | "description": "Symfony EventDispatcher Component", 1926 | "homepage": "https://symfony.com", 1927 | "time": "2018-04-06T07:35:43+00:00" 1928 | }, 1929 | { 1930 | "name": "symfony/finder", 1931 | "version": "v4.0.8", 1932 | "source": { 1933 | "type": "git", 1934 | "url": "https://github.com/symfony/finder.git", 1935 | "reference": "ca27c02b7a3fef4828c998c2ff9ba7aae1641c49" 1936 | }, 1937 | "dist": { 1938 | "type": "zip", 1939 | "url": "https://api.github.com/repos/symfony/finder/zipball/ca27c02b7a3fef4828c998c2ff9ba7aae1641c49", 1940 | "reference": "ca27c02b7a3fef4828c998c2ff9ba7aae1641c49", 1941 | "shasum": "" 1942 | }, 1943 | "require": { 1944 | "php": "^7.1.3" 1945 | }, 1946 | "type": "library", 1947 | "extra": { 1948 | "branch-alias": { 1949 | "dev-master": "4.0-dev" 1950 | } 1951 | }, 1952 | "autoload": { 1953 | "psr-4": { 1954 | "Symfony\\Component\\Finder\\": "" 1955 | }, 1956 | "exclude-from-classmap": [ 1957 | "/Tests/" 1958 | ] 1959 | }, 1960 | "notification-url": "https://packagist.org/downloads/", 1961 | "license": [ 1962 | "MIT" 1963 | ], 1964 | "authors": [ 1965 | { 1966 | "name": "Fabien Potencier", 1967 | "email": "fabien@symfony.com" 1968 | }, 1969 | { 1970 | "name": "Symfony Community", 1971 | "homepage": "https://symfony.com/contributors" 1972 | } 1973 | ], 1974 | "description": "Symfony Finder Component", 1975 | "homepage": "https://symfony.com", 1976 | "time": "2018-04-04T05:10:37+00:00" 1977 | }, 1978 | { 1979 | "name": "symfony/http-foundation", 1980 | "version": "v4.0.8", 1981 | "source": { 1982 | "type": "git", 1983 | "url": "https://github.com/symfony/http-foundation.git", 1984 | "reference": "d0864a82e5891ab61d31eecbaa48bed5a09b8e6c" 1985 | }, 1986 | "dist": { 1987 | "type": "zip", 1988 | "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d0864a82e5891ab61d31eecbaa48bed5a09b8e6c", 1989 | "reference": "d0864a82e5891ab61d31eecbaa48bed5a09b8e6c", 1990 | "shasum": "" 1991 | }, 1992 | "require": { 1993 | "php": "^7.1.3", 1994 | "symfony/polyfill-mbstring": "~1.1" 1995 | }, 1996 | "require-dev": { 1997 | "symfony/expression-language": "~3.4|~4.0" 1998 | }, 1999 | "type": "library", 2000 | "extra": { 2001 | "branch-alias": { 2002 | "dev-master": "4.0-dev" 2003 | } 2004 | }, 2005 | "autoload": { 2006 | "psr-4": { 2007 | "Symfony\\Component\\HttpFoundation\\": "" 2008 | }, 2009 | "exclude-from-classmap": [ 2010 | "/Tests/" 2011 | ] 2012 | }, 2013 | "notification-url": "https://packagist.org/downloads/", 2014 | "license": [ 2015 | "MIT" 2016 | ], 2017 | "authors": [ 2018 | { 2019 | "name": "Fabien Potencier", 2020 | "email": "fabien@symfony.com" 2021 | }, 2022 | { 2023 | "name": "Symfony Community", 2024 | "homepage": "https://symfony.com/contributors" 2025 | } 2026 | ], 2027 | "description": "Symfony HttpFoundation Component", 2028 | "homepage": "https://symfony.com", 2029 | "time": "2018-04-03T05:24:00+00:00" 2030 | }, 2031 | { 2032 | "name": "symfony/http-kernel", 2033 | "version": "v4.0.8", 2034 | "source": { 2035 | "type": "git", 2036 | "url": "https://github.com/symfony/http-kernel.git", 2037 | "reference": "6dd620d96d64456075536ffe3c6c4658dd689021" 2038 | }, 2039 | "dist": { 2040 | "type": "zip", 2041 | "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6dd620d96d64456075536ffe3c6c4658dd689021", 2042 | "reference": "6dd620d96d64456075536ffe3c6c4658dd689021", 2043 | "shasum": "" 2044 | }, 2045 | "require": { 2046 | "php": "^7.1.3", 2047 | "psr/log": "~1.0", 2048 | "symfony/debug": "~3.4|~4.0", 2049 | "symfony/event-dispatcher": "~3.4|~4.0", 2050 | "symfony/http-foundation": "~3.4.4|~4.0.4" 2051 | }, 2052 | "conflict": { 2053 | "symfony/config": "<3.4", 2054 | "symfony/dependency-injection": "<3.4.5|<4.0.5,>=4", 2055 | "symfony/var-dumper": "<3.4", 2056 | "twig/twig": "<1.34|<2.4,>=2" 2057 | }, 2058 | "provide": { 2059 | "psr/log-implementation": "1.0" 2060 | }, 2061 | "require-dev": { 2062 | "psr/cache": "~1.0", 2063 | "symfony/browser-kit": "~3.4|~4.0", 2064 | "symfony/config": "~3.4|~4.0", 2065 | "symfony/console": "~3.4|~4.0", 2066 | "symfony/css-selector": "~3.4|~4.0", 2067 | "symfony/dependency-injection": "^3.4.5|^4.0.5", 2068 | "symfony/dom-crawler": "~3.4|~4.0", 2069 | "symfony/expression-language": "~3.4|~4.0", 2070 | "symfony/finder": "~3.4|~4.0", 2071 | "symfony/process": "~3.4|~4.0", 2072 | "symfony/routing": "~3.4|~4.0", 2073 | "symfony/stopwatch": "~3.4|~4.0", 2074 | "symfony/templating": "~3.4|~4.0", 2075 | "symfony/translation": "~3.4|~4.0", 2076 | "symfony/var-dumper": "~3.4|~4.0" 2077 | }, 2078 | "suggest": { 2079 | "symfony/browser-kit": "", 2080 | "symfony/config": "", 2081 | "symfony/console": "", 2082 | "symfony/dependency-injection": "", 2083 | "symfony/var-dumper": "" 2084 | }, 2085 | "type": "library", 2086 | "extra": { 2087 | "branch-alias": { 2088 | "dev-master": "4.0-dev" 2089 | } 2090 | }, 2091 | "autoload": { 2092 | "psr-4": { 2093 | "Symfony\\Component\\HttpKernel\\": "" 2094 | }, 2095 | "exclude-from-classmap": [ 2096 | "/Tests/" 2097 | ] 2098 | }, 2099 | "notification-url": "https://packagist.org/downloads/", 2100 | "license": [ 2101 | "MIT" 2102 | ], 2103 | "authors": [ 2104 | { 2105 | "name": "Fabien Potencier", 2106 | "email": "fabien@symfony.com" 2107 | }, 2108 | { 2109 | "name": "Symfony Community", 2110 | "homepage": "https://symfony.com/contributors" 2111 | } 2112 | ], 2113 | "description": "Symfony HttpKernel Component", 2114 | "homepage": "https://symfony.com", 2115 | "time": "2018-04-06T16:25:03+00:00" 2116 | }, 2117 | { 2118 | "name": "symfony/polyfill-mbstring", 2119 | "version": "v1.7.0", 2120 | "source": { 2121 | "type": "git", 2122 | "url": "https://github.com/symfony/polyfill-mbstring.git", 2123 | "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b" 2124 | }, 2125 | "dist": { 2126 | "type": "zip", 2127 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/78be803ce01e55d3491c1397cf1c64beb9c1b63b", 2128 | "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b", 2129 | "shasum": "" 2130 | }, 2131 | "require": { 2132 | "php": ">=5.3.3" 2133 | }, 2134 | "suggest": { 2135 | "ext-mbstring": "For best performance" 2136 | }, 2137 | "type": "library", 2138 | "extra": { 2139 | "branch-alias": { 2140 | "dev-master": "1.7-dev" 2141 | } 2142 | }, 2143 | "autoload": { 2144 | "psr-4": { 2145 | "Symfony\\Polyfill\\Mbstring\\": "" 2146 | }, 2147 | "files": [ 2148 | "bootstrap.php" 2149 | ] 2150 | }, 2151 | "notification-url": "https://packagist.org/downloads/", 2152 | "license": [ 2153 | "MIT" 2154 | ], 2155 | "authors": [ 2156 | { 2157 | "name": "Nicolas Grekas", 2158 | "email": "p@tchwork.com" 2159 | }, 2160 | { 2161 | "name": "Symfony Community", 2162 | "homepage": "https://symfony.com/contributors" 2163 | } 2164 | ], 2165 | "description": "Symfony polyfill for the Mbstring extension", 2166 | "homepage": "https://symfony.com", 2167 | "keywords": [ 2168 | "compatibility", 2169 | "mbstring", 2170 | "polyfill", 2171 | "portable", 2172 | "shim" 2173 | ], 2174 | "time": "2018-01-30T19:27:44+00:00" 2175 | }, 2176 | { 2177 | "name": "symfony/polyfill-php56", 2178 | "version": "v1.7.0", 2179 | "source": { 2180 | "type": "git", 2181 | "url": "https://github.com/symfony/polyfill-php56.git", 2182 | "reference": "ebc999ce5f14204c5150b9bd15f8f04e621409d8" 2183 | }, 2184 | "dist": { 2185 | "type": "zip", 2186 | "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/ebc999ce5f14204c5150b9bd15f8f04e621409d8", 2187 | "reference": "ebc999ce5f14204c5150b9bd15f8f04e621409d8", 2188 | "shasum": "" 2189 | }, 2190 | "require": { 2191 | "php": ">=5.3.3", 2192 | "symfony/polyfill-util": "~1.0" 2193 | }, 2194 | "type": "library", 2195 | "extra": { 2196 | "branch-alias": { 2197 | "dev-master": "1.7-dev" 2198 | } 2199 | }, 2200 | "autoload": { 2201 | "psr-4": { 2202 | "Symfony\\Polyfill\\Php56\\": "" 2203 | }, 2204 | "files": [ 2205 | "bootstrap.php" 2206 | ] 2207 | }, 2208 | "notification-url": "https://packagist.org/downloads/", 2209 | "license": [ 2210 | "MIT" 2211 | ], 2212 | "authors": [ 2213 | { 2214 | "name": "Nicolas Grekas", 2215 | "email": "p@tchwork.com" 2216 | }, 2217 | { 2218 | "name": "Symfony Community", 2219 | "homepage": "https://symfony.com/contributors" 2220 | } 2221 | ], 2222 | "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions", 2223 | "homepage": "https://symfony.com", 2224 | "keywords": [ 2225 | "compatibility", 2226 | "polyfill", 2227 | "portable", 2228 | "shim" 2229 | ], 2230 | "time": "2018-01-30T19:27:44+00:00" 2231 | }, 2232 | { 2233 | "name": "symfony/polyfill-util", 2234 | "version": "v1.7.0", 2235 | "source": { 2236 | "type": "git", 2237 | "url": "https://github.com/symfony/polyfill-util.git", 2238 | "reference": "e17c808ec4228026d4f5a8832afa19be85979563" 2239 | }, 2240 | "dist": { 2241 | "type": "zip", 2242 | "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/e17c808ec4228026d4f5a8832afa19be85979563", 2243 | "reference": "e17c808ec4228026d4f5a8832afa19be85979563", 2244 | "shasum": "" 2245 | }, 2246 | "require": { 2247 | "php": ">=5.3.3" 2248 | }, 2249 | "type": "library", 2250 | "extra": { 2251 | "branch-alias": { 2252 | "dev-master": "1.7-dev" 2253 | } 2254 | }, 2255 | "autoload": { 2256 | "psr-4": { 2257 | "Symfony\\Polyfill\\Util\\": "" 2258 | } 2259 | }, 2260 | "notification-url": "https://packagist.org/downloads/", 2261 | "license": [ 2262 | "MIT" 2263 | ], 2264 | "authors": [ 2265 | { 2266 | "name": "Nicolas Grekas", 2267 | "email": "p@tchwork.com" 2268 | }, 2269 | { 2270 | "name": "Symfony Community", 2271 | "homepage": "https://symfony.com/contributors" 2272 | } 2273 | ], 2274 | "description": "Symfony utilities for portability of PHP codes", 2275 | "homepage": "https://symfony.com", 2276 | "keywords": [ 2277 | "compat", 2278 | "compatibility", 2279 | "polyfill", 2280 | "shim" 2281 | ], 2282 | "time": "2018-01-31T18:08:44+00:00" 2283 | }, 2284 | { 2285 | "name": "symfony/process", 2286 | "version": "v4.0.8", 2287 | "source": { 2288 | "type": "git", 2289 | "url": "https://github.com/symfony/process.git", 2290 | "reference": "d7dc1ee5dfe9f732cb1bba7310f5b99f2b7a6d25" 2291 | }, 2292 | "dist": { 2293 | "type": "zip", 2294 | "url": "https://api.github.com/repos/symfony/process/zipball/d7dc1ee5dfe9f732cb1bba7310f5b99f2b7a6d25", 2295 | "reference": "d7dc1ee5dfe9f732cb1bba7310f5b99f2b7a6d25", 2296 | "shasum": "" 2297 | }, 2298 | "require": { 2299 | "php": "^7.1.3" 2300 | }, 2301 | "type": "library", 2302 | "extra": { 2303 | "branch-alias": { 2304 | "dev-master": "4.0-dev" 2305 | } 2306 | }, 2307 | "autoload": { 2308 | "psr-4": { 2309 | "Symfony\\Component\\Process\\": "" 2310 | }, 2311 | "exclude-from-classmap": [ 2312 | "/Tests/" 2313 | ] 2314 | }, 2315 | "notification-url": "https://packagist.org/downloads/", 2316 | "license": [ 2317 | "MIT" 2318 | ], 2319 | "authors": [ 2320 | { 2321 | "name": "Fabien Potencier", 2322 | "email": "fabien@symfony.com" 2323 | }, 2324 | { 2325 | "name": "Symfony Community", 2326 | "homepage": "https://symfony.com/contributors" 2327 | } 2328 | ], 2329 | "description": "Symfony Process Component", 2330 | "homepage": "https://symfony.com", 2331 | "time": "2018-04-03T05:24:00+00:00" 2332 | }, 2333 | { 2334 | "name": "symfony/translation", 2335 | "version": "v4.0.8", 2336 | "source": { 2337 | "type": "git", 2338 | "url": "https://github.com/symfony/translation.git", 2339 | "reference": "e20a9b7f9f62cb33a11638b345c248e7d510c938" 2340 | }, 2341 | "dist": { 2342 | "type": "zip", 2343 | "url": "https://api.github.com/repos/symfony/translation/zipball/e20a9b7f9f62cb33a11638b345c248e7d510c938", 2344 | "reference": "e20a9b7f9f62cb33a11638b345c248e7d510c938", 2345 | "shasum": "" 2346 | }, 2347 | "require": { 2348 | "php": "^7.1.3", 2349 | "symfony/polyfill-mbstring": "~1.0" 2350 | }, 2351 | "conflict": { 2352 | "symfony/config": "<3.4", 2353 | "symfony/dependency-injection": "<3.4", 2354 | "symfony/yaml": "<3.4" 2355 | }, 2356 | "require-dev": { 2357 | "psr/log": "~1.0", 2358 | "symfony/config": "~3.4|~4.0", 2359 | "symfony/dependency-injection": "~3.4|~4.0", 2360 | "symfony/finder": "~2.8|~3.0|~4.0", 2361 | "symfony/intl": "~3.4|~4.0", 2362 | "symfony/yaml": "~3.4|~4.0" 2363 | }, 2364 | "suggest": { 2365 | "psr/log": "To use logging capability in translator", 2366 | "symfony/config": "", 2367 | "symfony/yaml": "" 2368 | }, 2369 | "type": "library", 2370 | "extra": { 2371 | "branch-alias": { 2372 | "dev-master": "4.0-dev" 2373 | } 2374 | }, 2375 | "autoload": { 2376 | "psr-4": { 2377 | "Symfony\\Component\\Translation\\": "" 2378 | }, 2379 | "exclude-from-classmap": [ 2380 | "/Tests/" 2381 | ] 2382 | }, 2383 | "notification-url": "https://packagist.org/downloads/", 2384 | "license": [ 2385 | "MIT" 2386 | ], 2387 | "authors": [ 2388 | { 2389 | "name": "Fabien Potencier", 2390 | "email": "fabien@symfony.com" 2391 | }, 2392 | { 2393 | "name": "Symfony Community", 2394 | "homepage": "https://symfony.com/contributors" 2395 | } 2396 | ], 2397 | "description": "Symfony Translation Component", 2398 | "homepage": "https://symfony.com", 2399 | "time": "2018-02-22T10:50:29+00:00" 2400 | } 2401 | ], 2402 | "packages-dev": [], 2403 | "aliases": [], 2404 | "minimum-stability": "stable", 2405 | "stability-flags": [], 2406 | "prefer-stable": false, 2407 | "prefer-lowest": false, 2408 | "platform": [], 2409 | "platform-dev": [] 2410 | } 2411 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # MakeWeb Test Server 2 | 3 | Test code which sends HTTP requests by spinning up an actual HTTP server on your local environment. 4 | 5 | The server serves a basic Lumen app served with PHP's built in development web server. You can then 6 | define the behaviour of the test server by adding routes with closures right in your test code. This way 7 | we can keep the test code which relies on specific server behaviour tightly coupled with the code 8 | which defines the behaviour. 9 | 10 | The idea and original code was forked from the implementation of a web server for testing KiteTail's 11 | Zttp library by Adam Wathan. Do check out [Zttp](https://github.com/kitetail/zttp), and [KiteTail](https://kitetail.co/). 12 | 13 | ## Installation 14 | 15 | ### Install with Composer 16 | 17 | composer require makeweb/test-server 18 | 19 | ## Basic usage 20 | 21 | ```php 22 | 23 | withRoute('get', 'add', function ($request) { 36 | return response()->json(['result' => (int) $request->a + (int) $request->b]); 37 | })->start(); 38 | 39 | $response = Zttp::get('add', ['a' => 1, 'b' => 2]); 40 | 41 | $this->assertEquals(3, $response->result); 42 | } 43 | } 44 | ``` 45 | 46 | -------------------------------------------------------------------------------- /src/Route.php: -------------------------------------------------------------------------------- 1 | method = $method; 18 | $this->uri = $uri; 19 | $this->setCallback($callback); 20 | } 21 | 22 | public function setCallback($callback) 23 | { 24 | $this->callback = (new Serializer())->serialize($callback); 25 | } 26 | 27 | public function getCallback() 28 | { 29 | return (new Serializer())->unserialize($this->callback); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/TestServer.php: -------------------------------------------------------------------------------- 1 | routes = collect(); 12 | } 13 | 14 | public function withRoute($method, $uri, $callback) 15 | { 16 | $this->routes->push(new Route($method, $uri, $callback)); 17 | 18 | return $this; 19 | } 20 | 21 | public function start() 22 | { 23 | $testServerPort = !empty(getenv('TEST_SERVER_PORT')) ? getenv('TEST_SERVER_PORT') : '8000'; 24 | 25 | $url = "localhost:$testServerPort"; 26 | 27 | $pid = exec('ROUTES="'.base64_encode(serialize($this->routes)).'" php -d variables_order=EGPCS -S '.$url.' -t '.__DIR__.'/server/public > /dev/null 2>&1 & echo $!'); 28 | 29 | while (@file_get_contents('http://'.$url.'/exit') === false) { 30 | usleep(1000); 31 | } 32 | register_shutdown_function(function () use ($pid) { 33 | exec('kill '.$pid); 34 | }); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/server/public/index.php: -------------------------------------------------------------------------------- 1 | router->{$route->method}($route->uri, function () use ($route) { 13 | return $route->getCallback()(app('request')); 14 | }); 15 | } 16 | 17 | $app->router->get('/exit', function () { 18 | return response('exit'); 19 | }); 20 | 21 | $app->run(); 22 | --------------------------------------------------------------------------------