diff --git a/.env b/.env
index 137f416..a015d8d 100644
--- a/.env
+++ b/.env
@@ -23,4 +23,7 @@ MAIL_ENCRYPTION=null
PUSHER_APP_ID=
PUSHER_APP_KEY=
-PUSHER_APP_SECRET=
\ No newline at end of file
+PUSHER_APP_SECRET=
+
+FCM_SERVER_KEY=AAAAdFX6a_s:APA91bFd8ImrkEBtsHfMnPUISRvFkyHcXoPme5VKMC-I2028ybYLY_6cRmGIq8gjrHEA1iRSuPJjtoQ_YwvxkdZknYHBJ5gXnWDTnCtQtmJSNqIdv4TGwmpFyDjGA1rZquFsgET_9tK9
+FCM_SENDER_ID=499658681339
\ No newline at end of file
diff --git a/app/category.php b/app/Category.php
similarity index 100%
rename from app/category.php
rename to app/Category.php
diff --git a/app/Console/Commands/helloWorldController.php b/app/Console/Commands/helloWorldController.php
deleted file mode 100644
index e1bd58a..0000000
--- a/app/Console/Commands/helloWorldController.php
+++ /dev/null
@@ -1,42 +0,0 @@
- mporei o opoiosdipote na valei katigoria
+
+ public function post()
+ {
$category = new category();
$category->title = Input::get('title');
$category->save();
return $category;
}
- public function update(){
+
+ public function update()
+ {
$category = category::find(Input::get('id'));
$category->title = Input::get('title');
$category->save();
return $category;
}
- public function remove($title){
- //$category = new category();
+
+ public function remove($title)
+ {
$category = category::find($title);
- //return $category;
$category->delete();
}
diff --git a/app/Http/Controllers/DeviceTokenController.php b/app/Http/Controllers/DeviceTokenController.php
new file mode 100644
index 0000000..0ccc730
--- /dev/null
+++ b/app/Http/Controllers/DeviceTokenController.php
@@ -0,0 +1,21 @@
+validate($request, [
+ 'deviceToken' => 'required|String',
+ ]);
+
+ $id = auth('api')->user()->id;
+ User::query()
+ ->where("id", "=", $id)
+ ->update(['deviceToken' => request('deviceToken')]);
+ }
+}
diff --git a/app/Http/Controllers/discountController.php b/app/Http/Controllers/DiscountController.php
similarity index 69%
rename from app/Http/Controllers/discountController.php
rename to app/Http/Controllers/DiscountController.php
index 98d1357..9f796c7 100644
--- a/app/Http/Controllers/discountController.php
+++ b/app/Http/Controllers/DiscountController.php
@@ -12,15 +12,14 @@
class discountController extends Controller
{
- public function list(){
-
+ public function list()
+ {
return Discount::all();
-
}
- public function get($id){
-
+ public function get($id)
+ {
$request = new Request();
$request['id'] = $id;
@@ -28,19 +27,13 @@ public function get($id){
'id' => 'required|numeric'
]);
-
-
return Discount::query()->where('shopId', '=', $data['id'])->first();
-
-
-
-
}
- public function post(Request $request){
-
+ public function post(Request $request)
+ {
$data = $this->validate($request, [
-
+ 'shopId' => 'required|numeric',
'category' => 'required|numeric',
'originalPrice' => 'required|numeric',
'currentPrice' => 'required|numeric',
@@ -48,15 +41,8 @@ public function post(Request $request){
'image' => 'required|string'
]);
- //trexei alla den ksero giati, einai arga kleinoun ta matia, i need coffeeeeeeeeeee
-
- $userId = Auth::user()->id;
- $shopId = Shop::query()->where('ownerId','=',$userId)->value('id');
-
-
-
$discount = new Discount();
- $discount->shopId = $shopId;
+ $discount->shopId = $data['shopId'];
$discount->category = $data['category'];
$discount->originalPrice = $data['originalPrice'];
$discount->currentPrice = $data['currentPrice'];
@@ -65,18 +51,26 @@ public function post(Request $request){
$discount->save();
$discount->push();
- return $discount;
+ $fcm = new FCMController();
+ $fcm->sentToMultiple(
+ User::pluck('deviceToken')->toArray(),
+ 'Υπάρχουν νέες προσφορές',
+ 'Δείτε τώρα τις νέες προσφορές',
+ [],//data
+ 'postedNewDiscount'
+ );
+ return $discount;
}
- public function put($id, Request $request){
-
+ public function put($id, Request $request)
+ {
$request['id'] = $id;
$data = $this->validate($request, [
-
+ 'shopId' => 'required|numeric',
'id' => 'required|numeric',
'category' => 'required|numeric',
'originalPrice' => 'required|numeric',
@@ -85,15 +79,8 @@ public function put($id, Request $request){
'image' => 'required|string'
]);
-
-
-
-
- $userId = Auth::user()->id;
- $shopId = Shop::query()->where('ownerId','=',$userId)->value('id');
-
- $discount = Discount::query()->where('shopId','=',$shopId)
- ->where('id', '=', $data['id'])->first();
+ $discount = Discount::query()->where('shopId', '=', $data['shopId'])
+ ->where('id', '=', $data['id'])->first();
if ($discount != null) {
$discount->category = $data['category'];
@@ -102,33 +89,24 @@ public function put($id, Request $request){
$discount->description = $data['description'];
$discount->image = $data['image'];
-
$discount->save();
$discount->push();
return $discount;
- }
-
- else {
-
+ } else {
return "";
}
}
- public function delete($id)
+ public function delete($id, Request $request)
{
- $request = new Request();
$request['id'] = $id;
-
$data = $this->validate($request, [
+ 'shopId' => 'required|numeric',
'id' => 'required|numeric'
]);
- $userId = Auth::user()->id;
- $shopId = Shop::query()->where('ownerId','=',$userId)->value('id');
-
- $discount = Discount::query()->where('shopId','=',$shopId)
- ->find($data['id']);
+ $discount = Discount::query()->where('shopId', '=', $data['shopId'])->find($data['id']);
if ($discount != null) {
$discount->delete();
diff --git a/app/Http/Controllers/FCMController.php b/app/Http/Controllers/FCMController.php
new file mode 100644
index 0000000..aa15b79
--- /dev/null
+++ b/app/Http/Controllers/FCMController.php
@@ -0,0 +1,66 @@
+setTimeToLive(60 * 20);
+
+ $notificationBuilder = new PayloadNotificationBuilder($Title);
+ $notificationBuilder->setBody($Body)->setSound('default')->setClickAction($ClickAction);
+
+ $dataBuilder = new PayloadDataBuilder();
+ $dataBuilder->addData($Data);
+
+ $option = $optionBuilder->build();
+ $notification = $notificationBuilder->build();
+ $data = $dataBuilder->build();
+
+ $downstreamResponse = FCM::sendTo($userToken, $option, $notification, $data);
+
+ //return Array - you must remove all this tokens in your database
+ $downstreamResponse->tokensToDelete();
+
+ //return Array (key : oldToken, value : new token - you must change the token in your database )
+ $downstreamResponse->tokensToModify();
+
+ //return Array - you should try to resend the message to the tokens in the array
+ $downstreamResponse->tokensToRetry();
+ }
+
+ public function sentToMultiple($userTokens, $Title, $Body, $Data, $ClickAction)
+ {
+ $optionBuilder = new OptionsBuilder();
+ $optionBuilder->setTimeToLive(60 * 20);
+
+ $notificationBuilder = new PayloadNotificationBuilder($Title);
+ $notificationBuilder->setBody($Body)->setSound('default')->setClickAction($ClickAction);
+
+ $dataBuilder = new PayloadDataBuilder();
+ $dataBuilder->addData($Data);
+
+ $option = $optionBuilder->build();
+ $notification = $notificationBuilder->build();
+ $data = $dataBuilder->build();
+
+ $downstreamResponse = FCM::sendTo($userTokens, $option, $notification, $data);
+
+ //return Array - you must remove all this tokens in your database
+ $downstreamResponse->tokensToDelete();
+
+ //return Array (key : oldToken, value : new token - you must change the token in your database )
+ $downstreamResponse->tokensToModify();
+
+ //return Array - you should try to resend the message to the tokens in the array
+ $downstreamResponse->tokensToRetry();
+ }
+}
diff --git a/app/Http/Controllers/FindDiscountsController.php b/app/Http/Controllers/FindDiscountsController.php
index 9ab75dc..c03b14b 100644
--- a/app/Http/Controllers/FindDiscountsController.php
+++ b/app/Http/Controllers/FindDiscountsController.php
@@ -8,55 +8,72 @@
use Illuminate\Http\Request;
-use App\Http\Resources\DiscountsCollection ;
+use App\Http\Resources\DiscountsCollection;
use Illuminate\Support\Facades\DB;
class findDiscountsController extends Controller
{
-
public function list(Request $request)
{
- $this->validate($request,[
-
+ $this->validate($request, [
'logPos' => 'required|numeric',
'latPos' => 'required|numeric',
- //'distanceInMeters' => 'required|numeric',
-
+ 'distanceInMeters' => 'required|numeric',
]);
+ $MaxDistance = request('distanceInMeters');
+ $id = auth('api')->user()->id;
+ $discounts = DB::select("call getMatchedDiscounts($id)");
+ $requestedDiscounts = collect();
- return new DiscountsCollection($this->requestedDiscounts());
+ foreach ($discounts as $discount) {
- }
+ $shopLogPos = Shop::query()->where('id', $discount->shopId)->pluck('logPos')->first();
+ $shopLatPos = Shop::query()->where('id', $discount->shopId)->pluck('latPos')->first();
+ $distanceObject = new Distance(request('latPos'), request('logPos'));
+ $distance = $distanceObject->calculateDistanceInMeters($shopLatPos, $shopLogPos);
+ if ($distance <= $MaxDistance) {
+ //TODO find solution to remove this Global variable
+ \App\Http\Resources\Discounts::$distance[] = $distance;
+ $requestedDiscounts->push($discount);
+ }
+ }
- public function requestedDiscounts(){
+ return new DiscountsCollection($requestedDiscounts);
- $id=auth('api')->user()->id;
- $discounts=DB::select("call getMatchedDiscounts($id)");
- $requestedDiscounts =collect();
+ }
+ public function TopList(Request $request)
+ {
+ $this->validate($request, [
- foreach ($discounts as $discount){
+ 'logPos' => 'required|numeric',
+ 'latPos' => 'required|numeric'
+ ]);
- $shopLogPos =Shop::query()->where('id',$discount->shopId)->pluck('logPos')->first();
- $shopLatPos =Shop::query()->where('id',$discount->shopId)->pluck('latPos')->first();
- $distanceObject= new Distance(request('latPos'),request('logPos'));
- $distance= $distanceObject->calculateDistanceInMeters($shopLatPos,$shopLogPos);
+ //searching for Top 10 discounts
+ //we need to add City field on Shop table because we are searching for All Discounts
+ $discounts = DB::select("call getTopDiscounts(10)");
+ $topList = collect();
- //TODO we have default distance for search at 2000 meters,we need to take this from user
- if($distance<=2000){
- //TODO find solution to remove this Global variable
- \App\Http\Resources\Discounts::$distance[]=$distance;
- $requestedDiscounts->push($discount) ;
- }
- }
+ foreach ($discounts as $discount) {
- return $requestedDiscounts;
- }
+ $shopLogPos = Shop::query()->where('id', $discount->shopId)->pluck('logPos')->first();
+ $shopLatPos = Shop::query()->where('id', $discount->shopId)->pluck('latPos')->first();
+ $distanceObject = new Distance(request('latPos'), request('logPos'));
+ $distance = $distanceObject->calculateDistanceInMeters($shopLatPos, $shopLogPos);
+ //default search at 3000 meters
+ if ($distance <= 3000) {
+ \App\Http\Resources\Discounts::$distance[] = $distance;
+ $topList->push($discount);
+ }
+ }
+ return new DiscountsCollection($topList);
+ }
}
diff --git a/app/Http/Controllers/requestedDiscountController.php b/app/Http/Controllers/RequestedDiscountController.php
similarity index 79%
rename from app/Http/Controllers/requestedDiscountController.php
rename to app/Http/Controllers/RequestedDiscountController.php
index 3e22b91..d85e689 100644
--- a/app/Http/Controllers/requestedDiscountController.php
+++ b/app/Http/Controllers/RequestedDiscountController.php
@@ -2,11 +2,10 @@
namespace App\Http\Controllers;
-use Illuminate\Http\Request;
+use App\category;
use App\requestedDiscount;
+use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
-use Illuminate\Validation\UnauthorizedException;
-use Mockery\Exception;
class requestedDiscountController extends Controller
@@ -14,7 +13,13 @@ class requestedDiscountController extends Controller
public function list()
{
$userId = Auth::user()->id;
- return requestedDiscount::query()->where('userId', '=', $userId)->get();
+ $requestedDiscounts = requestedDiscount::query()->where('userId', '=', $userId)->get();
+
+ foreach ($requestedDiscounts as $requestedDiscount) {
+ $requestedDiscount['categoryTitle'] = Category::find($requestedDiscount['category'])['title'];
+ }
+
+ return $requestedDiscounts;
}
public function get($id)
@@ -26,7 +31,11 @@ public function get($id)
'id' => 'required|numeric'
]);
$userId = Auth::user()->id;
- return requestedDiscount::query()->where('userId', '=', $userId)->where('id', '=', $data['id'])->first();
+ $requestedDiscount = requestedDiscount::query()->where('userId', '=', $userId)->where('id', '=', $data['id'])->first();
+ if ($requestedDiscount) {
+ $requestedDiscount['categoryTitle'] = Category::find($requestedDiscount['category'])['title'];
+ }
+ return $requestedDiscount;
}
public function post(Request $request)
@@ -46,7 +55,6 @@ public function post(Request $request)
$requestedDiscount->price = $data['price'];
$requestedDiscount->tags = $data['tags'];
-
$requestedDiscount->save();
$requestedDiscount->push();
return $requestedDiscount;
@@ -71,7 +79,6 @@ public function put($id, Request $request)
$requestedDiscount->price = $data['price'];
$requestedDiscount->tags = $data['tags'];
-
$requestedDiscount->save();
$requestedDiscount->push();
return $requestedDiscount;
@@ -96,4 +103,4 @@ public function delete($id)
$requestedDiscount->delete();
}
}
-}
+}
\ No newline at end of file
diff --git a/app/Http/Controllers/shopController.php b/app/Http/Controllers/ShopController.php
similarity index 80%
rename from app/Http/Controllers/shopController.php
rename to app/Http/Controllers/ShopController.php
index bcf8fa9..a7659ee 100644
--- a/app/Http/Controllers/shopController.php
+++ b/app/Http/Controllers/ShopController.php
@@ -2,6 +2,7 @@
namespace App\Http\Controllers;
+use App\Discount;
use App\Shop;
use Illuminate\Http\Request;
@@ -19,6 +20,26 @@ public function myList()
return Shop::query()->where("ownerId", "=", $user->id)->get();
}
+ public function myDiscounts($id)
+ {
+ $request = new Request();
+ $request['id'] = $id;
+
+ $data = $this->validate($request, [
+ 'id' => 'required|numeric'
+ ]);
+
+ $shop = Shop::query()->where(
+ 'ownerId',
+ '=',
+ Auth()->user()->id
+ )->find($data['id']);
+
+ if ($shop) {
+ return Discount::query()->where('shopId', '=', $shop->id)->get();
+ }
+ }
+
public function get($id)
{
return Shop::find($id);
@@ -69,7 +90,7 @@ public function update(Request $request)
$shop = Shop::query()->where("ownerId", "=", $user->id)->find($data['id']);
- if($shop) {
+ if ($shop) {
$shop->brandName = $data['brandName'];
$shop->logPos = $data['logPos'];
$shop->latPos = $data['latPos'];
diff --git a/app/Http/Controllers/UpdateUserLocationController.php b/app/Http/Controllers/UpdateUserLocationController.php
new file mode 100644
index 0000000..340c8ba
--- /dev/null
+++ b/app/Http/Controllers/UpdateUserLocationController.php
@@ -0,0 +1,33 @@
+user();
+ }
+
+ public function update(Request $request)
+ {
+
+ $user = auth('api')->user();
+ $data = $this->validate($request, [
+ 'logPos' => 'required|numeric',
+ 'latPos' => 'required|numeric'
+ ]);
+
+ if ($user) {
+ $user->logPos = $data['logPos'];
+ $user->latPos = $data['latPos'];
+ $user->save();
+ $user->push();
+ }
+ }
+}
diff --git a/app/Http/Controllers/helloWorldController.php b/app/Http/Controllers/helloWorldController.php
deleted file mode 100644
index 35d9eaa..0000000
--- a/app/Http/Controllers/helloWorldController.php
+++ /dev/null
@@ -1,15 +0,0 @@
-toJson(JSON_PRETTY_PRINT);
- }
-}
diff --git a/app/Http/Resources/Discounts.php b/app/Http/Resources/Discounts.php
index 9928537..3efccd9 100644
--- a/app/Http/Resources/Discounts.php
+++ b/app/Http/Resources/Discounts.php
@@ -28,8 +28,8 @@ public function toArray($request)
'productImageURL'=>$this->image,
'discountId' =>$this->id,
'distance' =>Discounts::$distance[Discounts::$counter++],
-
-
+ 'shopLatPos' => DB::table('shops')->where('id',$this->shopId)->pluck('latPos')->first(),
+ 'shopLogPos' => DB::table('shops')->where('id',$this->shopId)->pluck('logPos')->first()
];
diff --git a/app/requestedDiscount.php b/app/RequestedDiscount.php
similarity index 100%
rename from app/requestedDiscount.php
rename to app/RequestedDiscount.php
diff --git a/app/User.php b/app/User.php
index 5484679..b8dd9a7 100644
--- a/app/User.php
+++ b/app/User.php
@@ -30,4 +30,8 @@ class User extends Authenticatable
protected $hidden = [
'password', 'remember_token',
];
+
+ protected $coordinates = [
+ 'latPos','logPos'
+ ];
}
diff --git a/app/helloWorld.php b/app/helloWorld.php
deleted file mode 100644
index 1acb7ac..0000000
--- a/app/helloWorld.php
+++ /dev/null
@@ -1,69 +0,0 @@
-title = "Hello world";
- $this->desc = "from Laravel";
- }
-
-
- /**
- * @return string
- */
- public function getTitle(): string
- {
- return $this->title;
- }
-
- /**
- * @param string $title
- */
- public function setTitle(string $title)
- {
- $this->title = $title;
- }
-
- /**
- * @return string
- */
- public function getDesc(): string
- {
- return $this->desc;
- }
-
- /**
- * @param string $desc
- */
- public function setDesc(string $desc)
- {
- $this->desc = $desc;
- }
-
- public function toJson($options = 0)
- {
- $objectJson = new \stdClass();
- $objectJson->title = $this->title;
- $objectJson->desc = $this->desc;
-
- return json_encode($objectJson, $options);
- }
-
-
-}
diff --git a/composer.json b/composer.json
index a287c8d..0f6cc1a 100644
--- a/composer.json
+++ b/composer.json
@@ -9,6 +9,7 @@
"type": "project",
"require": {
"php": ">=7.1.0",
+ "brozot/laravel-fcm": "^1.2",
"doctrine/dbal": "^2.6",
"fideloper/proxy": "~3.3",
"laravel/framework": "5.5.*",
@@ -51,6 +52,9 @@
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover"
+ ],
+ "post-artisan-keys": [
+ "@php artisan passport:keys"
]
},
"config": {
diff --git a/composer.lock b/composer.lock
deleted file mode 100644
index f3e318e..0000000
--- a/composer.lock
+++ /dev/null
@@ -1,5062 +0,0 @@
-{
- "_readme": [
- "This file locks the dependencies of your project to a known state",
- "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
- "This file is @generated automatically"
- ],
- "content-hash": "7d98d91b4b05c8c23e1370627e124bfe",
- "packages": [
- {
- "name": "defuse/php-encryption",
- "version": "v2.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/defuse/php-encryption.git",
- "reference": "5176f5abb38d3ea8a6e3ac6cd3bbb54d8185a689"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/defuse/php-encryption/zipball/5176f5abb38d3ea8a6e3ac6cd3bbb54d8185a689",
- "reference": "5176f5abb38d3ea8a6e3ac6cd3bbb54d8185a689",
- "shasum": ""
- },
- "require": {
- "ext-openssl": "*",
- "paragonie/random_compat": "~2.0",
- "php": ">=5.4.0"
- },
- "require-dev": {
- "nikic/php-parser": "^2.0|^3.0",
- "phpunit/phpunit": "^4|^5"
- },
- "bin": [
- "bin/generate-defuse-key"
- ],
- "type": "library",
- "autoload": {
- "psr-4": {
- "Defuse\\Crypto\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Taylor Hornby",
- "email": "taylor@defuse.ca",
- "homepage": "https://defuse.ca/"
- },
- {
- "name": "Scott Arciszewski",
- "email": "info@paragonie.com",
- "homepage": "https://paragonie.com"
- }
- ],
- "description": "Secure PHP Encryption Library",
- "keywords": [
- "aes",
- "authenticated encryption",
- "cipher",
- "crypto",
- "cryptography",
- "encrypt",
- "encryption",
- "openssl",
- "security",
- "symmetric key cryptography"
- ],
- "time": "2017-05-18T21:28:48+00:00"
- },
- {
- "name": "dnoegel/php-xdg-base-dir",
- "version": "0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/dnoegel/php-xdg-base-dir.git",
- "reference": "265b8593498b997dc2d31e75b89f053b5cc9621a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/265b8593498b997dc2d31e75b89f053b5cc9621a",
- "reference": "265b8593498b997dc2d31e75b89f053b5cc9621a",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.2"
- },
- "require-dev": {
- "phpunit/phpunit": "@stable"
- },
- "type": "project",
- "autoload": {
- "psr-4": {
- "XdgBaseDir\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "implementation of xdg base directory specification for php",
- "time": "2014-10-24T07:27:01+00:00"
- },
- {
- "name": "doctrine/annotations",
- "version": "v1.5.0",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/annotations.git",
- "reference": "5beebb01b025c94e93686b7a0ed3edae81fe3e7f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/annotations/zipball/5beebb01b025c94e93686b7a0ed3edae81fe3e7f",
- "reference": "5beebb01b025c94e93686b7a0ed3edae81fe3e7f",
- "shasum": ""
- },
- "require": {
- "doctrine/lexer": "1.*",
- "php": "^7.1"
- },
- "require-dev": {
- "doctrine/cache": "1.*",
- "phpunit/phpunit": "^5.7"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.5.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "description": "Docblock Annotations Parser",
- "homepage": "http://www.doctrine-project.org",
- "keywords": [
- "annotations",
- "docblock",
- "parser"
- ],
- "time": "2017-07-22T10:58:02+00:00"
- },
- {
- "name": "doctrine/cache",
- "version": "v1.7.1",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/cache.git",
- "reference": "b3217d58609e9c8e661cd41357a54d926c4a2a1a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/cache/zipball/b3217d58609e9c8e661cd41357a54d926c4a2a1a",
- "reference": "b3217d58609e9c8e661cd41357a54d926c4a2a1a",
- "shasum": ""
- },
- "require": {
- "php": "~7.1"
- },
- "conflict": {
- "doctrine/common": ">2.2,<2.4"
- },
- "require-dev": {
- "alcaeus/mongo-php-adapter": "^1.1",
- "mongodb/mongodb": "^1.1",
- "phpunit/phpunit": "^5.7",
- "predis/predis": "~1.0"
- },
- "suggest": {
- "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.7.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "description": "Caching library offering an object-oriented API for many cache backends",
- "homepage": "http://www.doctrine-project.org",
- "keywords": [
- "cache",
- "caching"
- ],
- "time": "2017-08-25T07:02:50+00:00"
- },
- {
- "name": "doctrine/collections",
- "version": "v1.5.0",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/collections.git",
- "reference": "a01ee38fcd999f34d9bfbcee59dbda5105449cbf"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/collections/zipball/a01ee38fcd999f34d9bfbcee59dbda5105449cbf",
- "reference": "a01ee38fcd999f34d9bfbcee59dbda5105449cbf",
- "shasum": ""
- },
- "require": {
- "php": "^7.1"
- },
- "require-dev": {
- "doctrine/coding-standard": "~0.1@dev",
- "phpunit/phpunit": "^5.7"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.3.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Doctrine\\Common\\Collections\\": "lib/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "description": "Collections Abstraction library",
- "homepage": "http://www.doctrine-project.org",
- "keywords": [
- "array",
- "collections",
- "iterator"
- ],
- "time": "2017-07-22T10:37:32+00:00"
- },
- {
- "name": "doctrine/common",
- "version": "v2.8.1",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/common.git",
- "reference": "f68c297ce6455e8fd794aa8ffaf9fa458f6ade66"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/common/zipball/f68c297ce6455e8fd794aa8ffaf9fa458f6ade66",
- "reference": "f68c297ce6455e8fd794aa8ffaf9fa458f6ade66",
- "shasum": ""
- },
- "require": {
- "doctrine/annotations": "1.*",
- "doctrine/cache": "1.*",
- "doctrine/collections": "1.*",
- "doctrine/inflector": "1.*",
- "doctrine/lexer": "1.*",
- "php": "~7.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^5.7"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.8.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Doctrine\\Common\\": "lib/Doctrine/Common"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "description": "Common Library for Doctrine projects",
- "homepage": "http://www.doctrine-project.org",
- "keywords": [
- "annotations",
- "collections",
- "eventmanager",
- "persistence",
- "spl"
- ],
- "time": "2017-08-31T08:43:38+00:00"
- },
- {
- "name": "doctrine/dbal",
- "version": "v2.6.3",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/dbal.git",
- "reference": "e3eed9b1facbb0ced3a0995244843a189e7d1b13"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/dbal/zipball/e3eed9b1facbb0ced3a0995244843a189e7d1b13",
- "reference": "e3eed9b1facbb0ced3a0995244843a189e7d1b13",
- "shasum": ""
- },
- "require": {
- "doctrine/common": "^2.7.1",
- "ext-pdo": "*",
- "php": "^7.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^5.4.6",
- "phpunit/phpunit-mock-objects": "!=3.2.4,!=3.2.5",
- "symfony/console": "2.*||^3.0"
- },
- "suggest": {
- "symfony/console": "For helpful console commands such as SQL execution and import of files."
- },
- "bin": [
- "bin/doctrine-dbal"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.6.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Doctrine\\DBAL\\": "lib/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- }
- ],
- "description": "Database Abstraction Layer",
- "homepage": "http://www.doctrine-project.org",
- "keywords": [
- "database",
- "dbal",
- "persistence",
- "queryobject"
- ],
- "time": "2017-11-19T13:38:54+00:00"
- },
- {
- "name": "doctrine/inflector",
- "version": "v1.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/inflector.git",
- "reference": "e11d84c6e018beedd929cff5220969a3c6d1d462"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/inflector/zipball/e11d84c6e018beedd929cff5220969a3c6d1d462",
- "reference": "e11d84c6e018beedd929cff5220969a3c6d1d462",
- "shasum": ""
- },
- "require": {
- "php": "^7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^6.2"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "description": "Common String Manipulations with regard to casing and singular/plural rules.",
- "homepage": "http://www.doctrine-project.org",
- "keywords": [
- "inflection",
- "pluralize",
- "singularize",
- "string"
- ],
- "time": "2017-07-22T12:18:28+00:00"
- },
- {
- "name": "doctrine/lexer",
- "version": "v1.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/lexer.git",
- "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c",
- "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.2"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Doctrine\\Common\\Lexer\\": "lib/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.",
- "homepage": "http://www.doctrine-project.org",
- "keywords": [
- "lexer",
- "parser"
- ],
- "time": "2014-09-09T13:34:57+00:00"
- },
- {
- "name": "egulias/email-validator",
- "version": "2.1.3",
- "source": {
- "type": "git",
- "url": "https://github.com/egulias/EmailValidator.git",
- "reference": "1bec00a10039b823cc94eef4eddd47dcd3b2ca04"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/1bec00a10039b823cc94eef4eddd47dcd3b2ca04",
- "reference": "1bec00a10039b823cc94eef4eddd47dcd3b2ca04",
- "shasum": ""
- },
- "require": {
- "doctrine/lexer": "^1.0.1",
- "php": ">= 5.5"
- },
- "require-dev": {
- "dominicsayers/isemail": "dev-master",
- "phpunit/phpunit": "^4.8.35",
- "satooshi/php-coveralls": "^1.0.1"
- },
- "suggest": {
- "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Egulias\\EmailValidator\\": "EmailValidator"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Eduardo Gulias Davis"
- }
- ],
- "description": "A library for validating emails against several RFCs",
- "homepage": "https://github.com/egulias/EmailValidator",
- "keywords": [
- "email",
- "emailvalidation",
- "emailvalidator",
- "validation",
- "validator"
- ],
- "time": "2017-11-15T23:40:40+00:00"
- },
- {
- "name": "erusev/parsedown",
- "version": "1.6.4",
- "source": {
- "type": "git",
- "url": "https://github.com/erusev/parsedown.git",
- "reference": "fbe3fe878f4fe69048bb8a52783a09802004f548"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/erusev/parsedown/zipball/fbe3fe878f4fe69048bb8a52783a09802004f548",
- "reference": "fbe3fe878f4fe69048bb8a52783a09802004f548",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.8.35"
- },
- "type": "library",
- "autoload": {
- "psr-0": {
- "Parsedown": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Emanuil Rusev",
- "email": "hello@erusev.com",
- "homepage": "http://erusev.com"
- }
- ],
- "description": "Parser for Markdown.",
- "homepage": "http://parsedown.org",
- "keywords": [
- "markdown",
- "parser"
- ],
- "time": "2017-11-14T20:44:03+00:00"
- },
- {
- "name": "fideloper/proxy",
- "version": "3.3.4",
- "source": {
- "type": "git",
- "url": "https://github.com/fideloper/TrustedProxy.git",
- "reference": "9cdf6f118af58d89764249bbcc7bb260c132924f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/9cdf6f118af58d89764249bbcc7bb260c132924f",
- "reference": "9cdf6f118af58d89764249bbcc7bb260c132924f",
- "shasum": ""
- },
- "require": {
- "illuminate/contracts": "~5.0",
- "php": ">=5.4.0"
- },
- "require-dev": {
- "illuminate/http": "~5.0",
- "mockery/mockery": "~0.9.3",
- "phpunit/phpunit": "^5.7"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.3-dev"
- },
- "laravel": {
- "providers": [
- "Fideloper\\Proxy\\TrustedProxyServiceProvider"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "Fideloper\\Proxy\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Chris Fidao",
- "email": "fideloper@gmail.com"
- }
- ],
- "description": "Set trusted proxies for Laravel",
- "keywords": [
- "load balancing",
- "proxy",
- "trusted proxy"
- ],
- "time": "2017-06-15T17:19:42+00:00"
- },
- {
- "name": "firebase/php-jwt",
- "version": "v5.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/firebase/php-jwt.git",
- "reference": "9984a4d3a32ae7673d6971ea00bae9d0a1abba0e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/firebase/php-jwt/zipball/9984a4d3a32ae7673d6971ea00bae9d0a1abba0e",
- "reference": "9984a4d3a32ae7673d6971ea00bae9d0a1abba0e",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "require-dev": {
- "phpunit/phpunit": " 4.8.35"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Firebase\\JWT\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Neuman Vong",
- "email": "neuman+pear@twilio.com",
- "role": "Developer"
- },
- {
- "name": "Anant Narayanan",
- "email": "anant@php.net",
- "role": "Developer"
- }
- ],
- "description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.",
- "homepage": "https://github.com/firebase/php-jwt",
- "time": "2017-06-27T22:17:23+00:00"
- },
- {
- "name": "guzzlehttp/guzzle",
- "version": "6.3.0",
- "source": {
- "type": "git",
- "url": "https://github.com/guzzle/guzzle.git",
- "reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/guzzle/guzzle/zipball/f4db5a78a5ea468d4831de7f0bf9d9415e348699",
- "reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699",
- "shasum": ""
- },
- "require": {
- "guzzlehttp/promises": "^1.0",
- "guzzlehttp/psr7": "^1.4",
- "php": ">=5.5"
- },
- "require-dev": {
- "ext-curl": "*",
- "phpunit/phpunit": "^4.0 || ^5.0",
- "psr/log": "^1.0"
- },
- "suggest": {
- "psr/log": "Required for using the Log middleware"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "6.2-dev"
- }
- },
- "autoload": {
- "files": [
- "src/functions_include.php"
- ],
- "psr-4": {
- "GuzzleHttp\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "description": "Guzzle is a PHP HTTP client library",
- "homepage": "http://guzzlephp.org/",
- "keywords": [
- "client",
- "curl",
- "framework",
- "http",
- "http client",
- "rest",
- "web service"
- ],
- "time": "2017-06-22T18:50:49+00:00"
- },
- {
- "name": "guzzlehttp/promises",
- "version": "v1.3.1",
- "source": {
- "type": "git",
- "url": "https://github.com/guzzle/promises.git",
- "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646",
- "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646",
- "shasum": ""
- },
- "require": {
- "php": ">=5.5.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.4-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "GuzzleHttp\\Promise\\": "src/"
- },
- "files": [
- "src/functions_include.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "description": "Guzzle promises library",
- "keywords": [
- "promise"
- ],
- "time": "2016-12-20T10:07:11+00:00"
- },
- {
- "name": "guzzlehttp/psr7",
- "version": "1.4.2",
- "source": {
- "type": "git",
- "url": "https://github.com/guzzle/psr7.git",
- "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/f5b8a8512e2b58b0071a7280e39f14f72e05d87c",
- "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c",
- "shasum": ""
- },
- "require": {
- "php": ">=5.4.0",
- "psr/http-message": "~1.0"
- },
- "provide": {
- "psr/http-message-implementation": "1.0"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.4-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "GuzzleHttp\\Psr7\\": "src/"
- },
- "files": [
- "src/functions_include.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- },
- {
- "name": "Tobias Schultze",
- "homepage": "https://github.com/Tobion"
- }
- ],
- "description": "PSR-7 message implementation that also provides common utility methods",
- "keywords": [
- "http",
- "message",
- "request",
- "response",
- "stream",
- "uri",
- "url"
- ],
- "time": "2017-03-20T17:10:46+00:00"
- },
- {
- "name": "jakub-onderka/php-console-color",
- "version": "0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/JakubOnderka/PHP-Console-Color.git",
- "reference": "e0b393dacf7703fc36a4efc3df1435485197e6c1"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Color/zipball/e0b393dacf7703fc36a4efc3df1435485197e6c1",
- "reference": "e0b393dacf7703fc36a4efc3df1435485197e6c1",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.2"
- },
- "require-dev": {
- "jakub-onderka/php-code-style": "1.0",
- "jakub-onderka/php-parallel-lint": "0.*",
- "jakub-onderka/php-var-dump-check": "0.*",
- "phpunit/phpunit": "3.7.*",
- "squizlabs/php_codesniffer": "1.*"
- },
- "type": "library",
- "autoload": {
- "psr-0": {
- "JakubOnderka\\PhpConsoleColor": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-2-Clause"
- ],
- "authors": [
- {
- "name": "Jakub Onderka",
- "email": "jakub.onderka@gmail.com",
- "homepage": "http://www.acci.cz"
- }
- ],
- "time": "2014-04-08T15:00:19+00:00"
- },
- {
- "name": "jakub-onderka/php-console-highlighter",
- "version": "v0.3.2",
- "source": {
- "type": "git",
- "url": "https://github.com/JakubOnderka/PHP-Console-Highlighter.git",
- "reference": "7daa75df45242c8d5b75a22c00a201e7954e4fb5"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Highlighter/zipball/7daa75df45242c8d5b75a22c00a201e7954e4fb5",
- "reference": "7daa75df45242c8d5b75a22c00a201e7954e4fb5",
- "shasum": ""
- },
- "require": {
- "jakub-onderka/php-console-color": "~0.1",
- "php": ">=5.3.0"
- },
- "require-dev": {
- "jakub-onderka/php-code-style": "~1.0",
- "jakub-onderka/php-parallel-lint": "~0.5",
- "jakub-onderka/php-var-dump-check": "~0.1",
- "phpunit/phpunit": "~4.0",
- "squizlabs/php_codesniffer": "~1.5"
- },
- "type": "library",
- "autoload": {
- "psr-0": {
- "JakubOnderka\\PhpConsoleHighlighter": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jakub Onderka",
- "email": "acci@acci.cz",
- "homepage": "http://www.acci.cz/"
- }
- ],
- "time": "2015-04-20T18:58:01+00:00"
- },
- {
- "name": "laravel/framework",
- "version": "v5.5.23",
- "source": {
- "type": "git",
- "url": "https://github.com/laravel/framework.git",
- "reference": "cb8ec95aa65fbaeeaf94026c8a9f04bb97c13777"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/laravel/framework/zipball/cb8ec95aa65fbaeeaf94026c8a9f04bb97c13777",
- "reference": "cb8ec95aa65fbaeeaf94026c8a9f04bb97c13777",
- "shasum": ""
- },
- "require": {
- "doctrine/inflector": "~1.1",
- "erusev/parsedown": "~1.6",
- "ext-mbstring": "*",
- "ext-openssl": "*",
- "league/flysystem": "~1.0",
- "monolog/monolog": "~1.12",
- "mtdowling/cron-expression": "~1.0",
- "nesbot/carbon": "~1.20",
- "php": ">=7.0",
- "psr/container": "~1.0",
- "psr/simple-cache": "^1.0",
- "ramsey/uuid": "~3.0",
- "swiftmailer/swiftmailer": "~6.0",
- "symfony/console": "~3.3",
- "symfony/debug": "~3.3",
- "symfony/finder": "~3.3",
- "symfony/http-foundation": "~3.3",
- "symfony/http-kernel": "~3.3",
- "symfony/process": "~3.3",
- "symfony/routing": "~3.3",
- "symfony/var-dumper": "~3.3",
- "tijsverkoyen/css-to-inline-styles": "~2.2",
- "vlucas/phpdotenv": "~2.2"
- },
- "replace": {
- "illuminate/auth": "self.version",
- "illuminate/broadcasting": "self.version",
- "illuminate/bus": "self.version",
- "illuminate/cache": "self.version",
- "illuminate/config": "self.version",
- "illuminate/console": "self.version",
- "illuminate/container": "self.version",
- "illuminate/contracts": "self.version",
- "illuminate/cookie": "self.version",
- "illuminate/database": "self.version",
- "illuminate/encryption": "self.version",
- "illuminate/events": "self.version",
- "illuminate/filesystem": "self.version",
- "illuminate/hashing": "self.version",
- "illuminate/http": "self.version",
- "illuminate/log": "self.version",
- "illuminate/mail": "self.version",
- "illuminate/notifications": "self.version",
- "illuminate/pagination": "self.version",
- "illuminate/pipeline": "self.version",
- "illuminate/queue": "self.version",
- "illuminate/redis": "self.version",
- "illuminate/routing": "self.version",
- "illuminate/session": "self.version",
- "illuminate/support": "self.version",
- "illuminate/translation": "self.version",
- "illuminate/validation": "self.version",
- "illuminate/view": "self.version",
- "tightenco/collect": "self.version"
- },
- "require-dev": {
- "aws/aws-sdk-php": "~3.0",
- "doctrine/dbal": "~2.5",
- "filp/whoops": "^2.1.4",
- "mockery/mockery": "~1.0",
- "orchestra/testbench-core": "3.5.*",
- "pda/pheanstalk": "~3.0",
- "phpunit/phpunit": "~6.0",
- "predis/predis": "^1.1.1",
- "symfony/css-selector": "~3.3",
- "symfony/dom-crawler": "~3.3"
- },
- "suggest": {
- "aws/aws-sdk-php": "Required to use the SQS queue driver and SES mail driver (~3.0).",
- "doctrine/dbal": "Required to rename columns and drop SQLite columns (~2.5).",
- "ext-pcntl": "Required to use all features of the queue worker.",
- "ext-posix": "Required to use all features of the queue worker.",
- "fzaninotto/faker": "Required to use the eloquent factory builder (~1.4).",
- "guzzlehttp/guzzle": "Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (~6.0).",
- "laravel/tinker": "Required to use the tinker console command (~1.0).",
- "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (~1.0).",
- "league/flysystem-rackspace": "Required to use the Flysystem Rackspace driver (~1.0).",
- "nexmo/client": "Required to use the Nexmo transport (~1.0).",
- "pda/pheanstalk": "Required to use the beanstalk queue driver (~3.0).",
- "predis/predis": "Required to use the redis cache and queue drivers (~1.0).",
- "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (~3.0).",
- "symfony/css-selector": "Required to use some of the crawler integration testing tools (~3.3).",
- "symfony/dom-crawler": "Required to use most of the crawler integration testing tools (~3.3).",
- "symfony/psr-http-message-bridge": "Required to psr7 bridging features (~1.0)."
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "5.5-dev"
- }
- },
- "autoload": {
- "files": [
- "src/Illuminate/Foundation/helpers.php",
- "src/Illuminate/Support/helpers.php"
- ],
- "psr-4": {
- "Illuminate\\": "src/Illuminate/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
- }
- ],
- "description": "The Laravel Framework.",
- "homepage": "https://laravel.com",
- "keywords": [
- "framework",
- "laravel"
- ],
- "time": "2017-12-04T14:19:08+00:00"
- },
- {
- "name": "laravel/passport",
- "version": "v4.0.3",
- "source": {
- "type": "git",
- "url": "https://github.com/laravel/passport.git",
- "reference": "0542f1f82edfbf857d0197c34a3d41f549aff30a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/laravel/passport/zipball/0542f1f82edfbf857d0197c34a3d41f549aff30a",
- "reference": "0542f1f82edfbf857d0197c34a3d41f549aff30a",
- "shasum": ""
- },
- "require": {
- "firebase/php-jwt": "~3.0|~4.0|~5.0",
- "guzzlehttp/guzzle": "~6.0",
- "illuminate/auth": "~5.4",
- "illuminate/console": "~5.4",
- "illuminate/container": "~5.4",
- "illuminate/contracts": "~5.4",
- "illuminate/database": "~5.4",
- "illuminate/encryption": "~5.4",
- "illuminate/http": "~5.4",
- "illuminate/support": "~5.4",
- "league/oauth2-server": "^6.0",
- "php": ">=5.6.4",
- "phpseclib/phpseclib": "^2.0",
- "symfony/psr-http-message-bridge": "~1.0",
- "zendframework/zend-diactoros": "~1.0"
- },
- "require-dev": {
- "mockery/mockery": "~0.9",
- "phpunit/phpunit": "~5.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "4.0-dev"
- },
- "laravel": {
- "providers": [
- "Laravel\\Passport\\PassportServiceProvider"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "Laravel\\Passport\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
- }
- ],
- "description": "Laravel Passport provides OAuth2 server support to Laravel.",
- "keywords": [
- "laravel",
- "oauth",
- "passport"
- ],
- "time": "2017-09-24T14:21:39+00:00"
- },
- {
- "name": "laravel/tinker",
- "version": "v1.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/laravel/tinker.git",
- "reference": "203978fd67f118902acff95925847e70b72e3daf"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/laravel/tinker/zipball/203978fd67f118902acff95925847e70b72e3daf",
- "reference": "203978fd67f118902acff95925847e70b72e3daf",
- "shasum": ""
- },
- "require": {
- "illuminate/console": "~5.1",
- "illuminate/contracts": "~5.1",
- "illuminate/support": "~5.1",
- "php": ">=5.5.9",
- "psy/psysh": "0.7.*|0.8.*",
- "symfony/var-dumper": "~3.0"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.0|~5.0"
- },
- "suggest": {
- "illuminate/database": "The Illuminate Database package (~5.1)."
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0-dev"
- },
- "laravel": {
- "providers": [
- "Laravel\\Tinker\\TinkerServiceProvider"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "Laravel\\Tinker\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
- }
- ],
- "description": "Powerful REPL for the Laravel framework.",
- "keywords": [
- "REPL",
- "Tinker",
- "laravel",
- "psysh"
- ],
- "time": "2017-07-13T13:11:05+00:00"
- },
- {
- "name": "lcobucci/jwt",
- "version": "3.2.2",
- "source": {
- "type": "git",
- "url": "https://github.com/lcobucci/jwt.git",
- "reference": "0b5930be73582369e10c4d4bb7a12bac927a203c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/lcobucci/jwt/zipball/0b5930be73582369e10c4d4bb7a12bac927a203c",
- "reference": "0b5930be73582369e10c4d4bb7a12bac927a203c",
- "shasum": ""
- },
- "require": {
- "ext-openssl": "*",
- "php": ">=5.5"
- },
- "require-dev": {
- "mdanter/ecc": "~0.3.1",
- "mikey179/vfsstream": "~1.5",
- "phpmd/phpmd": "~2.2",
- "phpunit/php-invoker": "~1.1",
- "phpunit/phpunit": "~4.5",
- "squizlabs/php_codesniffer": "~2.3"
- },
- "suggest": {
- "mdanter/ecc": "Required to use Elliptic Curves based algorithms."
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.1-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Lcobucci\\JWT\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Luís Otávio Cobucci Oblonczyk",
- "email": "lcobucci@gmail.com",
- "role": "Developer"
- }
- ],
- "description": "A simple library to work with JSON Web Token and JSON Web Signature",
- "keywords": [
- "JWS",
- "jwt"
- ],
- "time": "2017-09-01T08:23:26+00:00"
- },
- {
- "name": "league/event",
- "version": "2.1.2",
- "source": {
- "type": "git",
- "url": "https://github.com/thephpleague/event.git",
- "reference": "e4bfc88dbcb60c8d8a2939a71f9813e141bbe4cd"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/thephpleague/event/zipball/e4bfc88dbcb60c8d8a2939a71f9813e141bbe4cd",
- "reference": "e4bfc88dbcb60c8d8a2939a71f9813e141bbe4cd",
- "shasum": ""
- },
- "require": {
- "php": ">=5.4.0"
- },
- "require-dev": {
- "henrikbjorn/phpspec-code-coverage": "~1.0.1",
- "phpspec/phpspec": "~2.0.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "League\\Event\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Frank de Jonge",
- "email": "info@frenky.net"
- }
- ],
- "description": "Event package",
- "keywords": [
- "emitter",
- "event",
- "listener"
- ],
- "time": "2015-05-21T12:24:47+00:00"
- },
- {
- "name": "league/flysystem",
- "version": "1.0.41",
- "source": {
- "type": "git",
- "url": "https://github.com/thephpleague/flysystem.git",
- "reference": "f400aa98912c561ba625ea4065031b7a41e5a155"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/f400aa98912c561ba625ea4065031b7a41e5a155",
- "reference": "f400aa98912c561ba625ea4065031b7a41e5a155",
- "shasum": ""
- },
- "require": {
- "php": ">=5.5.9"
- },
- "conflict": {
- "league/flysystem-sftp": "<1.0.6"
- },
- "require-dev": {
- "ext-fileinfo": "*",
- "mockery/mockery": "~0.9",
- "phpspec/phpspec": "^2.2",
- "phpunit/phpunit": "~4.8"
- },
- "suggest": {
- "ext-fileinfo": "Required for MimeType",
- "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2",
- "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3",
- "league/flysystem-azure": "Allows you to use Windows Azure Blob storage",
- "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching",
- "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem",
- "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files",
- "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib",
- "league/flysystem-webdav": "Allows you to use WebDAV storage",
- "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter",
- "spatie/flysystem-dropbox": "Allows you to use Dropbox storage",
- "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.1-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "League\\Flysystem\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Frank de Jonge",
- "email": "info@frenky.net"
- }
- ],
- "description": "Filesystem abstraction: Many filesystems, one API.",
- "keywords": [
- "Cloud Files",
- "WebDAV",
- "abstraction",
- "aws",
- "cloud",
- "copy.com",
- "dropbox",
- "file systems",
- "files",
- "filesystem",
- "filesystems",
- "ftp",
- "rackspace",
- "remote",
- "s3",
- "sftp",
- "storage"
- ],
- "time": "2017-08-06T17:41:04+00:00"
- },
- {
- "name": "league/oauth2-server",
- "version": "6.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/thephpleague/oauth2-server.git",
- "reference": "925776958fc3f5278e74363663c20147af32b668"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/thephpleague/oauth2-server/zipball/925776958fc3f5278e74363663c20147af32b668",
- "reference": "925776958fc3f5278e74363663c20147af32b668",
- "shasum": ""
- },
- "require": {
- "defuse/php-encryption": "^2.1",
- "ext-openssl": "*",
- "lcobucci/jwt": "^3.1",
- "league/event": "^2.1",
- "paragonie/random_compat": "^2.0",
- "php": ">=5.6.0",
- "psr/http-message": "^1.0"
- },
- "replace": {
- "league/oauth2server": "*",
- "lncd/oauth2": "*"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.8 || ^5.0",
- "zendframework/zend-diactoros": "^1.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "League\\OAuth2\\Server\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Alex Bilbie",
- "email": "hello@alexbilbie.com",
- "homepage": "http://www.alexbilbie.com",
- "role": "Developer"
- }
- ],
- "description": "A lightweight and powerful OAuth 2.0 authorization and resource server library with support for all the core specification grants. This library will allow you to secure your API with OAuth and allow your applications users to approve apps that want to access their data from your API.",
- "homepage": "https://oauth2.thephpleague.com/",
- "keywords": [
- "Authentication",
- "api",
- "auth",
- "authorisation",
- "authorization",
- "oauth",
- "oauth 2",
- "oauth 2.0",
- "oauth2",
- "protect",
- "resource",
- "secure",
- "server"
- ],
- "time": "2017-08-03T15:09:23+00:00"
- },
- {
- "name": "monolog/monolog",
- "version": "1.23.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Seldaek/monolog.git",
- "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fd8c787753b3a2ad11bc60c063cff1358a32a3b4",
- "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0",
- "psr/log": "~1.0"
- },
- "provide": {
- "psr/log-implementation": "1.0.0"
- },
- "require-dev": {
- "aws/aws-sdk-php": "^2.4.9 || ^3.0",
- "doctrine/couchdb": "~1.0@dev",
- "graylog2/gelf-php": "~1.0",
- "jakub-onderka/php-parallel-lint": "0.9",
- "php-amqplib/php-amqplib": "~2.4",
- "php-console/php-console": "^3.1.3",
- "phpunit/phpunit": "~4.5",
- "phpunit/phpunit-mock-objects": "2.3.0",
- "ruflin/elastica": ">=0.90 <3.0",
- "sentry/sentry": "^0.13",
- "swiftmailer/swiftmailer": "^5.3|^6.0"
- },
- "suggest": {
- "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
- "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
- "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
- "ext-mongo": "Allow sending log messages to a MongoDB server",
- "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
- "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver",
- "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
- "php-console/php-console": "Allow sending log messages to Google Chrome",
- "rollbar/rollbar": "Allow sending log messages to Rollbar",
- "ruflin/elastica": "Allow sending log messages to an Elastic Search server",
- "sentry/sentry": "Allow sending log messages to a Sentry server"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Monolog\\": "src/Monolog"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jordi Boggiano",
- "email": "j.boggiano@seld.be",
- "homepage": "http://seld.be"
- }
- ],
- "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
- "homepage": "http://github.com/Seldaek/monolog",
- "keywords": [
- "log",
- "logging",
- "psr-3"
- ],
- "time": "2017-06-19T01:22:40+00:00"
- },
- {
- "name": "mtdowling/cron-expression",
- "version": "v1.2.1",
- "source": {
- "type": "git",
- "url": "https://github.com/mtdowling/cron-expression.git",
- "reference": "9504fa9ea681b586028adaaa0877db4aecf32bad"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/mtdowling/cron-expression/zipball/9504fa9ea681b586028adaaa0877db4aecf32bad",
- "reference": "9504fa9ea681b586028adaaa0877db4aecf32bad",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.2"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.0|~5.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Cron\\": "src/Cron/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due",
- "keywords": [
- "cron",
- "schedule"
- ],
- "time": "2017-01-23T04:29:33+00:00"
- },
- {
- "name": "nesbot/carbon",
- "version": "1.22.1",
- "source": {
- "type": "git",
- "url": "https://github.com/briannesbitt/Carbon.git",
- "reference": "7cdf42c0b1cc763ab7e4c33c47a24e27c66bfccc"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/7cdf42c0b1cc763ab7e4c33c47a24e27c66bfccc",
- "reference": "7cdf42c0b1cc763ab7e4c33c47a24e27c66bfccc",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0",
- "symfony/translation": "~2.6 || ~3.0"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "~2",
- "phpunit/phpunit": "~4.0 || ~5.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.23-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Carbon\\": "src/Carbon/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Brian Nesbitt",
- "email": "brian@nesbot.com",
- "homepage": "http://nesbot.com"
- }
- ],
- "description": "A simple API extension for DateTime.",
- "homepage": "http://carbon.nesbot.com",
- "keywords": [
- "date",
- "datetime",
- "time"
- ],
- "time": "2017-01-16T07:55:07+00:00"
- },
- {
- "name": "nikic/php-parser",
- "version": "v3.1.2",
- "source": {
- "type": "git",
- "url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "08131e7ff29de6bb9f12275c7d35df71f25f4d89"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/08131e7ff29de6bb9f12275c7d35df71f25f4d89",
- "reference": "08131e7ff29de6bb9f12275c7d35df71f25f4d89",
- "shasum": ""
- },
- "require": {
- "ext-tokenizer": "*",
- "php": ">=5.5"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.0|~5.0"
- },
- "bin": [
- "bin/php-parse"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.0-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "PhpParser\\": "lib/PhpParser"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Nikita Popov"
- }
- ],
- "description": "A PHP parser written in PHP",
- "keywords": [
- "parser",
- "php"
- ],
- "time": "2017-11-04T11:48:34+00:00"
- },
- {
- "name": "paragonie/random_compat",
- "version": "v2.0.11",
- "source": {
- "type": "git",
- "url": "https://github.com/paragonie/random_compat.git",
- "reference": "5da4d3c796c275c55f057af5a643ae297d96b4d8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/paragonie/random_compat/zipball/5da4d3c796c275c55f057af5a643ae297d96b4d8",
- "reference": "5da4d3c796c275c55f057af5a643ae297d96b4d8",
- "shasum": ""
- },
- "require": {
- "php": ">=5.2.0"
- },
- "require-dev": {
- "phpunit/phpunit": "4.*|5.*"
- },
- "suggest": {
- "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
- },
- "type": "library",
- "autoload": {
- "files": [
- "lib/random.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Paragon Initiative Enterprises",
- "email": "security@paragonie.com",
- "homepage": "https://paragonie.com"
- }
- ],
- "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
- "keywords": [
- "csprng",
- "pseudorandom",
- "random"
- ],
- "time": "2017-09-27T21:40:39+00:00"
- },
- {
- "name": "phpseclib/phpseclib",
- "version": "2.0.9",
- "source": {
- "type": "git",
- "url": "https://github.com/phpseclib/phpseclib.git",
- "reference": "c9a3fe35e20eb6eeaca716d6a23cde03f52d1558"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/c9a3fe35e20eb6eeaca716d6a23cde03f52d1558",
- "reference": "c9a3fe35e20eb6eeaca716d6a23cde03f52d1558",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "require-dev": {
- "phing/phing": "~2.7",
- "phpunit/phpunit": "~4.0",
- "sami/sami": "~2.0",
- "squizlabs/php_codesniffer": "~2.0"
- },
- "suggest": {
- "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.",
- "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.",
- "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.",
- "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations."
- },
- "type": "library",
- "autoload": {
- "files": [
- "phpseclib/bootstrap.php"
- ],
- "psr-4": {
- "phpseclib\\": "phpseclib/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jim Wigginton",
- "email": "terrafrost@php.net",
- "role": "Lead Developer"
- },
- {
- "name": "Patrick Monnerat",
- "email": "pm@datasphere.ch",
- "role": "Developer"
- },
- {
- "name": "Andreas Fischer",
- "email": "bantu@phpbb.com",
- "role": "Developer"
- },
- {
- "name": "Hans-Jürgen Petrich",
- "email": "petrich@tronic-media.com",
- "role": "Developer"
- },
- {
- "name": "Graham Campbell",
- "email": "graham@alt-three.com",
- "role": "Developer"
- }
- ],
- "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.",
- "homepage": "http://phpseclib.sourceforge.net",
- "keywords": [
- "BigInteger",
- "aes",
- "asn.1",
- "asn1",
- "blowfish",
- "crypto",
- "cryptography",
- "encryption",
- "rsa",
- "security",
- "sftp",
- "signature",
- "signing",
- "ssh",
- "twofish",
- "x.509",
- "x509"
- ],
- "time": "2017-11-29T06:38:08+00:00"
- },
- {
- "name": "psr/container",
- "version": "1.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/container.git",
- "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
- "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Container\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
- }
- ],
- "description": "Common Container Interface (PHP FIG PSR-11)",
- "homepage": "https://github.com/php-fig/container",
- "keywords": [
- "PSR-11",
- "container",
- "container-interface",
- "container-interop",
- "psr"
- ],
- "time": "2017-02-14T16:28:37+00:00"
- },
- {
- "name": "psr/http-message",
- "version": "1.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/http-message.git",
- "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
- "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Http\\Message\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
- }
- ],
- "description": "Common interface for HTTP messages",
- "homepage": "https://github.com/php-fig/http-message",
- "keywords": [
- "http",
- "http-message",
- "psr",
- "psr-7",
- "request",
- "response"
- ],
- "time": "2016-08-06T14:39:51+00:00"
- },
- {
- "name": "psr/log",
- "version": "1.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/log.git",
- "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
- "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Log\\": "Psr/Log/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
- }
- ],
- "description": "Common interface for logging libraries",
- "homepage": "https://github.com/php-fig/log",
- "keywords": [
- "log",
- "psr",
- "psr-3"
- ],
- "time": "2016-10-10T12:19:37+00:00"
- },
- {
- "name": "psr/simple-cache",
- "version": "1.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/simple-cache.git",
- "reference": "753fa598e8f3b9966c886fe13f370baa45ef0e24"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/753fa598e8f3b9966c886fe13f370baa45ef0e24",
- "reference": "753fa598e8f3b9966c886fe13f370baa45ef0e24",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\SimpleCache\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
- }
- ],
- "description": "Common interfaces for simple caching",
- "keywords": [
- "cache",
- "caching",
- "psr",
- "psr-16",
- "simple-cache"
- ],
- "time": "2017-01-02T13:31:39+00:00"
- },
- {
- "name": "psy/psysh",
- "version": "v0.8.15",
- "source": {
- "type": "git",
- "url": "https://github.com/bobthecow/psysh.git",
- "reference": "b1d289c2cb03a2f8249912c53e96ced38f879926"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/bobthecow/psysh/zipball/b1d289c2cb03a2f8249912c53e96ced38f879926",
- "reference": "b1d289c2cb03a2f8249912c53e96ced38f879926",
- "shasum": ""
- },
- "require": {
- "dnoegel/php-xdg-base-dir": "0.1",
- "jakub-onderka/php-console-highlighter": "0.3.*",
- "nikic/php-parser": "~1.3|~2.0|~3.0",
- "php": ">=5.3.9",
- "symfony/console": "~2.3.10|^2.4.2|~3.0",
- "symfony/var-dumper": "~2.7|~3.0"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "~1.11",
- "hoa/console": "~3.16|~1.14",
- "phpunit/phpunit": "^4.8.35|^5.4.3",
- "symfony/finder": "~2.1|~3.0"
- },
- "suggest": {
- "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)",
- "ext-pdo-sqlite": "The doc command requires SQLite to work.",
- "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.",
- "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history.",
- "hoa/console": "A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit."
- },
- "bin": [
- "bin/psysh"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-develop": "0.8.x-dev"
- }
- },
- "autoload": {
- "files": [
- "src/Psy/functions.php"
- ],
- "psr-4": {
- "Psy\\": "src/Psy/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Justin Hileman",
- "email": "justin@justinhileman.info",
- "homepage": "http://justinhileman.com"
- }
- ],
- "description": "An interactive shell for modern PHP.",
- "homepage": "http://psysh.org",
- "keywords": [
- "REPL",
- "console",
- "interactive",
- "shell"
- ],
- "time": "2017-11-16T14:29:51+00:00"
- },
- {
- "name": "ramsey/uuid",
- "version": "3.7.1",
- "source": {
- "type": "git",
- "url": "https://github.com/ramsey/uuid.git",
- "reference": "45cffe822057a09e05f7bd09ec5fb88eeecd2334"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/ramsey/uuid/zipball/45cffe822057a09e05f7bd09ec5fb88eeecd2334",
- "reference": "45cffe822057a09e05f7bd09ec5fb88eeecd2334",
- "shasum": ""
- },
- "require": {
- "paragonie/random_compat": "^1.0|^2.0",
- "php": "^5.4 || ^7.0"
- },
- "replace": {
- "rhumsaa/uuid": "self.version"
- },
- "require-dev": {
- "apigen/apigen": "^4.1",
- "codeception/aspect-mock": "^1.0 | ^2.0",
- "doctrine/annotations": "~1.2.0",
- "goaop/framework": "1.0.0-alpha.2 | ^1.0 | ^2.1",
- "ircmaxell/random-lib": "^1.1",
- "jakub-onderka/php-parallel-lint": "^0.9.0",
- "mockery/mockery": "^0.9.4",
- "moontoast/math": "^1.1",
- "php-mock/php-mock-phpunit": "^0.3|^1.1",
- "phpunit/phpunit": "^4.7|>=5.0 <5.4",
- "satooshi/php-coveralls": "^0.6.1",
- "squizlabs/php_codesniffer": "^2.3"
- },
- "suggest": {
- "ext-libsodium": "Provides the PECL libsodium extension for use with the SodiumRandomGenerator",
- "ext-uuid": "Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator",
- "ircmaxell/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
- "moontoast/math": "Provides support for converting UUID to 128-bit integer (in string form).",
- "ramsey/uuid-console": "A console application for generating UUIDs with ramsey/uuid",
- "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type."
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Ramsey\\Uuid\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Marijn Huizendveld",
- "email": "marijn.huizendveld@gmail.com"
- },
- {
- "name": "Thibaud Fabre",
- "email": "thibaud@aztech.io"
- },
- {
- "name": "Ben Ramsey",
- "email": "ben@benramsey.com",
- "homepage": "https://benramsey.com"
- }
- ],
- "description": "Formerly rhumsaa/uuid. A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).",
- "homepage": "https://github.com/ramsey/uuid",
- "keywords": [
- "guid",
- "identifier",
- "uuid"
- ],
- "time": "2017-09-22T20:46:04+00:00"
- },
- {
- "name": "swiftmailer/swiftmailer",
- "version": "v6.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/swiftmailer/swiftmailer.git",
- "reference": "412333372fb6c8ffb65496a2bbd7321af75733fc"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/412333372fb6c8ffb65496a2bbd7321af75733fc",
- "reference": "412333372fb6c8ffb65496a2bbd7321af75733fc",
- "shasum": ""
- },
- "require": {
- "egulias/email-validator": "~2.0",
- "php": ">=7.0.0"
- },
- "require-dev": {
- "mockery/mockery": "~0.9.1",
- "symfony/phpunit-bridge": "~3.3@dev"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "6.0-dev"
- }
- },
- "autoload": {
- "files": [
- "lib/swift_required.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Chris Corbyn"
- },
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- }
- ],
- "description": "Swiftmailer, free feature-rich PHP mailer",
- "homepage": "http://swiftmailer.symfony.com",
- "keywords": [
- "email",
- "mail",
- "mailer"
- ],
- "time": "2017-09-30T22:39:41+00:00"
- },
- {
- "name": "symfony/console",
- "version": "v3.4.1",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/console.git",
- "reference": "2cdef78de8f54f68ff16a857e710e7302b47d4c7"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/2cdef78de8f54f68ff16a857e710e7302b47d4c7",
- "reference": "2cdef78de8f54f68ff16a857e710e7302b47d4c7",
- "shasum": ""
- },
- "require": {
- "php": "^5.5.9|>=7.0.8",
- "symfony/debug": "~2.8|~3.0|~4.0",
- "symfony/polyfill-mbstring": "~1.0"
- },
- "conflict": {
- "symfony/dependency-injection": "<3.4",
- "symfony/process": "<3.3"
- },
- "require-dev": {
- "psr/log": "~1.0",
- "symfony/config": "~3.3|~4.0",
- "symfony/dependency-injection": "~3.4|~4.0",
- "symfony/event-dispatcher": "~2.8|~3.0|~4.0",
- "symfony/lock": "~3.4|~4.0",
- "symfony/process": "~3.3|~4.0"
- },
- "suggest": {
- "psr/log": "For using the console logger",
- "symfony/event-dispatcher": "",
- "symfony/lock": "",
- "symfony/process": ""
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.4-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Console\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony Console Component",
- "homepage": "https://symfony.com",
- "time": "2017-12-02T18:20:11+00:00"
- },
- {
- "name": "symfony/css-selector",
- "version": "v3.4.1",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/css-selector.git",
- "reference": "7134b93e90ea7e7881fcb2da006d21b4c5f31908"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/7134b93e90ea7e7881fcb2da006d21b4c5f31908",
- "reference": "7134b93e90ea7e7881fcb2da006d21b4c5f31908",
- "shasum": ""
- },
- "require": {
- "php": "^5.5.9|>=7.0.8"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.4-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\CssSelector\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jean-François Simon",
- "email": "jeanfrancois.simon@sensiolabs.com"
- },
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony CssSelector Component",
- "homepage": "https://symfony.com",
- "time": "2017-11-05T16:10:10+00:00"
- },
- {
- "name": "symfony/debug",
- "version": "v3.4.1",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/debug.git",
- "reference": "fb2001e5d85f95d8b6ab94ae3be5d2672df128fd"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/debug/zipball/fb2001e5d85f95d8b6ab94ae3be5d2672df128fd",
- "reference": "fb2001e5d85f95d8b6ab94ae3be5d2672df128fd",
- "shasum": ""
- },
- "require": {
- "php": "^5.5.9|>=7.0.8",
- "psr/log": "~1.0"
- },
- "conflict": {
- "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"
- },
- "require-dev": {
- "symfony/http-kernel": "~2.8|~3.0|~4.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.4-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Debug\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony Debug Component",
- "homepage": "https://symfony.com",
- "time": "2017-11-21T09:01:46+00:00"
- },
- {
- "name": "symfony/event-dispatcher",
- "version": "v4.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "6223fb2b68e7059e8d5843c0103999a84e7275cf"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/6223fb2b68e7059e8d5843c0103999a84e7275cf",
- "reference": "6223fb2b68e7059e8d5843c0103999a84e7275cf",
- "shasum": ""
- },
- "require": {
- "php": "^7.1.3"
- },
- "conflict": {
- "symfony/dependency-injection": "<3.4"
- },
- "require-dev": {
- "psr/log": "~1.0",
- "symfony/config": "~3.4|~4.0",
- "symfony/dependency-injection": "~3.4|~4.0",
- "symfony/expression-language": "~3.4|~4.0",
- "symfony/stopwatch": "~3.4|~4.0"
- },
- "suggest": {
- "symfony/dependency-injection": "",
- "symfony/http-kernel": ""
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "4.0-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\EventDispatcher\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony EventDispatcher Component",
- "homepage": "https://symfony.com",
- "time": "2017-11-09T17:30:28+00:00"
- },
- {
- "name": "symfony/finder",
- "version": "v3.4.1",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/finder.git",
- "reference": "dac8d7db537bac7ad8143eb11360a8c2231f251a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/dac8d7db537bac7ad8143eb11360a8c2231f251a",
- "reference": "dac8d7db537bac7ad8143eb11360a8c2231f251a",
- "shasum": ""
- },
- "require": {
- "php": "^5.5.9|>=7.0.8"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.4-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Finder\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony Finder Component",
- "homepage": "https://symfony.com",
- "time": "2017-11-05T16:10:10+00:00"
- },
- {
- "name": "symfony/http-foundation",
- "version": "v3.4.1",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/http-foundation.git",
- "reference": "d9625c8abb907e0ca2d7506afd7a719a572c766f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d9625c8abb907e0ca2d7506afd7a719a572c766f",
- "reference": "d9625c8abb907e0ca2d7506afd7a719a572c766f",
- "shasum": ""
- },
- "require": {
- "php": "^5.5.9|>=7.0.8",
- "symfony/polyfill-mbstring": "~1.1",
- "symfony/polyfill-php70": "~1.6"
- },
- "require-dev": {
- "symfony/expression-language": "~2.8|~3.0|~4.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.4-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\HttpFoundation\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony HttpFoundation Component",
- "homepage": "https://symfony.com",
- "time": "2017-11-30T14:56:21+00:00"
- },
- {
- "name": "symfony/http-kernel",
- "version": "v3.4.1",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/http-kernel.git",
- "reference": "b101bb29071163563d4c8b537b35845eaf909235"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/b101bb29071163563d4c8b537b35845eaf909235",
- "reference": "b101bb29071163563d4c8b537b35845eaf909235",
- "shasum": ""
- },
- "require": {
- "php": "^5.5.9|>=7.0.8",
- "psr/log": "~1.0",
- "symfony/debug": "~2.8|~3.0|~4.0",
- "symfony/event-dispatcher": "~2.8|~3.0|~4.0",
- "symfony/http-foundation": "^3.3.11|~4.0"
- },
- "conflict": {
- "symfony/config": "<2.8",
- "symfony/dependency-injection": "<3.4",
- "symfony/var-dumper": "<3.3",
- "twig/twig": "<1.34|<2.4,>=2"
- },
- "provide": {
- "psr/log-implementation": "1.0"
- },
- "require-dev": {
- "psr/cache": "~1.0",
- "symfony/browser-kit": "~2.8|~3.0|~4.0",
- "symfony/class-loader": "~2.8|~3.0",
- "symfony/config": "~2.8|~3.0|~4.0",
- "symfony/console": "~2.8|~3.0|~4.0",
- "symfony/css-selector": "~2.8|~3.0|~4.0",
- "symfony/dependency-injection": "~3.4|~4.0",
- "symfony/dom-crawler": "~2.8|~3.0|~4.0",
- "symfony/expression-language": "~2.8|~3.0|~4.0",
- "symfony/finder": "~2.8|~3.0|~4.0",
- "symfony/process": "~2.8|~3.0|~4.0",
- "symfony/routing": "~3.4|~4.0",
- "symfony/stopwatch": "~2.8|~3.0|~4.0",
- "symfony/templating": "~2.8|~3.0|~4.0",
- "symfony/translation": "~2.8|~3.0|~4.0",
- "symfony/var-dumper": "~3.3|~4.0"
- },
- "suggest": {
- "symfony/browser-kit": "",
- "symfony/config": "",
- "symfony/console": "",
- "symfony/dependency-injection": "",
- "symfony/finder": "",
- "symfony/var-dumper": ""
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.4-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\HttpKernel\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony HttpKernel Component",
- "homepage": "https://symfony.com",
- "time": "2017-12-04T23:05:00+00:00"
- },
- {
- "name": "symfony/polyfill-mbstring",
- "version": "v1.6.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296",
- "reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "suggest": {
- "ext-mbstring": "For best performance"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.6-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Mbstring\\": ""
- },
- "files": [
- "bootstrap.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill for the Mbstring extension",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "mbstring",
- "polyfill",
- "portable",
- "shim"
- ],
- "time": "2017-10-11T12:05:26+00:00"
- },
- {
- "name": "symfony/polyfill-php70",
- "version": "v1.6.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php70.git",
- "reference": "0442b9c0596610bd24ae7b5f0a6cdbbc16d9fcff"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/0442b9c0596610bd24ae7b5f0a6cdbbc16d9fcff",
- "reference": "0442b9c0596610bd24ae7b5f0a6cdbbc16d9fcff",
- "shasum": ""
- },
- "require": {
- "paragonie/random_compat": "~1.0|~2.0",
- "php": ">=5.3.3"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.6-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Php70\\": ""
- },
- "files": [
- "bootstrap.php"
- ],
- "classmap": [
- "Resources/stubs"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "time": "2017-10-11T12:05:26+00:00"
- },
- {
- "name": "symfony/process",
- "version": "v3.4.1",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/process.git",
- "reference": "db25e810fd5e124085e3777257d0cf4ae533d0ea"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/db25e810fd5e124085e3777257d0cf4ae533d0ea",
- "reference": "db25e810fd5e124085e3777257d0cf4ae533d0ea",
- "shasum": ""
- },
- "require": {
- "php": "^5.5.9|>=7.0.8"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.4-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Process\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony Process Component",
- "homepage": "https://symfony.com",
- "time": "2017-11-22T12:18:49+00:00"
- },
- {
- "name": "symfony/psr-http-message-bridge",
- "version": "v1.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/psr-http-message-bridge.git",
- "reference": "b2098405d8644f6dc4c36febcee6a77c0fdecdff"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/b2098405d8644f6dc4c36febcee6a77c0fdecdff",
- "reference": "b2098405d8644f6dc4c36febcee6a77c0fdecdff",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3",
- "psr/http-message": "~1.0",
- "symfony/http-foundation": "~2.3|~3.0|~4.0"
- },
- "require-dev": {
- "symfony/phpunit-bridge": "~3.2|4.0"
- },
- "suggest": {
- "psr/http-message-implementation": "To use the HttpFoundation factory",
- "zendframework/zend-diactoros": "To use the Zend Diactoros factory"
- },
- "type": "symfony-bridge",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Bridge\\PsrHttpMessage\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Symfony Community",
- "homepage": "http://symfony.com/contributors"
- },
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- }
- ],
- "description": "PSR HTTP message bridge",
- "homepage": "http://symfony.com",
- "keywords": [
- "http",
- "http-message",
- "psr-7"
- ],
- "time": "2017-07-23T09:13:43+00:00"
- },
- {
- "name": "symfony/routing",
- "version": "v3.4.1",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/routing.git",
- "reference": "d768aa5b25d98188bae3fe4ce3eb2924c97aafac"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/d768aa5b25d98188bae3fe4ce3eb2924c97aafac",
- "reference": "d768aa5b25d98188bae3fe4ce3eb2924c97aafac",
- "shasum": ""
- },
- "require": {
- "php": "^5.5.9|>=7.0.8"
- },
- "conflict": {
- "symfony/config": "<2.8",
- "symfony/dependency-injection": "<3.3",
- "symfony/yaml": "<3.4"
- },
- "require-dev": {
- "doctrine/annotations": "~1.0",
- "doctrine/common": "~2.2",
- "psr/log": "~1.0",
- "symfony/config": "~2.8|~3.0|~4.0",
- "symfony/dependency-injection": "~3.3|~4.0",
- "symfony/expression-language": "~2.8|~3.0|~4.0",
- "symfony/http-foundation": "~2.8|~3.0|~4.0",
- "symfony/yaml": "~3.4|~4.0"
- },
- "suggest": {
- "doctrine/annotations": "For using the annotation loader",
- "symfony/config": "For using the all-in-one router or any loader",
- "symfony/dependency-injection": "For loading routes from a service",
- "symfony/expression-language": "For using expression matching",
- "symfony/http-foundation": "For using a Symfony Request object",
- "symfony/yaml": "For using the YAML loader"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.4-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Routing\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony Routing Component",
- "homepage": "https://symfony.com",
- "keywords": [
- "router",
- "routing",
- "uri",
- "url"
- ],
- "time": "2017-11-24T14:13:49+00:00"
- },
- {
- "name": "symfony/translation",
- "version": "v3.4.1",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/translation.git",
- "reference": "e05b0a5996ad7a35ba3a19ffad8b72c9daa64dfa"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/e05b0a5996ad7a35ba3a19ffad8b72c9daa64dfa",
- "reference": "e05b0a5996ad7a35ba3a19ffad8b72c9daa64dfa",
- "shasum": ""
- },
- "require": {
- "php": "^5.5.9|>=7.0.8",
- "symfony/polyfill-mbstring": "~1.0"
- },
- "conflict": {
- "symfony/config": "<2.8",
- "symfony/dependency-injection": "<3.4",
- "symfony/yaml": "<3.4"
- },
- "require-dev": {
- "psr/log": "~1.0",
- "symfony/config": "~2.8|~3.0|~4.0",
- "symfony/dependency-injection": "~3.4|~4.0",
- "symfony/finder": "~2.8|~3.0|~4.0",
- "symfony/intl": "^2.8.18|^3.2.5|~4.0",
- "symfony/yaml": "~3.4|~4.0"
- },
- "suggest": {
- "psr/log": "To use logging capability in translator",
- "symfony/config": "",
- "symfony/yaml": ""
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.4-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Translation\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony Translation Component",
- "homepage": "https://symfony.com",
- "time": "2017-11-27T14:23:00+00:00"
- },
- {
- "name": "symfony/var-dumper",
- "version": "v3.4.1",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/var-dumper.git",
- "reference": "ec650a975a8e04e0c114d35eab732981243db3a2"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ec650a975a8e04e0c114d35eab732981243db3a2",
- "reference": "ec650a975a8e04e0c114d35eab732981243db3a2",
- "shasum": ""
- },
- "require": {
- "php": "^5.5.9|>=7.0.8",
- "symfony/polyfill-mbstring": "~1.0"
- },
- "conflict": {
- "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0"
- },
- "require-dev": {
- "ext-iconv": "*",
- "twig/twig": "~1.34|~2.4"
- },
- "suggest": {
- "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).",
- "ext-intl": "To show region name in time zone dump",
- "ext-symfony_debug": ""
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.4-dev"
- }
- },
- "autoload": {
- "files": [
- "Resources/functions/dump.php"
- ],
- "psr-4": {
- "Symfony\\Component\\VarDumper\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony mechanism for exploring and dumping PHP variables",
- "homepage": "https://symfony.com",
- "keywords": [
- "debug",
- "dump"
- ],
- "time": "2017-11-30T14:59:23+00:00"
- },
- {
- "name": "tijsverkoyen/css-to-inline-styles",
- "version": "2.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git",
- "reference": "ab03919dfd85a74ae0372f8baf9f3c7d5c03b04b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/ab03919dfd85a74ae0372f8baf9f3c7d5c03b04b",
- "reference": "ab03919dfd85a74ae0372f8baf9f3c7d5c03b04b",
- "shasum": ""
- },
- "require": {
- "php": "^5.5 || ^7",
- "symfony/css-selector": "^2.7|~3.0"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.8|5.1.*"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "TijsVerkoyen\\CssToInlineStyles\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Tijs Verkoyen",
- "email": "css_to_inline_styles@verkoyen.eu",
- "role": "Developer"
- }
- ],
- "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.",
- "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles",
- "time": "2016-09-20T12:50:39+00:00"
- },
- {
- "name": "vlucas/phpdotenv",
- "version": "v2.4.0",
- "source": {
- "type": "git",
- "url": "https://github.com/vlucas/phpdotenv.git",
- "reference": "3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c",
- "reference": "3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.9"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.8 || ^5.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.4-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Dotenv\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause-Attribution"
- ],
- "authors": [
- {
- "name": "Vance Lucas",
- "email": "vance@vancelucas.com",
- "homepage": "http://www.vancelucas.com"
- }
- ],
- "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.",
- "keywords": [
- "dotenv",
- "env",
- "environment"
- ],
- "time": "2016-09-01T10:05:43+00:00"
- },
- {
- "name": "zendframework/zend-diactoros",
- "version": "1.6.1",
- "source": {
- "type": "git",
- "url": "https://github.com/zendframework/zend-diactoros.git",
- "reference": "c8664b92a6d5bc229e48b0923486c097e45a7877"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/zendframework/zend-diactoros/zipball/c8664b92a6d5bc229e48b0923486c097e45a7877",
- "reference": "c8664b92a6d5bc229e48b0923486c097e45a7877",
- "shasum": ""
- },
- "require": {
- "php": "^5.6 || ^7.0",
- "psr/http-message": "^1.0"
- },
- "provide": {
- "psr/http-message-implementation": "1.0"
- },
- "require-dev": {
- "ext-dom": "*",
- "ext-libxml": "*",
- "phpunit/phpunit": "^5.7.16 || ^6.0.8",
- "zendframework/zend-coding-standard": "~1.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.6-dev",
- "dev-develop": "1.7-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Zend\\Diactoros\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-2-Clause"
- ],
- "description": "PSR HTTP Message implementations",
- "homepage": "https://github.com/zendframework/zend-diactoros",
- "keywords": [
- "http",
- "psr",
- "psr-7"
- ],
- "time": "2017-10-12T15:24:51+00:00"
- }
- ],
- "packages-dev": [
- {
- "name": "doctrine/instantiator",
- "version": "1.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/instantiator.git",
- "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda",
- "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda",
- "shasum": ""
- },
- "require": {
- "php": "^7.1"
- },
- "require-dev": {
- "athletic/athletic": "~0.1.8",
- "ext-pdo": "*",
- "ext-phar": "*",
- "phpunit/phpunit": "^6.2.3",
- "squizlabs/php_codesniffer": "^3.0.2"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Marco Pivetta",
- "email": "ocramius@gmail.com",
- "homepage": "http://ocramius.github.com/"
- }
- ],
- "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
- "homepage": "https://github.com/doctrine/instantiator",
- "keywords": [
- "constructor",
- "instantiate"
- ],
- "time": "2017-07-22T11:58:36+00:00"
- },
- {
- "name": "filp/whoops",
- "version": "2.1.14",
- "source": {
- "type": "git",
- "url": "https://github.com/filp/whoops.git",
- "reference": "c6081b8838686aa04f1e83ba7e91f78b7b2a23e6"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/filp/whoops/zipball/c6081b8838686aa04f1e83ba7e91f78b7b2a23e6",
- "reference": "c6081b8838686aa04f1e83ba7e91f78b7b2a23e6",
- "shasum": ""
- },
- "require": {
- "php": "^5.5.9 || ^7.0",
- "psr/log": "^1.0.1"
- },
- "require-dev": {
- "mockery/mockery": "0.9.*",
- "phpunit/phpunit": "^4.8.35 || ^5.7",
- "symfony/var-dumper": "^2.6 || ^3.0"
- },
- "suggest": {
- "symfony/var-dumper": "Pretty print complex values better with var-dumper available",
- "whoops/soap": "Formats errors as SOAP responses"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Whoops\\": "src/Whoops/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Filipe Dobreira",
- "homepage": "https://github.com/filp",
- "role": "Developer"
- }
- ],
- "description": "php error handling for cool kids",
- "homepage": "https://filp.github.io/whoops/",
- "keywords": [
- "error",
- "exception",
- "handling",
- "library",
- "throwable",
- "whoops"
- ],
- "time": "2017-11-23T18:22:44+00:00"
- },
- {
- "name": "fzaninotto/faker",
- "version": "v1.7.1",
- "source": {
- "type": "git",
- "url": "https://github.com/fzaninotto/Faker.git",
- "reference": "d3ed4cc37051c1ca52d22d76b437d14809fc7e0d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/d3ed4cc37051c1ca52d22d76b437d14809fc7e0d",
- "reference": "d3ed4cc37051c1ca52d22d76b437d14809fc7e0d",
- "shasum": ""
- },
- "require": {
- "php": "^5.3.3 || ^7.0"
- },
- "require-dev": {
- "ext-intl": "*",
- "phpunit/phpunit": "^4.0 || ^5.0",
- "squizlabs/php_codesniffer": "^1.5"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.8-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Faker\\": "src/Faker/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "François Zaninotto"
- }
- ],
- "description": "Faker is a PHP library that generates fake data for you.",
- "keywords": [
- "data",
- "faker",
- "fixtures"
- ],
- "time": "2017-08-15T16:48:10+00:00"
- },
- {
- "name": "hamcrest/hamcrest-php",
- "version": "v1.2.2",
- "source": {
- "type": "git",
- "url": "https://github.com/hamcrest/hamcrest-php.git",
- "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/b37020aa976fa52d3de9aa904aa2522dc518f79c",
- "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.2"
- },
- "replace": {
- "cordoval/hamcrest-php": "*",
- "davedevelopment/hamcrest-php": "*",
- "kodova/hamcrest-php": "*"
- },
- "require-dev": {
- "phpunit/php-file-iterator": "1.3.3",
- "satooshi/php-coveralls": "dev-master"
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "hamcrest"
- ],
- "files": [
- "hamcrest/Hamcrest.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD"
- ],
- "description": "This is the PHP port of Hamcrest Matchers",
- "keywords": [
- "test"
- ],
- "time": "2015-05-11T14:41:42+00:00"
- },
- {
- "name": "mockery/mockery",
- "version": "0.9.9",
- "source": {
- "type": "git",
- "url": "https://github.com/mockery/mockery.git",
- "reference": "6fdb61243844dc924071d3404bb23994ea0b6856"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/mockery/mockery/zipball/6fdb61243844dc924071d3404bb23994ea0b6856",
- "reference": "6fdb61243844dc924071d3404bb23994ea0b6856",
- "shasum": ""
- },
- "require": {
- "hamcrest/hamcrest-php": "~1.1",
- "lib-pcre": ">=7.0",
- "php": ">=5.3.2"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "0.9.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Mockery": "library/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Pádraic Brady",
- "email": "padraic.brady@gmail.com",
- "homepage": "http://blog.astrumfutura.com"
- },
- {
- "name": "Dave Marshall",
- "email": "dave.marshall@atstsolutions.co.uk",
- "homepage": "http://davedevelopment.co.uk"
- }
- ],
- "description": "Mockery is a simple yet flexible PHP mock object framework for use in unit testing with PHPUnit, PHPSpec or any other testing framework. Its core goal is to offer a test double framework with a succinct API capable of clearly defining all possible object operations and interactions using a human readable Domain Specific Language (DSL). Designed as a drop in alternative to PHPUnit's phpunit-mock-objects library, Mockery is easy to integrate with PHPUnit and can operate alongside phpunit-mock-objects without the World ending.",
- "homepage": "http://github.com/padraic/mockery",
- "keywords": [
- "BDD",
- "TDD",
- "library",
- "mock",
- "mock objects",
- "mockery",
- "stub",
- "test",
- "test double",
- "testing"
- ],
- "time": "2017-02-28T12:52:32+00:00"
- },
- {
- "name": "myclabs/deep-copy",
- "version": "1.7.0",
- "source": {
- "type": "git",
- "url": "https://github.com/myclabs/DeepCopy.git",
- "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e",
- "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e",
- "shasum": ""
- },
- "require": {
- "php": "^5.6 || ^7.0"
- },
- "require-dev": {
- "doctrine/collections": "^1.0",
- "doctrine/common": "^2.6",
- "phpunit/phpunit": "^4.1"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "DeepCopy\\": "src/DeepCopy/"
- },
- "files": [
- "src/DeepCopy/deep_copy.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "Create deep copies (clones) of your objects",
- "keywords": [
- "clone",
- "copy",
- "duplicate",
- "object",
- "object graph"
- ],
- "time": "2017-10-19T19:58:43+00:00"
- },
- {
- "name": "phar-io/manifest",
- "version": "1.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/phar-io/manifest.git",
- "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phar-io/manifest/zipball/2df402786ab5368a0169091f61a7c1e0eb6852d0",
- "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0",
- "shasum": ""
- },
- "require": {
- "ext-dom": "*",
- "ext-phar": "*",
- "phar-io/version": "^1.0.1",
- "php": "^5.6 || ^7.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Arne Blankerts",
- "email": "arne@blankerts.de",
- "role": "Developer"
- },
- {
- "name": "Sebastian Heuer",
- "email": "sebastian@phpeople.de",
- "role": "Developer"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "Developer"
- }
- ],
- "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
- "time": "2017-03-05T18:14:27+00:00"
- },
- {
- "name": "phar-io/version",
- "version": "1.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/phar-io/version.git",
- "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df",
- "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df",
- "shasum": ""
- },
- "require": {
- "php": "^5.6 || ^7.0"
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Arne Blankerts",
- "email": "arne@blankerts.de",
- "role": "Developer"
- },
- {
- "name": "Sebastian Heuer",
- "email": "sebastian@phpeople.de",
- "role": "Developer"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "Developer"
- }
- ],
- "description": "Library for handling version information and constraints",
- "time": "2017-03-05T17:38:23+00:00"
- },
- {
- "name": "phpdocumentor/reflection-common",
- "version": "1.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
- "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
- "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
- "shasum": ""
- },
- "require": {
- "php": ">=5.5"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.6"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": [
- "src"
- ]
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jaap van Otterdijk",
- "email": "opensource@ijaap.nl"
- }
- ],
- "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
- "homepage": "http://www.phpdoc.org",
- "keywords": [
- "FQSEN",
- "phpDocumentor",
- "phpdoc",
- "reflection",
- "static analysis"
- ],
- "time": "2017-09-11T18:02:19+00:00"
- },
- {
- "name": "phpdocumentor/reflection-docblock",
- "version": "4.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "66465776cfc249844bde6d117abff1d22e06c2da"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/66465776cfc249844bde6d117abff1d22e06c2da",
- "reference": "66465776cfc249844bde6d117abff1d22e06c2da",
- "shasum": ""
- },
- "require": {
- "php": "^7.0",
- "phpdocumentor/reflection-common": "^1.0.0",
- "phpdocumentor/type-resolver": "^0.4.0",
- "webmozart/assert": "^1.0"
- },
- "require-dev": {
- "doctrine/instantiator": "~1.0.5",
- "mockery/mockery": "^1.0",
- "phpunit/phpunit": "^6.4"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "4.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": [
- "src/"
- ]
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Mike van Riel",
- "email": "me@mikevanriel.com"
- }
- ],
- "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
- "time": "2017-11-27T17:38:31+00:00"
- },
- {
- "name": "phpdocumentor/type-resolver",
- "version": "0.4.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/TypeResolver.git",
- "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7",
- "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7",
- "shasum": ""
- },
- "require": {
- "php": "^5.5 || ^7.0",
- "phpdocumentor/reflection-common": "^1.0"
- },
- "require-dev": {
- "mockery/mockery": "^0.9.4",
- "phpunit/phpunit": "^5.2||^4.8.24"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": [
- "src/"
- ]
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Mike van Riel",
- "email": "me@mikevanriel.com"
- }
- ],
- "time": "2017-07-14T14:27:02+00:00"
- },
- {
- "name": "phpspec/prophecy",
- "version": "1.7.3",
- "source": {
- "type": "git",
- "url": "https://github.com/phpspec/prophecy.git",
- "reference": "e4ed002c67da8eceb0eb8ddb8b3847bb53c5c2bf"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/e4ed002c67da8eceb0eb8ddb8b3847bb53c5c2bf",
- "reference": "e4ed002c67da8eceb0eb8ddb8b3847bb53c5c2bf",
- "shasum": ""
- },
- "require": {
- "doctrine/instantiator": "^1.0.2",
- "php": "^5.3|^7.0",
- "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0",
- "sebastian/comparator": "^1.1|^2.0",
- "sebastian/recursion-context": "^1.0|^2.0|^3.0"
- },
- "require-dev": {
- "phpspec/phpspec": "^2.5|^3.2",
- "phpunit/phpunit": "^4.8.35 || ^5.7"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.7.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Prophecy\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Konstantin Kudryashov",
- "email": "ever.zet@gmail.com",
- "homepage": "http://everzet.com"
- },
- {
- "name": "Marcello Duarte",
- "email": "marcello.duarte@gmail.com"
- }
- ],
- "description": "Highly opinionated mocking framework for PHP 5.3+",
- "homepage": "https://github.com/phpspec/prophecy",
- "keywords": [
- "Double",
- "Dummy",
- "fake",
- "mock",
- "spy",
- "stub"
- ],
- "time": "2017-11-24T13:59:53+00:00"
- },
- {
- "name": "phpunit/php-code-coverage",
- "version": "5.2.4",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "033ec97498cf530cc1be4199264cad568b19be26"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/033ec97498cf530cc1be4199264cad568b19be26",
- "reference": "033ec97498cf530cc1be4199264cad568b19be26",
- "shasum": ""
- },
- "require": {
- "ext-dom": "*",
- "ext-xmlwriter": "*",
- "php": "^7.0",
- "phpunit/php-file-iterator": "^1.4.2",
- "phpunit/php-text-template": "^1.2.1",
- "phpunit/php-token-stream": "^2.0.1",
- "sebastian/code-unit-reverse-lookup": "^1.0.1",
- "sebastian/environment": "^3.0",
- "sebastian/version": "^2.0.1",
- "theseer/tokenizer": "^1.1"
- },
- "require-dev": {
- "ext-xdebug": "^2.5",
- "phpunit/phpunit": "^6.0"
- },
- "suggest": {
- "ext-xdebug": "^2.5.5"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "5.2.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sb@sebastian-bergmann.de",
- "role": "lead"
- }
- ],
- "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
- "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
- "keywords": [
- "coverage",
- "testing",
- "xunit"
- ],
- "time": "2017-11-27T09:00:30+00:00"
- },
- {
- "name": "phpunit/php-file-iterator",
- "version": "1.4.5",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4",
- "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.4.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sb@sebastian-bergmann.de",
- "role": "lead"
- }
- ],
- "description": "FilterIterator implementation that filters files based on a list of suffixes.",
- "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
- "keywords": [
- "filesystem",
- "iterator"
- ],
- "time": "2017-11-27T13:52:08+00:00"
- },
- {
- "name": "phpunit/php-text-template",
- "version": "1.2.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-text-template.git",
- "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
- "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Simple template engine.",
- "homepage": "https://github.com/sebastianbergmann/php-text-template/",
- "keywords": [
- "template"
- ],
- "time": "2015-06-21T13:50:34+00:00"
- },
- {
- "name": "phpunit/php-timer",
- "version": "1.0.9",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
- "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
- "shasum": ""
- },
- "require": {
- "php": "^5.3.3 || ^7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sb@sebastian-bergmann.de",
- "role": "lead"
- }
- ],
- "description": "Utility class for timing",
- "homepage": "https://github.com/sebastianbergmann/php-timer/",
- "keywords": [
- "timer"
- ],
- "time": "2017-02-26T11:10:40+00:00"
- },
- {
- "name": "phpunit/php-token-stream",
- "version": "2.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-token-stream.git",
- "reference": "791198a2c6254db10131eecfe8c06670700904db"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/791198a2c6254db10131eecfe8c06670700904db",
- "reference": "791198a2c6254db10131eecfe8c06670700904db",
- "shasum": ""
- },
- "require": {
- "ext-tokenizer": "*",
- "php": "^7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^6.2.4"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Wrapper around PHP's tokenizer extension.",
- "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
- "keywords": [
- "tokenizer"
- ],
- "time": "2017-11-27T05:48:46+00:00"
- },
- {
- "name": "phpunit/phpunit",
- "version": "6.5.2",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "24b708f2fd725bcef1c8153b366043381aa324f2"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/24b708f2fd725bcef1c8153b366043381aa324f2",
- "reference": "24b708f2fd725bcef1c8153b366043381aa324f2",
- "shasum": ""
- },
- "require": {
- "ext-dom": "*",
- "ext-json": "*",
- "ext-libxml": "*",
- "ext-mbstring": "*",
- "ext-xml": "*",
- "myclabs/deep-copy": "^1.6.1",
- "phar-io/manifest": "^1.0.1",
- "phar-io/version": "^1.0",
- "php": "^7.0",
- "phpspec/prophecy": "^1.7",
- "phpunit/php-code-coverage": "^5.2.3",
- "phpunit/php-file-iterator": "^1.4.3",
- "phpunit/php-text-template": "^1.2.1",
- "phpunit/php-timer": "^1.0.9",
- "phpunit/phpunit-mock-objects": "^5.0.4",
- "sebastian/comparator": "^2.1",
- "sebastian/diff": "^2.0",
- "sebastian/environment": "^3.1",
- "sebastian/exporter": "^3.1",
- "sebastian/global-state": "^2.0",
- "sebastian/object-enumerator": "^3.0.3",
- "sebastian/resource-operations": "^1.0",
- "sebastian/version": "^2.0.1"
- },
- "conflict": {
- "phpdocumentor/reflection-docblock": "3.0.2",
- "phpunit/dbunit": "<3.0"
- },
- "require-dev": {
- "ext-pdo": "*"
- },
- "suggest": {
- "ext-xdebug": "*",
- "phpunit/php-invoker": "^1.1"
- },
- "bin": [
- "phpunit"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "6.5.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "The PHP Unit Testing framework.",
- "homepage": "https://phpunit.de/",
- "keywords": [
- "phpunit",
- "testing",
- "xunit"
- ],
- "time": "2017-12-02T05:36:24+00:00"
- },
- {
- "name": "phpunit/phpunit-mock-objects",
- "version": "5.0.4",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
- "reference": "16b50f4167e5e85e81ca8a3dd105d0a5fd32009a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/16b50f4167e5e85e81ca8a3dd105d0a5fd32009a",
- "reference": "16b50f4167e5e85e81ca8a3dd105d0a5fd32009a",
- "shasum": ""
- },
- "require": {
- "doctrine/instantiator": "^1.0.5",
- "php": "^7.0",
- "phpunit/php-text-template": "^1.2.1",
- "sebastian/exporter": "^3.0"
- },
- "conflict": {
- "phpunit/phpunit": "<6.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^6.5"
- },
- "suggest": {
- "ext-soap": "*"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "5.0.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Mock Object library for PHPUnit",
- "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
- "keywords": [
- "mock",
- "xunit"
- ],
- "time": "2017-12-02T05:31:19+00:00"
- },
- {
- "name": "sebastian/code-unit-reverse-lookup",
- "version": "1.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
- "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
- "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
- "shasum": ""
- },
- "require": {
- "php": "^5.6 || ^7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^5.7 || ^6.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Looks up which function or method a line of code belongs to",
- "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
- "time": "2017-03-04T06:30:41+00:00"
- },
- {
- "name": "sebastian/comparator",
- "version": "2.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "1174d9018191e93cb9d719edec01257fc05f8158"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1174d9018191e93cb9d719edec01257fc05f8158",
- "reference": "1174d9018191e93cb9d719edec01257fc05f8158",
- "shasum": ""
- },
- "require": {
- "php": "^7.0",
- "sebastian/diff": "^2.0",
- "sebastian/exporter": "^3.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^6.4"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.1.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
- },
- {
- "name": "Volker Dusch",
- "email": "github@wallbash.com"
- },
- {
- "name": "Bernhard Schussek",
- "email": "bschussek@2bepublished.at"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Provides the functionality to compare PHP values for equality",
- "homepage": "https://github.com/sebastianbergmann/comparator",
- "keywords": [
- "comparator",
- "compare",
- "equality"
- ],
- "time": "2017-11-03T07:16:52+00:00"
- },
- {
- "name": "sebastian/diff",
- "version": "2.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/347c1d8b49c5c3ee30c7040ea6fc446790e6bddd",
- "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd",
- "shasum": ""
- },
- "require": {
- "php": "^7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^6.2"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Kore Nordmann",
- "email": "mail@kore-nordmann.de"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Diff implementation",
- "homepage": "https://github.com/sebastianbergmann/diff",
- "keywords": [
- "diff"
- ],
- "time": "2017-08-03T08:09:46+00:00"
- },
- {
- "name": "sebastian/environment",
- "version": "3.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5",
- "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5",
- "shasum": ""
- },
- "require": {
- "php": "^7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^6.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.1.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Provides functionality to handle HHVM/PHP environments",
- "homepage": "http://www.github.com/sebastianbergmann/environment",
- "keywords": [
- "Xdebug",
- "environment",
- "hhvm"
- ],
- "time": "2017-07-01T08:51:00+00:00"
- },
- {
- "name": "sebastian/exporter",
- "version": "3.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "234199f4528de6d12aaa58b612e98f7d36adb937"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937",
- "reference": "234199f4528de6d12aaa58b612e98f7d36adb937",
- "shasum": ""
- },
- "require": {
- "php": "^7.0",
- "sebastian/recursion-context": "^3.0"
- },
- "require-dev": {
- "ext-mbstring": "*",
- "phpunit/phpunit": "^6.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.1.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
- },
- {
- "name": "Volker Dusch",
- "email": "github@wallbash.com"
- },
- {
- "name": "Bernhard Schussek",
- "email": "bschussek@2bepublished.at"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- },
- {
- "name": "Adam Harvey",
- "email": "aharvey@php.net"
- }
- ],
- "description": "Provides the functionality to export PHP variables for visualization",
- "homepage": "http://www.github.com/sebastianbergmann/exporter",
- "keywords": [
- "export",
- "exporter"
- ],
- "time": "2017-04-03T13:19:02+00:00"
- },
- {
- "name": "sebastian/global-state",
- "version": "2.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
- "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
- "shasum": ""
- },
- "require": {
- "php": "^7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^6.0"
- },
- "suggest": {
- "ext-uopz": "*"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Snapshotting of global state",
- "homepage": "http://www.github.com/sebastianbergmann/global-state",
- "keywords": [
- "global state"
- ],
- "time": "2017-04-27T15:39:26+00:00"
- },
- {
- "name": "sebastian/object-enumerator",
- "version": "3.0.3",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/object-enumerator.git",
- "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5",
- "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5",
- "shasum": ""
- },
- "require": {
- "php": "^7.0",
- "sebastian/object-reflector": "^1.1.1",
- "sebastian/recursion-context": "^3.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^6.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.0.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Traverses array structures and object graphs to enumerate all referenced objects",
- "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
- "time": "2017-08-03T12:35:26+00:00"
- },
- {
- "name": "sebastian/object-reflector",
- "version": "1.1.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/object-reflector.git",
- "reference": "773f97c67f28de00d397be301821b06708fca0be"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be",
- "reference": "773f97c67f28de00d397be301821b06708fca0be",
- "shasum": ""
- },
- "require": {
- "php": "^7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^6.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.1-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Allows reflection of object attributes, including inherited and non-public ones",
- "homepage": "https://github.com/sebastianbergmann/object-reflector/",
- "time": "2017-03-29T09:07:27+00:00"
- },
- {
- "name": "sebastian/recursion-context",
- "version": "3.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
- "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
- "shasum": ""
- },
- "require": {
- "php": "^7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^6.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.0.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- },
- {
- "name": "Adam Harvey",
- "email": "aharvey@php.net"
- }
- ],
- "description": "Provides functionality to recursively process PHP variables",
- "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
- "time": "2017-03-03T06:23:57+00:00"
- },
- {
- "name": "sebastian/resource-operations",
- "version": "1.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/resource-operations.git",
- "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
- "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
- "shasum": ""
- },
- "require": {
- "php": ">=5.6.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Provides a list of PHP built-in functions that operate on resources",
- "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
- "time": "2015-07-28T20:34:47+00:00"
- },
- {
- "name": "sebastian/version",
- "version": "2.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/version.git",
- "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
- "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
- "shasum": ""
- },
- "require": {
- "php": ">=5.6"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Library that helps with managing the version number of Git-hosted PHP projects",
- "homepage": "https://github.com/sebastianbergmann/version",
- "time": "2016-10-03T07:35:21+00:00"
- },
- {
- "name": "theseer/tokenizer",
- "version": "1.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/theseer/tokenizer.git",
- "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/theseer/tokenizer/zipball/cb2f008f3f05af2893a87208fe6a6c4985483f8b",
- "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b",
- "shasum": ""
- },
- "require": {
- "ext-dom": "*",
- "ext-tokenizer": "*",
- "ext-xmlwriter": "*",
- "php": "^7.0"
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Arne Blankerts",
- "email": "arne@blankerts.de",
- "role": "Developer"
- }
- ],
- "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
- "time": "2017-04-07T12:08:54+00:00"
- },
- {
- "name": "webmozart/assert",
- "version": "1.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/webmozart/assert.git",
- "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/webmozart/assert/zipball/2db61e59ff05fe5126d152bd0655c9ea113e550f",
- "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f",
- "shasum": ""
- },
- "require": {
- "php": "^5.3.3 || ^7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.6",
- "sebastian/version": "^1.0.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.3-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Webmozart\\Assert\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Bernhard Schussek",
- "email": "bschussek@gmail.com"
- }
- ],
- "description": "Assertions to validate method input/output with nice error messages.",
- "keywords": [
- "assert",
- "check",
- "validate"
- ],
- "time": "2016-11-23T20:04:58+00:00"
- }
- ],
- "aliases": [],
- "minimum-stability": "stable",
- "stability-flags": [],
- "prefer-stable": false,
- "prefer-lowest": false,
- "platform": {
- "php": ">=7.1.0"
- },
- "platform-dev": []
-}
diff --git a/config/app.php b/config/app.php
index ae9d671..b0862f2 100644
--- a/config/app.php
+++ b/config/app.php
@@ -176,6 +176,7 @@
// App\Providers\BroadcastServiceProvider::class,
App\Providers\EventServiceProvider::class,
App\Providers\RouteServiceProvider::class,
+ LaravelFCM\FCMServiceProvider::class,
],
@@ -225,6 +226,8 @@
'URL' => Illuminate\Support\Facades\URL::class,
'Validator' => Illuminate\Support\Facades\Validator::class,
'View' => Illuminate\Support\Facades\View::class,
+ 'FCM' => LaravelFCM\Facades\FCM::class,
+ 'FCMGroup' => LaravelFCM\Facades\FCMGroup::class, // Optional
],
diff --git a/config/fcm.php b/config/fcm.php
new file mode 100644
index 0000000..a2ea487
--- /dev/null
+++ b/config/fcm.php
@@ -0,0 +1,14 @@
+ env('FCM_PROTOCOL', 'http'),
+ 'log_enabled' => false,
+
+ 'http' => [
+ 'server_key' => env('FCM_SERVER_KEY', 'Your FCM server key'),
+ 'sender_id' => env('FCM_SENDER_ID', 'Your sender id'),
+ 'server_send_url' => 'https://fcm.googleapis.com/fcm/send',
+ 'server_group_url' => 'https://android.googleapis.com/gcm/notification',
+ 'timeout' => 30.0, // in second
+ ],
+];
diff --git a/readme.md b/readme.md
deleted file mode 100644
index 10c8506..0000000
--- a/readme.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# discountFinderBackend
-The Backend service of discountFinder solution
-
-# Prepare JetBrain's PhpStorm for Laravel Development
-https://confluence.jetbrains.com/display/PhpStorm/Laravel+Development+using+PhpStorm
-
-# Basic commands
-* Create a new model
-artisan make:model {NAME}
-* Create a new controller
-artisan make:controller {NAME}
-* Start server
-php artisan serve
diff --git a/routes/api.php b/routes/api.php
index 098bdae..3ee21db 100644
--- a/routes/api.php
+++ b/routes/api.php
@@ -13,60 +13,63 @@
|
*/
-// Sample route
-Route::get('/helloWorld', 'helloWorldController@getHelloWorld');
-
-// Auth Routes
-Route::post('register', 'AuthApi\RegisterController@register');
-Route::post('login', 'AuthApi\LoginController@login');
-Route::post('refresh', 'AuthApi\LoginController@refresh');
-Route::group(['middleware' => 'auth:api'], function(){
-
- Route::post('logout', 'AuthApi\LoginController@logout');
+// Auth
+Route::post('register', 'Auth\RegisterController@register');
+Route::post('login', 'Auth\LoginController@login');
+Route::post('refresh', 'Auth\LoginController@refresh');
+Route::group(['middleware' => 'auth:api'], function () {
+ Route::post('logout', 'Auth\LoginController@logout');
Route::get('/user', function (Request $request) {
return $request->user();
});
-
});
-// Shops Routes
-Route::get('/shop','shopController@list');
-Route::get('/shop/{id}', 'shopController@get');
-
+// Shops
+Route::get('/shop', 'ShopController@list');
+Route::get('/shop/{id}', 'ShopController@get');
Route::group(['middleware' => 'auth:api'], function () {
- Route::get('/user/shop', 'shopController@myList');
- Route::get('/user/shop/{id}', 'shopController@myGet');
- Route::post('/shop', 'shopController@post');
- Route::put('/shop', 'shopController@update');
- Route::delete('/shop/{id}', 'shopController@delete');
+ Route::get('/user/shop', 'ShopController@myList');
+ Route::get('/user/shop/{id}', 'ShopController@myGet');
+ Route::get('/user/shop/{id}/discounts', 'ShopController@myDiscounts');
+ Route::post('/shop', 'ShopController@post');
+ Route::put('/shop', 'ShopController@update');
+ Route::delete('/shop/{id}', 'ShopController@delete');
});
-//Custom category controllers
-Route::get('/category','categoryController@list');
-Route::get('/category/{id}','categoryController@get');
-Route::post('/category','categoryController@post');
-Route::put('/category','categoryController@update');
-Route::delete('/category/{title}','categoryController@remove');
+// Category
+Route::get('/category', 'CategoryController@list');
+Route::get('/category/{id}', 'CategoryController@get');
+Route::post('/category', 'CategoryController@post');
+Route::put('/category', 'CategoryController@update');
+Route::delete('/category/{title}', 'CategoryController@remove');
-//find discounts
-Route::middleware('auth:api')->post('/user/findDiscounts','findDiscountsController@list');
+// Find Discounts
+Route::middleware('auth:api')->post('/user/findDiscounts', 'FindDiscountsController@list');
+Route::middleware('auth:api')->post('/user/getTopList', 'FindDiscountsController@TopList');
+// FCM DeviceToken
+Route::middleware('auth:api')->post('/user/deviceToken', 'DeviceTokenController@setDeviceToken');
-// Requested Discount Routes
+// Requested Discounts
Route::group(['middleware' => 'auth:api'], function () {
- Route::get('/requestedDiscount', 'requestedDiscountController@list');
- Route::get('/requestedDiscount/{id}', 'requestedDiscountController@get');
- Route::post('/requestedDiscount','requestedDiscountController@post');
- Route::put('/requestedDiscount/{id}','requestedDiscountController@put');
- Route::delete('/requestedDiscount/{id}','requestedDiscountController@delete');
+ Route::get('/requestedDiscount', 'RequestedDiscountController@list');
+ Route::get('/requestedDiscount/{id}', 'RequestedDiscountController@get');
+ Route::post('/requestedDiscount', 'RequestedDiscountController@post');
+ Route::put('/requestedDiscount/{id}', 'RequestedDiscountController@put');
+ Route::delete('/requestedDiscount/{id}', 'RequestedDiscountController@delete');
});
-//Discount Controller Routes
+// Location
Route::group(['middleware' => 'auth:api'], function () {
-Route::get('/discount','discountController@list');
-Route::get('/discount/{id}','discountController@get');
-Route::post('/discount','discountController@post');
-Route::put('/discount/{id}','discountController@put');
-Route::delete('discount/{id}','discountController@delete');
+ Route::put('/updateUserLocation', 'UpdateUserLocationController@update');
+ Route::get('/updateUserLocation', 'UpdateUserLocationController@list');
+});
+//Discount Controller Routes
+Route::group(['middleware' => 'auth:api'], function () {
+ Route::get('/discount', 'DiscountController@list');
+ Route::get('/discount/{id}', 'DiscountController@get');
+ Route::post('/discount', 'DiscountController@post');
+ Route::put('/discount/{id}', 'DiscountController@put');
+ Route::delete('discount/{id}', 'DiscountController@delete');
});
\ No newline at end of file
diff --git a/tests/Feature/AuthApi/LoginControllerTest.php b/tests/Feature/AuthApi/LoginControllerTest.php
deleted file mode 100644
index 6c6ca8f..0000000
--- a/tests/Feature/AuthApi/LoginControllerTest.php
+++ /dev/null
@@ -1,147 +0,0 @@
-json('POST', 'api/register', [
- 'firstName' => 'sotiris',
- 'lastName' => 'yolo4',
- 'eMail' => 'AuthTestEmailAuthTestEmail@hotmail.com',
- 'password' => '1234567'
- ]);
-
- $response->assertJsonStructure(['token_type', 'expires_in', 'access_token', 'refresh_token']);
-
- }
-
-
-
- public function testRegisterUserEmailExists()
- {
-
- $response = $this->json('POST', 'api/register', [
- 'firstName' => 'kwstas',
- 'lastName'=>'yolo22',
- 'eMail'=>'AuthTestEmailAuthTestEmail@hotmail.com',
- 'password'=>'123456722'
- ]);
-
- $response->assertJson([
- 'errors'=>['eMail'=>['The e mail has already been taken.']]]);
-
- }
-
-
-
-
-
- public function testLoginUser(){
- $response = $this->json('POST', 'api/login', [
-
- 'username'=>'AuthTestEmailAuthTestEmail@hotmail.com',
- 'password'=>'1234567'
- ]);
- LoginControllerTest::$AuthValues=json_decode($response->getContent(),true);
-
-
- $response->assertJsonStructure(['token_type','expires_in','access_token','refresh_token']);
-
-
- }
-
- public function testInvalidLoginUserPassword(){
- $response = $this->json('POST', 'api/login', [
-
- 'username' => 'AuthTestEmailAuthTestEmail@hotmail.com',
- 'password' => '123456789'
- ]);
- $response->assertJson(['message'=>'The user credentials were incorrect.']);
-
-
- }
-
- public function testInvalidLoginUserEmail(){
- $response = $this->json('POST', 'api/login', [
-
- 'username' => '111AuthTestEmailAuthTestEmail@hotmail.com',
- 'password' => '1234567'
- ]);
- $response->assertJson(['message'=>'The user credentials were incorrect.']);
-
-
- }
-
-
-
- public function testEndPointUser(){
- $token=LoginControllerTest::$AuthValues['access_token'];
-
- $response= $this->withHeader('Authorization','Bearer ' . $token)->json('GET','api/user');
-
- $response->assertStatus(200);
-
- }
-
- public function testInvalidToken(){
- $token=LoginControllerTest::$AuthValues['access_token'];
-
- $response= $this->withHeader('Authorization','Bearer ' . $token.'sdds')->json('GET','api/user');
-
- $response->assertJson(['message'=>'Unauthenticated.']);
-
- }
-
-
-
- public function testRefreshToken(){
-
- $refreshToken=LoginControllerTest::$AuthValues['refresh_token'];
- $response = $this->json('POST', 'api/refresh', [
-
- 'refresh_token' => $refreshToken,
-
- ]);
- LoginControllerTest::$AuthValues=json_decode($response->getContent(),true);
-
- $response->assertStatus(200);
-
- }
-
- public function testLogout(){
- $token=LoginControllerTest::$AuthValues['access_token'];
-
- $response= $this->withHeader('Authorization','Bearer ' . $token)->json('POST','api/logout');
- //Status 204 :The server successfully processed the request and is not returning any content
- $response->assertStatus(204);
-
-
- }
-
-
-
- public function testDeleteUser(){
-
- DB::table('users')->where('eMail','AuthTestEmailAuthTestEmail@hotmail.com')->delete();
-
- $this->assertDatabaseMissing('users', [
- 'eMail' => 'AuthTestEmailAuthTestEmail@hotmail.com'
- ]);
- }
-
-
-
-}
diff --git a/tests/Feature/AuthApi/RegisterControllerTest.php b/tests/Feature/AuthApi/RegisterControllerTest.php
deleted file mode 100644
index 676245e..0000000
--- a/tests/Feature/AuthApi/RegisterControllerTest.php
+++ /dev/null
@@ -1,125 +0,0 @@
-json('POST', 'api/register', [
- 'firstName' => 'sotiris',
- 'lastName'=>'yolo4',
- 'eMail'=>'AuthTestEmailAuthTestEmailhotmail.com',
- 'password'=>'1234567'
- ]);
- $response->assertJson([
- 'errors'=>['eMail'=>['The e mail must be a valid email address.']]]);
-
- }
-
- public function testInvalidEmailDot(){
-
- $response = $this->json('POST', 'api/register', [
- 'firstName' => 'sotiris',
- 'lastName'=>'yolo4',
- 'eMail'=>'AuthTestEmailAuthTestEmail@hotmailcom',
- 'password'=>'1234567'
- ]);
- $response->assertJson([
- 'errors'=>['eMail'=>['The e mail must be a valid email address.']]]);
-
- }
-
- public function testInvalidPasswordMin6(){
-
- $response = $this->json('POST', 'api/register', [
- 'firstName' => 'sotiris',
- 'lastName'=>'yolo4',
- 'eMail'=>'AuthTestEmailAuthTestEmail@hotmail.com',
- 'password'=>'12345'
- ]);
- $response->assertJson([
- 'errors'=>['password'=>['The password must be at least 6 characters.']]]);
-
- }
-
- public function testInvalidPasswordMax50(){
-
- $response = $this->json('POST', 'api/register', [
- 'firstName' => 'sotiris',
- 'lastName'=>'yolo4',
- 'eMail'=>'AuthTestEmailAuthTestEmail@hotmail.com',
- 'password'=>'12345ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss'
- ]);
- $response->assertJson([
- 'errors'=>['password'=>['The password may not be greater than 50 characters.']]]);
-
- }
-
- public function testEmptyFieldFirstName()
- {
-
- $response = $this->json('POST', 'api/register', [
-
- 'lastName' => 'yolo4',
- 'eMail' => 'AuthTestEmailAuthTestEmail@hotmail.com',
- 'password' => '1234567'
- ]);
- $response->assertJson([
- 'errors' => ['firstName' => ['The first name field is required.']]]);
-
- }
- public function testEmptyFieldLastName()
- {
-
- $response = $this->json('POST', 'api/register', [
- 'firstName' => 'sotiris',
-
- 'eMail' => 'AuthTestEmailAuthTestEmail@hotmail.com',
- 'password' => '1234567'
- ]);
- $response->assertJson([
- 'errors' => ['lastName' => ['The last name field is required.']]]);
-
-
- }
-
- public function testEmptyFieldEmail(){
-
- $response = $this->json('POST', 'api/register', [
- 'firstName' => 'sotiris',
- 'lastName'=>'yolo4',
-
- 'password'=>'12345ssss'
- ]);
- $response->assertJson([
- 'errors'=>['eMail'=>['The e mail field is required.']]]);
-
- }
-
- public function testEmptyFieldPassword(){
-
- $response = $this->json('POST', 'api/register', [
- 'firstName' => 'sotiris',
- 'lastName'=>'yolo4',
- 'eMail' => 'AuthTestEmailAuthTestEmail@hotmail.com'
-
- ]);
- $response->assertJson([
- 'errors'=>['password'=>['The password field is required.']]]);
-
- }
-
-}
diff --git a/tests/Feature/ManagementTest.php b/tests/Feature/ManagementTest.php
deleted file mode 100644
index a54e20c..0000000
--- a/tests/Feature/ManagementTest.php
+++ /dev/null
@@ -1,26 +0,0 @@
-assertTrue(true);
- }
- public function testJSONPost() {
-// $this->get('/category',['id'=>'daidallos'])
-// ->seeJson([
-// 'created'=>true,
-// ]);
- $this->assertTrue(true);
- }
-}
diff --git a/tests/Feature/app/Http/Controllers/Auth/LoginControllerTest.php b/tests/Feature/app/Http/Controllers/Auth/LoginControllerTest.php
new file mode 100644
index 0000000..e90dbae
--- /dev/null
+++ b/tests/Feature/app/Http/Controllers/Auth/LoginControllerTest.php
@@ -0,0 +1,139 @@
+json('POST', 'api/register', [
+ 'firstName' => 'A Test',
+ 'lastName' => 'User 2',
+ 'eMail' => 'TestUser2@JNKSoftware.eu',
+ 'password' => '1234567'
+ ]);
+
+ $response->assertJsonStructure(['token_type', 'expires_in', 'access_token', 'refresh_token']);
+
+ }
+
+
+ public function testRegisterUserEmailExists()
+ {
+
+ $response = $this->json('POST', 'api/register', [
+ 'firstName' => 'A Test',
+ 'lastName' => 'User',
+ 'eMail' => 'TestUser2@JNKSoftware.eu',
+ 'password' => '123456722'
+ ]);
+
+ $response->assertJson([
+ 'errors' => ['eMail' => ['The e mail has already been taken.']]]);
+
+ }
+
+
+ public function testLoginUser()
+ {
+ $response = $this->json('POST', 'api/login', [
+ 'username' => 'TestUser2@JNKSoftware.eu',
+ 'password' => '1234567'
+ ]);
+ LoginControllerTest::$AuthValues = json_decode($response->getContent(), true);
+
+ $response->assertJsonStructure(['token_type', 'expires_in', 'access_token', 'refresh_token']);
+ }
+
+ public function testInvalidLoginUserPassword()
+ {
+ $response = $this->json('POST', 'api/login', [
+
+ 'username' => 'TestUser2@JNKSoftware.eu',
+ 'password' => '123456789'
+ ]);
+ $response->assertJson(['message' => 'The user credentials were incorrect.']);
+
+
+ }
+
+ public function testInvalidLoginUserEmail()
+ {
+ $response = $this->json('POST', 'api/login', [
+
+ 'username' => '111AuthTestEmailAuthTestEmail@hotmail.com',
+ 'password' => '1234567'
+ ]);
+ $response->assertJson(['message' => 'The user credentials were incorrect.']);
+
+
+ }
+
+
+ public function testEndPointUser()
+ {
+ $token = LoginControllerTest::$AuthValues['access_token'];
+
+ $response = $this->withHeader('Authorization', 'Bearer ' . $token)->json('GET', 'api/user');
+
+ $response->assertStatus(200);
+
+ }
+
+ public function testInvalidToken()
+ {
+ $token = LoginControllerTest::$AuthValues['access_token'];
+
+ $response = $this->withHeader('Authorization', 'Bearer ' . $token . 'sdds')->json('GET', 'api/user');
+
+ $response->assertJson(['message' => 'Unauthenticated.']);
+
+ }
+
+
+ public function testRefreshToken()
+ {
+
+ $refreshToken = LoginControllerTest::$AuthValues['refresh_token'];
+ $response = $this->json('POST', 'api/refresh', [
+
+ 'refresh_token' => $refreshToken,
+
+ ]);
+ LoginControllerTest::$AuthValues = json_decode($response->getContent(), true);
+
+ $response->assertStatus(200);
+
+ }
+
+ public function testLogout()
+ {
+ $token = LoginControllerTest::$AuthValues['access_token'];
+
+ $response = $this->withHeader('Authorization', 'Bearer ' . $token)->json('POST', 'api/logout');
+ //Status 204 :The server successfully processed the request and is not returning any content
+ $response->assertStatus(204);
+
+
+ }
+
+
+ public function testDeleteUser()
+ {
+
+ DB::table('users')->where('eMail', 'TestUser2@JNKSoftware.eu')->delete();
+
+ $this->assertDatabaseMissing('users', [
+ 'eMail' => 'TestUser2@JNKSoftware.eu'
+ ]);
+ }
+
+
+}
diff --git a/tests/Feature/app/Http/Controllers/Auth/RegisterControllerTest.php b/tests/Feature/app/Http/Controllers/Auth/RegisterControllerTest.php
new file mode 100644
index 0000000..988f332
--- /dev/null
+++ b/tests/Feature/app/Http/Controllers/Auth/RegisterControllerTest.php
@@ -0,0 +1,129 @@
+json('POST', 'api/register', [
+ 'firstName' => 'A Test',
+ 'lastName' => 'User',
+ 'eMail' => 'AuthTestEmailAuthTestEmailhotmail.com',
+ 'password' => '1234567'
+ ]);
+ $response->assertJson([
+ 'errors' => ['eMail' => ['The e mail must be a valid email address.']]
+ ]);
+
+ }
+
+ public function testInvalidEmailDot()
+ {
+ $response = $this->json('POST', 'api/register', [
+ 'firstName' => 'A Test',
+ 'lastName' => 'User',
+ 'eMail' => 'AuthTestEmailAuthTestEmail@hotmailcom',
+ 'password' => '1234567'
+ ]);
+ $response->assertJson([
+ 'errors' => ['eMail' => ['The e mail must be a valid email address.']]
+ ]);
+
+ }
+
+ public function testInvalidPasswordMin6()
+ {
+
+ $response = $this->json('POST', 'api/register', [
+ 'firstName' => 'A Test',
+ 'lastName' => 'User',
+ 'eMail' => 'AuthTestEmailAuthTestEmail@hotmail.com',
+ 'password' => '12345'
+ ]);
+ $response->assertJson([
+ 'errors' => ['password' => ['The password must be at least 6 characters.']]
+ ]);
+
+ }
+
+ public function testInvalidPasswordMax50()
+ {
+
+ $response = $this->json('POST', 'api/register', [
+ 'firstName' => 'A Test',
+ 'lastName' => 'User',
+ 'eMail' => 'AuthTestEmailAuthTestEmail@hotmail.com',
+ 'password' => '12345ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss'
+ ]);
+ $response->assertJson([
+ 'errors' => ['password' => ['The password may not be greater than 50 characters.']]
+ ]);
+
+ }
+
+ public function testEmptyFieldFirstName()
+ {
+
+ $response = $this->json('POST', 'api/register', [
+
+ 'lastName' => 'User',
+ 'eMail' => 'AuthTestEmailAuthTestEmail@hotmail.com',
+ 'password' => '1234567'
+ ]);
+ $response->assertJson([
+ 'errors' => ['firstName' => ['The first name field is required.']]
+ ]);
+
+ }
+
+ public function testEmptyFieldLastName()
+ {
+
+ $response = $this->json('POST', 'api/register', [
+ 'firstName' => 'A Test',
+
+ 'eMail' => 'AuthTestEmailAuthTestEmail@hotmail.com',
+ 'password' => '1234567'
+ ]);
+ $response->assertJson([
+ 'errors' => ['lastName' => ['The last name field is required.']]
+ ]);
+
+
+ }
+
+ public function testEmptyFieldEmail()
+ {
+
+ $response = $this->json('POST', 'api/register', [
+ 'firstName' => 'A Test',
+ 'lastName' => 'User',
+
+ 'password' => '12345ssss'
+ ]);
+ $response->assertJson([
+ 'errors' => ['eMail' => ['The e mail field is required.']]
+ ]);
+
+ }
+
+ public function testEmptyFieldPassword()
+ {
+
+ $response = $this->json('POST', 'api/register', [
+ 'firstName' => 'A Test',
+ 'lastName' => 'User',
+ 'eMail' => 'AuthTestEmailAuthTestEmail@hotmail.com'
+
+ ]);
+ $response->assertJson([
+ 'errors' => ['password' => ['The password field is required.']]
+ ]);
+
+ }
+
+}
diff --git a/tests/Feature/app/Http/Controllers/CategoryControllerTest.php b/tests/Feature/app/Http/Controllers/CategoryControllerTest.php
new file mode 100644
index 0000000..f5d13ce
--- /dev/null
+++ b/tests/Feature/app/Http/Controllers/CategoryControllerTest.php
@@ -0,0 +1,12 @@
+json('POST', 'api/login', [
+ 'username' => 'TestUser@JNKSoftware.eu',
+ 'password' => '1234567'
+ ]);
+
+ deviceTokenControllerTest::$AuthValues = json_decode($response->getContent(), true);
+ $response->assertStatus(200);
+ }
+
+
+ public function testEmptyFieldDeviceToken()
+ {
+ $token = deviceTokenControllerTest::$AuthValues['access_token'];
+ $response = $this->withHeader(
+ 'Authorization',
+ 'Bearer ' . $token
+ )->json(
+ 'POST', 'api/user/deviceToken', [
+
+ ]);
+
+ $response->assertJson([
+ 'errors' => ['deviceToken' => ['The device token field is required.']]]);
+
+ }
+
+ public function testSuccessStatus()
+ {
+ $token = deviceTokenControllerTest::$AuthValues['access_token'];
+
+ $response = $this->withHeader('Authorization', 'Bearer ' . $token)->json('POST', 'api/user/deviceToken', [
+ 'deviceToken' => 'testing'
+
+ ]);
+
+ $response->assertStatus(200);
+ }
+
+ public function testDatabaseData()
+ {
+ $this->assertDatabaseHas('users', ['deviceToken' => 'testing']);
+
+ }
+
+ public function testUpdateSuccessStatus()
+ {
+ $token = deviceTokenControllerTest::$AuthValues['access_token'];
+
+ $response = $this->withHeader('Authorization', 'Bearer ' . $token)->json('POST', 'api/user/deviceToken', [
+ 'deviceToken' => 'Test'
+
+ ]);
+
+ $response->assertStatus(200);
+ $this->assertDatabaseMissing('users', ['deviceToken' => 'testing']);
+ $this->assertDatabaseHas('users', ['deviceToken' => 'Test']);
+ }
+
+}
diff --git a/tests/Feature/app/Http/Controllers/FindDiscountsControllerTest.php b/tests/Feature/app/Http/Controllers/FindDiscountsControllerTest.php
new file mode 100644
index 0000000..0ab4dc3
--- /dev/null
+++ b/tests/Feature/app/Http/Controllers/FindDiscountsControllerTest.php
@@ -0,0 +1,337 @@
+json('POST', 'api/login', [
+ 'username' => 'TestUser@JNKSoftware.eu',
+ 'password' => '1234567'
+ ]);
+
+ findDiscountsControllerTest::$AuthValues=json_decode($response->getContent(),true);
+ $response->assertStatus(200);
+
+
+ }
+//--------------------------------------------- TESTING /findDiscounts---------------------------------------------------------------
+ // i am using coordinates from googlemaps
+ // 41.088591, 23.551272
+
+ public function testEmptyFieldDistanceEndPointFindDiscounts()
+ {
+ $token=findDiscountsControllerTest::$AuthValues['access_token'];
+
+ $response = $this->withHeader('Authorization','Bearer '.$token)->json('POST','api/user/findDiscounts', [
+
+ 'logPos' => '41.088591',
+ 'latPos' => '23.551272',
+ ]);
+
+ $response->assertJson([
+ 'errors'=>['distanceInMeters'=>['The distance in meters field is required.']]]);
+
+ }
+
+
+ public function testEmptyFieldLogPosEndPointFindDiscounts()
+ {
+ $token=findDiscountsControllerTest::$AuthValues['access_token'];
+
+ $response = $this->withHeader('Authorization','Bearer '.$token)->json('POST','api/user/findDiscounts', [
+
+
+ 'latPos' => '23.551272',
+ 'distanceInMeters' => '1200'
+
+ ]);
+
+ $response->assertJson([
+ 'errors'=>['logPos'=>['The log pos field is required.']]]);
+
+ }
+
+
+
+ public function testEmptyFieldLatPosEndPointFindDiscounts()
+ {
+ $token=findDiscountsControllerTest::$AuthValues['access_token'];
+
+ $response = $this->withHeader('Authorization','Bearer '.$token)->json('POST','api/user/findDiscounts', [
+
+ 'logPos' => '41.088591',
+ 'distanceInMeters' => '1200'
+
+ ]);
+
+ $response->assertJson([
+ 'errors'=>['latPos'=>['The lat pos field is required.']]]);
+
+ }
+
+ public function testEmptyAllFieldsEndPointFindDiscounts()
+ {
+ $token=findDiscountsControllerTest::$AuthValues['access_token'];
+
+ $response = $this->withHeader('Authorization','Bearer '.$token)->json('POST','api/user/findDiscounts', [
+
+
+ ]);
+
+
+ $response->assertJson([
+ 'errors'=>[
+ 'distanceInMeters'=> ['The distance in meters field is required.'],
+ 'logPos'=>['The log pos field is required.'],
+ 'latPos'=>['The lat pos field is required.']]]);
+
+
+ }
+
+ public function testInvalidTypeDistanceEndPointFindDiscounts()
+ {
+ $token=findDiscountsControllerTest::$AuthValues['access_token'];
+
+ $response = $this->withHeader('Authorization','Bearer '.$token)->json('POST','api/user/findDiscounts', [
+
+ 'logPos' => '41.088591',
+ 'latPos' => '23.551272',
+ 'distanceInMeters' => 'asdsdds'
+
+ ]);
+
+ $response->assertJson([
+ 'errors'=>['distanceInMeters'=>['The distance in meters must be a number.']]]);
+
+
+ }
+
+ public function testInvalidTypeLatPosEndPointFindDiscounts()
+ {
+ $token=findDiscountsControllerTest::$AuthValues['access_token'];
+
+ $response = $this->withHeader('Authorization','Bearer '.$token)->json('POST','api/user/findDiscounts', [
+
+ 'logPos' => '41.088591',
+ 'latPos' => 'sssssss',
+ 'distanceInMeters' => '1200'
+
+ ]);
+
+ $response->assertJson([
+ 'errors'=>['latPos'=>['The lat pos must be a number.']]]);
+
+
+ }
+
+
+ public function testInvalidTypeLogPosEndPointFindDiscounts()
+ {
+ $token=findDiscountsControllerTest::$AuthValues['access_token'];
+
+ $response = $this->withHeader('Authorization','Bearer '.$token)->json('POST','api/user/findDiscounts', [
+
+ 'logPos' => 'aaaaaaaa',
+ 'latPos' => '23.551272',
+ 'distanceInMeters' => '1200'
+
+ ]);
+
+ $response->assertJson([
+ 'errors'=>['logPos'=>['The log pos must be a number.']]]);
+
+
+ }
+
+ public function testSuccessResponseEndPointFindDiscounts()
+ {
+ $token=findDiscountsControllerTest::$AuthValues['access_token'];
+
+ $response = $this->withHeader('Authorization','Bearer '.$token)->json('POST','api/user/findDiscounts', [
+
+ 'logPos' => '41.088591',
+ 'latPos' => '23.551272',
+ 'distanceInMeters' => '99999'
+
+ ]);
+
+ // distance from shop 1100 meters
+ //returns the values in []
+ $response->assertJsonStructure([['shopName', 'category', 'shortDescription', 'finalPrice','productImageURL','discountId','distance', 'shopLatPos', 'shopLogPos']]);
+
+ }
+
+
+ public function testOutOfRangeDiscountEndPointFindDiscounts()
+ {
+ $token=findDiscountsControllerTest::$AuthValues['access_token'];
+
+ $response = $this->withHeader('Authorization','Bearer '.$token)->json('POST','api/user/findDiscounts', [
+
+ 'logPos' => '41.088591',
+ 'latPos' => '23.551272',
+ 'distanceInMeters' => '1000'
+
+ ]);
+
+ // distance from shop 1100 meters
+ $response->assertJsonStructure(null);
+
+ }
+
+ public function testRequestWithoutTokenEndPointFindDiscounts()
+ {
+
+
+ $response = $this->json('POST','api/user/findDiscounts', [
+
+ 'logPos' => '41.088591',
+ 'latPos' => '23.551272',
+ 'distanceInMeters' => '1200'
+
+ ]);
+
+ $response->assertJson(['message'=>'Unauthenticated.']);
+
+ }
+
+ //--------------------------------------------- TESTING /getTopList---------------------------------------------------------------
+
+ public function testEmptyFieldLogPosEndPointGetTopList()
+ {
+ $token=findDiscountsControllerTest::$AuthValues['access_token'];
+
+ $response = $this->withHeader('Authorization','Bearer '.$token)->json('POST','api/user/findDiscounts', [
+
+
+ 'latPos' => '23.551272',
+
+
+ ]);
+
+ $response->assertJson([
+ 'errors'=>['logPos'=>['The log pos field is required.']]]);
+
+ }
+
+
+
+ public function testEmptyFieldLatPosEndPointGetTopList()
+ {
+ $token=findDiscountsControllerTest::$AuthValues['access_token'];
+
+ $response = $this->withHeader('Authorization','Bearer '.$token)->json('POST','api/user/getTopList', [
+
+ 'logPos' => '41.088591',
+
+
+ ]);
+
+ $response->assertJson([
+ 'errors'=>['latPos'=>['The lat pos field is required.']]]);
+
+ }
+
+ public function testEmptyAllFieldsEndPointGetTopList()
+ {
+ $token=findDiscountsControllerTest::$AuthValues['access_token'];
+
+ $response = $this->withHeader('Authorization','Bearer '.$token)->json('POST','api/user/getTopList', [
+
+
+ ]);
+
+
+ $response->assertJson([
+ 'errors'=>[
+ 'logPos'=>['The log pos field is required.'],
+ 'latPos'=>['The lat pos field is required.']]]);
+
+
+ }
+
+
+
+ public function testInvalidTypeLatPosEndPointGetTopList()
+ {
+ $token=findDiscountsControllerTest::$AuthValues['access_token'];
+
+ $response = $this->withHeader('Authorization','Bearer '.$token)->json('POST','api/user/getTopList', [
+
+ 'logPos' => '41.088591',
+ 'latPos' => 'sssssss',
+
+ ]);
+
+ $response->assertJson([
+ 'errors'=>['latPos'=>['The lat pos must be a number.']]]);
+
+
+ }
+
+
+ public function testInvalidTypeLogPosEndPointGetTopList()
+ {
+ $token=findDiscountsControllerTest::$AuthValues['access_token'];
+
+ $response = $this->withHeader('Authorization','Bearer '.$token)->json('POST','api/user/getTopList', [
+
+ 'logPos' => 'aaaaaaaa',
+ 'latPos' => '23.551272',
+
+ ]);
+
+ $response->assertJson([
+ 'errors'=>['logPos'=>['The log pos must be a number.']]]);
+
+
+ }
+
+ public function testSuccessResponseEndPointGetTopList()
+ {
+ $token=findDiscountsControllerTest::$AuthValues['access_token'];
+
+ $response = $this->withHeader('Authorization','Bearer '.$token)->json('POST','api/user/getTopList', [
+
+ 'logPos' => '41',
+ 'latPos' => '23',
+
+ ]);
+
+
+ var_dump($response);
+
+ //returns the values in []
+ $response->assertJsonStructure([['shopName', 'category', 'shortDescription', 'finalPrice','productImageURL','discountId','distance', 'shopLatPos', 'shopLogPos']]);
+
+ }
+
+
+ public function testRequestWithoutTokenEndPointGetTopList()
+ {
+
+
+ $response = $this->json('POST','api/user/getTopList', [
+
+ 'logPos' => '41.088591',
+ 'latPos' => '23.551272',
+
+ ]);
+
+ $response->assertJson(['message'=>'Unauthenticated.']);
+
+ }
+
+
+}
diff --git a/tests/Feature/requestedDiscountsControllerTest.php b/tests/Feature/app/Http/Controllers/RequestedDiscountsControllerTest.php
similarity index 96%
rename from tests/Feature/requestedDiscountsControllerTest.php
rename to tests/Feature/app/Http/Controllers/RequestedDiscountsControllerTest.php
index b43850e..7d2d73d 100644
--- a/tests/Feature/requestedDiscountsControllerTest.php
+++ b/tests/Feature/app/Http/Controllers/RequestedDiscountsControllerTest.php
@@ -13,7 +13,7 @@ class requestedDiscountsControllerTest extends TestCase
public function testAuth()
{
$response = $this->json('POST', 'api/login', [
- 'username' => 'testing@local.host',
+ 'username' => 'TestUser@JNKSoftware.eu',
'password' => '1234567'
]);
@@ -44,7 +44,7 @@ public function testList()
$response = $this->json('GET', 'api/requestedDiscount', [], [
'Authorization' => requestedDiscountsControllerTest::$Token_Type . " " . requestedDiscountsControllerTest::$Access_Token
]);
- $response->assertJsonStructure([['userId', 'category', 'price', 'tags', 'id']]);
+ $response->assertJsonStructure([['userId', 'category', 'price', 'tags', 'id', 'categoryTitle']]);
}
public function testGetExisted()
@@ -52,7 +52,7 @@ public function testGetExisted()
$response = $this->json('GET', 'api/requestedDiscount/' . requestedDiscountsControllerTest::$id, [], [
'Authorization' => requestedDiscountsControllerTest::$Token_Type . " " . requestedDiscountsControllerTest::$Access_Token
]);
- $response->assertJsonStructure(['id', 'userId', 'category', 'price', 'tags']);
+ $response->assertJsonStructure(['id', 'userId', 'category', 'price', 'tags', 'categoryTitle']);
}
public function testGetNotExisted()
diff --git a/tests/Feature/ShopControllerTest.php b/tests/Feature/app/Http/Controllers/ShopControllerTest.php
similarity index 94%
rename from tests/Feature/ShopControllerTest.php
rename to tests/Feature/app/Http/Controllers/ShopControllerTest.php
index 72f5358..5739935 100644
--- a/tests/Feature/ShopControllerTest.php
+++ b/tests/Feature/app/Http/Controllers/ShopControllerTest.php
@@ -14,7 +14,7 @@ class ShopControllerTest extends TestCase
public function testAuth()
{
$response = $this->json('POST', 'api/login', [
- 'username' => 'testing@local.host',
+ 'username' => 'TestUser@JNKSoftware.eu',
'password' => '1234567'
]);
@@ -62,6 +62,13 @@ public function testList()
$response->assertJsonStructure([['id', 'ownerId', 'brandName', 'latPos', 'logPos']]) or $response->assertJson([]);
}
+// public function testMyDiscounts()
+// {
+// $response = $this->json('GET', 'api/shop/' . ShopControllerTest::$id . '/discounts', [], []);
+// $response->assertJsonStructure([['id', 'shopId', 'category', 'originalPrice', 'currentPrice', 'description', 'image']]) or $response->assertJson([[]]);
+//
+// }
+
public function testGetExisted()
{
$response = $this->json('GET', 'api/shop/' . ShopControllerTest::$id, [], []);
diff --git a/tests/Feature/app/Http/Controllers/categorycontrollerTest.php b/tests/Feature/app/Http/Controllers/categorycontrollerTest.php
deleted file mode 100644
index c1ff60e..0000000
--- a/tests/Feature/app/Http/Controllers/categorycontrollerTest.php
+++ /dev/null
@@ -1,121 +0,0 @@
-assertTrue(true);
- }
-
- public function testPOSTSuccessfull()
- {
- $this->idOfTestCase('TestProduct');
- $this->call('DELETE','api/category/'.categorycontrollerTest::$idTest);
- $response = $this->call('POST', 'api/category',['id'=>1,'title'=>'TestProduct']);
- $this->assertEquals(200, $response->getStatusCode());
- // $this->call('DELETE', 'api/category/48');
- }
-
- public function testGETSuccessfull()
- {
- $response = $this->call('GET', 'api/category');
-
- $this->assertEquals(200, $response->getStatusCode());
- }
-
- public function testGetWithID() {
- $this->idOfTestCase('TestProduct');
- $response = $this->call('GET','api/category/'.categorycontrollerTest::$idTest);
- $this->assertEquals('200',$response->getStatusCode());
- }
-
- public function testUpdateSuccessfull()
- {
- $this->call('POST', 'api/category',['id'=>1,'title'=>'TestProduct']);
- $this->idOfTestCase('TestProduct');
- $idOfUpdateCategoryOption =categorycontrollerTest::$idTest;
- $response = $this->call('PUT','api/category',['id'=>$idOfUpdateCategoryOption,'title'=>'TestProductUpdated']);
- $this->call('DELETE','api/category/'.categorycontrollerTest::$idTest);
- $this->assertEquals('200',$response->getStatusCode()); //TODO Thelei implementation
- }
-
- public function testDeleteSuccessfull()
- {
- $this->call('POST', 'api/category',['id'=>1,'title'=>'TestProduct']);
- $this->idOfTestCase('TestProduct');
- $response = $this->call('DELETE','api/category/'.categorycontrollerTest::$idTest);
- $this->assertEquals(200, $response->getStatusCode());
- }
-
- public function testIsPostingJSON()
- {
- $this->get('api/category')
- ->assertJsonStructure([
- '*' => ['id',
- 'title'
- ]
- ]);
- }
-
-
-
-// public function testListInvalidData()
-// {
-//
-// }
-//
-// public function testPOSTInvalidData()
-// {
-//
-// }
-//
-// public function testGETInvalidData()
-// {
-//
-// }
-// public function testGetInvalidWithID($id) {
-//
-// }
-//
-// public function testUpdateInvalidData()
-// {
-//
-// }
-//
-// public function testDeleteInvalidData()
-// {
-//
-// }
-//
-// public function testIsNotPostingJson() { // TODO ???
-//
-// }
-}
diff --git a/tests/Feature/findDiscountsControllerTest.php b/tests/Feature/findDiscountsControllerTest.php
deleted file mode 100644
index 31238ee..0000000
--- a/tests/Feature/findDiscountsControllerTest.php
+++ /dev/null
@@ -1,60 +0,0 @@
-json('POST', 'api/login', [
- 'username' => 'testing@local.host',
- 'password' => '1234567'
- ]);
-
- findDiscountsControllerTest::$AuthValues=json_decode($response->getContent(),true);
- $response->assertStatus(200);
-
- }
-
-
-
- public function testFindDiscountsWithFailUserCoordinates(){
- $token=findDiscountsControllerTest::$AuthValues['access_token'];
-
- $response= $this->withHeader('Authorization','Bearer ' . $token)->json('POST','api/user/findDiscounts', [
-
- 'logPos' => '23221',
- 'latPos' => '1234'
-
- ]);
-
- $response->assertJsonStructure(null);
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-}
diff --git a/tests/Unit/ExampleTest.php b/tests/Unit/ExampleTest.php
deleted file mode 100644
index e9fe19c..0000000
--- a/tests/Unit/ExampleTest.php
+++ /dev/null
@@ -1,19 +0,0 @@
-assertTrue(true);
- }
-}