1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-06 03:02:34 +01:00

Workig on client subscriptions

This commit is contained in:
= 2021-03-23 23:17:28 +11:00
parent f74368e869
commit 3d375e4148
5 changed files with 126 additions and 115 deletions

View File

@ -44,7 +44,7 @@ class Kernel extends ConsoleKernel
protected function schedule(Schedule $schedule) protected function schedule(Schedule $schedule)
{ {
$schedule->job(new VersionCheck)->daily()->withoutOverlapping(); $schedule->job(new VersionCheck)->daily();
$schedule->command('ninja:check-data')->daily()->withoutOverlapping(); $schedule->command('ninja:check-data')->daily()->withoutOverlapping();

View File

@ -279,6 +279,7 @@ class BillingPortalPurchase extends Component
'email' => $this->email ?? $this->contact->email, 'email' => $this->email ?? $this->contact->email,
'client_id' => $this->contact->client->id, 'client_id' => $this->contact->client->id,
'invoice_id' => $this->invoice->id, 'invoice_id' => $this->invoice->id,
'quantity' => $this->quantity,
'subscription_id' => $this->billing_subscription->id], 'subscription_id' => $this->billing_subscription->id],
now()->addMinutes(60) now()->addMinutes(60)
); );

View File

@ -13,10 +13,12 @@ namespace App\Services\BillingSubscription;
use App\DataMapper\InvoiceItem; use App\DataMapper\InvoiceItem;
use App\Factory\InvoiceFactory; use App\Factory\InvoiceFactory;
use App\Factory\InvoiceToRecurringInvoiceFactory;
use App\Jobs\Util\SystemLogger; use App\Jobs\Util\SystemLogger;
use App\Models\BillingSubscription; use App\Models\BillingSubscription;
use App\Models\ClientContact; use App\Models\ClientContact;
use App\Models\ClientSubscription; use App\Models\ClientSubscription;
use App\Models\Invoice;
use App\Models\PaymentHash; use App\Models\PaymentHash;
use App\Models\Product; use App\Models\Product;
use App\Models\SystemLog; use App\Models\SystemLog;
@ -85,10 +87,7 @@ class BillingSubscriptionService
$this->client_subscription = $cs; $this->client_subscription = $cs;
//execute any webhooks //execute any webhooks
$this->triggerWebhook();
//if we have a defined return url redirect now
//else we provide a default redirect
if(strlen($this->billing_subscription->webhook_configuration->post_purchase_url) >=1) if(strlen($this->billing_subscription->webhook_configuration->post_purchase_url) >=1)
return redirect($this->billing_subscription->webhook_configuration->post_purchase_url); return redirect($this->billing_subscription->webhook_configuration->post_purchase_url);
@ -187,6 +186,13 @@ class BillingSubscriptionService
private function convertInvoiceToRecurring($payment_hash) private function convertInvoiceToRecurring($payment_hash)
{ {
//The first invoice is a plain invoice - the second is fired on the recurring schedule. //The first invoice is a plain invoice - the second is fired on the recurring schedule.
$invoice = Invoice::find($payment_hash->billing_context->invoice_id);
if(!$invoice)
throw new \Exception("Could not match an invoice for payment of billing subscription");
return InvoiceToRecurringInvoiceFactory::create($invoice);
} }
public function createClientSubscription($payment_hash) public function createClientSubscription($payment_hash)
@ -198,22 +204,24 @@ class BillingSubscriptionService
$cs->subscription_id = $this->billing_subscription->id; $cs->subscription_id = $this->billing_subscription->id;
$cs->company_id = $this->billing_subscription->company_id; $cs->company_id = $this->billing_subscription->company_id;
//if a payment has been made $cs->invoice_id = $payment_hash->billing_context->invoice_id;
//$cs->invoice_id = xx $cs->client_id = $payment_hash->billing_context->client_id;
$cs->quantity = $payment_hash->billing_context->quantity;
//if is_recurring //if is_recurring
//create recurring invoice from invoice //create recurring invoice from invoice
if($this->billing_subscription->is_recurring)
{
$recurring_invoice = $this->convertInvoiceToRecurring($payment_hash); $recurring_invoice = $this->convertInvoiceToRecurring($payment_hash);
$recurring_invoice->frequency_id = $this->billing_subscription->frequency_id; $recurring_invoice->frequency_id = $this->billing_subscription->frequency_id;
$recurring_invoice->next_send_date = $recurring_invoice->nextDateByFrequency(now()->format('Y-m-d')); $recurring_invoice->next_send_date = $recurring_invoice->nextDateByFrequency(now()->format('Y-m-d'));
//$cs->recurring_invoice_id = $recurring_invoice->id; $recurring_invoice->save();
$cs->recurring_invoice_id = $recurring_invoice->id;
//?set the recurring invoice as active - set the date here also based on the frequency? //?set the recurring invoice as active - set the date here also based on the frequency?
$recurring_invoice->service()->start();
}
//$cs->quantity = xx
// client_id
//$cs->client_id = xx
$cs->save(); $cs->save();
@ -221,16 +229,14 @@ class BillingSubscriptionService
} }
public function triggerWebhook($payment_hash) public function triggerWebhook()
{ {
//hit the webhook to after a successful onboarding //hit the webhook to after a successful onboarding
//$client = xxxxxxx
//todo webhook
$body = [ $body = [
'billing_subscription' => $this->billing_subscription, 'billing_subscription' => $this->billing_subscription,
'client_subscription' => $this->client_subscription, 'client_subscription' => $this->client_subscription,
// 'client' => $client->toArray(), 'client' => $this->client_subscription->client->toArray(),
]; ];
@ -245,7 +251,7 @@ class BillingSubscriptionService
SystemLog::CATEGORY_WEBHOOK, SystemLog::CATEGORY_WEBHOOK,
SystemLog::EVENT_WEBHOOK_RESPONSE, SystemLog::EVENT_WEBHOOK_RESPONSE,
SystemLog::TYPE_WEBHOOK_RESPONSE, SystemLog::TYPE_WEBHOOK_RESPONSE,
//$client, $this->client_subscription->client,
); );
} }

View File

@ -28,7 +28,7 @@ trait CleanLineItems
$cleaned_items = []; $cleaned_items = [];
foreach ($items as $item) { foreach ($items as $item) {
$cleaned_items[] = $this->cleanLineItem($item); $cleaned_items[] = $this->cleanLineItem((array)$item);
} }
return $cleaned_items; return $cleaned_items;

196
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "113acad46f6d9eea9f9f5bd4501428d1", "content-hash": "2307a2f3214da0d1cc772cc1a1405682",
"packages": [ "packages": [
{ {
"name": "authorizenet/authorizenet", "name": "authorizenet/authorizenet",
@ -55,16 +55,16 @@
}, },
{ {
"name": "aws/aws-sdk-php", "name": "aws/aws-sdk-php",
"version": "3.173.28", "version": "3.175.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/aws/aws-sdk-php.git", "url": "https://github.com/aws/aws-sdk-php.git",
"reference": "593baa5930896bb443c437032daf4016e1e3878d" "reference": "fce65d31f033c39cd3615fd2d3e503e212d81a3e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/593baa5930896bb443c437032daf4016e1e3878d", "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/fce65d31f033c39cd3615fd2d3e503e212d81a3e",
"reference": "593baa5930896bb443c437032daf4016e1e3878d", "reference": "fce65d31f033c39cd3615fd2d3e503e212d81a3e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -139,9 +139,9 @@
"support": { "support": {
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
"issues": "https://github.com/aws/aws-sdk-php/issues", "issues": "https://github.com/aws/aws-sdk-php/issues",
"source": "https://github.com/aws/aws-sdk-php/tree/3.173.28" "source": "https://github.com/aws/aws-sdk-php/tree/3.175.1"
}, },
"time": "2021-03-12T19:29:55+00:00" "time": "2021-03-22T18:13:37+00:00"
}, },
{ {
"name": "bacon/bacon-qr-code", "name": "bacon/bacon-qr-code",
@ -198,16 +198,16 @@
}, },
{ {
"name": "beganovich/snappdf", "name": "beganovich/snappdf",
"version": "v1.5.0", "version": "v1.6.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/beganovich/snappdf.git", "url": "https://github.com/beganovich/snappdf.git",
"reference": "63ad3f1a0eec7bffc3a3c85f286769fca9a33fd5" "reference": "5c0a7e2e2c33441c0dd9d1fcbfc8de71c3cc920c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/beganovich/snappdf/zipball/63ad3f1a0eec7bffc3a3c85f286769fca9a33fd5", "url": "https://api.github.com/repos/beganovich/snappdf/zipball/5c0a7e2e2c33441c0dd9d1fcbfc8de71c3cc920c",
"reference": "63ad3f1a0eec7bffc3a3c85f286769fca9a33fd5", "reference": "5c0a7e2e2c33441c0dd9d1fcbfc8de71c3cc920c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -245,9 +245,9 @@
"description": "Convert webpages or HTML into the PDF file using Chromium or Google Chrome.", "description": "Convert webpages or HTML into the PDF file using Chromium or Google Chrome.",
"support": { "support": {
"issues": "https://github.com/beganovich/snappdf/issues", "issues": "https://github.com/beganovich/snappdf/issues",
"source": "https://github.com/beganovich/snappdf/tree/v1.5.0" "source": "https://github.com/beganovich/snappdf/tree/v1.6.0"
}, },
"time": "2021-01-10T17:06:47+00:00" "time": "2021-03-19T21:20:07+00:00"
}, },
{ {
"name": "brick/math", "name": "brick/math",
@ -2010,16 +2010,16 @@
}, },
{ {
"name": "google/apiclient-services", "name": "google/apiclient-services",
"version": "v0.163.0", "version": "v0.165.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/googleapis/google-api-php-client-services.git", "url": "https://github.com/googleapis/google-api-php-client-services.git",
"reference": "8e326f378a1f505064912fddd19fd93bbdcc80fb" "reference": "c8d7ff2c9cb6cad6e88bc5825491c47b8b2e52fd"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/8e326f378a1f505064912fddd19fd93bbdcc80fb", "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/c8d7ff2c9cb6cad6e88bc5825491c47b8b2e52fd",
"reference": "8e326f378a1f505064912fddd19fd93bbdcc80fb", "reference": "c8d7ff2c9cb6cad6e88bc5825491c47b8b2e52fd",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2045,9 +2045,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/googleapis/google-api-php-client-services/issues", "issues": "https://github.com/googleapis/google-api-php-client-services/issues",
"source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.163.0" "source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.165.0"
}, },
"time": "2021-03-06T12:20:02+00:00" "time": "2021-03-21T11:20:02+00:00"
}, },
{ {
"name": "google/auth", "name": "google/auth",
@ -2331,16 +2331,16 @@
}, },
{ {
"name": "guzzlehttp/psr7", "name": "guzzlehttp/psr7",
"version": "1.7.0", "version": "1.8.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/psr7.git", "url": "https://github.com/guzzle/psr7.git",
"reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3" "reference": "35ea11d335fd638b5882ff1725228b3d35496ab1"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3", "url": "https://api.github.com/repos/guzzle/psr7/zipball/35ea11d335fd638b5882ff1725228b3d35496ab1",
"reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3", "reference": "35ea11d335fd638b5882ff1725228b3d35496ab1",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2400,9 +2400,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/guzzle/psr7/issues", "issues": "https://github.com/guzzle/psr7/issues",
"source": "https://github.com/guzzle/psr7/tree/1.7.0" "source": "https://github.com/guzzle/psr7/tree/1.8.1"
}, },
"time": "2020-09-30T07:37:11+00:00" "time": "2021-03-21T16:25:00+00:00"
}, },
{ {
"name": "hashids/hashids", "name": "hashids/hashids",
@ -2783,16 +2783,16 @@
}, },
{ {
"name": "laravel/framework", "name": "laravel/framework",
"version": "v8.32.1", "version": "v8.33.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/framework.git", "url": "https://github.com/laravel/framework.git",
"reference": "7c37b64f8153c16b6406f5c28cf37828ebbe8846" "reference": "354c57b8cb457549114074c500944455a288d6cc"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/7c37b64f8153c16b6406f5c28cf37828ebbe8846", "url": "https://api.github.com/repos/laravel/framework/zipball/354c57b8cb457549114074c500944455a288d6cc",
"reference": "7c37b64f8153c16b6406f5c28cf37828ebbe8846", "reference": "354c57b8cb457549114074c500944455a288d6cc",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2947,7 +2947,7 @@
"issues": "https://github.com/laravel/framework/issues", "issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework" "source": "https://github.com/laravel/framework"
}, },
"time": "2021-03-09T15:37:45+00:00" "time": "2021-03-16T19:42:32+00:00"
}, },
{ {
"name": "laravel/slack-notification-channel", "name": "laravel/slack-notification-channel",
@ -3845,16 +3845,16 @@
}, },
{ {
"name": "livewire/livewire", "name": "livewire/livewire",
"version": "v2.4.0", "version": "v2.4.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/livewire/livewire.git", "url": "https://github.com/livewire/livewire.git",
"reference": "8055af7730938cd607616fde122825ed960a9b71" "reference": "b0cb782674673a67ddfd5910d2fcb5308bb32857"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/livewire/livewire/zipball/8055af7730938cd607616fde122825ed960a9b71", "url": "https://api.github.com/repos/livewire/livewire/zipball/b0cb782674673a67ddfd5910d2fcb5308bb32857",
"reference": "8055af7730938cd607616fde122825ed960a9b71", "reference": "b0cb782674673a67ddfd5910d2fcb5308bb32857",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3905,7 +3905,7 @@
"description": "A front-end framework for Laravel.", "description": "A front-end framework for Laravel.",
"support": { "support": {
"issues": "https://github.com/livewire/livewire/issues", "issues": "https://github.com/livewire/livewire/issues",
"source": "https://github.com/livewire/livewire/tree/v2.4.0" "source": "https://github.com/livewire/livewire/tree/v2.4.1"
}, },
"funding": [ "funding": [
{ {
@ -3913,7 +3913,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2021-02-23T17:44:50+00:00" "time": "2021-03-22T14:03:36+00:00"
}, },
{ {
"name": "maennchen/zipstream-php", "name": "maennchen/zipstream-php",
@ -6919,16 +6919,16 @@
}, },
{ {
"name": "stripe/stripe-php", "name": "stripe/stripe-php",
"version": "v7.75.0", "version": "v7.76.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/stripe/stripe-php.git", "url": "https://github.com/stripe/stripe-php.git",
"reference": "d377a667cd789b99ccab768441a5a2160cc4ea80" "reference": "47e66d4186712be33c593fe820dccf270a04d5d6"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/stripe/stripe-php/zipball/d377a667cd789b99ccab768441a5a2160cc4ea80", "url": "https://api.github.com/repos/stripe/stripe-php/zipball/47e66d4186712be33c593fe820dccf270a04d5d6",
"reference": "d377a667cd789b99ccab768441a5a2160cc4ea80", "reference": "47e66d4186712be33c593fe820dccf270a04d5d6",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -6974,9 +6974,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/stripe/stripe-php/issues", "issues": "https://github.com/stripe/stripe-php/issues",
"source": "https://github.com/stripe/stripe-php/tree/v7.75.0" "source": "https://github.com/stripe/stripe-php/tree/v7.76.0"
}, },
"time": "2021-02-22T14:31:21+00:00" "time": "2021-03-22T16:50:21+00:00"
}, },
{ {
"name": "swiftmailer/swiftmailer", "name": "swiftmailer/swiftmailer",
@ -9664,16 +9664,16 @@
}, },
{ {
"name": "turbo124/beacon", "name": "turbo124/beacon",
"version": "1.0.6", "version": "1.0.7",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/turbo124/beacon.git", "url": "https://github.com/turbo124/beacon.git",
"reference": "2f38612c1bb4c292d154c8fba478bdf8c019fcd9" "reference": "d48227fdfafc463cce055f36b149f9cb1d9b8f81"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/turbo124/beacon/zipball/2f38612c1bb4c292d154c8fba478bdf8c019fcd9", "url": "https://api.github.com/repos/turbo124/beacon/zipball/d48227fdfafc463cce055f36b149f9cb1d9b8f81",
"reference": "2f38612c1bb4c292d154c8fba478bdf8c019fcd9", "reference": "d48227fdfafc463cce055f36b149f9cb1d9b8f81",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -9721,9 +9721,9 @@
"turbo124" "turbo124"
], ],
"support": { "support": {
"source": "https://github.com/turbo124/beacon/tree/1.0.6" "source": "https://github.com/turbo124/beacon/tree/1.0.7"
}, },
"time": "2021-03-09T09:25:50+00:00" "time": "2021-03-23T09:54:29+00:00"
}, },
{ {
"name": "vlucas/phpdotenv", "name": "vlucas/phpdotenv",
@ -9881,30 +9881,35 @@
}, },
{ {
"name": "webmozart/assert", "name": "webmozart/assert",
"version": "1.9.1", "version": "1.10.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/webmozarts/assert.git", "url": "https://github.com/webmozarts/assert.git",
"reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389" "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/webmozarts/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389", "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25",
"reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389", "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^5.3.3 || ^7.0 || ^8.0", "php": "^7.2 || ^8.0",
"symfony/polyfill-ctype": "^1.8" "symfony/polyfill-ctype": "^1.8"
}, },
"conflict": { "conflict": {
"phpstan/phpstan": "<0.12.20", "phpstan/phpstan": "<0.12.20",
"vimeo/psalm": "<3.9.1" "vimeo/psalm": "<4.6.1 || 4.6.2"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^4.8.36 || ^7.5.13" "phpunit/phpunit": "^8.5.13"
}, },
"type": "library", "type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.10-dev"
}
},
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Webmozart\\Assert\\": "src/" "Webmozart\\Assert\\": "src/"
@ -9928,9 +9933,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/webmozarts/assert/issues", "issues": "https://github.com/webmozarts/assert/issues",
"source": "https://github.com/webmozarts/assert/tree/1.9.1" "source": "https://github.com/webmozarts/assert/tree/1.10.0"
}, },
"time": "2020-07-08T17:02:28+00:00" "time": "2021-03-09T10:59:23+00:00"
}, },
{ {
"name": "webpatser/laravel-countries", "name": "webpatser/laravel-countries",
@ -11079,16 +11084,16 @@
}, },
{ {
"name": "filp/whoops", "name": "filp/whoops",
"version": "2.9.2", "version": "2.11.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/filp/whoops.git", "url": "https://github.com/filp/whoops.git",
"reference": "df7933820090489623ce0be5e85c7e693638e536" "reference": "f6e14679f948d8a5cfb866fa7065a30c66bd64d3"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/filp/whoops/zipball/df7933820090489623ce0be5e85c7e693638e536", "url": "https://api.github.com/repos/filp/whoops/zipball/f6e14679f948d8a5cfb866fa7065a30c66bd64d3",
"reference": "df7933820090489623ce0be5e85c7e693638e536", "reference": "f6e14679f948d8a5cfb866fa7065a30c66bd64d3",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -11138,7 +11143,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/filp/whoops/issues", "issues": "https://github.com/filp/whoops/issues",
"source": "https://github.com/filp/whoops/tree/2.9.2" "source": "https://github.com/filp/whoops/tree/2.11.0"
}, },
"funding": [ "funding": [
{ {
@ -11146,20 +11151,20 @@
"type": "github" "type": "github"
} }
], ],
"time": "2021-01-24T12:00:00+00:00" "time": "2021-03-19T12:00:00+00:00"
}, },
{ {
"name": "friendsofphp/php-cs-fixer", "name": "friendsofphp/php-cs-fixer",
"version": "v2.18.3", "version": "v2.18.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git",
"reference": "ab99202fccff2a9f97592fbe1b5c76dd06df3513" "reference": "06f764e3cb6d60822d8f5135205f9d32b5508a31"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/ab99202fccff2a9f97592fbe1b5c76dd06df3513", "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/06f764e3cb6d60822d8f5135205f9d32b5508a31",
"reference": "ab99202fccff2a9f97592fbe1b5c76dd06df3513", "reference": "06f764e3cb6d60822d8f5135205f9d32b5508a31",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -11242,7 +11247,7 @@
"description": "A tool to automatically fix PHP code style", "description": "A tool to automatically fix PHP code style",
"support": { "support": {
"issues": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues", "issues": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues",
"source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v2.18.3" "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v2.18.4"
}, },
"funding": [ "funding": [
{ {
@ -11250,7 +11255,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2021-03-10T19:39:05+00:00" "time": "2021-03-20T14:52:33+00:00"
}, },
{ {
"name": "hamcrest/hamcrest-php", "name": "hamcrest/hamcrest-php",
@ -12016,16 +12021,16 @@
}, },
{ {
"name": "phpspec/prophecy", "name": "phpspec/prophecy",
"version": "1.12.2", "version": "1.13.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpspec/prophecy.git", "url": "https://github.com/phpspec/prophecy.git",
"reference": "245710e971a030f42e08f4912863805570f23d39" "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/245710e971a030f42e08f4912863805570f23d39", "url": "https://api.github.com/repos/phpspec/prophecy/zipball/be1996ed8adc35c3fd795488a653f4b518be70ea",
"reference": "245710e971a030f42e08f4912863805570f23d39", "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -12077,9 +12082,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/phpspec/prophecy/issues", "issues": "https://github.com/phpspec/prophecy/issues",
"source": "https://github.com/phpspec/prophecy/tree/1.12.2" "source": "https://github.com/phpspec/prophecy/tree/1.13.0"
}, },
"time": "2020-12-19T10:15:11+00:00" "time": "2021-03-17T13:42:18+00:00"
}, },
{ {
"name": "phpunit/php-code-coverage", "name": "phpunit/php-code-coverage",
@ -12401,16 +12406,16 @@
}, },
{ {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
"version": "9.5.2", "version": "9.5.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git", "url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "f661659747f2f87f9e72095bb207bceb0f151cb4" "reference": "c73c6737305e779771147af66c96ca6a7ed8a741"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f661659747f2f87f9e72095bb207bceb0f151cb4", "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c73c6737305e779771147af66c96ca6a7ed8a741",
"reference": "f661659747f2f87f9e72095bb207bceb0f151cb4", "reference": "c73c6737305e779771147af66c96ca6a7ed8a741",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -12488,7 +12493,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues", "issues": "https://github.com/sebastianbergmann/phpunit/issues",
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.2" "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.4"
}, },
"funding": [ "funding": [
{ {
@ -12500,7 +12505,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2021-02-02T14:45:58+00:00" "time": "2021-03-23T07:16:29+00:00"
}, },
{ {
"name": "sebastian/cli-parser", "name": "sebastian/cli-parser",
@ -13468,16 +13473,16 @@
}, },
{ {
"name": "swagger-api/swagger-ui", "name": "swagger-api/swagger-ui",
"version": "v3.45.0", "version": "v3.45.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/swagger-api/swagger-ui.git", "url": "https://github.com/swagger-api/swagger-ui.git",
"reference": "1ba7af074f97c872a64a415e0507c11cf8f3601b" "reference": "72506e581f860244f3c74de5a2fb9809e53d1876"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/swagger-api/swagger-ui/zipball/1ba7af074f97c872a64a415e0507c11cf8f3601b", "url": "https://api.github.com/repos/swagger-api/swagger-ui/zipball/72506e581f860244f3c74de5a2fb9809e53d1876",
"reference": "1ba7af074f97c872a64a415e0507c11cf8f3601b", "reference": "72506e581f860244f3c74de5a2fb9809e53d1876",
"shasum": "" "shasum": ""
}, },
"type": "library", "type": "library",
@ -13523,9 +13528,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/swagger-api/swagger-ui/issues", "issues": "https://github.com/swagger-api/swagger-ui/issues",
"source": "https://github.com/swagger-api/swagger-ui/tree/v3.45.0" "source": "https://github.com/swagger-api/swagger-ui/tree/v3.45.1"
}, },
"time": "2021-03-11T17:20:14+00:00" "time": "2021-03-19T17:14:16+00:00"
}, },
{ {
"name": "symfony/debug", "name": "symfony/debug",
@ -13853,20 +13858,20 @@
}, },
{ {
"name": "vimeo/psalm", "name": "vimeo/psalm",
"version": "4.6.2", "version": "4.6.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/vimeo/psalm.git", "url": "https://github.com/vimeo/psalm.git",
"reference": "bca09d74adc704c4eaee36a3c3e9d379e290fc3b" "reference": "97fe86c4e158b5a57c5150aa5055c38b5a809aab"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/vimeo/psalm/zipball/bca09d74adc704c4eaee36a3c3e9d379e290fc3b", "url": "https://api.github.com/repos/vimeo/psalm/zipball/97fe86c4e158b5a57c5150aa5055c38b5a809aab",
"reference": "bca09d74adc704c4eaee36a3c3e9d379e290fc3b", "reference": "97fe86c4e158b5a57c5150aa5055c38b5a809aab",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"amphp/amp": "^2.1", "amphp/amp": "^2.4.2",
"amphp/byte-stream": "^1.5", "amphp/byte-stream": "^1.5",
"composer/package-versions-deprecated": "^1.8.0", "composer/package-versions-deprecated": "^1.8.0",
"composer/semver": "^1.4 || ^2.0 || ^3.0", "composer/semver": "^1.4 || ^2.0 || ^3.0",
@ -13892,7 +13897,6 @@
"psalm/psalm": "self.version" "psalm/psalm": "self.version"
}, },
"require-dev": { "require-dev": {
"amphp/amp": "^2.4.2",
"bamarni/composer-bin-plugin": "^1.2", "bamarni/composer-bin-plugin": "^1.2",
"brianium/paratest": "^4.0||^6.0", "brianium/paratest": "^4.0||^6.0",
"ext-curl": "*", "ext-curl": "*",
@ -13952,9 +13956,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/vimeo/psalm/issues", "issues": "https://github.com/vimeo/psalm/issues",
"source": "https://github.com/vimeo/psalm/tree/4.6.2" "source": "https://github.com/vimeo/psalm/tree/4.6.4"
}, },
"time": "2021-02-26T02:24:18+00:00" "time": "2021-03-16T23:28:18+00:00"
}, },
{ {
"name": "webmozart/path-util", "name": "webmozart/path-util",
@ -14092,7 +14096,7 @@
"ext-libxml": "*" "ext-libxml": "*"
}, },
"platform-dev": { "platform-dev": {
"php": "^7.4" "php": "^7.3|^7.4"
}, },
"plugin-api-version": "2.0.0" "plugin-api-version": "2.0.0"
} }