From 19c2ca8a8c8f89b4291610ca7985b98496f54313 Mon Sep 17 00:00:00 2001 From: Jeremy Quinton Date: Thu, 29 Aug 2019 21:23:05 +0200 Subject: [PATCH] Enables Stripe SCA payments --- .../Controllers/EventCheckoutController.php | 126 +- .../Controllers/ManageAccountController.php | 13 +- app/Http/routes.php | 11 +- app/Models/PaymentGateway.php | 33 + composer.json | 5 +- composer.lock | 1244 +++++++++++------ public/assets/javascript/app-public.js | 281 ++-- public/assets/javascript/frontend.js | 285 ++-- resources/lang/en/Public_ViewEvent.php | 1 + .../Partials/PaymentGatewayOptions.blade.php | 39 +- .../ViewEvent/EventPageCheckout.blade.php | 2 +- .../ViewEvent/EventPagePayment.blade.php | 12 + .../EventCreateOrderSection.blade.php | 84 +- .../Partials/EventPaymentSection.blade.php | 84 ++ .../Partials/OfflinePayments.blade.php | 30 + .../Partials/PaymentStripe.blade.php | 83 ++ .../Partials/PaymentStripeSCA.blade.php | 85 ++ 17 files changed, 1588 insertions(+), 830 deletions(-) create mode 100644 resources/views/Public/ViewEvent/EventPagePayment.blade.php create mode 100644 resources/views/Public/ViewEvent/Partials/EventPaymentSection.blade.php create mode 100644 resources/views/Public/ViewEvent/Partials/OfflinePayments.blade.php create mode 100644 resources/views/Public/ViewEvent/Partials/PaymentStripe.blade.php create mode 100644 resources/views/Public/ViewEvent/Partials/PaymentStripeSCA.blade.php diff --git a/app/Http/Controllers/EventCheckoutController.php b/app/Http/Controllers/EventCheckoutController.php index a5082315..1a2006d2 100644 --- a/app/Http/Controllers/EventCheckoutController.php +++ b/app/Http/Controllers/EventCheckoutController.php @@ -274,17 +274,13 @@ class EventCheckoutController extends Controller } return view('Public.ViewEvent.EventPageCheckout', $data); + } - /** - * Create the order, handle payment, update stats, fire off email jobs then redirect user - * - * @param Request $request - * @param $event_id - * @return \Illuminate\Http\JsonResponse - */ - public function postCreateOrder(Request $request, $event_id) + public function postValidateOrder(Request $request, $event_id) { + session()->push('ticket_order_' . $event_id . '.request_data', $request->all()); + //If there's no session kill the request and redirect back to the event homepage. if (!session()->get('ticket_order_' . $event_id)) { return response()->json([ @@ -335,8 +331,72 @@ class EventCheckoutController extends Controller ]); } + return response()->json([ + 'status' => 'success', + 'redirectUrl' => route('showEventPayment', [ + 'event_id' => $event_id, + 'is_embedded' => $this->is_embedded + ]) + ]); + + } + + public function showEventPayment(Request $request, $event_id) + { + $order_session = session()->get('ticket_order_' . $event_id); + $event = Event::findOrFail($event_id); + + $payment_gateway = $order_session['payment_gateway']; + $order_total = $order_session['order_total']; + $account_payment_gateway = $order_session['account_payment_gateway']; + + $orderService = new OrderService($order_session['order_total'], $order_session['total_booking_fee'], $event); + $orderService->calculateFinalCosts(); + + switch ($payment_gateway->id) { + case config('attendize.payment_gateway_stripe_sca'): + \Stripe\Stripe::setApiKey($account_payment_gateway->config['apiKey']); + + $intent = \Stripe\PaymentIntent::create([ + 'amount' => $order_total, + 'currency' => $event->currency->code, + ]); + break; + } + + $secondsToExpire = Carbon::now()->diffInSeconds($order_session['expires']); + + $viewData = ['event' => $event, + 'tickets' => $order_session['tickets'], + 'order_total' => $order_total, + 'orderService' => $orderService, + 'order_requires_payment' => (ceil($order_session['order_total']) == 0) ? false : true, + 'account_payment_gateway' => $account_payment_gateway, + 'payment_gateway' => $payment_gateway, + 'secondsToExpire' => $secondsToExpire + ]; + + if (!empty($intent)) { + $viewData['client_secret'] = $intent->client_secret; + } + + return view('Public.ViewEvent.EventPagePayment', $viewData); + } + + /** + * Create the order, update stats, fire off email jobs then redirect user + * + * @param Request $request + * @param $event_id + * @return \Illuminate\Http\JsonResponse + */ + public function postCreateOrder(Request $request, $event_id) + { //Add the request data to a session in case payment is required off-site - session()->push('ticket_order_' . $event_id . '.request_data', $request->except(['card-number', 'card-cvc'])); + session()->push('ticket_order_' . $event_id . '.request_data', $request->except(['cardnumber', 'cvc'])); + + $ticket_order = session()->get('ticket_order_' . $event_id); + $event = Event::findOrFail($event_id); $orderRequiresPayment = $ticket_order['order_requires_payment']; @@ -361,6 +421,7 @@ class EventCheckoutController extends Controller $gateway->initialize(); } else { + $gateway = Omnipay::create($ticket_order['payment_gateway']->name); $gateway->initialize($ticket_order['account_payment_gateway']->config + [ 'testMode' => config('attendize.enable_test_payments'), @@ -401,14 +462,51 @@ class EventCheckoutController extends Controller ? $ticket_order['account_payment_gateway']->config['brandingName'] : $event->organiser->name ]; + + $transaction = $gateway->purchase($transaction_data); + $response = $transaction->send(); + break; case config('attendize.payment_gateway_stripe'): $token = $request->get('stripeToken'); $transaction_data += [ - 'token' => $token, + 'token' => $token, 'receipt_email' => $request->get('order_email'), + 'returnUrl' => route('showEventCheckoutPaymentReturn', [ + 'event_id' => $event_id, + 'is_payment_successful' => 1 + ]), ]; + + $transaction = $gateway->purchase($transaction_data); + $response = $transaction->send(); + break; + + case config('attendize.payment_gateway_stripe_sca'): + + Log::error($ticket_order['payment_gateway']->name); + + $paymentMethod = $request->get('paymentMethod'); + + $returnUrl = route('showEventCheckoutPaymentReturn', [ + 'event_id' => $event_id, + 'is_payment_successful' => 1, + ]); + + $transaction_data += [ + 'paymentMethod' => $paymentMethod, + 'receipt_email' => 'jeremyquinton@gmail.com', //$request->get('order_email'), + 'returnUrl' => $returnUrl, + 'confirm' => true, + ]; + + Log::error(print_r($transaction_data, true)); + + $response = $gateway->authorize($transaction_data)->send(); + + break; + default: Log::error('No payment gateway configured.'); return response()->json([ @@ -416,12 +514,9 @@ class EventCheckoutController extends Controller 'message' => 'No payment gateway configured.' ]); break; + } - $transaction = $gateway->purchase($transaction_data); - - $response = $transaction->send(); - if ($response->isSuccessful()) { session()->push('ticket_order_' . $event_id . '.transaction_id', @@ -472,7 +567,6 @@ class EventCheckoutController extends Controller } - /** * Attempt to complete a user's payment when they return from * an off-site gateway @@ -513,7 +607,6 @@ class EventCheckoutController extends Controller 'is_payment_failed' => 1, ]); } - } /** @@ -532,6 +625,7 @@ class EventCheckoutController extends Controller $order = new Order(); $ticket_order = session()->get('ticket_order_' . $event_id); + $request_data = $ticket_order['request_data'][0]; $event = Event::findOrFail($ticket_order['event_id']); $attendee_increment = 1; diff --git a/app/Http/Controllers/ManageAccountController.php b/app/Http/Controllers/ManageAccountController.php index 02e24c89..66d64e00 100644 --- a/app/Http/Controllers/ManageAccountController.php +++ b/app/Http/Controllers/ManageAccountController.php @@ -31,7 +31,8 @@ class ManageAccountController extends MyBaseController 'account' => Account::find(Auth::user()->account_id), 'timezones' => Timezone::pluck('location', 'id'), 'currencies' => Currency::pluck('title', 'id'), - 'payment_gateways' => PaymentGateway::pluck('provider_name', 'id'), + 'payment_gateways' => PaymentGateway::getAllWithDefaultSet(), + 'default_payment_gateway_id' => PaymentGateway::getDefaultPaymentGatewayId(), 'account_payment_gateways' => AccountPaymentGateway::scope()->get(), 'version_info' => $this->getVersionInfo(), ]; @@ -124,7 +125,7 @@ class ManageAccountController extends MyBaseController public function postEditAccountPayment(Request $request) { $account = Account::find(Auth::user()->account_id); - $gateway_id = $request->get('payment_gateway_id'); + $gateway_id = $request->get('payment_gateway'); switch ($gateway_id) { case config('attendize.payment_gateway_stripe') : //Stripe @@ -133,8 +134,16 @@ class ManageAccountController extends MyBaseController case config('attendize.payment_gateway_paypal') : //PayPal $config = $request->get('paypal'); break; + case config('attendize.payment_gateway_stripe_sca') : //Stripe SCA + $config = $request->get('stripe_sca'); + break; } + PaymentGateway::query()->update(['default' => 0]); + $payment_gateway = PaymentGateway::where('id', '=', $gateway_id)->first(); + $payment_gateway->default = 1; + $payment_gateway->save(); + $account_payment_gateway = AccountPaymentGateway::firstOrNew( [ 'payment_gateway_id' => $gateway_id, diff --git a/app/Http/routes.php b/app/Http/routes.php index abef3e4f..afe4a75f 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -153,6 +153,16 @@ Route::group( 'uses' => 'EventCheckoutController@postValidateTickets', ]); + Route::post('{event_id}/checkout/validate', [ + 'as' => 'postValidateOrder', + 'uses' => 'EventCheckoutController@postValidateOrder', + ]); + + Route::get('{event_id}/checkout/payment', [ + 'as' => 'showEventPayment', + 'uses' => 'EventCheckoutController@showEventPayment', + ]); + Route::get('{event_id}/checkout/create', [ 'as' => 'showEventCheckout', 'uses' => 'EventCheckoutController@showEventCheckout', @@ -163,7 +173,6 @@ Route::group( 'uses' => 'EventCheckoutController@showEventCheckoutPaymentReturn', ]); - Route::post('{event_id}/checkout/create', [ 'as' => 'postCreateOrder', 'uses' => 'EventCheckoutController@postCreateOrder', diff --git a/app/Models/PaymentGateway.php b/app/Models/PaymentGateway.php index a3143992..947ae82e 100644 --- a/app/Models/PaymentGateway.php +++ b/app/Models/PaymentGateway.php @@ -9,5 +9,38 @@ namespace App\Models; class PaymentGateway extends MyBaseModel { + public $timestamps = false; + /** + * @return array + */ + static public function getAllWithDefaultSet() + { + $payment_gateways = PaymentGateway::all()->toArray(); + $payment_gateway = PaymentGateway::select('id')->where('default', 1)->get()->first(); + if (empty($payment_gateway)) { + $default_payment_gateway_id = config('attendize.default_payment_gateway'); + foreach ($payment_gateways as &$payment_gateway) { + if ($payment_gateway['id'] == $default_payment_gateway_id) { + $payment_gateway['default'] = 1; + } + } + } + + return $payment_gateways; + } + + /** + * @return \Illuminate\Config\Repository|mixed + */ + static public function getDefaultPaymentGatewayId() + { + $payment_gateway = PaymentGateway::select('id')->where('default', 1)->get()->first(); + if (empty($payment_gateway)) { + $default_payment_gateway_id = config('attendize.default_payment_gateway'); + return $default_payment_gateway_id; + } + + return $payment_gateway['id']; + } } diff --git a/composer.json b/composer.json index 3a242986..9634cab0 100755 --- a/composer.json +++ b/composer.json @@ -33,12 +33,13 @@ "omnipay/common": "~3", "omnipay/dummy": "~3", "omnipay/paypal": "~3", - "omnipay/stripe": "~3", + "omnipay/stripe": "3.1.x-dev", "php-http/curl-client": "^1.7", "php-http/message": "^1.6", "predis/predis": "~1.1", "vinelab/http": "~1.5", - "laravel/tinker": "^1.0" + "laravel/tinker": "^1.0", + "stripe/stripe-php": "^6.43" }, "require-dev": { "phpunit/phpunit": "7.3.*", diff --git a/composer.lock b/composer.lock index 843138ac..3a8b150f 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "4d0fc1a97c1b0ad040b208289e0da4c4", + "content-hash": "c3116c0df230b9e8e2b08e7a1e45517e", "packages": [ { "name": "aws/aws-sdk-php", - "version": "3.91.3", + "version": "3.110.0", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "89b07f24f4fab3ea00b1579037ff417ba61b17c9" + "reference": "39094b2d8e0424184fe9f12f5359d62ce8849b9d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/89b07f24f4fab3ea00b1579037ff417ba61b17c9", - "reference": "89b07f24f4fab3ea00b1579037ff417ba61b17c9", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/39094b2d8e0424184fe9f12f5359d62ce8849b9d", + "reference": "39094b2d8e0424184fe9f12f5359d62ce8849b9d", "shasum": "" }, "require": { @@ -41,7 +41,8 @@ "ext-sockets": "*", "nette/neon": "^2.3", "phpunit/phpunit": "^4.8.35|^5.4.3", - "psr/cache": "^1.0" + "psr/cache": "^1.0", + "psr/simple-cache": "^1.0" }, "suggest": { "aws/aws-php-sns-message-validator": "To validate incoming SNS notifications", @@ -86,7 +87,7 @@ "s3", "sdk" ], - "time": "2019-04-04T18:38:33+00:00" + "time": "2019-08-21T18:23:39+00:00" }, { "name": "barryvdh/laravel-ide-helper", @@ -213,16 +214,16 @@ }, { "name": "clue/stream-filter", - "version": "v1.4.0", + "version": "v1.4.1", "source": { "type": "git", "url": "https://github.com/clue/php-stream-filter.git", - "reference": "d80fdee9b3a7e0d16fc330a22f41f3ad0eeb09d0" + "reference": "5a58cc30a8bd6a4eb8f856adf61dd3e013f53f71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/clue/php-stream-filter/zipball/d80fdee9b3a7e0d16fc330a22f41f3ad0eeb09d0", - "reference": "d80fdee9b3a7e0d16fc330a22f41f3ad0eeb09d0", + "url": "https://api.github.com/repos/clue/php-stream-filter/zipball/5a58cc30a8bd6a4eb8f856adf61dd3e013f53f71", + "reference": "5a58cc30a8bd6a4eb8f856adf61dd3e013f53f71", "shasum": "" }, "require": { @@ -237,7 +238,7 @@ "Clue\\StreamFilter\\": "src/" }, "files": [ - "src/functions.php" + "src/functions_include.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -261,29 +262,29 @@ "stream_filter_append", "stream_filter_register" ], - "time": "2017-08-18T09:54:01+00:00" + "time": "2019-04-09T12:31:48+00:00" }, { "name": "composer/ca-bundle", - "version": "1.1.4", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "558f321c52faeb4828c03e7dc0cfe39a09e09a2d" + "reference": "f26a67e397be0e5c00d7c52ec7b5010098e15ce5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/558f321c52faeb4828c03e7dc0cfe39a09e09a2d", - "reference": "558f321c52faeb4828c03e7dc0cfe39a09e09a2d", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/f26a67e397be0e5c00d7c52ec7b5010098e15ce5", + "reference": "f26a67e397be0e5c00d7c52ec7b5010098e15ce5", "shasum": "" }, "require": { "ext-openssl": "*", "ext-pcre": "*", - "php": "^5.3.2 || ^7.0" + "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5", + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8", "psr/log": "^1.0", "symfony/process": "^2.5 || ^3.0 || ^4.0" }, @@ -317,20 +318,20 @@ "ssl", "tls" ], - "time": "2019-01-28T09:30:10+00:00" + "time": "2019-08-02T09:05:43+00:00" }, { "name": "composer/composer", - "version": "1.8.4", + "version": "1.9.0", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "bc364c2480c17941e2135cfc568fa41794392534" + "reference": "314aa57fdcfc942065996f59fb73a8b3f74f3fa5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/bc364c2480c17941e2135cfc568fa41794392534", - "reference": "bc364c2480c17941e2135cfc568fa41794392534", + "url": "https://api.github.com/repos/composer/composer/zipball/314aa57fdcfc942065996f59fb73a8b3f74f3fa5", + "reference": "314aa57fdcfc942065996f59fb73a8b3f74f3fa5", "shasum": "" }, "require": { @@ -366,7 +367,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8-dev" + "dev-master": "1.9-dev" } }, "autoload": { @@ -390,14 +391,14 @@ "homepage": "http://seld.be" } ], - "description": "Composer helps you declare, manage and install dependencies of PHP projects, ensuring you have the right stack everywhere.", + "description": "Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.", "homepage": "https://getcomposer.org/", "keywords": [ "autoload", "dependency", "package" ], - "time": "2019-02-11T09:52:10+00:00" + "time": "2019-08-02T18:55:33+00:00" }, { "name": "composer/semver", @@ -463,16 +464,16 @@ }, { "name": "composer/spdx-licenses", - "version": "1.5.1", + "version": "1.5.2", "source": { "type": "git", "url": "https://github.com/composer/spdx-licenses.git", - "reference": "a1aa51cf3ab838b83b0867b14e56fc20fbd55b3d" + "reference": "7ac1e6aec371357df067f8a688c3d6974df68fa5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/a1aa51cf3ab838b83b0867b14e56fc20fbd55b3d", - "reference": "a1aa51cf3ab838b83b0867b14e56fc20fbd55b3d", + "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/7ac1e6aec371357df067f8a688c3d6974df68fa5", + "reference": "7ac1e6aec371357df067f8a688c3d6974df68fa5", "shasum": "" }, "require": { @@ -519,20 +520,20 @@ "spdx", "validator" ], - "time": "2019-03-26T10:23:26+00:00" + "time": "2019-07-29T10:31:59+00:00" }, { "name": "composer/xdebug-handler", - "version": "1.3.2", + "version": "1.3.3", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "d17708133b6c276d6e42ef887a877866b909d892" + "reference": "46867cbf8ca9fb8d60c506895449eb799db1184f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/d17708133b6c276d6e42ef887a877866b909d892", - "reference": "d17708133b6c276d6e42ef887a877866b909d892", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/46867cbf8ca9fb8d60c506895449eb799db1184f", + "reference": "46867cbf8ca9fb8d60c506895449eb799db1184f", "shasum": "" }, "require": { @@ -563,7 +564,7 @@ "Xdebug", "performance" ], - "time": "2019-01-28T20:25:53+00:00" + "time": "2019-05-27T17:52:04+00:00" }, { "name": "dnoegel/php-xdg-base-dir", @@ -898,21 +899,24 @@ }, { "name": "doctrine/lexer", - "version": "v1.0.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c" + "reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c", - "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/1febd6c3ef84253d7c815bed85fc622ad207a9f8", + "reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8", "shasum": "" }, "require": { "php": ">=5.3.2" }, + "require-dev": { + "phpunit/phpunit": "^4.5" + }, "type": "library", "extra": { "branch-alias": { @@ -920,8 +924,8 @@ } }, "autoload": { - "psr-0": { - "Doctrine\\Common\\Lexer\\": "lib/" + "psr-4": { + "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" } }, "notification-url": "https://packagist.org/downloads/", @@ -942,13 +946,16 @@ "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", + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", "keywords": [ + "annotations", + "docblock", "lexer", - "parser" + "parser", + "php" ], - "time": "2014-09-09T13:34:57+00:00" + "time": "2019-06-08T11:03:04+00:00" }, { "name": "dompdf/dompdf", @@ -1072,16 +1079,16 @@ }, { "name": "egulias/email-validator", - "version": "2.1.7", + "version": "2.1.11", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "709f21f92707308cdf8f9bcfa1af4cb26586521e" + "reference": "92dd169c32f6f55ba570c309d83f5209cefb5e23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/709f21f92707308cdf8f9bcfa1af4cb26586521e", - "reference": "709f21f92707308cdf8f9bcfa1af4cb26586521e", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/92dd169c32f6f55ba570c309d83f5209cefb5e23", + "reference": "92dd169c32f6f55ba570c309d83f5209cefb5e23", "shasum": "" }, "require": { @@ -1091,7 +1098,8 @@ "require-dev": { "dominicsayers/isemail": "dev-master", "phpunit/phpunit": "^4.8.35||^5.7||^6.0", - "satooshi/php-coveralls": "^1.0.1" + "satooshi/php-coveralls": "^1.0.1", + "symfony/phpunit-bridge": "^4.4@dev" }, "suggest": { "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" @@ -1099,7 +1107,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "2.1.x-dev" } }, "autoload": { @@ -1125,7 +1133,7 @@ "validation", "validator" ], - "time": "2018-12-04T22:38:24+00:00" + "time": "2019-08-13T17:33:27+00:00" }, { "name": "erusev/parsedown", @@ -1222,16 +1230,16 @@ }, { "name": "filp/whoops", - "version": "2.3.1", + "version": "2.5.0", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "bc0fd11bc455cc20ee4b5edabc63ebbf859324c7" + "reference": "cde50e6720a39fdacb240159d3eea6865d51fd96" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/bc0fd11bc455cc20ee4b5edabc63ebbf859324c7", - "reference": "bc0fd11bc455cc20ee4b5edabc63ebbf859324c7", + "url": "https://api.github.com/repos/filp/whoops/zipball/cde50e6720a39fdacb240159d3eea6865d51fd96", + "reference": "cde50e6720a39fdacb240159d3eea6865d51fd96", "shasum": "" }, "require": { @@ -1265,8 +1273,8 @@ "authors": [ { "name": "Filipe Dobreira", - "homepage": "https://github.com/filp", - "role": "Developer" + "role": "Developer", + "homepage": "https://github.com/filp" } ], "description": "php error handling for cool kids", @@ -1279,7 +1287,7 @@ "throwable", "whoops" ], - "time": "2018-10-23T09:00:00+00:00" + "time": "2019-08-07T09:00:00+00:00" }, { "name": "guzzlehttp/guzzle", @@ -1399,33 +1407,37 @@ }, { "name": "guzzlehttp/psr7", - "version": "1.5.2", + "version": "1.6.1", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "9f83dded91781a01c63574e387eaa769be769115" + "reference": "239400de7a173fe9901b9ac7c06497751f00727a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/9f83dded91781a01c63574e387eaa769be769115", - "reference": "9f83dded91781a01c63574e387eaa769be769115", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/239400de7a173fe9901b9ac7c06497751f00727a", + "reference": "239400de7a173fe9901b9ac7c06497751f00727a", "shasum": "" }, "require": { "php": ">=5.4.0", "psr/http-message": "~1.0", - "ralouphie/getallheaders": "^2.0.5" + "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" }, "provide": { "psr/http-message-implementation": "1.0" }, "require-dev": { + "ext-zlib": "*", "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8" }, + "suggest": { + "zendframework/zend-httphandlerrunner": "Emit PSR-7 responses" + }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.5-dev" + "dev-master": "1.6-dev" } }, "autoload": { @@ -1462,20 +1474,20 @@ "uri", "url" ], - "time": "2018-12-04T20:46:45+00:00" + "time": "2019-07-01T23:21:34+00:00" }, { "name": "intervention/image", - "version": "2.4.2", + "version": "2.5.0", "source": { "type": "git", "url": "https://github.com/Intervention/image.git", - "reference": "e82d274f786e3d4b866a59b173f42e716f0783eb" + "reference": "39eaef720d082ecc54c64bf54541c55f10db546d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Intervention/image/zipball/e82d274f786e3d4b866a59b173f42e716f0783eb", - "reference": "e82d274f786e3d4b866a59b173f42e716f0783eb", + "url": "https://api.github.com/repos/Intervention/image/zipball/39eaef720d082ecc54c64bf54541c55f10db546d", + "reference": "39eaef720d082ecc54c64bf54541c55f10db546d", "shasum": "" }, "require": { @@ -1532,7 +1544,7 @@ "thumbnail", "watermark" ], - "time": "2018-05-29T14:19:03+00:00" + "time": "2019-06-24T14:06:31+00:00" }, { "name": "jakub-onderka/php-console-color", @@ -1746,6 +1758,51 @@ ], "time": "2019-01-14T23:55:14+00:00" }, + { + "name": "kylekatarnls/update-helper", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/kylekatarnls/update-helper.git", + "reference": "5786fa188e0361b9adf9e8199d7280d1b2db165e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/kylekatarnls/update-helper/zipball/5786fa188e0361b9adf9e8199d7280d1b2db165e", + "reference": "5786fa188e0361b9adf9e8199d7280d1b2db165e", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.1.0 || ^2.0.0", + "php": ">=5.3.0" + }, + "require-dev": { + "codeclimate/php-test-reporter": "dev-master", + "composer/composer": "2.0.x-dev || ^2.0.0-dev", + "phpunit/phpunit": ">=4.8.35 <6.0" + }, + "type": "composer-plugin", + "extra": { + "class": "UpdateHelper\\ComposerPlugin" + }, + "autoload": { + "psr-0": { + "UpdateHelper\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kyle", + "email": "kylekatarnls@gmail.com" + } + ], + "description": "Update helper", + "time": "2019-07-29T11:03:54+00:00" + }, { "name": "laracasts/utilities", "version": "2.1", @@ -1792,16 +1849,16 @@ }, { "name": "laravel/framework", - "version": "v5.8.10", + "version": "v5.8.33", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "505325b4577968750e622d7a5a271cf8785a7a1a" + "reference": "58b81842cbdcfbbd8302790ac0f98119ea1c56e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/505325b4577968750e622d7a5a271cf8785a7a1a", - "reference": "505325b4577968750e622d7a5a271cf8785a7a1a", + "url": "https://api.github.com/repos/laravel/framework/zipball/58b81842cbdcfbbd8302790ac0f98119ea1c56e5", + "reference": "58b81842cbdcfbbd8302790ac0f98119ea1c56e5", "shasum": "" }, "require": { @@ -1935,7 +1992,7 @@ "framework", "laravel" ], - "time": "2019-04-04T13:39:49+00:00" + "time": "2019-08-20T15:45:17+00:00" }, { "name": "laravel/socialite", @@ -2002,22 +2059,22 @@ }, { "name": "laravel/tinker", - "version": "v1.0.8", + "version": "v1.0.10", "source": { "type": "git", "url": "https://github.com/laravel/tinker.git", - "reference": "cafbf598a90acde68985660e79b2b03c5609a405" + "reference": "ad571aacbac1539c30d480908f9d0c9614eaf1a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/cafbf598a90acde68985660e79b2b03c5609a405", - "reference": "cafbf598a90acde68985660e79b2b03c5609a405", + "url": "https://api.github.com/repos/laravel/tinker/zipball/ad571aacbac1539c30d480908f9d0c9614eaf1a7", + "reference": "ad571aacbac1539c30d480908f9d0c9614eaf1a7", "shasum": "" }, "require": { - "illuminate/console": "~5.1", - "illuminate/contracts": "~5.1", - "illuminate/support": "~5.1", + "illuminate/console": "~5.1|^6.0", + "illuminate/contracts": "~5.1|^6.0", + "illuminate/support": "~5.1|^6.0", "php": ">=5.5.9", "psy/psysh": "0.7.*|0.8.*|0.9.*", "symfony/var-dumper": "~3.0|~4.0" @@ -2061,7 +2118,7 @@ "laravel", "psysh" ], - "time": "2018-10-12T19:39:35+00:00" + "time": "2019-08-07T15:10:45+00:00" }, { "name": "laravelcollective/html", @@ -2133,16 +2190,16 @@ }, { "name": "league/flysystem", - "version": "1.0.51", + "version": "1.0.53", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "755ba7bf3fb9031e6581d091db84d78275874396" + "reference": "08e12b7628f035600634a5e76d95b5eb66cea674" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/755ba7bf3fb9031e6581d091db84d78275874396", - "reference": "755ba7bf3fb9031e6581d091db84d78275874396", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/08e12b7628f035600634a5e76d95b5eb66cea674", + "reference": "08e12b7628f035600634a5e76d95b5eb66cea674", "shasum": "" }, "require": { @@ -2213,20 +2270,20 @@ "sftp", "storage" ], - "time": "2019-03-30T13:22:34+00:00" + "time": "2019-06-18T20:09:29+00:00" }, { "name": "league/flysystem-aws-s3-v3", - "version": "1.0.22", + "version": "1.0.23", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git", - "reference": "883b02c80ca9cd68cf58a9b4b2185beef24b836b" + "reference": "15b0cdeab7240bf8e8bffa85ae5275bbc3692bf4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/883b02c80ca9cd68cf58a9b4b2185beef24b836b", - "reference": "883b02c80ca9cd68cf58a9b4b2185beef24b836b", + "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/15b0cdeab7240bf8e8bffa85ae5275bbc3692bf4", + "reference": "15b0cdeab7240bf8e8bffa85ae5275bbc3692bf4", "shasum": "" }, "require": { @@ -2260,7 +2317,7 @@ } ], "description": "Flysystem adapter for the AWS S3 SDK v3.x", - "time": "2019-01-31T15:07:25+00:00" + "time": "2019-06-05T17:18:29+00:00" }, { "name": "league/oauth1-client", @@ -2450,16 +2507,16 @@ }, { "name": "mcamara/laravel-localization", - "version": "1.3.19", + "version": "1.3.20", "source": { "type": "git", "url": "https://github.com/mcamara/laravel-localization.git", - "reference": "cf89d2515d576292e65bfa5893a0efd1cc5a4064" + "reference": "af8f9f30488a83533dda3870fcc335b55cf964e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mcamara/laravel-localization/zipball/cf89d2515d576292e65bfa5893a0efd1cc5a4064", - "reference": "cf89d2515d576292e65bfa5893a0efd1cc5a4064", + "url": "https://api.github.com/repos/mcamara/laravel-localization/zipball/af8f9f30488a83533dda3870fcc335b55cf964e0", + "reference": "af8f9f30488a83533dda3870fcc335b55cf964e0", "shasum": "" }, "require": { @@ -2497,8 +2554,8 @@ "authors": [ { "name": "Marc Cámara", - "email": "mcamara88@gmail.com", - "role": "Developer" + "role": "Developer", + "email": "mcamara88@gmail.com" } ], "description": "Easy localization for Laravel", @@ -2508,7 +2565,7 @@ "localization", "php" ], - "time": "2019-03-05T15:37:01+00:00" + "time": "2019-06-28T16:04:56+00:00" }, { "name": "mews/purifier", @@ -2851,31 +2908,34 @@ }, { "name": "nesbot/carbon", - "version": "1.36.2", + "version": "1.39.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "cd324b98bc30290f233dd0e75e6ce49f7ab2a6c9" + "reference": "dd62a58af4e0775a45ea5f99d0363d81b7d9a1e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/cd324b98bc30290f233dd0e75e6ce49f7ab2a6c9", - "reference": "cd324b98bc30290f233dd0e75e6ce49f7ab2a6c9", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/dd62a58af4e0775a45ea5f99d0363d81b7d9a1e0", + "reference": "dd62a58af4e0775a45ea5f99d0363d81b7d9a1e0", "shasum": "" }, "require": { + "kylekatarnls/update-helper": "^1.1", "php": ">=5.3.9", "symfony/translation": "~2.6 || ~3.0 || ~4.0" }, "require-dev": { + "composer/composer": "^1.2", + "friendsofphp/php-cs-fixer": "~2", "phpunit/phpunit": "^4.8.35 || ^5.7" }, - "suggest": { - "friendsofphp/php-cs-fixer": "Needed for the `composer phpcs` command. Allow to automatically fix code style.", - "phpstan/phpstan": "Needed for the `composer phpstan` command. Allow to detect potential errors." - }, + "bin": [ + "bin/upgrade-carbon" + ], "type": "library", "extra": { + "update-helper": "Carbon\\Upgrade", "laravel": { "providers": [ "Carbon\\Laravel\\ServiceProvider" @@ -2905,20 +2965,20 @@ "datetime", "time" ], - "time": "2018-12-28T10:07:33+00:00" + "time": "2019-06-11T09:07:59+00:00" }, { "name": "nikic/php-parser", - "version": "v4.2.1", + "version": "v4.2.3", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "5221f49a608808c1e4d436df32884cbc1b821ac0" + "reference": "e612609022e935f3d0337c1295176505b41188c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/5221f49a608808c1e4d436df32884cbc1b821ac0", - "reference": "5221f49a608808c1e4d436df32884cbc1b821ac0", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/e612609022e935f3d0337c1295176505b41188c8", + "reference": "e612609022e935f3d0337c1295176505b41188c8", "shasum": "" }, "require": { @@ -2926,7 +2986,7 @@ "php": ">=7.0" }, "require-dev": { - "phpunit/phpunit": "^6.5 || ^7.0" + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0" }, "bin": [ "bin/php-parse" @@ -2956,7 +3016,7 @@ "parser", "php" ], - "time": "2019-02-16T20:54:15+00:00" + "time": "2019-08-12T20:17:41+00:00" }, { "name": "nitmedia/wkhtml2pdf", @@ -3208,16 +3268,16 @@ }, { "name": "omnipay/stripe", - "version": "v3.0.1", + "version": "dev-master", "source": { "type": "git", "url": "https://github.com/thephpleague/omnipay-stripe.git", - "reference": "234c3ed149780ccda78aade17e8368b92e6c2428" + "reference": "fd459e01d7c5f9bf7520cab613c791444ee1ed47" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/omnipay-stripe/zipball/234c3ed149780ccda78aade17e8368b92e6c2428", - "reference": "234c3ed149780ccda78aade17e8368b92e6c2428", + "url": "https://api.github.com/repos/thephpleague/omnipay-stripe/zipball/fd459e01d7c5f9bf7520cab613c791444ee1ed47", + "reference": "fd459e01d7c5f9bf7520cab613c791444ee1ed47", "shasum": "" }, "require": { @@ -3231,7 +3291,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "3.1.x-dev" } }, "autoload": { @@ -3263,20 +3323,20 @@ "payment", "stripe" ], - "time": "2018-05-15T08:30:49+00:00" + "time": "2019-08-20T08:21:50+00:00" }, { "name": "opis/closure", - "version": "3.1.6", + "version": "3.3.1", "source": { "type": "git", "url": "https://github.com/opis/closure.git", - "reference": "ccb8e3928c5c8181c76cdd0ed9366c5bcaafd91b" + "reference": "92927e26d7fc3f271efe1f55bdbb073fbb2f0722" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opis/closure/zipball/ccb8e3928c5c8181c76cdd0ed9366c5bcaafd91b", - "reference": "ccb8e3928c5c8181c76cdd0ed9366c5bcaafd91b", + "url": "https://api.github.com/repos/opis/closure/zipball/92927e26d7fc3f271efe1f55bdbb073fbb2f0722", + "reference": "92927e26d7fc3f271efe1f55bdbb073fbb2f0722", "shasum": "" }, "require": { @@ -3284,12 +3344,12 @@ }, "require-dev": { "jeremeamia/superclosure": "^2.0", - "phpunit/phpunit": "^4.0|^5.0|^6.0|^7.0" + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1.x-dev" + "dev-master": "3.3.x-dev" } }, "autoload": { @@ -3324,7 +3384,7 @@ "serialization", "serialize" ], - "time": "2019-02-22T10:30:00+00:00" + "time": "2019-07-09T21:58:11+00:00" }, { "name": "paragonie/random_compat", @@ -3506,28 +3566,29 @@ }, { "name": "php-http/discovery", - "version": "1.6.1", + "version": "1.7.0", "source": { "type": "git", "url": "https://github.com/php-http/discovery.git", - "reference": "684855f2c2e9d0a61868b8f8d6bd0295c8a4b651" + "reference": "e822f86a6983790aa17ab13aa7e69631e86806b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/discovery/zipball/684855f2c2e9d0a61868b8f8d6bd0295c8a4b651", - "reference": "684855f2c2e9d0a61868b8f8d6bd0295c8a4b651", + "url": "https://api.github.com/repos/php-http/discovery/zipball/e822f86a6983790aa17ab13aa7e69631e86806b6", + "reference": "e822f86a6983790aa17ab13aa7e69631e86806b6", "shasum": "" }, "require": { - "php": "^5.5 || ^7.0" + "php": "^7.1" }, "conflict": { "nyholm/psr7": "<1.0" }, "require-dev": { + "akeneo/phpspec-skip-example-extension": "^4.0", "php-http/httplug": "^1.0 || ^2.0", "php-http/message-factory": "^1.0", - "phpspec/phpspec": "^2.4", + "phpspec/phpspec": "^5.1", "puli/composer-plugin": "1.0.0-beta10" }, "suggest": { @@ -3537,7 +3598,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.5-dev" + "dev-master": "1.7-dev" } }, "autoload": { @@ -3566,7 +3627,7 @@ "message", "psr7" ], - "time": "2019-02-23T07:42:53+00:00" + "time": "2019-06-30T09:04:27+00:00" }, { "name": "php-http/httplug", @@ -3626,21 +3687,21 @@ }, { "name": "php-http/message", - "version": "1.7.2", + "version": "1.8.0", "source": { "type": "git", "url": "https://github.com/php-http/message.git", - "reference": "b159ffe570dffd335e22ef0b91a946eacb182fa1" + "reference": "ce8f43ac1e294b54aabf5808515c3554a19c1e1c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/message/zipball/b159ffe570dffd335e22ef0b91a946eacb182fa1", - "reference": "b159ffe570dffd335e22ef0b91a946eacb182fa1", + "url": "https://api.github.com/repos/php-http/message/zipball/ce8f43ac1e294b54aabf5808515c3554a19c1e1c", + "reference": "ce8f43ac1e294b54aabf5808515c3554a19c1e1c", "shasum": "" }, "require": { "clue/stream-filter": "^1.4", - "php": "^5.4 || ^7.0", + "php": "^7.1", "php-http/message-factory": "^1.0.2", "psr/http-message": "^1.0" }, @@ -3666,7 +3727,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.6-dev" + "dev-master": "1.8-dev" } }, "autoload": { @@ -3694,7 +3755,7 @@ "message", "psr-7" ], - "time": "2018-11-01T09:32:41+00:00" + "time": "2019-08-05T06:55:08+00:00" }, { "name": "php-http/message-factory", @@ -4229,24 +4290,24 @@ }, { "name": "ralouphie/getallheaders", - "version": "2.0.5", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/ralouphie/getallheaders.git", - "reference": "5601c8a83fbba7ef674a7369456d12f1e0d0eafa" + "reference": "120b605dfeb996808c31b6477290a714d356e822" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/5601c8a83fbba7ef674a7369456d12f1e0d0eafa", - "reference": "5601c8a83fbba7ef674a7369456d12f1e0d0eafa", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", "shasum": "" }, "require": { - "php": ">=5.3" + "php": ">=5.6" }, "require-dev": { - "phpunit/phpunit": "~3.7.0", - "satooshi/php-coveralls": ">=1.0" + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" }, "type": "library", "autoload": { @@ -4265,7 +4326,7 @@ } ], "description": "A polyfill for getallheaders.", - "time": "2016-02-11T07:05:27+00:00" + "time": "2019-03-08T08:55:37+00:00" }, { "name": "ramsey/uuid", @@ -4487,17 +4548,73 @@ "time": "2015-10-13T18:44:15+00:00" }, { - "name": "swiftmailer/swiftmailer", - "version": "v6.2.0", + "name": "stripe/stripe-php", + "version": "v6.43.0", "source": { "type": "git", - "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "6fa3232ff9d3f8237c0fae4b7ff05e1baa4cd707" + "url": "https://github.com/stripe/stripe-php.git", + "reference": "c06eb0da0e73750cab75948dd9ca4a15cf829e68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/6fa3232ff9d3f8237c0fae4b7ff05e1baa4cd707", - "reference": "6fa3232ff9d3f8237c0fae4b7ff05e1baa4cd707", + "url": "https://api.github.com/repos/stripe/stripe-php/zipball/c06eb0da0e73750cab75948dd9ca4a15cf829e68", + "reference": "c06eb0da0e73750cab75948dd9ca4a15cf829e68", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-json": "*", + "ext-mbstring": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "php-coveralls/php-coveralls": "1.*", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "~2.0", + "symfony/process": "~2.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "Stripe\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Stripe and contributors", + "homepage": "https://github.com/stripe/stripe-php/contributors" + } + ], + "description": "Stripe PHP Library", + "homepage": "https://stripe.com/", + "keywords": [ + "api", + "payment processing", + "stripe" + ], + "time": "2019-08-09T20:54:08+00:00" + }, + { + "name": "swiftmailer/swiftmailer", + "version": "v6.2.1", + "source": { + "type": "git", + "url": "https://github.com/swiftmailer/swiftmailer.git", + "reference": "5397cd05b0a0f7937c47b0adcb4c60e5ab936b6a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/5397cd05b0a0f7937c47b0adcb4c60e5ab936b6a", + "reference": "5397cd05b0a0f7937c47b0adcb4c60e5ab936b6a", "shasum": "" }, "require": { @@ -4546,29 +4663,31 @@ "mail", "mailer" ], - "time": "2019-03-10T07:52:41+00:00" + "time": "2019-04-21T09:21:45+00:00" }, { "name": "symfony/console", - "version": "v4.2.5", + "version": "v4.3.3", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "24206aff3efe6962593297e57ef697ebb220e384" + "reference": "8b0ae5742ce9aaa8b0075665862c1ca397d1c1d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/24206aff3efe6962593297e57ef697ebb220e384", - "reference": "24206aff3efe6962593297e57ef697ebb220e384", + "url": "https://api.github.com/repos/symfony/console/zipball/8b0ae5742ce9aaa8b0075665862c1ca397d1c1d9", + "reference": "8b0ae5742ce9aaa8b0075665862c1ca397d1c1d9", "shasum": "" }, "require": { "php": "^7.1.3", - "symfony/contracts": "^1.0", - "symfony/polyfill-mbstring": "~1.0" + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/service-contracts": "^1.1" }, "conflict": { "symfony/dependency-injection": "<3.4", + "symfony/event-dispatcher": "<4.3", "symfony/process": "<3.3" }, "provide": { @@ -4578,9 +4697,10 @@ "psr/log": "~1.0", "symfony/config": "~3.4|~4.0", "symfony/dependency-injection": "~3.4|~4.0", - "symfony/event-dispatcher": "~3.4|~4.0", + "symfony/event-dispatcher": "^4.3", "symfony/lock": "~3.4|~4.0", - "symfony/process": "~3.4|~4.0" + "symfony/process": "~3.4|~4.0", + "symfony/var-dumper": "^4.3" }, "suggest": { "psr/log": "For using the console logger", @@ -4591,7 +4711,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-master": "4.3-dev" } }, "autoload": { @@ -4618,79 +4738,11 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2019-04-01T07:32:59+00:00" - }, - { - "name": "symfony/contracts", - "version": "v1.0.2", - "source": { - "type": "git", - "url": "https://github.com/symfony/contracts.git", - "reference": "1aa7ab2429c3d594dd70689604b5cf7421254cdf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/contracts/zipball/1aa7ab2429c3d594dd70689604b5cf7421254cdf", - "reference": "1aa7ab2429c3d594dd70689604b5cf7421254cdf", - "shasum": "" - }, - "require": { - "php": "^7.1.3" - }, - "require-dev": { - "psr/cache": "^1.0", - "psr/container": "^1.0" - }, - "suggest": { - "psr/cache": "When using the Cache contracts", - "psr/container": "When using the Service contracts", - "symfony/cache-contracts-implementation": "", - "symfony/service-contracts-implementation": "", - "symfony/translation-contracts-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\": "" - }, - "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": "A set of abstractions extracted out of the Symfony components", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "time": "2018-12-05T08:06:11+00:00" + "time": "2019-07-24T17:13:59+00:00" }, { "name": "symfony/css-selector", - "version": "v3.4.24", + "version": "v3.4.30", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", @@ -4724,14 +4776,14 @@ "MIT" ], "authors": [ - { - "name": "Jean-François Simon", - "email": "jeanfrancois.simon@sensiolabs.com" - }, { "name": "Fabien Potencier", "email": "fabien@symfony.com" }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" @@ -4743,16 +4795,16 @@ }, { "name": "symfony/debug", - "version": "v4.2.5", + "version": "v4.3.3", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "43ce8ab34c734dcc8a4af576cb86711daab964c5" + "reference": "527887c3858a2462b0137662c74837288b998ee3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/43ce8ab34c734dcc8a4af576cb86711daab964c5", - "reference": "43ce8ab34c734dcc8a4af576cb86711daab964c5", + "url": "https://api.github.com/repos/symfony/debug/zipball/527887c3858a2462b0137662c74837288b998ee3", + "reference": "527887c3858a2462b0137662c74837288b998ee3", "shasum": "" }, "require": { @@ -4768,7 +4820,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-master": "4.3-dev" } }, "autoload": { @@ -4795,34 +4847,40 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2019-03-10T17:09:50+00:00" + "time": "2019-07-23T11:21:36+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v4.2.5", + "version": "v4.3.3", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "ca5af306fbc37f3cf597e91bc9cfa0c7d3f33544" + "reference": "212b020949331b6531250584531363844b34a94e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/ca5af306fbc37f3cf597e91bc9cfa0c7d3f33544", - "reference": "ca5af306fbc37f3cf597e91bc9cfa0c7d3f33544", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/212b020949331b6531250584531363844b34a94e", + "reference": "212b020949331b6531250584531363844b34a94e", "shasum": "" }, "require": { "php": "^7.1.3", - "symfony/contracts": "^1.0" + "symfony/event-dispatcher-contracts": "^1.1" }, "conflict": { "symfony/dependency-injection": "<3.4" }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "1.1" + }, "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/http-foundation": "^3.4|^4.0", + "symfony/service-contracts": "^1.1", "symfony/stopwatch": "~3.4|~4.0" }, "suggest": { @@ -4832,7 +4890,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-master": "4.3-dev" } }, "autoload": { @@ -4859,20 +4917,78 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2019-03-30T15:58:42+00:00" + "time": "2019-06-27T06:42:14+00:00" }, { - "name": "symfony/filesystem", - "version": "v4.2.5", + "name": "symfony/event-dispatcher-contracts", + "version": "v1.1.5", "source": { "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "e16b9e471703b2c60b95f14d31c1239f68f11601" + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "c61766f4440ca687de1084a5c00b08e167a2575c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/e16b9e471703b2c60b95f14d31c1239f68f11601", - "reference": "e16b9e471703b2c60b95f14d31c1239f68f11601", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c61766f4440ca687de1084a5c00b08e167a2575c", + "reference": "c61766f4440ca687de1084a5c00b08e167a2575c", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "suggest": { + "psr/event-dispatcher": "", + "symfony/event-dispatcher-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "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": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-06-20T06:46:26+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v4.3.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "b9896d034463ad6fd2bf17e2bf9418caecd6313d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/b9896d034463ad6fd2bf17e2bf9418caecd6313d", + "reference": "b9896d034463ad6fd2bf17e2bf9418caecd6313d", "shasum": "" }, "require": { @@ -4882,7 +4998,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-master": "4.3-dev" } }, "autoload": { @@ -4909,20 +5025,20 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2019-02-07T11:40:08+00:00" + "time": "2019-06-23T08:51:25+00:00" }, { "name": "symfony/finder", - "version": "v4.2.5", + "version": "v4.3.3", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "267b7002c1b70ea80db0833c3afe05f0fbde580a" + "reference": "9638d41e3729459860bb96f6247ccb61faaa45f2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/267b7002c1b70ea80db0833c3afe05f0fbde580a", - "reference": "267b7002c1b70ea80db0833c3afe05f0fbde580a", + "url": "https://api.github.com/repos/symfony/finder/zipball/9638d41e3729459860bb96f6247ccb61faaa45f2", + "reference": "9638d41e3729459860bb96f6247ccb61faaa45f2", "shasum": "" }, "require": { @@ -4931,7 +5047,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-master": "4.3-dev" } }, "autoload": { @@ -4958,24 +5074,25 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2019-02-23T15:42:05+00:00" + "time": "2019-06-28T13:16:30+00:00" }, { "name": "symfony/http-foundation", - "version": "v4.2.5", + "version": "v4.3.3", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "5b7ab6beaa5b053b8d3c9b13367ada9b292e12e1" + "reference": "8b778ee0c27731105fbf1535f51793ad1ae0ba2b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/5b7ab6beaa5b053b8d3c9b13367ada9b292e12e1", - "reference": "5b7ab6beaa5b053b8d3c9b13367ada9b292e12e1", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/8b778ee0c27731105fbf1535f51793ad1ae0ba2b", + "reference": "8b778ee0c27731105fbf1535f51793ad1ae0ba2b", "shasum": "" }, "require": { "php": "^7.1.3", + "symfony/mime": "^4.3", "symfony/polyfill-mbstring": "~1.1" }, "require-dev": { @@ -4985,7 +5102,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-master": "4.3-dev" } }, "autoload": { @@ -5012,34 +5129,35 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2019-03-30T15:58:42+00:00" + "time": "2019-07-23T11:21:36+00:00" }, { "name": "symfony/http-kernel", - "version": "v4.2.5", + "version": "v4.3.3", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "e8b940bbeebf0f96789b5d17d9d77f8b2613960b" + "reference": "a414548d236ddd8fa3df52367d583e82339c5e95" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/e8b940bbeebf0f96789b5d17d9d77f8b2613960b", - "reference": "e8b940bbeebf0f96789b5d17d9d77f8b2613960b", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/a414548d236ddd8fa3df52367d583e82339c5e95", + "reference": "a414548d236ddd8fa3df52367d583e82339c5e95", "shasum": "" }, "require": { "php": "^7.1.3", "psr/log": "~1.0", - "symfony/contracts": "^1.0.2", "symfony/debug": "~3.4|~4.0", - "symfony/event-dispatcher": "~4.1", + "symfony/event-dispatcher": "^4.3", "symfony/http-foundation": "^4.1.1", - "symfony/polyfill-ctype": "~1.8" + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php73": "^1.9" }, "conflict": { + "symfony/browser-kit": "<4.3", "symfony/config": "<3.4", - "symfony/dependency-injection": "<4.2", + "symfony/dependency-injection": "<4.3", "symfony/translation": "<4.2", "symfony/var-dumper": "<4.1.1", "twig/twig": "<1.34|<2.4,>=2" @@ -5049,11 +5167,11 @@ }, "require-dev": { "psr/cache": "~1.0", - "symfony/browser-kit": "~3.4|~4.0", + "symfony/browser-kit": "^4.3", "symfony/config": "~3.4|~4.0", "symfony/console": "~3.4|~4.0", "symfony/css-selector": "~3.4|~4.0", - "symfony/dependency-injection": "^4.2", + "symfony/dependency-injection": "^4.3", "symfony/dom-crawler": "~3.4|~4.0", "symfony/expression-language": "~3.4|~4.0", "symfony/finder": "~3.4|~4.0", @@ -5062,7 +5180,9 @@ "symfony/stopwatch": "~3.4|~4.0", "symfony/templating": "~3.4|~4.0", "symfony/translation": "~4.2", - "symfony/var-dumper": "^4.1.1" + "symfony/translation-contracts": "^1.1", + "symfony/var-dumper": "^4.1.1", + "twig/twig": "^1.34|^2.4" }, "suggest": { "symfony/browser-kit": "", @@ -5074,7 +5194,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-master": "4.3-dev" } }, "autoload": { @@ -5101,20 +5221,79 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2019-04-02T19:03:51+00:00" + "time": "2019-07-28T07:10:23+00:00" }, { - "name": "symfony/polyfill-ctype", - "version": "v1.11.0", + "name": "symfony/mime", + "version": "v4.3.3", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "82ebae02209c21113908c229e9883c419720738a" + "url": "https://github.com/symfony/mime.git", + "reference": "6b7148029b1dd5eda1502064f06d01357b7b2d8b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/82ebae02209c21113908c229e9883c419720738a", - "reference": "82ebae02209c21113908c229e9883c419720738a", + "url": "https://api.github.com/repos/symfony/mime/zipball/6b7148029b1dd5eda1502064f06d01357b7b2d8b", + "reference": "6b7148029b1dd5eda1502064f06d01357b7b2d8b", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0" + }, + "require-dev": { + "egulias/email-validator": "^2.0", + "symfony/dependency-injection": "~3.4|^4.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "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": "A library to manipulate MIME messages", + "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], + "time": "2019-07-19T16:21:19+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.12.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "550ebaac289296ce228a706d0867afc34687e3f4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/550ebaac289296ce228a706d0867afc34687e3f4", + "reference": "550ebaac289296ce228a706d0867afc34687e3f4", "shasum": "" }, "require": { @@ -5126,7 +5305,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.11-dev" + "dev-master": "1.12-dev" } }, "autoload": { @@ -5143,12 +5322,12 @@ ], "authors": [ { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" }, { - "name": "Gert de Pagter", - "email": "backendtea@gmail.com" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony polyfill for ctype functions", @@ -5159,20 +5338,20 @@ "polyfill", "portable" ], - "time": "2019-02-06T07:57:58+00:00" + "time": "2019-08-06T08:03:45+00:00" }, { "name": "symfony/polyfill-iconv", - "version": "v1.11.0", + "version": "v1.12.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "f037ea22acfaee983e271dd9c3b8bb4150bd8ad7" + "reference": "685968b11e61a347c18bf25db32effa478be610f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/f037ea22acfaee983e271dd9c3b8bb4150bd8ad7", - "reference": "f037ea22acfaee983e271dd9c3b8bb4150bd8ad7", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/685968b11e61a347c18bf25db32effa478be610f", + "reference": "685968b11e61a347c18bf25db32effa478be610f", "shasum": "" }, "require": { @@ -5184,7 +5363,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.11-dev" + "dev-master": "1.12-dev" } }, "autoload": { @@ -5218,20 +5397,20 @@ "portable", "shim" ], - "time": "2019-02-06T07:57:58+00:00" + "time": "2019-08-06T08:03:45+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.11.0", + "version": "v1.12.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "c766e95bec706cdd89903b1eda8afab7d7a6b7af" + "reference": "6af626ae6fa37d396dc90a399c0ff08e5cfc45b2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/c766e95bec706cdd89903b1eda8afab7d7a6b7af", - "reference": "c766e95bec706cdd89903b1eda8afab7d7a6b7af", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/6af626ae6fa37d396dc90a399c0ff08e5cfc45b2", + "reference": "6af626ae6fa37d396dc90a399c0ff08e5cfc45b2", "shasum": "" }, "require": { @@ -5245,7 +5424,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.12-dev" } }, "autoload": { @@ -5261,13 +5440,13 @@ "MIT" ], "authors": [ - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - }, { "name": "Laurent Bassin", "email": "laurent@bassin.info" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", @@ -5280,20 +5459,20 @@ "portable", "shim" ], - "time": "2019-03-04T13:44:35+00:00" + "time": "2019-08-06T08:03:45+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.11.0", + "version": "v1.12.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "fe5e94c604826c35a32fa832f35bd036b6799609" + "reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fe5e94c604826c35a32fa832f35bd036b6799609", - "reference": "fe5e94c604826c35a32fa832f35bd036b6799609", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b42a2f66e8f1b15ccf25652c3424265923eb4f17", + "reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17", "shasum": "" }, "require": { @@ -5305,7 +5484,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.11-dev" + "dev-master": "1.12-dev" } }, "autoload": { @@ -5339,20 +5518,20 @@ "portable", "shim" ], - "time": "2019-02-06T07:57:58+00:00" + "time": "2019-08-06T08:03:45+00:00" }, { "name": "symfony/polyfill-php56", - "version": "v1.11.0", + "version": "v1.12.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php56.git", - "reference": "f4dddbc5c3471e1b700a147a20ae17cdb72dbe42" + "reference": "0e3b212e96a51338639d8ce175c046d7729c3403" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/f4dddbc5c3471e1b700a147a20ae17cdb72dbe42", - "reference": "f4dddbc5c3471e1b700a147a20ae17cdb72dbe42", + "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/0e3b212e96a51338639d8ce175c046d7729c3403", + "reference": "0e3b212e96a51338639d8ce175c046d7729c3403", "shasum": "" }, "require": { @@ -5362,7 +5541,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.11-dev" + "dev-master": "1.12-dev" } }, "autoload": { @@ -5395,20 +5574,20 @@ "portable", "shim" ], - "time": "2019-02-06T07:57:58+00:00" + "time": "2019-08-06T08:03:45+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.11.0", + "version": "v1.12.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "ab50dcf166d5f577978419edd37aa2bb8eabce0c" + "reference": "04ce3335667451138df4307d6a9b61565560199e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/ab50dcf166d5f577978419edd37aa2bb8eabce0c", - "reference": "ab50dcf166d5f577978419edd37aa2bb8eabce0c", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/04ce3335667451138df4307d6a9b61565560199e", + "reference": "04ce3335667451138df4307d6a9b61565560199e", "shasum": "" }, "require": { @@ -5417,7 +5596,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.11-dev" + "dev-master": "1.12-dev" } }, "autoload": { @@ -5450,20 +5629,20 @@ "portable", "shim" ], - "time": "2019-02-06T07:57:58+00:00" + "time": "2019-08-06T08:03:45+00:00" }, { - "name": "symfony/polyfill-util", - "version": "v1.11.0", + "name": "symfony/polyfill-php73", + "version": "v1.12.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-util.git", - "reference": "b46c6cae28a3106735323f00a0c38eccf2328897" + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "2ceb49eaccb9352bff54d22570276bb75ba4a188" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/b46c6cae28a3106735323f00a0c38eccf2328897", - "reference": "b46c6cae28a3106735323f00a0c38eccf2328897", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/2ceb49eaccb9352bff54d22570276bb75ba4a188", + "reference": "2ceb49eaccb9352bff54d22570276bb75ba4a188", "shasum": "" }, "require": { @@ -5472,7 +5651,65 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.11-dev" + "dev-master": "1.12-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "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.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2019-08-06T08:03:45+00:00" + }, + { + "name": "symfony/polyfill-util", + "version": "v1.12.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-util.git", + "reference": "4317de1386717b4c22caed7725350a8887ab205c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/4317de1386717b4c22caed7725350a8887ab205c", + "reference": "4317de1386717b4c22caed7725350a8887ab205c", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.12-dev" } }, "autoload": { @@ -5502,20 +5739,20 @@ "polyfill", "shim" ], - "time": "2019-02-08T14:16:39+00:00" + "time": "2019-08-06T08:03:45+00:00" }, { "name": "symfony/process", - "version": "v4.2.5", + "version": "v4.3.3", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "1e6cbb41dadcaf29e0db034d6ad0d039a9df06e6" + "reference": "856d35814cf287480465bb7a6c413bb7f5f5e69c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/1e6cbb41dadcaf29e0db034d6ad0d039a9df06e6", - "reference": "1e6cbb41dadcaf29e0db034d6ad0d039a9df06e6", + "url": "https://api.github.com/repos/symfony/process/zipball/856d35814cf287480465bb7a6c413bb7f5f5e69c", + "reference": "856d35814cf287480465bb7a6c413bb7f5f5e69c", "shasum": "" }, "require": { @@ -5524,7 +5761,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-master": "4.3-dev" } }, "autoload": { @@ -5551,20 +5788,20 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2019-03-10T20:07:02+00:00" + "time": "2019-05-30T16:10:05+00:00" }, { "name": "symfony/routing", - "version": "v4.2.5", + "version": "v4.3.3", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "319f600c1ea0f981f6bdc2f042cfc1690957c0e0" + "reference": "a88c47a5861549f5dc1197660818084c3b67d773" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/319f600c1ea0f981f6bdc2f042cfc1690957c0e0", - "reference": "319f600c1ea0f981f6bdc2f042cfc1690957c0e0", + "url": "https://api.github.com/repos/symfony/routing/zipball/a88c47a5861549f5dc1197660818084c3b67d773", + "reference": "a88c47a5861549f5dc1197660818084c3b67d773", "shasum": "" }, "require": { @@ -5576,7 +5813,7 @@ "symfony/yaml": "<3.4" }, "require-dev": { - "doctrine/annotations": "~1.0", + "doctrine/annotations": "~1.2", "psr/log": "~1.0", "symfony/config": "~4.2", "symfony/dependency-injection": "~3.4|~4.0", @@ -5594,7 +5831,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-master": "4.3-dev" } }, "autoload": { @@ -5627,26 +5864,84 @@ "uri", "url" ], - "time": "2019-03-30T15:58:42+00:00" + "time": "2019-07-23T14:43:56+00:00" }, { - "name": "symfony/translation", - "version": "v4.2.5", + "name": "symfony/service-contracts", + "version": "v1.1.5", "source": { "type": "git", - "url": "https://github.com/symfony/translation.git", - "reference": "e46933cc31b68f51f7fc5470fb55550407520f56" + "url": "https://github.com/symfony/service-contracts.git", + "reference": "f391a00de78ec7ec8cf5cdcdae59ec7b883edb8d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/e46933cc31b68f51f7fc5470fb55550407520f56", - "reference": "e46933cc31b68f51f7fc5470fb55550407520f56", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f391a00de78ec7ec8cf5cdcdae59ec7b883edb8d", + "reference": "f391a00de78ec7ec8cf5cdcdae59ec7b883edb8d", "shasum": "" }, "require": { "php": "^7.1.3", - "symfony/contracts": "^1.0.2", - "symfony/polyfill-mbstring": "~1.0" + "psr/container": "^1.0" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "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": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-06-13T11:15:36+00:00" + }, + { + "name": "symfony/translation", + "version": "v4.3.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "4e3e39cc485304f807622bdc64938e4633396406" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/4e3e39cc485304f807622bdc64938e4633396406", + "reference": "4e3e39cc485304f807622bdc64938e4633396406", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/translation-contracts": "^1.1.2" }, "conflict": { "symfony/config": "<3.4", @@ -5654,7 +5949,7 @@ "symfony/yaml": "<3.4" }, "provide": { - "symfony/translation-contracts-implementation": "1.0" + "symfony/translation-implementation": "1.0" }, "require-dev": { "psr/log": "~1.0", @@ -5662,7 +5957,10 @@ "symfony/console": "~3.4|~4.0", "symfony/dependency-injection": "~3.4|~4.0", "symfony/finder": "~2.8|~3.0|~4.0", + "symfony/http-kernel": "~3.4|~4.0", "symfony/intl": "~3.4|~4.0", + "symfony/service-contracts": "^1.1.2", + "symfony/var-dumper": "~3.4|~4.0", "symfony/yaml": "~3.4|~4.0" }, "suggest": { @@ -5673,7 +5971,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-master": "4.3-dev" } }, "autoload": { @@ -5700,20 +5998,77 @@ ], "description": "Symfony Translation Component", "homepage": "https://symfony.com", - "time": "2019-04-01T14:13:08+00:00" + "time": "2019-07-18T10:34:59+00:00" }, { - "name": "symfony/var-dumper", - "version": "v4.2.5", + "name": "symfony/translation-contracts", + "version": "v1.1.5", "source": { "type": "git", - "url": "https://github.com/symfony/var-dumper.git", - "reference": "9f87189ac10b42edf7fb8edc846f1937c6d157cf" + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "cb4b18ad7b92a26e83b65dde940fab78339e6f3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/9f87189ac10b42edf7fb8edc846f1937c6d157cf", - "reference": "9f87189ac10b42edf7fb8edc846f1937c6d157cf", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/cb4b18ad7b92a26e83b65dde940fab78339e6f3c", + "reference": "cb4b18ad7b92a26e83b65dde940fab78339e6f3c", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "suggest": { + "symfony/translation-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + } + }, + "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": "Generic abstractions related to translation", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-06-13T11:15:36+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v4.3.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "e4110b992d2cbe198d7d3b244d079c1c58761d07" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/e4110b992d2cbe198d7d3b244d079c1c58761d07", + "reference": "e4110b992d2cbe198d7d3b244d079c1c58761d07", "shasum": "" }, "require": { @@ -5742,7 +6097,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-master": "4.3-dev" } }, "autoload": { @@ -5776,7 +6131,7 @@ "debug", "dump" ], - "time": "2019-02-23T15:17:42+00:00" + "time": "2019-07-27T06:42:46+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -5925,16 +6280,16 @@ }, { "name": "vlucas/phpdotenv", - "version": "v3.3.3", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "dbcc609971dd9b55f48b8008b553d79fd372ddde" + "reference": "5084b23845c24dbff8ac6c204290c341e4776c92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/dbcc609971dd9b55f48b8008b553d79fd372ddde", - "reference": "dbcc609971dd9b55f48b8008b553d79fd372ddde", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/5084b23845c24dbff8ac6c204290c341e4776c92", + "reference": "5084b23845c24dbff8ac6c204290c341e4776c92", "shasum": "" }, "require": { @@ -5948,7 +6303,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -5973,7 +6328,7 @@ "env", "environment" ], - "time": "2019-03-06T09:39:45+00:00" + "time": "2019-06-15T22:40:20+00:00" } ], "packages-dev": [ @@ -6085,16 +6440,16 @@ }, { "name": "myclabs/deep-copy", - "version": "1.8.1", + "version": "1.9.3", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8" + "reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8", - "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/007c053ae6f31bba39dfa19a7726f56e9763bbea", + "reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea", "shasum": "" }, "require": { @@ -6129,7 +6484,7 @@ "object", "object graph" ], - "time": "2018-06-11T23:09:50+00:00" + "time": "2019-08-09T12:45:53+00:00" }, { "name": "phar-io/manifest", @@ -6289,16 +6644,16 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "4.3.0", + "version": "4.3.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "94fd0001232e47129dd3504189fa1c7225010d08" + "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08", - "reference": "94fd0001232e47129dd3504189fa1c7225010d08", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c", + "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c", "shasum": "" }, "require": { @@ -6336,7 +6691,7 @@ } ], "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-30T07:14:17+00:00" + "time": "2019-04-30T17:48:53+00:00" }, { "name": "phpdocumentor/type-resolver", @@ -6506,16 +6861,16 @@ }, { "name": "phpspec/prophecy", - "version": "1.8.0", + "version": "1.8.1", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06" + "reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06", - "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/1927e75f4ed19131ec9bcc3b002e07fb1173ee76", + "reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76", "shasum": "" }, "require": { @@ -6536,8 +6891,8 @@ } }, "autoload": { - "psr-0": { - "Prophecy\\": "src/" + "psr-4": { + "Prophecy\\": "src/Prophecy" } }, "notification-url": "https://packagist.org/downloads/", @@ -6565,7 +6920,7 @@ "spy", "stub" ], - "time": "2018-08-05T17:53:17+00:00" + "time": "2019-06-13T12:50:23+00:00" }, { "name": "phpunit/php-code-coverage", @@ -6723,16 +7078,16 @@ }, { "name": "phpunit/php-timer", - "version": "2.1.1", + "version": "2.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "8b389aebe1b8b0578430bda0c7c95a829608e059" + "reference": "1038454804406b0b5f5f520358e78c1c2f71501e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/8b389aebe1b8b0578430bda0c7c95a829608e059", - "reference": "8b389aebe1b8b0578430bda0c7c95a829608e059", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e", + "reference": "1038454804406b0b5f5f520358e78c1c2f71501e", "shasum": "" }, "require": { @@ -6759,8 +7114,8 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "role": "lead", + "email": "sebastian@phpunit.de" } ], "description": "Utility class for timing", @@ -6768,20 +7123,20 @@ "keywords": [ "timer" ], - "time": "2019-02-20T10:12:59+00:00" + "time": "2019-06-07T04:22:29+00:00" }, { "name": "phpunit/php-token-stream", - "version": "3.0.1", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "c99e3be9d3e85f60646f152f9002d46ed7770d18" + "reference": "e899757bb3df5ff6e95089132f32cd59aac2220a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/c99e3be9d3e85f60646f152f9002d46ed7770d18", - "reference": "c99e3be9d3e85f60646f152f9002d46ed7770d18", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/e899757bb3df5ff6e95089132f32cd59aac2220a", + "reference": "e899757bb3df5ff6e95089132f32cd59aac2220a", "shasum": "" }, "require": { @@ -6794,7 +7149,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -6817,7 +7172,7 @@ "keywords": [ "tokenizer" ], - "time": "2018-10-30T05:52:18+00:00" + "time": "2019-07-25T05:29:42+00:00" }, { "name": "phpunit/phpunit", @@ -7120,16 +7475,16 @@ }, { "name": "sebastian/exporter", - "version": "3.1.0", + "version": "3.1.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937" + "reference": "06a9a5947f47b3029d76118eb5c22802e5869687" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/06a9a5947f47b3029d76118eb5c22802e5869687", + "reference": "06a9a5947f47b3029d76118eb5c22802e5869687", "shasum": "" }, "require": { @@ -7156,6 +7511,10 @@ "BSD-3-Clause" ], "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, { "name": "Jeff Welch", "email": "whatthejeff@gmail.com" @@ -7164,17 +7523,13 @@ "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" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" } ], "description": "Provides the functionality to export PHP variables for visualization", @@ -7183,7 +7538,7 @@ "export", "exporter" ], - "time": "2017-04-03T13:19:02+00:00" + "time": "2019-08-11T12:43:14+00:00" }, { "name": "sebastian/global-state", @@ -7468,16 +7823,16 @@ }, { "name": "symfony/dom-crawler", - "version": "v3.4.24", + "version": "v3.4.30", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "d40023c057393fb25f7ca80af2a56ed948c45a09" + "reference": "adb96e63af6fb0cc721cc69861001d60d0133d0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/d40023c057393fb25f7ca80af2a56ed948c45a09", - "reference": "d40023c057393fb25f7ca80af2a56ed948c45a09", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/adb96e63af6fb0cc721cc69861001d60d0133d0c", + "reference": "adb96e63af6fb0cc721cc69861001d60d0133d0c", "shasum": "" }, "require": { @@ -7521,20 +7876,20 @@ ], "description": "Symfony DomCrawler Component", "homepage": "https://symfony.com", - "time": "2019-02-23T15:06:07+00:00" + "time": "2019-05-30T15:47:52+00:00" }, { "name": "symfony/yaml", - "version": "v4.2.5", + "version": "v4.3.3", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "6712daf03ee25b53abb14e7e8e0ede1a770efdb1" + "reference": "34d29c2acd1ad65688f58452fd48a46bd996d5a6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/6712daf03ee25b53abb14e7e8e0ede1a770efdb1", - "reference": "6712daf03ee25b53abb14e7e8e0ede1a770efdb1", + "url": "https://api.github.com/repos/symfony/yaml/zipball/34d29c2acd1ad65688f58452fd48a46bd996d5a6", + "reference": "34d29c2acd1ad65688f58452fd48a46bd996d5a6", "shasum": "" }, "require": { @@ -7553,7 +7908,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-master": "4.3-dev" } }, "autoload": { @@ -7580,20 +7935,20 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2019-03-30T15:58:42+00:00" + "time": "2019-07-24T14:47:54+00:00" }, { "name": "theseer/tokenizer", - "version": "1.1.2", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "1c42705be2b6c1de5904f8afacef5895cab44bf8" + "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/1c42705be2b6c1de5904f8afacef5895cab44bf8", - "reference": "1c42705be2b6c1de5904f8afacef5895cab44bf8", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9", + "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9", "shasum": "" }, "require": { @@ -7615,12 +7970,12 @@ "authors": [ { "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" + "role": "Developer", + "email": "arne@blankerts.de" } ], "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "time": "2019-04-04T09:56:43+00:00" + "time": "2019-06-13T22:48:21+00:00" }, { "name": "webmozart/assert", @@ -7678,7 +8033,8 @@ "minimum-stability": "stable", "stability-flags": { "maxhoffmann/parsedown-laravel": 20, - "nitmedia/wkhtml2pdf": 20 + "nitmedia/wkhtml2pdf": 20, + "omnipay/stripe": 20 }, "prefer-stable": false, "prefer-lowest": false, diff --git a/public/assets/javascript/app-public.js b/public/assets/javascript/app-public.js index a272ecc0..d342c8b1 100644 --- a/public/assets/javascript/app-public.js +++ b/public/assets/javascript/app-public.js @@ -1,144 +1,160 @@ +function getAjaxFormConfig(form) { + + var $form = form; + var $submitButton = $form.find('input[type=submit]'); + + toggleSubmitDisabled($submitButton); + + var ajaxFormConf = { + delegation: true, + beforeSerialize: function (jqForm, options) { + window.doSubmit = true; + clearFormErrors(jqForm[0]); + toggleSubmitDisabled($submitButton); + }, + beforeSubmit: function () { + $submitButton = $form.find('input[type=submit]'); + toggleSubmitDisabled($submitButton); + return window.doSubmit; + }, + error: function (data, statusText, xhr, $form) { + $submitButton = $form.find('input[type=submit]'); + + // Form validation error. + if (422 == data.status) { + processFormErrors($form, $.parseJSON(data.responseText)); + return; + } + + toggleSubmitDisabled($submitButton); + showMessage(lang("whoops")); + }, + success: function (data, statusText, xhr, $form) { + var $submitButton = $form.find('input[type=submit]'); + + if (data.message) { + showMessage(data.message); + } + switch (data.status) { + case 'success': + + if (data.redirectUrl) { + if (data.redirectData) { + $.redirectPost(data.redirectUrl, data.redirectData); + } else { + document.location.href = data.redirectUrl; + } + } + break; + + case 'error': + if (data.messages) { + processFormErrors($form, data.messages); + return; + } + break; + + default: + break; + } + + toggleSubmitDisabled($submitButton); + + }, + dataType: 'json' + }; + + return ajaxFormConf; +} + $(function() { + $('form.ajax').on('submit', function(e) { e.preventDefault(); e.stopImmediatePropagation(); - var $form = - $(this), - $submitButton = $form.find('input[type=submit]'), - ajaxFormConf = { - delegation: true, - beforeSerialize: function(jqForm, options) { - window.doSubmit = true; - clearFormErrors(jqForm[0]); - toggleSubmitDisabled($submitButton); - }, - beforeSubmit: function() { - $submitButton = $form.find('input[type=submit]'); - toggleSubmitDisabled($submitButton); - return window.doSubmit; - }, - error: function(data, statusText, xhr, $form) { - $submitButton = $form.find('input[type=submit]'); + var ajaxFormConf = getAjaxFormConfig($(this)); - // Form validation error. - if (422 == data.status) { - processFormErrors($form, $.parseJSON(data.responseText)); - return; - } + $(this).ajaxSubmit(ajaxFormConf); - toggleSubmitDisabled($submitButton); - showMessage(lang("whoops")); - }, - success: function(data, statusText, xhr, $form) { - var $submitButton = $form.find('input[type=submit]'); - - if (data.message) { - showMessage(data.message); - } - switch (data.status) { - case 'success': - - if (data.redirectUrl) { - if(data.redirectData) { - $.redirectPost(data.redirectUrl, data.redirectData); - } else { - document.location.href = data.redirectUrl; - } - } - break; - - case 'error': - if (data.messages) { - processFormErrors($form, data.messages); - return; - } - break; - - default: - break; - - - } - - toggleSubmitDisabled($submitButton); - - - }, - dataType: 'json' - }; - - toggleSubmitDisabled($submitButton); - - if ($form.hasClass('payment-form') && !$('#pay_offline').is(":checked")) { - clearFormErrors($('.payment-form')); - - Stripe.setPublishableKey($form.data('stripe-pub-key')); - - var - noErrors = true, - $cardNumber = $('.card-number'), - $cardName = $('.card-name'), - $cvcNumber = $('.card-cvc'), - $expiryMonth = $('.card-expiry-month'), - $expiryYear = $('.card-expiry-year'); - - - if (!Stripe.validateCardNumber($cardNumber.val())) { - showFormError($cardNumber, lang("credit_card_error")); - noErrors = false; - } - - if (!Stripe.validateCVC($cvcNumber.val())) { - showFormError($cardNumber, lang("cvc_error")); - noErrors = false; - } - - if (!Stripe.validateExpiry($expiryMonth.val(), $expiryYear.val())) { - showFormError($cardNumber, lang("expiry_error")); - showFormError($expiryYear, ''); - noErrors = false; - } - - if (noErrors) { - Stripe.card.createToken({ - name: $cardName.val(), - number: $cardNumber.val(), - cvc: $cvcNumber.val(), - exp_month: $expiryMonth.val(), - exp_year: $expiryYear.val() - }, - function(status, response) { - - if (response.error) { - clearFormErrors($('.payment-form')); - if(response.error.param.length>0) - showFormError($('*[data-stripe=' + response.error.param + ']', $('.payment-form')), response.error.message); - else - showMessage(response.error.message); - toggleSubmitDisabled($submitButton); - } else { - var token = response.id; - $form.append($('').val(token)); - $form.ajaxSubmit(ajaxFormConf); - } - - }); - } else { - showMessage(lang("card_validation_error")); - toggleSubmitDisabled($submitButton); - } - - } else { - $form.ajaxSubmit(ajaxFormConf); - } }); + //handles stripe payment form submit + $('#stripe-payment-form').on('submit', function (e) { + + e.preventDefault(); + e.stopImmediatePropagation(); + + stripe.createToken(card).then(function (result) { + if (result.error) { + // Inform the user if there was an error. + var errorElement = document.getElementById('card-errors'); + errorElement.textContent = result.error.message; + } else { + // Send the token to your server. + stripeTokenHandler(result.token); + } + }); + + }); + + function stripeTokenHandler(token) { + + var form = document.getElementById('stripe-payment-form'); + var hiddenInput = document.createElement('input'); + hiddenInput.setAttribute('type', 'hidden'); + hiddenInput.setAttribute('name', 'stripeToken'); + hiddenInput.setAttribute('value', token.id); + form.appendChild(hiddenInput); + + var $ajaxFormConf = getAjaxFormConfig($('#stripe-payment-form')); + $('#stripe-payment-form').ajaxSubmit($ajaxFormConf); + + } + + $('#stripe-sca-payment-form').on('submit', function (e) { + + e.preventDefault(); + e.stopImmediatePropagation(); + + stripe.createPaymentMethod( + 'card', + cardElement + ).then(function (result) { + if (result.error) { + var errorElement = document.getElementById('card-errors'); + errorElement.textContent = result.error.message; + } else { + + stripePaymentMethodHandler(result.paymentMethod); + } + }); + }); + + + function stripePaymentMethodHandler(paymentMethod) { + + var form = document.getElementById('stripe-sca-payment-form'); + var hiddenInput = document.createElement('input'); + hiddenInput.setAttribute('type', 'hidden'); + hiddenInput.setAttribute('name', 'paymentMethod'); + hiddenInput.setAttribute('value', paymentMethod.id); + form.appendChild(hiddenInput); + + var $ajaxFormConf = getAjaxFormConfig($('#stripe-sca-payment-form')); + $('#stripe-sca-payment-form').ajaxSubmit($ajaxFormConf); + + } + + $('#pay_offline').change(function () { + $('.online_payment').toggle(!this.checked); + $('.offline_payment').toggle(this.checked); + }).change(); + $('a').smoothScroll({ offset: -60 }); - /* Scroll to top */ $(window).scroll(function() { if ($(this).scrollTop() > 100) { @@ -167,15 +183,6 @@ $(function() { $('.card-number').payment('formatCardNumber'); $('.card-cvc').payment('formatCardCVC'); - $('#pay_offline').change(function () { - $('.online_payment').toggle(!this.checked); - $('.offline_payment').toggle(this.checked); - - // Disable CC form inputs to prevent Chrome trying to validate hidden fields - $('.online_payment input, .online_payment select').attr('disabled', this.checked); - - }).change(); - // Apply access code here to unlock hidden tickets $('#apply_access_code').click(function(e) { var $clicked = $(this); diff --git a/public/assets/javascript/frontend.js b/public/assets/javascript/frontend.js index 5f0453cc..04466f3d 100644 --- a/public/assets/javascript/frontend.js +++ b/public/assets/javascript/frontend.js @@ -4566,147 +4566,163 @@ function log() { }; }).call(this); -;$(function() { +;function getAjaxFormConfig(form) { + + var $form = form; + var $submitButton = $form.find('input[type=submit]'); + + toggleSubmitDisabled($submitButton); + + var ajaxFormConf = { + delegation: true, + beforeSerialize: function (jqForm, options) { + window.doSubmit = true; + clearFormErrors(jqForm[0]); + toggleSubmitDisabled($submitButton); + }, + beforeSubmit: function () { + $submitButton = $form.find('input[type=submit]'); + toggleSubmitDisabled($submitButton); + return window.doSubmit; + }, + error: function (data, statusText, xhr, $form) { + $submitButton = $form.find('input[type=submit]'); + + // Form validation error. + if (422 == data.status) { + processFormErrors($form, $.parseJSON(data.responseText)); + return; + } + + toggleSubmitDisabled($submitButton); + showMessage(lang("whoops")); + }, + success: function (data, statusText, xhr, $form) { + var $submitButton = $form.find('input[type=submit]'); + + if (data.message) { + showMessage(data.message); + } + switch (data.status) { + case 'success': + + if (data.redirectUrl) { + if (data.redirectData) { + $.redirectPost(data.redirectUrl, data.redirectData); + } else { + document.location.href = data.redirectUrl; + } + } + break; + + case 'error': + if (data.messages) { + processFormErrors($form, data.messages); + return; + } + break; + + default: + break; + } + + toggleSubmitDisabled($submitButton); + + }, + dataType: 'json' + }; + + return ajaxFormConf; +} + +$(function() { + $('form.ajax').on('submit', function(e) { e.preventDefault(); e.stopImmediatePropagation(); - var $form = - $(this), - $submitButton = $form.find('input[type=submit]'), - ajaxFormConf = { - delegation: true, - beforeSerialize: function(jqForm, options) { - window.doSubmit = true; - clearFormErrors(jqForm[0]); - toggleSubmitDisabled($submitButton); - }, - beforeSubmit: function() { - $submitButton = $form.find('input[type=submit]'); - toggleSubmitDisabled($submitButton); - return window.doSubmit; - }, - error: function(data, statusText, xhr, $form) { - $submitButton = $form.find('input[type=submit]'); + var ajaxFormConf = getAjaxFormConfig($(this)); - // Form validation error. - if (422 == data.status) { - processFormErrors($form, $.parseJSON(data.responseText)); - return; - } + $(this).ajaxSubmit(ajaxFormConf); - toggleSubmitDisabled($submitButton); - showMessage(lang("whoops")); - }, - success: function(data, statusText, xhr, $form) { - var $submitButton = $form.find('input[type=submit]'); - - if (data.message) { - showMessage(data.message); - } - switch (data.status) { - case 'success': - - if (data.redirectUrl) { - if(data.redirectData) { - $.redirectPost(data.redirectUrl, data.redirectData); - } else { - document.location.href = data.redirectUrl; - } - } - break; - - case 'error': - if (data.messages) { - processFormErrors($form, data.messages); - return; - } - break; - - default: - break; - - - } - - toggleSubmitDisabled($submitButton); - - - }, - dataType: 'json' - }; - - toggleSubmitDisabled($submitButton); - - if ($form.hasClass('payment-form') && !$('#pay_offline').is(":checked")) { - clearFormErrors($('.payment-form')); - - Stripe.setPublishableKey($form.data('stripe-pub-key')); - - var - noErrors = true, - $cardNumber = $('.card-number'), - $cardName = $('.card-name'), - $cvcNumber = $('.card-cvc'), - $expiryMonth = $('.card-expiry-month'), - $expiryYear = $('.card-expiry-year'); - - - if (!Stripe.validateCardNumber($cardNumber.val())) { - showFormError($cardNumber, lang("credit_card_error")); - noErrors = false; - } - - if (!Stripe.validateCVC($cvcNumber.val())) { - showFormError($cardNumber, lang("cvc_error")); - noErrors = false; - } - - if (!Stripe.validateExpiry($expiryMonth.val(), $expiryYear.val())) { - showFormError($cardNumber, lang("expiry_error")); - showFormError($expiryYear, ''); - noErrors = false; - } - - if (noErrors) { - Stripe.card.createToken({ - name: $cardName.val(), - number: $cardNumber.val(), - cvc: $cvcNumber.val(), - exp_month: $expiryMonth.val(), - exp_year: $expiryYear.val() - }, - function(status, response) { - - if (response.error) { - clearFormErrors($('.payment-form')); - if(response.error.param.length>0) - showFormError($('*[data-stripe=' + response.error.param + ']', $('.payment-form')), response.error.message); - else - showMessage(response.error.message); - toggleSubmitDisabled($submitButton); - } else { - var token = response.id; - $form.append($('').val(token)); - $form.ajaxSubmit(ajaxFormConf); - } - - }); - } else { - showMessage(lang("card_validation_error")); - toggleSubmitDisabled($submitButton); - } - - } else { - $form.ajaxSubmit(ajaxFormConf); - } }); + //handles stripe payment form submit + $('#stripe-payment-form').on('submit', function (e) { + + e.preventDefault(); + e.stopImmediatePropagation(); + + stripe.createToken(card).then(function (result) { + if (result.error) { + // Inform the user if there was an error. + var errorElement = document.getElementById('card-errors'); + errorElement.textContent = result.error.message; + } else { + // Send the token to your server. + stripeTokenHandler(result.token); + } + }); + + }); + + function stripeTokenHandler(token) { + + var form = document.getElementById('stripe-payment-form'); + var hiddenInput = document.createElement('input'); + hiddenInput.setAttribute('type', 'hidden'); + hiddenInput.setAttribute('name', 'stripeToken'); + hiddenInput.setAttribute('value', token.id); + form.appendChild(hiddenInput); + + var $ajaxFormConf = getAjaxFormConfig($('#stripe-payment-form')); + $('#stripe-payment-form').ajaxSubmit($ajaxFormConf); + + } + + $('#stripe-sca-payment-form').on('submit', function (e) { + + e.preventDefault(); + e.stopImmediatePropagation(); + + stripe.createPaymentMethod( + 'card', + cardElement + ).then(function (result) { + if (result.error) { + var errorElement = document.getElementById('card-errors'); + errorElement.textContent = result.error.message; + } else { + + stripePaymentMethodHandler(result.paymentMethod); + } + }); + }); + + + function stripePaymentMethodHandler(paymentMethod) { + + var form = document.getElementById('stripe-sca-payment-form'); + var hiddenInput = document.createElement('input'); + hiddenInput.setAttribute('type', 'hidden'); + hiddenInput.setAttribute('name', 'paymentMethod'); + hiddenInput.setAttribute('value', paymentMethod.id); + form.appendChild(hiddenInput); + + var $ajaxFormConf = getAjaxFormConfig($('#stripe-sca-payment-form')); + $('#stripe-sca-payment-form').ajaxSubmit($ajaxFormConf); + + } + + $('#pay_offline').change(function () { + $('.online_payment').toggle(!this.checked); + $('.offline_payment').toggle(this.checked); + }).change(); + $('a').smoothScroll({ offset: -60 }); - - + /* Scroll to top */ $(window).scroll(function() { if ($(this).scrollTop() > 100) { @@ -4735,15 +4751,6 @@ function log() { $('.card-number').payment('formatCardNumber'); $('.card-cvc').payment('formatCardCVC'); - $('#pay_offline').change(function () { - $('.online_payment').toggle(!this.checked); - $('.offline_payment').toggle(this.checked); - - // Disable CC form inputs to prevent Chrome trying to validate hidden fields - $('.online_payment input, .online_payment select').attr('disabled', this.checked); - - }).change(); - // Apply access code here to unlock hidden tickets $('#apply_access_code').click(function(e) { var $clicked = $(this); diff --git a/resources/lang/en/Public_ViewEvent.php b/resources/lang/en/Public_ViewEvent.php index bdd2de51..56cf38bf 100644 --- a/resources/lang/en/Public_ViewEvent.php +++ b/resources/lang/en/Public_ViewEvent.php @@ -27,6 +27,7 @@ return [ 'business_address_code' => 'Code', 'card_number' => 'Card number', 'checkout_submit' => 'Checkout', + 'checkout_order' => 'Contine to Payment', 'confirmation_email' => 'and a confirmation email have been sent to you.', 'copy_buyer' => 'Copy buyer details to all ticket holders', 'currently_not_on_sale' => 'Currently Not On Sale', diff --git a/resources/views/ManageAccount/Partials/PaymentGatewayOptions.blade.php b/resources/views/ManageAccount/Partials/PaymentGatewayOptions.blade.php index 295e5f89..94f0eff7 100644 --- a/resources/views/ManageAccount/Partials/PaymentGatewayOptions.blade.php +++ b/resources/views/ManageAccount/Partials/PaymentGatewayOptions.blade.php @@ -1,9 +1,10 @@ + {!! Form::model($account, array('url' => route('postEditAccountPayment'), 'class' => 'ajax ')) !!}
- {!! Form::label('payment_gateway_id', trans("ManageAccount.default_payment_gateway"), array('class'=>'control-label ')) !!} - {!! Form::select('payment_gateway_id', $payment_gateways, $account->payment_gateway_id, ['class' => 'form-control gateway_selector']) !!} + {!! Form::label('payment_gateway_id', trans("ManageAccount.default_payment_gateway"), array('class'=>'control-label ')) !!}
+ + @foreach ($payment_gateways as $id => $payment_gateway) + {!! Form::radio('payment_gateway', $payment_gateway['id'], $payment_gateway['default'], array('id'=>'payment_gateway_' . $payment_gateway['id'])) !!} + {!! Form::label($payment_gateway['provider_name'],$payment_gateway['provider_name'] , array('class'=>'control-label gateway_selector')) !!}
+ @endforeach + +
{{--Stripe--}} @@ -36,6 +44,25 @@ +{{--Stripe SCA--}} +
+

@lang("ManageAccount.stripe_settings")

+
+
+
+ {!! Form::label('stripe_sca[apiKey]', trans("ManageAccount.stripe_secret_key"), array('class'=>'control-label ')) !!} + {!! Form::text('stripe_sca[apiKey]', $account->getGatewayConfigVal(config('attendize.payment_gateway_stripe_sca'), 'apiKey'),[ 'class'=>'form-control']) !!} +
+
+
+
+ {!! Form::label('publishableKey', trans("ManageAccount.stripe_publishable_key"), array('class'=>'control-label ')) !!} + {!! Form::text('stripe_sca[publishableKey]', $account->getGatewayConfigVal(config('attendize.payment_gateway_stripe_sca'), 'publishableKey'),[ 'class'=>'form-control']) !!} +
+
+
+
+ {{--Paypal--}}

@lang("ManageAccount.paypal_settings")

@@ -73,8 +100,6 @@ - -
diff --git a/resources/views/Public/ViewEvent/EventPageCheckout.blade.php b/resources/views/Public/ViewEvent/EventPageCheckout.blade.php index 1942720b..1d9b0b30 100644 --- a/resources/views/Public/ViewEvent/EventPageCheckout.blade.php +++ b/resources/views/Public/ViewEvent/EventPageCheckout.blade.php @@ -1,7 +1,7 @@ @extends('Public.ViewEvent.Layouts.EventPage') @section('head') - + @stop @section('content') diff --git a/resources/views/Public/ViewEvent/EventPagePayment.blade.php b/resources/views/Public/ViewEvent/EventPagePayment.blade.php new file mode 100644 index 00000000..8b5c516c --- /dev/null +++ b/resources/views/Public/ViewEvent/EventPagePayment.blade.php @@ -0,0 +1,12 @@ +@extends('Public.ViewEvent.Layouts.EventPage') + +@section('head') + +@stop + +@section('content') +@include('Public.ViewEvent.Partials.EventHeaderSection') +@include('Public.ViewEvent.Partials.EventPaymentSection') +@include('Public.ViewEvent.Partials.EventFooterSection') +@stop + diff --git a/resources/views/Public/ViewEvent/Partials/EventCreateOrderSection.blade.php b/resources/views/Public/ViewEvent/Partials/EventCreateOrderSection.blade.php index 66bb48a5..4d783f95 100644 --- a/resources/views/Public/ViewEvent/Partials/EventCreateOrderSection.blade.php +++ b/resources/views/Public/ViewEvent/Partials/EventCreateOrderSection.blade.php @@ -58,7 +58,7 @@
- {!! Form::open(['url' => route('postCreateOrder', ['event_id' => $event->id]), 'class' => ($order_requires_payment && @$payment_gateway->is_on_site) ? 'ajax payment-form' : 'ajax', 'data-stripe-pub-key' => isset($account_payment_gateway->config['publishableKey']) ? $account_payment_gateway->config['publishableKey'] : '']) !!} + {!! Form::open(['url' => route('postValidateOrder', ['event_id' => $event->id ]) ]) !!} {!! Form::hidden('event_id', $event->id) !!} @@ -201,10 +201,7 @@ @include('Public.ViewEvent.Partials.AttendeeQuestions', ['ticket' => $ticket['ticket'],'attendee_number' => $total_attendee_increment++])
-
- - @endfor @endforeach @@ -212,82 +209,6 @@ - - - @if($order_requires_payment) - -

@lang("Public_ViewEvent.payment_information")

- @lang("Public_ViewEvent.below_payment_information_header") - @if($event->enable_offline_payments) -
-
- @if($payment_gateway === false) - {{-- Force offline payment if no gateway --}} - - - @else - - @endif - -
-
- - - @endif - - - @if(@$payment_gateway->is_on_site) -
-
-
-
- {!! Form::label('card-number', trans("Public_ViewEvent.card_number")) !!} - -
-
-
-
-
-
- {!! Form::label('card-expiry-month', trans("Public_ViewEvent.expiry_month")) !!} - {!! Form::selectRange('card-expiry-month',1,12,null, [ - 'class' => 'form-control card-expiry-month', - 'data-stripe' => 'exp_month' - ] ) !!} -
-
-
-
- {!! Form::label('card-expiry-year', trans("Public_ViewEvent.expiry_year")) !!} - {!! Form::selectRange('card-expiry-year',date('Y'),date('Y')+10,null, [ - 'class' => 'form-control card-expiry-year', - 'data-stripe' => 'exp_year' - ] ) !!}
-
-
-
-
-
- {!! Form::label('card-expiry-year', trans("Public_ViewEvent.cvc_number")) !!} - -
-
-
-
- - @endif - - @endif - @if($event->pre_order_display_message)
{!! nl2br(e($event->pre_order_display_message)) !!} @@ -295,7 +216,8 @@ @endif {!! Form::hidden('is_embedded', $is_embedded) !!} - {!! Form::submit(trans("Public_ViewEvent.checkout_submit"), ['class' => 'btn btn-lg btn-success card-submit', 'style' => 'width:100%;']) !!} + {!! Form::submit(trans("Public_ViewEvent.checkout_order"), ['class' => 'btn btn-lg btn-success card-submit', 'style' => 'width:100%;']) !!} + {!! Form::close() !!}
diff --git a/resources/views/Public/ViewEvent/Partials/EventPaymentSection.blade.php b/resources/views/Public/ViewEvent/Partials/EventPaymentSection.blade.php new file mode 100644 index 00000000..13df9041 --- /dev/null +++ b/resources/views/Public/ViewEvent/Partials/EventPaymentSection.blade.php @@ -0,0 +1,84 @@ +
+
+

+ @lang("Public_ViewEvent.payment_information") +

+
+
+
+ @lang("Public_ViewEvent.below_order_details_header") +
+
+
+
+

+ + @lang("Public_ViewEvent.order_summary") +

+
+ +
+ + @foreach($tickets as $ticket) + + + + + @endforeach +
{{{$ticket['ticket']['title']}}} X {{$ticket['qty']}} + @if((int)ceil($ticket['full_price']) === 0) + @lang("Public_ViewEvent.free") + @else + {{ money($ticket['full_price'], $event->currency) }} + @endif +
+
+ @if($order_total > 0) + + @endif + +
+
+ {!! @trans("Public_ViewEvent.time", ["time"=>""]) !!} +
+
+
+
+ + {{ $payment_gateway->name }} + + @if($order_requires_payment) + @include('Public.ViewEvent.Partials.OfflinePayments') + @endif + + @if($payment_gateway->name == 'Stripe') + @include('Public.ViewEvent.Partials.PaymentStripe') + @endif + + @if($payment_gateway->name == 'Stripe\PaymentIntents') + @include('Public.ViewEvent.Partials.PaymentStripeSCA') + @endif + +
+
+
+ +
+@if(session()->get('message')) + +@endif + diff --git a/resources/views/Public/ViewEvent/Partials/OfflinePayments.blade.php b/resources/views/Public/ViewEvent/Partials/OfflinePayments.blade.php new file mode 100644 index 00000000..bd40bb33 --- /dev/null +++ b/resources/views/Public/ViewEvent/Partials/OfflinePayments.blade.php @@ -0,0 +1,30 @@ +

@lang("Public_ViewEvent.payment_information")

+@lang("Public_ViewEvent.below_payment_information_header") +@if($event->enable_offline_payments) +{!! Form::open(['url' => route('postCreateOrder', ['event_id' => $event->id]), 'class' => 'ajax']) !!} +
+
+ @if($payment_gateway === false) + {{-- Force offline payment if no gateway --}} + + + @else + + @endif + +
+
+ +{!! Form::close() !!} + +@endif \ No newline at end of file diff --git a/resources/views/Public/ViewEvent/Partials/PaymentStripe.blade.php b/resources/views/Public/ViewEvent/Partials/PaymentStripe.blade.php new file mode 100644 index 00000000..d49f2f51 --- /dev/null +++ b/resources/views/Public/ViewEvent/Partials/PaymentStripe.blade.php @@ -0,0 +1,83 @@ +
+
+ +
+ +
+ + +
+ {!! Form::token() !!} + + + +
+ + + diff --git a/resources/views/Public/ViewEvent/Partials/PaymentStripeSCA.blade.php b/resources/views/Public/ViewEvent/Partials/PaymentStripeSCA.blade.php new file mode 100644 index 00000000..cb686687 --- /dev/null +++ b/resources/views/Public/ViewEvent/Partials/PaymentStripeSCA.blade.php @@ -0,0 +1,85 @@ +
+
+ +
+ +
+ + +
+ {!! Form::token() !!} + + + +
+ + +