diff --git a/VERSION.txt b/VERSION.txt index bca730d00e5a..432493c23c5a 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -5.7.59 \ No newline at end of file +5.7.62 \ No newline at end of file diff --git a/app/DataProviders/Domains.php b/app/DataProviders/Domains.php index 814baeebad0f..84ef923ed259 100644 --- a/app/DataProviders/Domains.php +++ b/app/DataProviders/Domains.php @@ -12,7 +12,8 @@ namespace App\DataProviders; -class Domains { +class Domains +{ private static array $verify_domains = [ '0-00.usa.cc', diff --git a/app/Export/CSV/ClientExport.php b/app/Export/CSV/ClientExport.php index 7f71304cb99b..501b01ab59fc 100644 --- a/app/Export/CSV/ClientExport.php +++ b/app/Export/CSV/ClientExport.php @@ -181,9 +181,9 @@ class ClientExport extends BaseExport } } - return $entity; + // return $entity; - // return $this->decorateAdvancedFields($client, $entity); + return $this->decorateAdvancedFields($client, $entity); } public function processMetaData(array $row, $resource): array @@ -221,21 +221,21 @@ class ClientExport extends BaseExport $entity['client.assigned_user'] = $client->assigned_user ? $client->user->present()->name() : ''; } - if (in_array('client.country_id', $this->input['report_keys'])) { - $entity['client.country_id'] = $client->country ? ctrans("texts.country_{$client->country->name}") : ''; - } + // if (in_array('client.country_id', $this->input['report_keys'])) { + // $entity['client.country_id'] = $client->country ? ctrans("texts.country_{$client->country->name}") : ''; + // } - if (in_array('client.shipping_country_id', $this->input['report_keys'])) { - $entity['client.shipping_country_id'] = $client->shipping_country ? ctrans("texts.country_{$client->shipping_country->name}") : ''; - } + // if (in_array('client.shipping_country_id', $this->input['report_keys'])) { + // $entity['client.shipping_country_id'] = $client->shipping_country ? ctrans("texts.country_{$client->shipping_country->name}") : ''; + // } - if (in_array('client.currency_id', $this->input['report_keys'])) { - $entity['client.currency_id'] = $client->currency() ? $client->currency()->code : $client->company->currency()->code; - } + // if (in_array('client.currency_id', $this->input['report_keys'])) { + // $entity['client.currency_id'] = $client->currency() ? $client->currency()->code : $client->company->currency()->code; + // } - if (in_array('client.industry_id', $this->input['report_keys'])) { - $entity['industry_id'] = $client->industry ? ctrans("texts.industry_{$client->industry->name}") : ''; - } + // if (in_array('client.industry_id', $this->input['report_keys'])) { + // $entity['industry_id'] = $client->industry ? ctrans("texts.industry_{$client->industry->name}") : ''; + // } if (in_array('client.classification', $this->input['report_keys']) && isset($client->classification)) { $entity['client.classification'] = ctrans("texts.{$client->classification}") ?? ''; diff --git a/app/Export/CSV/ContactExport.php b/app/Export/CSV/ContactExport.php index 1bb0a8b9fd02..ddd6ad078ef6 100644 --- a/app/Export/CSV/ContactExport.php +++ b/app/Export/CSV/ContactExport.php @@ -129,8 +129,8 @@ class ContactExport extends BaseExport } } - return $entity; - // return $this->decorateAdvancedFields($contact->client, $entity); + // return $entity; + return $this->decorateAdvancedFields($contact->client, $entity); } private function decorateAdvancedFields(Client $client, array $entity) :array @@ -151,6 +151,15 @@ class ContactExport extends BaseExport $entity['industry_id'] = $client->industry ? ctrans("texts.industry_{$client->industry->name}") : ''; } + if (in_array('client.user_id', $this->input['report_keys'])) { + $entity['client.user_id'] = $client->user ? $client->user->present()->name() : ''; + } + + if (in_array('client.assigned_user_id', $this->input['report_keys'])) { + $entity['client.assigned_user_id'] = $client->assigned_user ? $client->assigned_user->present()->name() : ''; + } + + return $entity; } } diff --git a/app/Export/CSV/CreditExport.php b/app/Export/CSV/CreditExport.php index dcc9290d9510..e13a91e7a8ed 100644 --- a/app/Export/CSV/CreditExport.php +++ b/app/Export/CSV/CreditExport.php @@ -161,29 +161,29 @@ class CreditExport extends BaseExport private function decorateAdvancedFields(Credit $credit, array $entity) :array { - if (in_array('country_id', $this->input['report_keys'])) { - $entity['country'] = $credit->client->country ? ctrans("texts.country_{$credit->client->country->name}") : ''; - } + // if (in_array('country_id', $this->input['report_keys'])) { + // $entity['country'] = $credit->client->country ? ctrans("texts.country_{$credit->client->country->name}") : ''; + // } - if (in_array('currency_id', $this->input['report_keys'])) { - $entity['currency_id'] = $credit->client->currency() ? $credit->client->currency()->code : $credit->company->currency()->code; - } + // if (in_array('currency_id', $this->input['report_keys'])) { + // $entity['currency_id'] = $credit->client->currency() ? $credit->client->currency()->code : $credit->company->currency()->code; + // } - if (in_array('invoice_id', $this->input['report_keys'])) { - $entity['invoice'] = $credit->invoice ? $credit->invoice->number : ''; - } + // if (in_array('invoice_id', $this->input['report_keys'])) { + // $entity['invoice'] = $credit->invoice ? $credit->invoice->number : ''; + // } - if (in_array('client_id', $this->input['report_keys'])) { - $entity['client'] = $credit->client->present()->name(); - } + // if (in_array('client_id', $this->input['report_keys'])) { + // $entity['client'] = $credit->client->present()->name(); + // } - if (in_array('status_id', $this->input['report_keys'])) { - $entity['status'] = $credit->stringStatus($credit->status_id); - } + // if (in_array('status_id', $this->input['report_keys'])) { + // $entity['status'] = $credit->stringStatus($credit->status_id); + // } - if(in_array('credit.status', $this->input['report_keys'])) { - $entity['credit.status'] = $credit->stringStatus($credit->status_id); - } + // if(in_array('credit.status', $this->input['report_keys'])) { + // $entity['credit.status'] = $credit->stringStatus($credit->status_id); + // } if (in_array('credit.assigned_user_id', $this->input['report_keys'])) { $entity['credit.assigned_user_id'] = $credit->assigned_user ? $credit->assigned_user->present()->name(): ''; diff --git a/app/Export/CSV/ExpenseExport.php b/app/Export/CSV/ExpenseExport.php index a2f48805acb3..ecf5e7a89b4b 100644 --- a/app/Export/CSV/ExpenseExport.php +++ b/app/Export/CSV/ExpenseExport.php @@ -126,35 +126,35 @@ class ExpenseExport extends BaseExport } - return $entity; - // return $this->decorateAdvancedFields($expense, $entity); + // return $entity; + return $this->decorateAdvancedFields($expense, $entity); } private function decorateAdvancedFields(Expense $expense, array $entity) :array { - if (in_array('expense.currency_id', $this->input['report_keys'])) { - $entity['expense.currency_id'] = $expense->currency ? $expense->currency->code : ''; - } + // if (in_array('expense.currency_id', $this->input['report_keys'])) { + // $entity['expense.currency_id'] = $expense->currency ? $expense->currency->code : ''; + // } - if (in_array('expense.client_id', $this->input['report_keys'])) { - $entity['expense.client'] = $expense->client ? $expense->client->present()->name() : ''; - } + // if (in_array('expense.client_id', $this->input['report_keys'])) { + // $entity['expense.client'] = $expense->client ? $expense->client->present()->name() : ''; + // } - if (in_array('expense.invoice_id', $this->input['report_keys'])) { - $entity['expense.invoice_id'] = $expense->invoice ? $expense->invoice->number : ''; - } + // if (in_array('expense.invoice_id', $this->input['report_keys'])) { + // $entity['expense.invoice_id'] = $expense->invoice ? $expense->invoice->number : ''; + // } - if (in_array('expense.category', $this->input['report_keys'])) { - $entity['expense.category'] = $expense->category ? $expense->category->name : ''; - } + // if (in_array('expense.category', $this->input['report_keys'])) { + // $entity['expense.category'] = $expense->category ? $expense->category->name : ''; + // } - if (in_array('expense.vendor_id', $this->input['report_keys'])) { - $entity['expense.vendor'] = $expense->vendor ? $expense->vendor->name : ''; - } + // if (in_array('expense.vendor_id', $this->input['report_keys'])) { + // $entity['expense.vendor'] = $expense->vendor ? $expense->vendor->name : ''; + // } - if (in_array('expense.payment_type_id', $this->input['report_keys'])) { - $entity['expense.payment_type_id'] = $expense->payment_type ? $expense->payment_type->name : ''; - } + // if (in_array('expense.payment_type_id', $this->input['report_keys'])) { + // $entity['expense.payment_type_id'] = $expense->payment_type ? $expense->payment_type->name : ''; + // } if (in_array('expense.project_id', $this->input['report_keys'])) { $entity['expense.project_id'] = $expense->project ? $expense->project->name : ''; diff --git a/app/Export/CSV/InvoiceExport.php b/app/Export/CSV/InvoiceExport.php index 4f28e72fed5d..18b892fafd7d 100644 --- a/app/Export/CSV/InvoiceExport.php +++ b/app/Export/CSV/InvoiceExport.php @@ -128,32 +128,32 @@ class InvoiceExport extends BaseExport } - return $entity; - // return $this->decorateAdvancedFields($invoice, $entity); + // return $entity; + return $this->decorateAdvancedFields($invoice, $entity); } private function decorateAdvancedFields(Invoice $invoice, array $entity) :array { - if (in_array('invoice.country_id', $this->input['report_keys'])) { - $entity['invoice.country_id'] = $invoice->client->country ? ctrans("texts.country_{$invoice->client->country->name}") : ''; - } + // if (in_array('invoice.country_id', $this->input['report_keys'])) { + // $entity['invoice.country_id'] = $invoice->client->country ? ctrans("texts.country_{$invoice->client->country->name}") : ''; + // } - if (in_array('invoice.currency_id', $this->input['report_keys'])) { - $entity['invoice.currency_id'] = $invoice->client->currency() ? $invoice->client->currency()->code : $invoice->company->currency()->code; - } + // if (in_array('invoice.currency_id', $this->input['report_keys'])) { + // $entity['invoice.currency_id'] = $invoice->client->currency() ? $invoice->client->currency()->code : $invoice->company->currency()->code; + // } - if (in_array('invoice.client_id', $this->input['report_keys'])) { - $entity['invoice.client_id'] = $invoice->client->present()->name(); - } + // if (in_array('invoice.client_id', $this->input['report_keys'])) { + // $entity['invoice.client_id'] = $invoice->client->present()->name(); + // } - if (in_array('invoice.status', $this->input['report_keys'])) { - $entity['invoice.status'] = $invoice->stringStatus($invoice->status_id); - } + // if (in_array('invoice.status', $this->input['report_keys'])) { + // $entity['invoice.status'] = $invoice->stringStatus($invoice->status_id); + // } - if (in_array('invoice.recurring_id', $this->input['report_keys'])) { - $entity['invoice.recurring_id'] = $invoice->recurring_invoice->number ?? ''; - } + // if (in_array('invoice.recurring_id', $this->input['report_keys'])) { + // $entity['invoice.recurring_id'] = $invoice->recurring_invoice->number ?? ''; + // } if (in_array('invoice.auto_bill_enabled', $this->input['report_keys'])) { $entity['invoice.auto_bill_enabled'] = $invoice->auto_bill_enabled ? ctrans('texts.yes') : ctrans('texts.no'); diff --git a/app/Export/CSV/InvoiceItemExport.php b/app/Export/CSV/InvoiceItemExport.php index 71fac33e9c21..3ffadb076b7c 100644 --- a/app/Export/CSV/InvoiceItemExport.php +++ b/app/Export/CSV/InvoiceItemExport.php @@ -196,43 +196,43 @@ class InvoiceItemExport extends BaseExport // $entity[$key] = $this->resolveKey($key, $invoice, $this->invoice_transformer); } } - return $entity; - // return $this->decorateAdvancedFields($invoice, $entity); + // return $entity; + return $this->decorateAdvancedFields($invoice, $entity); } private function decorateAdvancedFields(Invoice $invoice, array $entity) :array { - if (in_array('currency_id', $this->input['report_keys'])) { - $entity['currency'] = $invoice->client->currency() ? $invoice->client->currency()->code : $invoice->company->currency()->code; - } + // if (in_array('currency_id', $this->input['report_keys'])) { + // $entity['currency'] = $invoice->client->currency() ? $invoice->client->currency()->code : $invoice->company->currency()->code; + // } - if(array_key_exists('type', $entity)) { - $entity['type'] = $invoice->typeIdString($entity['type']); - } + // if(array_key_exists('type', $entity)) { + // $entity['type'] = $invoice->typeIdString($entity['type']); + // } - if(array_key_exists('tax_category', $entity)) { - $entity['tax_category'] = $invoice->taxTypeString($entity['tax_category']); - } + // if(array_key_exists('tax_category', $entity)) { + // $entity['tax_category'] = $invoice->taxTypeString($entity['tax_category']); + // } - if (in_array('invoice.country_id', $this->input['report_keys'])) { - $entity['invoice.country_id'] = $invoice->client->country ? ctrans("texts.country_{$invoice->client->country->name}") : ''; - } + // if (in_array('invoice.country_id', $this->input['report_keys'])) { + // $entity['invoice.country_id'] = $invoice->client->country ? ctrans("texts.country_{$invoice->client->country->name}") : ''; + // } - if (in_array('invoice.currency_id', $this->input['report_keys'])) { - $entity['invoice.currency_id'] = $invoice->client->currency() ? $invoice->client->currency()->code : $invoice->company->currency()->code; - } + // if (in_array('invoice.currency_id', $this->input['report_keys'])) { + // $entity['invoice.currency_id'] = $invoice->client->currency() ? $invoice->client->currency()->code : $invoice->company->currency()->code; + // } - if (in_array('invoice.client_id', $this->input['report_keys'])) { - $entity['invoice.client_id'] = $invoice->client->present()->name(); - } + // if (in_array('invoice.client_id', $this->input['report_keys'])) { + // $entity['invoice.client_id'] = $invoice->client->present()->name(); + // } - if (in_array('invoice.status', $this->input['report_keys'])) { - $entity['invoice.status'] = $invoice->stringStatus($invoice->status_id); - } + // if (in_array('invoice.status', $this->input['report_keys'])) { + // $entity['invoice.status'] = $invoice->stringStatus($invoice->status_id); + // } - if (in_array('invoice.recurring_id', $this->input['report_keys'])) { - $entity['invoice.recurring_id'] = $invoice->recurring_invoice->number ?? ''; - } + // if (in_array('invoice.recurring_id', $this->input['report_keys'])) { + // $entity['invoice.recurring_id'] = $invoice->recurring_invoice->number ?? ''; + // } if (in_array('invoice.assigned_user_id', $this->input['report_keys'])) { $entity['invoice.assigned_user_id'] = $invoice->assigned_user ? $invoice->assigned_user->present()->name(): ''; diff --git a/app/Export/CSV/PaymentExport.php b/app/Export/CSV/PaymentExport.php index 67b8e41abe90..9ddb9de3cddd 100644 --- a/app/Export/CSV/PaymentExport.php +++ b/app/Export/CSV/PaymentExport.php @@ -125,55 +125,55 @@ class PaymentExport extends BaseExport } - return $entity; - // return $this->decorateAdvancedFields($payment, $entity); + // return $entity; + return $this->decorateAdvancedFields($payment, $entity); } private function decorateAdvancedFields(Payment $payment, array $entity) :array { - if (in_array('status_id', $this->input['report_keys'])) { - $entity['status'] = $payment->stringStatus($payment->status_id); - } + // if (in_array('status_id', $this->input['report_keys'])) { + // $entity['status'] = $payment->stringStatus($payment->status_id); + // } - if (in_array('vendor_id', $this->input['report_keys'])) { - $entity['vendor'] = $payment->vendor()->exists() ? $payment->vendor->name : ''; - } + // if (in_array('vendor_id', $this->input['report_keys'])) { + // $entity['vendor'] = $payment->vendor()->exists() ? $payment->vendor->name : ''; + // } - if (in_array('project_id', $this->input['report_keys'])) { - $entity['project'] = $payment->project()->exists() ? $payment->project->name : ''; - } + // if (in_array('project_id', $this->input['report_keys'])) { + // $entity['project'] = $payment->project()->exists() ? $payment->project->name : ''; + // } - if (in_array('currency_id', $this->input['report_keys'])) { - $entity['currency'] = $payment->currency()->exists() ? $payment->currency->code : ''; - } + // if (in_array('currency_id', $this->input['report_keys'])) { + // $entity['currency'] = $payment->currency()->exists() ? $payment->currency->code : ''; + // } - if (in_array('payment.currency', $this->input['report_keys'])) { - $entity['payment.currency'] = $payment->currency()->exists() ? $payment->currency->code : ''; - } + // if (in_array('payment.currency', $this->input['report_keys'])) { + // $entity['payment.currency'] = $payment->currency()->exists() ? $payment->currency->code : ''; + // } - if (in_array('exchange_currency_id', $this->input['report_keys'])) { - $entity['exchange_currency'] = $payment->exchange_currency()->exists() ? $payment->exchange_currency->code : ''; - } + // if (in_array('exchange_currency_id', $this->input['report_keys'])) { + // $entity['exchange_currency'] = $payment->exchange_currency()->exists() ? $payment->exchange_currency->code : ''; + // } - if (in_array('client_id', $this->input['report_keys'])) { - $entity['client'] = $payment->client->present()->name(); - } + // if (in_array('client_id', $this->input['report_keys'])) { + // $entity['client'] = $payment->client->present()->name(); + // } - if (in_array('type_id', $this->input['report_keys'])) { - $entity['type'] = $payment->translatedType(); - } + // if (in_array('type_id', $this->input['report_keys'])) { + // $entity['type'] = $payment->translatedType(); + // } - if (in_array('payment.method', $this->input['report_keys'])) { - $entity['payment.method'] = $payment->translatedType(); - } + // if (in_array('payment.method', $this->input['report_keys'])) { + // $entity['payment.method'] = $payment->translatedType(); + // } - if (in_array('payment.status', $this->input['report_keys'])) { - $entity['payment.status'] = $payment->stringStatus($payment->status_id); - } + // if (in_array('payment.status', $this->input['report_keys'])) { + // $entity['payment.status'] = $payment->stringStatus($payment->status_id); + // } - if (in_array('gateway_type_id', $this->input['report_keys'])) { - $entity['gateway'] = $payment->gateway_type ? $payment->gateway_type->name : 'Unknown Type'; - } + // if (in_array('gateway_type_id', $this->input['report_keys'])) { + // $entity['gateway'] = $payment->gateway_type ? $payment->gateway_type->name : 'Unknown Type'; + // } if (in_array('payment.assigned_user_id', $this->input['report_keys'])) { $entity['payment.assigned_user_id'] = $payment->assigned_user ? $payment->assigned_user->present()->name() : ''; diff --git a/app/Export/CSV/PurchaseOrderExport.php b/app/Export/CSV/PurchaseOrderExport.php index ff15cb2abc25..ac63c9b13cb3 100644 --- a/app/Export/CSV/PurchaseOrderExport.php +++ b/app/Export/CSV/PurchaseOrderExport.php @@ -173,8 +173,8 @@ class PurchaseOrderExport extends BaseExport } - return $entity; - // return $this->decorateAdvancedFields($purchase_order, $entity); + // return $entity; + return $this->decorateAdvancedFields($purchase_order, $entity); } private function decorateAdvancedFields(PurchaseOrder $purchase_order, array $entity) :array @@ -195,6 +195,15 @@ class PurchaseOrderExport extends BaseExport $entity['purchase_order.status'] = $purchase_order->stringStatus($purchase_order->status_id); } + if (in_array('purchase_order.user_id', $this->input['report_keys'])) { + $entity['purchase_order.user_id'] = $purchase_order->user ? $purchase_order->user->present()->name() : ''; + } + + if (in_array('purchase_order.assigned_user_id', $this->input['report_keys'])) { + $entity['purchase_order.assigned_user_id'] = $purchase_order->assigned_user ? $purchase_order->assigned_user->present()->name() : ''; + } + + return $entity; } } diff --git a/app/Export/CSV/PurchaseOrderItemExport.php b/app/Export/CSV/PurchaseOrderItemExport.php index 1d8fce10582c..320d068ef147 100644 --- a/app/Export/CSV/PurchaseOrderItemExport.php +++ b/app/Export/CSV/PurchaseOrderItemExport.php @@ -206,6 +206,16 @@ class PurchaseOrderItemExport extends BaseExport $entity['status'] = $purchase_order->stringStatus($purchase_order->status_id); } + if (in_array('purchase_order.user_id', $this->input['report_keys'])) { + $entity['purchase_order.user_id'] = $purchase_order->user ? $purchase_order->user->present()->name() : ''; + } + + if (in_array('purchase_order.assigned_user_id', $this->input['report_keys'])) { + $entity['purchase_order.assigned_user_id'] = $purchase_order->assigned_user ? $purchase_order->assigned_user->present()->name() : ''; + } + + + return $entity; } diff --git a/app/Export/CSV/QuoteExport.php b/app/Export/CSV/QuoteExport.php index 5ae717df51c0..5da64b61509e 100644 --- a/app/Export/CSV/QuoteExport.php +++ b/app/Export/CSV/QuoteExport.php @@ -133,8 +133,8 @@ class QuoteExport extends BaseExport } } - return $entity; - // return $this->decorateAdvancedFields($quote, $entity); + // return $entity; + return $this->decorateAdvancedFields($quote, $entity); } private function decorateAdvancedFields(Quote $quote, array $entity) :array diff --git a/app/Export/CSV/QuoteItemExport.php b/app/Export/CSV/QuoteItemExport.php index eafbda850103..df6ebc8cd670 100644 --- a/app/Export/CSV/QuoteItemExport.php +++ b/app/Export/CSV/QuoteItemExport.php @@ -189,22 +189,22 @@ class QuoteItemExport extends BaseExport } } - return $entity; - // return $this->decorateAdvancedFields($quote, $entity); + // return $entity; + return $this->decorateAdvancedFields($quote, $entity); } private function decorateAdvancedFields(Quote $quote, array $entity) :array { - if (in_array('currency_id', $this->input['report_keys'])) { - $entity['currency'] = $quote->client->currency() ? $quote->client->currency()->code : $quote->company->currency()->code; - } + // if (in_array('currency_id', $this->input['report_keys'])) { + // $entity['currency'] = $quote->client->currency() ? $quote->client->currency()->code : $quote->company->currency()->code; + // } - if (in_array('client_id', $this->input['report_keys'])) { - $entity['client'] = $quote->client->present()->name(); - } + // if (in_array('client_id', $this->input['report_keys'])) { + // $entity['client'] = $quote->client->present()->name(); + // } - if (in_array('status_id', $this->input['report_keys'])) { - $entity['status'] = $quote->stringStatus($quote->status_id); - } + // if (in_array('status_id', $this->input['report_keys'])) { + // $entity['status'] = $quote->stringStatus($quote->status_id); + // } if (in_array('quote.assigned_user_id', $this->input['report_keys'])) { $entity['quote.assigned_user_id'] = $quote->assigned_user ? $quote->assigned_user->present()->name(): ''; diff --git a/app/Export/CSV/RecurringInvoiceExport.php b/app/Export/CSV/RecurringInvoiceExport.php index 4e1d3945421b..486ab77abcd6 100644 --- a/app/Export/CSV/RecurringInvoiceExport.php +++ b/app/Export/CSV/RecurringInvoiceExport.php @@ -109,8 +109,6 @@ class RecurringInvoiceExport extends BaseExport private function buildRow(RecurringInvoice $invoice) :array { $transformed_invoice = $this->invoice_transformer->transform($invoice); - $transformed_invoice['frequency_id'] = $invoice->frequencyForKey($invoice->frequency_id); //need to inject this here because it is also a valid key -// nlog($transformed_invoice); $entity = []; @@ -131,36 +129,36 @@ class RecurringInvoiceExport extends BaseExport } } -// nlog($entity); - return $entity; - // return $this->decorateAdvancedFields($invoice, $entity); + + // return $entity; + return $this->decorateAdvancedFields($invoice, $entity); } private function decorateAdvancedFields(RecurringInvoice $invoice, array $entity) :array { - if (in_array('country_id', $this->input['report_keys'])) { - $entity['country'] = $invoice->client->country ? ctrans("texts.country_{$invoice->client->country->name}") : ''; - } + // if (in_array('country_id', $this->input['report_keys'])) { + // $entity['country'] = $invoice->client->country ? ctrans("texts.country_{$invoice->client->country->name}") : ''; + // } - if (in_array('currency_id', $this->input['report_keys'])) { - $entity['currency'] = $invoice->client->currency() ? $invoice->client->currency()->code : $invoice->company->currency()->code; - } + // if (in_array('currency_id', $this->input['report_keys'])) { + // $entity['currency'] = $invoice->client->currency() ? $invoice->client->currency()->code : $invoice->company->currency()->code; + // } - if (in_array('client_id', $this->input['report_keys'])) { - $entity['client'] = $invoice->client->present()->name(); - } + // if (in_array('client_id', $this->input['report_keys'])) { + // $entity['client'] = $invoice->client->present()->name(); + // } - if (in_array('recurring_invoice.status', $this->input['report_keys'])) { - $entity['recurring_invoice.status'] = $invoice->stringStatus($invoice->status_id); - } + // if (in_array('recurring_invoice.status', $this->input['report_keys'])) { + // $entity['recurring_invoice.status'] = $invoice->stringStatus($invoice->status_id); + // } - if (in_array('project_id', $this->input['report_keys'])) { - $entity['project'] = $invoice->project ? $invoice->project->name : ''; - } + // if (in_array('project_id', $this->input['report_keys'])) { + // $entity['project'] = $invoice->project ? $invoice->project->name : ''; + // } - if (in_array('vendor_id', $this->input['report_keys'])) { - $entity['vendor'] = $invoice->vendor ? $invoice->vendor->name : ''; - } + // if (in_array('vendor_id', $this->input['report_keys'])) { + // $entity['vendor'] = $invoice->vendor ? $invoice->vendor->name : ''; + // } if (in_array('recurring_invoice.frequency_id', $this->input['report_keys']) || in_array('frequency_id', $this->input['report_keys'])) { $entity['recurring_invoice.frequency_id'] = $invoice->frequencyForKey($invoice->frequency_id); diff --git a/app/Export/CSV/TaskExport.php b/app/Export/CSV/TaskExport.php index 332c9d8807d9..757dda2c4f72 100644 --- a/app/Export/CSV/TaskExport.php +++ b/app/Export/CSV/TaskExport.php @@ -197,7 +197,7 @@ class TaskExport extends BaseExport $entity['task.duration'] = $task->calcDuration(); } - // $entity = $this->decorateAdvancedFields($task, $entity); + $entity = $this->decorateAdvancedFields($task, $entity); $this->storage_array[] = $entity; @@ -218,6 +218,15 @@ class TaskExport extends BaseExport $entity['task.project_id'] = $task->project()->exists() ? $task->project->name : ''; } + if (in_array('task.user_id', $this->input['report_keys'])) { + $entity['task.user_id'] = $task->user ? $task->user->present()->name() : ''; + } + + if (in_array('task.assigned_user_id', $this->input['report_keys'])) { + $entity['task.assigned_user_id'] = $task->assigned_user ? $task->assigned_user->present()->name() : ''; + } + + return $entity; } } diff --git a/app/Export/CSV/VendorExport.php b/app/Export/CSV/VendorExport.php index 4279724f9111..567c745f5a55 100644 --- a/app/Export/CSV/VendorExport.php +++ b/app/Export/CSV/VendorExport.php @@ -126,15 +126,14 @@ class VendorExport extends BaseExport } elseif (is_array($parts) && $parts[0] == 'vendor_contact' && isset($transformed_contact[$parts[1]])) { $entity[$key] = $transformed_contact[$parts[1]]; } else { - // nlog($key); + $entity[$key] = $this->decorator->transform($key, $vendor); - // $entity[$key] = $this->resolveKey($key, $vendor, $this->vendor_transformer); } } - return $entity; - // return $this->decorateAdvancedFields($vendor, $entity); + // return $entity; + return $this->decorateAdvancedFields($vendor, $entity); } private function decorateAdvancedFields(Vendor $vendor, array $entity) :array @@ -151,6 +150,15 @@ class VendorExport extends BaseExport $entity['vendor.classification'] = ctrans("texts.{$vendor->classification}") ?? ''; } + if (in_array('vendor.user_id', $this->input['report_keys'])) { + $entity['vendor.user_id'] = $vendor->user ? $vendor->user->present()->name() : ''; + } + + if (in_array('vendor.assigned_user_id', $this->input['report_keys'])) { + $entity['vendor.assigned_user_id'] = $vendor->assigned_user ? $vendor->assigned_user->present()->name() : ''; + } + + // $entity['status'] = $this->calculateStatus($vendor); return $entity; diff --git a/app/Filters/InvoiceFilters.php b/app/Filters/InvoiceFilters.php index a3feeb040047..df04af1d072a 100644 --- a/app/Filters/InvoiceFilters.php +++ b/app/Filters/InvoiceFilters.php @@ -146,16 +146,26 @@ class InvoiceFilters extends QueryFilters */ public function upcoming(): Builder { - return $this->builder->whereIn('status_id', [Invoice::STATUS_PARTIAL, Invoice::STATUS_SENT]) - ->whereNull('due_date') + + return $this->builder->where(function ($query) { + $query->whereIn('status_id', [Invoice::STATUS_PARTIAL, Invoice::STATUS_SENT]) + ->where('is_deleted', 0) + ->where('balance', '>', 0) + ->where(function ($query) { + + $query->whereNull('due_date') ->orWhere(function ($q) { $q->where('due_date', '>=', now()->startOfDay()->subSecond())->where('partial', 0); }) - ->orWhere(function ($q) { - $q->where('partial_due_date', '>=', now()->startOfDay()->subSecond())->where('partial', '>', 0); - }) - ->orderByRaw('ISNULL(due_date), due_date '. 'desc') - ->orderByRaw('ISNULL(partial_due_date), partial_due_date '. 'desc'); + ->orWhere(function ($q) { + $q->where('partial_due_date', '>=', now()->startOfDay()->subSecond())->where('partial', '>', 0); + }); + + }) + ->orderByRaw('ISNULL(due_date), due_date ' . 'desc') + ->orderByRaw('ISNULL(partial_due_date), partial_due_date ' . 'desc'); + }); + } /** @@ -165,13 +175,18 @@ class InvoiceFilters extends QueryFilters */ public function overdue(): Builder { - return $this->builder->whereIn('status_id', [Invoice::STATUS_SENT, Invoice::STATUS_PARTIAL]) + return $this->builder->where(function ($query) { + + $query->whereIn('status_id', [Invoice::STATUS_SENT, Invoice::STATUS_PARTIAL]) ->where('is_deleted', 0) + ->where('balance', '>', 0) ->where(function ($query) { $query->where('due_date', '<', now()) ->orWhere('partial_due_date', '<', now()); }) ->orderBy('due_date', 'ASC'); + }); + } /** diff --git a/app/Http/Controllers/PaymentController.php b/app/Http/Controllers/PaymentController.php index 10b8af7dcb38..951b2a3c77e1 100644 --- a/app/Http/Controllers/PaymentController.php +++ b/app/Http/Controllers/PaymentController.php @@ -155,6 +155,7 @@ class PaymentController extends BaseController $user = auth()->user(); $payment = PaymentFactory::create($user->company()->id, $user->id); + $payment->date = now()->addSeconds($user->company()->utc_offset())->format('Y-m-d'); return $this->itemResponse($payment); } diff --git a/app/Http/Controllers/SubdomainController.php b/app/Http/Controllers/SubdomainController.php index 3800935ac85c..902fe115cfe7 100644 --- a/app/Http/Controllers/SubdomainController.php +++ b/app/Http/Controllers/SubdomainController.php @@ -30,6 +30,12 @@ class SubdomainController extends BaseController return response()->json(['message' => ctrans('texts.subdomain_is_not_available')], 401); } + + if (!preg_match('/^[A-Za-z0-9](?:[A-Za-z0-9\-]{0,61}[A-Za-z0-9])?$/', request()->input('subdomain'))) { + return response()->json(['message' => ctrans('texts.subdomain_is_not_available')], 401); + } + + return response()->json(['message' => 'Domain available'], 200); } } diff --git a/app/Http/Controllers/TwilioController.php b/app/Http/Controllers/TwilioController.php index 39b7f726372c..ed6044995b12 100644 --- a/app/Http/Controllers/TwilioController.php +++ b/app/Http/Controllers/TwilioController.php @@ -21,6 +21,12 @@ use Twilio\Rest\Client; class TwilioController extends BaseController { + + private array $invalid_codes = [ + '+21', + '+17152567760', + ]; + public function __construct() { parent::__construct(); @@ -38,6 +44,10 @@ class TwilioController extends BaseController $account = $user->company()->account; + if(!$this->checkPhoneValidity($request->phone)) { + return response()->json(['message' => 'This phone number is not supported'], 400); + } + if (MultiDB::hasPhoneNumber($request->phone)) { return response()->json(['message' => 'This phone number has already been verified with another account'], 400); } @@ -65,6 +75,19 @@ class TwilioController extends BaseController return response()->json(['message' => 'Code sent.'], 200); } + private function checkPhoneValidity($phone) + { + foreach($this->invalid_codes as $code){ + + if(stripos($phone, $code) !== false) { + return false; + } + + return true; + + } + } + /** * Show the form for creating a new resource. * diff --git a/app/Http/Requests/Credit/UpdateCreditRequest.php b/app/Http/Requests/Credit/UpdateCreditRequest.php index 23ee7007b654..4d15796ac139 100644 --- a/app/Http/Requests/Credit/UpdateCreditRequest.php +++ b/app/Http/Requests/Credit/UpdateCreditRequest.php @@ -60,7 +60,7 @@ class UpdateCreditRequest extends Request $rules['file'] = $this->file_validation; } - $rules['number'] = ['bail', 'sometimes', Rule::unique('credits')->where('company_id', $user->company()->id)->ignore($this->credit->id)]; + $rules['number'] = ['bail', 'sometimes', 'nullable', Rule::unique('credits')->where('company_id', $user->company()->id)->ignore($this->credit->id)]; $rules['client_id'] = ['bail', 'sometimes',Rule::in([$this->credit->client_id])]; diff --git a/app/Http/Requests/Import/ImportRequest.php b/app/Http/Requests/Import/ImportRequest.php index 4cc8ff93489c..f528452b0708 100644 --- a/app/Http/Requests/Import/ImportRequest.php +++ b/app/Http/Requests/Import/ImportRequest.php @@ -37,7 +37,17 @@ class ImportRequest extends Request 'column_map' => 'required_with:hash|array', 'skip_header' => 'required_with:hash|boolean', 'files.*' => 'file|mimes:csv,txt', - 'bank_integration_id' => 'bail|required_if:column_map,bank_transaction|min:2' + 'bank_integration_id' => 'bail|required_with:column_map.bank_transaction|min:2' ]; } + + public function prepareForValidation() + { + $input = $this->all(); + + if(!isset($input['column_map']['bank_transaction']) && array_key_exists('bank_integration_id',$input)) + unset($input['bank_integration_id']); + + $this->replace($input); + } } diff --git a/app/Http/Requests/Invoice/UpdateInvoiceRequest.php b/app/Http/Requests/Invoice/UpdateInvoiceRequest.php index 319f1d9aab91..1591b9912579 100644 --- a/app/Http/Requests/Invoice/UpdateInvoiceRequest.php +++ b/app/Http/Requests/Invoice/UpdateInvoiceRequest.php @@ -59,9 +59,8 @@ class UpdateInvoiceRequest extends Request $rules['id'] = new LockedInvoiceRule($this->invoice); - $rules['number'] = ['bail', 'sometimes', Rule::unique('invoices')->where('company_id', $user->company()->id)->ignore($this->invoice->id)]; + $rules['number'] = ['bail', 'sometimes', 'nullable', Rule::unique('invoices')->where('company_id', $user->company()->id)->ignore($this->invoice->id)]; - $rules['is_amount_discount'] = ['boolean']; $rules['client_id'] = ['bail', 'sometimes', Rule::in([$this->invoice->client_id])]; $rules['line_items'] = 'array'; diff --git a/app/Http/Requests/Product/StoreProductRequest.php b/app/Http/Requests/Product/StoreProductRequest.php index 4dacdbdfca16..285a5f0a6145 100644 --- a/app/Http/Requests/Product/StoreProductRequest.php +++ b/app/Http/Requests/Product/StoreProductRequest.php @@ -23,7 +23,10 @@ class StoreProductRequest extends Request */ public function authorize() : bool { - return auth()->user()->can('create', Product::class); + /** @var \App\Models\User $user */ + $user = auth()->user(); + + return $user->can('create', Product::class); } public function rules() @@ -54,7 +57,7 @@ class StoreProductRequest extends Request { $input = $this->all(); - if (! isset($input['quantity']) || $input['quantity'] < 1) { + if (! isset($input['quantity'])) { $input['quantity'] = 1; } diff --git a/app/Http/Requests/Product/UpdateProductRequest.php b/app/Http/Requests/Product/UpdateProductRequest.php index 36197b90cf4a..11c2449df698 100644 --- a/app/Http/Requests/Product/UpdateProductRequest.php +++ b/app/Http/Requests/Product/UpdateProductRequest.php @@ -56,7 +56,7 @@ class UpdateProductRequest extends Request { $input = $this->all(); - if (! isset($input['quantity']) || $input['quantity'] < 1) { + if (! isset($input['quantity'])) { $input['quantity'] = 1; } diff --git a/app/Http/Requests/PurchaseOrder/UpdatePurchaseOrderRequest.php b/app/Http/Requests/PurchaseOrder/UpdatePurchaseOrderRequest.php index d9549f881f98..800eaf8405ca 100644 --- a/app/Http/Requests/PurchaseOrder/UpdatePurchaseOrderRequest.php +++ b/app/Http/Requests/PurchaseOrder/UpdatePurchaseOrderRequest.php @@ -48,7 +48,7 @@ class UpdatePurchaseOrderRequest extends Request $rules = []; - $rules['number'] = ['bail', 'sometimes', Rule::unique('purchase_orders')->where('company_id', $user->company()->id)->ignore($this->purchase_order->id)]; + $rules['number'] = ['bail', 'sometimes', 'nullable', Rule::unique('purchase_orders')->where('company_id', $user->company()->id)->ignore($this->purchase_order->id)]; $rules['vendor_id'] = ['bail', 'sometimes', Rule::in([$this->purchase_order->vendor_id])]; $rules['line_items'] = 'array'; diff --git a/app/Http/Requests/Quote/UpdateQuoteRequest.php b/app/Http/Requests/Quote/UpdateQuoteRequest.php index 4b473825c88a..4294385b15f2 100644 --- a/app/Http/Requests/Quote/UpdateQuoteRequest.php +++ b/app/Http/Requests/Quote/UpdateQuoteRequest.php @@ -55,7 +55,7 @@ class UpdateQuoteRequest extends Request } - $rules['number'] = ['bail', 'sometimes', Rule::unique('quotes')->where('company_id', $user->company()->id)->ignore($this->quote->id)]; + $rules['number'] = ['bail', 'sometimes', 'nullable', Rule::unique('quotes')->where('company_id', $user->company()->id)->ignore($this->quote->id)]; $rules['client_id'] = ['bail', 'sometimes', Rule::in([$this->quote->client_id])]; @@ -73,6 +73,8 @@ class UpdateQuoteRequest extends Request $input = $this->decodePrimaryKeys($input); + $input['id'] = $this->quote->id; + if (isset($input['line_items'])) { $input['line_items'] = isset($input['line_items']) ? $this->cleanItems($input['line_items']) : []; } @@ -85,7 +87,6 @@ class UpdateQuoteRequest extends Request $input['exchange_rate'] = 1; } - $input['id'] = $this->quote->id; $this->replace($input); } diff --git a/app/Http/Requests/TaskScheduler/StoreSchedulerRequest.php b/app/Http/Requests/TaskScheduler/StoreSchedulerRequest.php index 4e197ad50e44..fff0e66c47e5 100644 --- a/app/Http/Requests/TaskScheduler/StoreSchedulerRequest.php +++ b/app/Http/Requests/TaskScheduler/StoreSchedulerRequest.php @@ -42,14 +42,14 @@ class StoreSchedulerRequest extends Request 'template' => 'bail|required|string', 'parameters' => 'bail|array', 'parameters.clients' => ['bail','sometimes', 'array', new ValidClientIds()], - 'parameters.date_range' => 'bail|sometimes|string|in:last7_days,last30_days,last365_days,this_month,last_month,this_quarter,last_quarter,this_year,last_year,all_time,custom', + 'parameters.date_range' => 'bail|sometimes|string|in:last7_days,last30_days,last365_days,this_month,last_month,this_quarter,last_quarter,this_year,last_year,all_time,custom,all', 'parameters.start_date' => ['bail', 'sometimes', 'date:Y-m-d', 'required_if:parameters.date_rate,custom'], 'parameters.end_date' => ['bail', 'sometimes', 'date:Y-m-d', 'required_if:parameters.date_rate,custom', 'after_or_equal:parameters.start_date'], 'parameters.entity' => ['bail', 'sometimes', 'string', 'in:invoice,credit,quote,purchase_order'], 'parameters.entity_id' => ['bail', 'sometimes', 'string'], - 'parameters.report_name' => ['bail','sometimes', 'string', 'required_if:template,email_report','in:ar_detailed,ar_summary,client_balance,tax_summary,profitloss,client_sales,user_sales,product_sales,clients,client_contacts,credits,documents,expenses,invoices,invoice_items,quotes,quote_items,recurring_invoices,payments,products,tasks'], + 'parameters.report_name' => ['bail','sometimes', 'string', 'required_if:template,email_report','in:ar_detailed,ar_summary,client_balance,tax_summary,profitloss,client_sales,user_sales,product_sales,activity,client,contact,client_contact,credit,document,expense,invoice,invoice_item,quote,quote_item,recurring_invoice,payment,product,task'], 'parameters.date_key' => ['bail','sometimes', 'string'], - 'parameters.status' => ['bail','sometimes', 'string', 'in:all,draft,paid,unpaid,overdue'], + 'parameters.status' => ['bail','sometimes', 'string'], ]; return $rules; @@ -67,6 +67,18 @@ class StoreSchedulerRequest extends Request $input['frequency_id'] = 0; } + if(isset($input['parameters']) && !isset($input['parameters']['clients'])) { + $input['parameters']['clients'] = []; + } + + if(isset($input['parameters']['status'])) { + + $input['parameters']['status'] = collect(explode(",", $input['parameters']['status'])) + ->filter(function($status) { + return in_array($status, ['all','draft','paid','unpaid','overdue']); + })->implode(",") ?? ''; + } + $this->replace($input); } } diff --git a/app/Http/Requests/TaskScheduler/UpdateSchedulerRequest.php b/app/Http/Requests/TaskScheduler/UpdateSchedulerRequest.php index f4054949fc85..2b5ffc4ba7fd 100644 --- a/app/Http/Requests/TaskScheduler/UpdateSchedulerRequest.php +++ b/app/Http/Requests/TaskScheduler/UpdateSchedulerRequest.php @@ -39,13 +39,14 @@ class UpdateSchedulerRequest extends Request 'template' => 'bail|required|string', 'parameters' => 'bail|array', 'parameters.clients' => ['bail','sometimes', 'array', new ValidClientIds()], - 'parameters.date_range' => 'bail|sometimes|string|in:last7_days,last30_days,last365_days,this_month,last_month,this_quarter,last_quarter,this_year,last_year,all_time,custom', + 'parameters.date_range' => 'bail|sometimes|string|in:last7_days,last30_days,last365_days,this_month,last_month,this_quarter,last_quarter,this_year,last_year,all_time,custom,all', 'parameters.start_date' => ['bail', 'sometimes', 'date:Y-m-d', 'required_if:parameters.date_rate,custom'], 'parameters.end_date' => ['bail', 'sometimes', 'date:Y-m-d', 'required_if:parameters.date_rate,custom', 'after_or_equal:parameters.start_date'], 'parameters.entity' => ['bail', 'sometimes', 'string', 'in:invoice,credit,quote,purchase_order'], 'parameters.entity_id' => ['bail', 'sometimes', 'string'], - 'parameters.report_name' => ['bail','sometimes', 'string', 'required_if:template,email_report', 'in:ar_detailed,ar_summary,client_balance,tax_summary,profitloss,client_sales,user_sales,product_sales,clients,client_contacts,credits,documents,expenses,invoices,invoice_items,quotes,quote_items,recurring_invoices,payments,products,tasks'], + 'parameters.report_name' => ['bail','sometimes', 'string', 'required_if:template,email_report', 'in:ar_detailed,ar_summary,client_balance,tax_summary,profitloss,client_sales,user_sales,product_sales,client,client_contact,credit,document,expense,invoice,invoice_item,quote,quote_item,recurring_invoice,payment,product,task'], 'parameters.date_key' => ['bail','sometimes', 'string'], + 'parameters.status' => ['bail','sometimes', 'string'], ]; return $rules; @@ -63,6 +64,19 @@ class UpdateSchedulerRequest extends Request $input['frequency_id'] = 0; } + if(isset($input['parameters']) && !isset($input['parameters']['clients'])) { + $input['parameters']['clients'] = []; + } + + if(isset($input['parameters']['status'])) { + + $input['parameters']['status'] = collect(explode(",", $input['parameters']['status'])) + ->filter(function ($status) { + return in_array($status, ['all','draft','paid','unpaid','overdue']); + })->implode(",") ?? ''; + } + + $this->replace($input); diff --git a/app/Jobs/Company/CompanyExport.php b/app/Jobs/Company/CompanyExport.php index 23afdd37738f..0fc36b2500af 100644 --- a/app/Jobs/Company/CompanyExport.php +++ b/app/Jobs/Company/CompanyExport.php @@ -387,19 +387,19 @@ class CompanyExport implements ShouldQueue })->all(); - $this->export_data['bank_integrations'] = $this->company->bank_integrations()->orderBy('id', 'ASC')->cursor()->map(function ($bank_integration) { + $this->export_data['bank_integrations'] = $this->company->bank_integrations()->withTrashed()->orderBy('id', 'ASC')->cursor()->map(function ($bank_integration) { $bank_integration = $this->transformArrayOfKeys($bank_integration, ['account_id','company_id', 'user_id']); - return $bank_integration->makeVisible(['id','user_id','company_id','account_id']); + return $bank_integration->makeVisible(['id','user_id','company_id','account_id','hashed_id']); })->all(); - $this->export_data['bank_transactions'] = $this->company->bank_transactions()->orderBy('id', 'ASC')->cursor()->map(function ($bank_transaction) { - $bank_transaction = $this->transformArrayOfKeys($bank_transaction, ['company_id', 'user_id','bank_integration_id','expense_id','category_id','ninja_category_id','vendor_id']); + $this->export_data['bank_transactions'] = $this->company->bank_transactions()->withTrashed()->orderBy('id', 'ASC')->cursor()->map(function ($bank_transaction) { + $bank_transaction = $this->transformArrayOfKeys($bank_transaction, ['company_id', 'user_id','bank_integration_id','expense_id','ninja_category_id','vendor_id']); return $bank_transaction->makeVisible(['id','user_id','company_id']); })->all(); - $this->export_data['schedulers'] = $this->company->schedulers()->orderBy('id', 'ASC')->cursor()->map(function ($scheduler) { + $this->export_data['schedulers'] = $this->company->schedulers()->withTrashed()->orderBy('id', 'ASC')->cursor()->map(function ($scheduler) { $scheduler = $this->transformArrayOfKeys($scheduler, ['company_id', 'user_id']); return $scheduler->makeVisible(['id','user_id','company_id']); diff --git a/app/Jobs/Company/CompanyImport.php b/app/Jobs/Company/CompanyImport.php index 7c84d721b1e9..44abb45fdf3b 100644 --- a/app/Jobs/Company/CompanyImport.php +++ b/app/Jobs/Company/CompanyImport.php @@ -63,14 +63,12 @@ use App\Utils\Ninja; use App\Utils\TempFile; use App\Utils\Traits\GeneratesCounter; use App\Utils\Traits\MakesHash; -use function GuzzleHttp\json_encode; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; use Illuminate\Support\Facades\App; -use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Str; use JsonMachine\JsonDecoder\ExtJsonDecoder; @@ -142,7 +140,6 @@ class CompanyImport implements ShouldQueue 'recurring_expenses', 'expenses', 'tasks', - 'payments', 'company_ledger', 'designs', 'documents', @@ -569,7 +566,7 @@ class CompanyImport implements ShouldQueue ['expenses' => 'expense_id'], ['vendors' => 'vendor_id'], ['expense_categories' => 'ninja_category_id'], - ['expense_categories' => 'category_id'], + // ['expense_categories' => 'category_id'], ['bank_integrations' => 'bank_integration_id'] ], 'bank_transactions', @@ -1143,7 +1140,34 @@ class CompanyImport implements ShouldQueue continue; } + $storage_url = (object)$this->getObject('storage_url', true); + + if (!Storage::exists($document->url) && is_string($storage_url)) { + $url = $storage_url . $document->url; + + $file = @file_get_contents($url); + + + if ($file) { + try { + Storage::disk(config('filesystems.default'))->put($document->url, $file); + + + } catch(\Exception $e) { + nlog($e->getMessage()); + nlog("I could not upload {$document->url}"); + + } + } + else + continue; + + } + else + continue; + $new_document = new Document(); + $new_document->disk = config('filesystems.default'); $new_document->user_id = $this->transformId('users', $document->user_id); $new_document->assigned_user_id = $this->transformId('users', $document->assigned_user_id); $new_document->company_id = $this->company->id; @@ -1169,26 +1193,6 @@ class CompanyImport implements ShouldQueue $new_document->save(['timestamps' => false]); - $storage_url = (object)$this->getObject('storage_url', true); - - if (!Storage::exists($new_document->url) && is_string($storage_url)) { - $url = $storage_url . $new_document->url; - - $file = @file_get_contents($url); - - if ($file) { - try { - Storage::disk(config('filesystems.default'))->put($new_document->url, $file); - - $new_document->disk = config('filesystems.default'); - $new_document->save(); - } catch(\Exception $e) { - nlog($e->getMessage()); - nlog("I could not upload {$new_document->url}"); - $new_document->forceDelete(); - } - } - } } return $this; @@ -1727,7 +1731,9 @@ class CompanyImport implements ShouldQueue */ private function transformId(string $resource, ?string $old): ?int { - if (empty($old)) { + + // WjnegYbwZ1 == 0 return null; + if (empty($old) || $old == 'WjnegYbwZ1') { return null; } @@ -1736,6 +1742,7 @@ class CompanyImport implements ShouldQueue } if (! array_key_exists($resource, $this->ids)) { + $this->sendImportMail("The Import failed due to missing data in the import file. Resource {$resource} not available."); throw new \Exception("Resource {$resource} not available."); @@ -1744,16 +1751,12 @@ class CompanyImport implements ShouldQueue if (! array_key_exists("{$old}", $this->ids[$resource])) { // nlog($this->ids[$resource]); nlog("searching for {$old} in {$resource}"); - - nlog("If we are missing a user - default to the company owner"); if ($resource == 'users') { return $this->company_owner->id; } - $this->sendImportMail("The Import failed due to missing data in the import file. Resource {$resource} not available."); - - nlog($this->ids[$resource]); + $this->sendImportMail("The Import failed due to missing data in the import file. Key {$old} not found in {$resource}."); throw new \Exception("Missing {$resource} key: {$old}"); } diff --git a/app/Jobs/Company/CreateCompany.php b/app/Jobs/Company/CreateCompany.php index 5ca76e3071ed..d8c493cfedbf 100644 --- a/app/Jobs/Company/CreateCompany.php +++ b/app/Jobs/Company/CreateCompany.php @@ -65,7 +65,7 @@ class CreateCompany $company->settings = $settings; $company->db = config('database.default'); $company->enabled_modules = config('ninja.enabled_modules'); - $company->subdomain = isset($this->request['subdomain']) ? $this->request['subdomain'] : ''; + $company->subdomain = isset($this->request['subdomain']) ? $this->request['subdomain'] : MultiDB::randomSubdomainGenerator(); $company->custom_fields = new \stdClass; $company->default_password_timeout = 1800000; $company->client_registration_fields = ClientRegistrationFields::generate(); diff --git a/app/Jobs/Mail/PaymentFailedMailer.php b/app/Jobs/Mail/PaymentFailedMailer.php index 461b1a01c695..15b9bdb61c8f 100644 --- a/app/Jobs/Mail/PaymentFailedMailer.php +++ b/app/Jobs/Mail/PaymentFailedMailer.php @@ -105,7 +105,7 @@ class PaymentFailedMailer implements ShouldQueue }); //add client payment failures here. - // + if ($this->client->contacts()->whereNotNull('email')->exists() && $this->payment_hash) { $contact = $this->client->contacts()->whereNotNull('email')->first(); diff --git a/app/Jobs/PostMark/ProcessPostmarkWebhook.php b/app/Jobs/PostMark/ProcessPostmarkWebhook.php index b66c27144965..a1b54aff4b81 100644 --- a/app/Jobs/PostMark/ProcessPostmarkWebhook.php +++ b/app/Jobs/PostMark/ProcessPostmarkWebhook.php @@ -305,14 +305,20 @@ class ProcessPostmarkWebhook implements ShouldQueue if($sl) { $this->updateSystemLog($sl, $data); + + if (config('ninja.notification.slack')) { + $this->invitation->company->notification(new EmailSpamNotification($this->invitation->company->account))->ninja(); + } + return; } (new SystemLogger($data, SystemLog::CATEGORY_MAIL, SystemLog::EVENT_MAIL_SPAM_COMPLAINT, SystemLog::TYPE_WEBHOOK_RESPONSE, $this->invitation->contact->client, $this->invitation->company))->handle(); - if (config('ninja.notification.slack')) { - $this->invitation->company->notification(new EmailSpamNotification($this->invitation->company->account))->ninja(); - } +if (config('ninja.notification.slack')) { + $this->invitation->company->notification(new EmailSpamNotification($this->invitation->company->account))->ninja(); +} + } private function discoverInvitation($message_id) diff --git a/app/Jobs/Util/ReminderJob.php b/app/Jobs/Util/ReminderJob.php index b6f0c7b00580..e4cab43e6aff 100644 --- a/app/Jobs/Util/ReminderJob.php +++ b/app/Jobs/Util/ReminderJob.php @@ -307,8 +307,6 @@ class ReminderJob implements ShouldQueue /**Refresh Invoice values*/ $invoice = $invoice->calc()->getInvoice(); - // nlog('adjusting client balance and invoice balance by #'.$invoice->number.' '.($invoice->balance - $temp_invoice_balance)); - // $invoice->client->service()->updateBalance($invoice->balance - $temp_invoice_balance); $invoice->ledger()->updateInvoiceBalance($invoice->balance - $temp_invoice_balance, "Late Fee Adjustment for invoice {$invoice->number}"); $invoice->client->service()->calculateBalance(); diff --git a/app/PaymentDrivers/BaseDriver.php b/app/PaymentDrivers/BaseDriver.php index 8a324094779f..738cd2de1088 100644 --- a/app/PaymentDrivers/BaseDriver.php +++ b/app/PaymentDrivers/BaseDriver.php @@ -568,7 +568,8 @@ class BaseDriver extends AbstractPaymentDriver $error = array_key_exists('error', $response) ? $response['error'] : 'Undefined Error'; $error_code = array_key_exists('error_code', $response) ? $response['error_code'] : 'Undefined Error Code'; - $this->unWindGatewayFees($this->payment_hash); + if($this->payment_hash) + $this->unWindGatewayFees($this->payment_hash); $this->sendFailureMail($error); @@ -579,10 +580,6 @@ class BaseDriver extends AbstractPaymentDriver $invoices = Invoice::query()->whereIn('id', $this->transformKeys(array_column($this->payment_hash->invoices(), 'invoice_id')))->withTrashed()->get(); - // $invoices->each(function ($invoice) { - // $invoice->service()->deletePdf(); - // }); - $invoices->first()->invitations->each(function ($invitation) use ($nmo) { if (! $invitation->contact->trashed()) { $nmo->to_user = $invitation->contact; diff --git a/app/PaymentDrivers/GoCardless/InstantBankPay.php b/app/PaymentDrivers/GoCardless/InstantBankPay.php index 3d5cf238272a..947e2da33add 100644 --- a/app/PaymentDrivers/GoCardless/InstantBankPay.php +++ b/app/PaymentDrivers/GoCardless/InstantBankPay.php @@ -113,6 +113,10 @@ class InstantBankPay implements MethodInterface return $this->processSuccessfulPayment($payment); } + if ($billing_request->status === 'submitted') { + return $this->processPendingPayment($payment); + } + return $this->processUnsuccessfulPayment($payment); } catch (\Exception $exception) { throw new PaymentFailed( @@ -125,7 +129,40 @@ class InstantBankPay implements MethodInterface /** * Handle pending payments for Instant Bank Transfer. * - * @param ResourcesPayment $payment + * @param \GoCardlessPro\Resources\Payment $payment + * @param array $data + * @return RedirectResponse + */ + public function processPendingPayment(\GoCardlessPro\Resources\Payment $payment, array $data = []) + { + $data = [ + 'payment_method' => $payment->links->mandate, //@phpstan-ignore tag + 'payment_type' => PaymentType::INSTANT_BANK_PAY, + 'amount' => $this->go_cardless->payment_hash->data->amount_with_fee, + 'transaction_reference' => $payment->id, //@phpstan-ignore tag + 'gateway_type_id' => GatewayType::INSTANT_BANK_PAY, + ]; + + $payment = $this->go_cardless->createPayment($data, Payment::STATUS_PENDING); + + SystemLogger::dispatch( + ['response' => $payment, 'data' => $data], + SystemLog::CATEGORY_GATEWAY_RESPONSE, + SystemLog::EVENT_GATEWAY_SUCCESS, + SystemLog::TYPE_GOCARDLESS, + $this->go_cardless->client, + $this->go_cardless->client->company, + ); + + return redirect()->route('client.payments.show', ['payment' => $this->go_cardless->encodePrimaryKey($payment->id)]); + } + + + + /** + * Handle pending payments for Instant Bank Transfer. + * + * @param \GoCardlessPro\Resources\Payment $payment * @param array $data * @return RedirectResponse */ @@ -163,12 +200,12 @@ class InstantBankPay implements MethodInterface { PaymentFailureMailer::dispatch($this->go_cardless->client, $payment->status, $this->go_cardless->client->company, $this->go_cardless->payment_hash->data->amount_with_fee); - PaymentFailureMailer::dispatch( - $this->go_cardless->client, - $payment, - $this->go_cardless->client->company, - $payment->amount - ); + // PaymentFailureMailer::dispatch( + // $this->go_cardless->client, + // $payment, + // $this->go_cardless->client->company, + // $payment->amount + // ); $message = [ 'server_response' => $payment, diff --git a/app/PaymentDrivers/GoCardlessPaymentDriver.php b/app/PaymentDrivers/GoCardlessPaymentDriver.php index 00db105fa717..cca2f9ba8f98 100644 --- a/app/PaymentDrivers/GoCardlessPaymentDriver.php +++ b/app/PaymentDrivers/GoCardlessPaymentDriver.php @@ -165,7 +165,7 @@ class GoCardlessPaymentDriver extends BaseDriver ], ]); - if ($payment->status === 'pending_submission') { + if (in_array($payment->status, ['submitted', 'pending_submission'])) { $this->confirmGatewayFee(); $data = [ diff --git a/app/Services/Scheduler/EmailReport.php b/app/Services/Scheduler/EmailReport.php index 9b8acf793445..2a251f8f1786 100644 --- a/app/Services/Scheduler/EmailReport.php +++ b/app/Services/Scheduler/EmailReport.php @@ -70,7 +70,7 @@ class EmailReport 'report_keys' => [] ]; - if (count($this->scheduler->parameters['clients']) >= 1) { + if (isset($this->scheduler->parameters['clients']) && count($this->scheduler->parameters['clients']) >= 1) { $data['clients'] = $this->transformKeys($this->scheduler->parameters['clients']); } @@ -84,20 +84,20 @@ class EmailReport 'client_balance' => $export = (new ClientBalanceReport($this->scheduler->company, $data)), 'client_sales' => $export = (new ClientSalesReport($this->scheduler->company, $data)), 'user_sales' => $export = (new UserSalesReport($this->scheduler->company, $data)), - 'clients' => $export = (new ClientExport($this->scheduler->company, $data)), - 'client_contacts' => $export = (new ContactExport($this->scheduler->company, $data)), - 'credits' => $export = (new CreditExport($this->scheduler->company, $data)), - 'documents' => $export = (new DocumentExport($this->scheduler->company, $data)), - 'expenses' => $export = (new ExpenseExport($this->scheduler->company, $data)), - 'invoices' => $export = (new InvoiceExport($this->scheduler->company, $data)), - 'invoice_items' => $export = (new InvoiceItemExport($this->scheduler->company, $data)), - 'quotes' => $export = (new QuoteExport($this->scheduler->company, $data)), - 'quote_items' => $export = (new QuoteItemExport($this->scheduler->company, $data)), - 'recurring_invoices' => $export = (new RecurringInvoiceExport($this->scheduler->company, $data)), - 'payments' => $export = (new PaymentExport($this->scheduler->company, $data)), - 'products' => $export = (new ProductExport($this->scheduler->company, $data)), - 'tasks' => $export = (new TaskExport($this->scheduler->company, $data)), 'profitloss' => $export = (new ProfitLoss($this->scheduler->company, $data)), + 'client' => $export = (new ClientExport($this->scheduler->company, $data)), + 'client_contact' => $export = (new ContactExport($this->scheduler->company, $data)), + 'credit' => $export = (new CreditExport($this->scheduler->company, $data)), + 'document' => $export = (new DocumentExport($this->scheduler->company, $data)), + 'expense' => $export = (new ExpenseExport($this->scheduler->company, $data)), + 'invoice' => $export = (new InvoiceExport($this->scheduler->company, $data)), + 'invoice_item' => $export = (new InvoiceItemExport($this->scheduler->company, $data)), + 'quote' => $export = (new QuoteExport($this->scheduler->company, $data)), + 'quote_item' => $export = (new QuoteItemExport($this->scheduler->company, $data)), + 'recurring_invoice' => $export = (new RecurringInvoiceExport($this->scheduler->company, $data)), + 'payment' => $export = (new PaymentExport($this->scheduler->company, $data)), + 'product' => $export = (new ProductExport($this->scheduler->company, $data)), + 'task' => $export = (new TaskExport($this->scheduler->company, $data)), default => $export = false, }; diff --git a/app/Transformers/ActivityTransformer.php b/app/Transformers/ActivityTransformer.php index 6d8f465f1e95..84130c74280e 100644 --- a/app/Transformers/ActivityTransformer.php +++ b/app/Transformers/ActivityTransformer.php @@ -98,6 +98,11 @@ class ActivityTransformer extends EntityTransformer public function includeClient(Activity $activity) { + + if (!$activity->client) { + return null; + } + $transformer = new ClientTransformer($this->serializer); return $this->includeItem($activity->client, $transformer, Client::class); @@ -105,6 +110,10 @@ class ActivityTransformer extends EntityTransformer public function includeVendor(Activity $activity) { + if (!$activity->vendor) { + return null; + } + $transformer = new VendorTransformer($this->serializer); return $this->includeItem($activity->vendor, $transformer, Vendor::class); @@ -112,6 +121,11 @@ class ActivityTransformer extends EntityTransformer public function includeContact(Activity $activity) { + + if (!$activity->contact) { + return null; + } + $transformer = new ClientContactTransformer($this->serializer); return $this->includeItem($activity->contact, $transformer, ClientContact::class); @@ -119,6 +133,11 @@ class ActivityTransformer extends EntityTransformer public function includeVendorContact(Activity $activity) { + + if (!$activity->vendor_contact) { + return null; + } + $transformer = new VendorContactTransformer($this->serializer); return $this->includeItem($activity->vendor_contact, $transformer, VendorContact::class); @@ -126,6 +145,11 @@ class ActivityTransformer extends EntityTransformer public function includeRecurringInvoice(Activity $activity) { + + if (!$activity->recurring_invoice) { + return null; + } + $transformer = new RecurringInvoiceTransformer($this->serializer); return $this->includeItem($activity->recurring_invoice, $transformer, RecurringInvoice::class); @@ -133,14 +157,24 @@ class ActivityTransformer extends EntityTransformer public function includePurchaseOrder(Activity $activity) { + + if (!$activity->purchase_order) { + return null; + } + $transformer = new PurchaseOrderTransformer($this->serializer); - return $this->includeItem($activity->purchase_order(), $transformer, PurchaseOrder::class); + return $this->includeItem($activity->purchase_order, $transformer, PurchaseOrder::class); } public function includeQuote(Activity $activity) { + + if (!$activity->quote) { + return null; + } + $transformer = new RecurringInvoiceTransformer($this->serializer); return $this->includeItem($activity->quote, $transformer, Quote::class); @@ -148,6 +182,10 @@ class ActivityTransformer extends EntityTransformer public function includeInvoice(Activity $activity) { + if (!$activity->invoice) { + return null; + } + $transformer = new InvoiceTransformer($this->serializer); return $this->includeItem($activity->invoice, $transformer, Invoice::class); @@ -155,6 +193,10 @@ class ActivityTransformer extends EntityTransformer public function includeCredit(Activity $activity) { + if (!$activity->credit) { + return null; + } + $transformer = new CreditTransformer($this->serializer); return $this->includeItem($activity->credit, $transformer, Credit::class); @@ -162,6 +204,10 @@ class ActivityTransformer extends EntityTransformer public function includePayment(Activity $activity) { + if (!$activity->payment) { + return null; + } + $transformer = new PaymentTransformer($this->serializer); return $this->includeItem($activity->payment, $transformer, Payment::class); @@ -169,6 +215,10 @@ class ActivityTransformer extends EntityTransformer public function includeUser(Activity $activity) { + if (!$activity->user) { + return null; + } + $transformer = new UserTransformer($this->serializer); return $this->includeItem($activity->user, $transformer, User::class); @@ -176,6 +226,10 @@ class ActivityTransformer extends EntityTransformer public function includeExpense(Activity $activity) { + if (!$activity->expense) { + return null; + } + $transformer = new ExpenseTransformer($this->serializer); return $this->includeItem($activity->expense, $transformer, Expense::class); @@ -183,6 +237,10 @@ class ActivityTransformer extends EntityTransformer public function includeTask(Activity $activity) { + if (!$activity->task) { + return null; + } + $transformer = new TaskTransformer($this->serializer); return $this->includeItem($activity->task, $transformer, Task::class); diff --git a/app/Transformers/ProductTransformer.php b/app/Transformers/ProductTransformer.php index cc28edc2ed1d..93b1f98ce050 100644 --- a/app/Transformers/ProductTransformer.php +++ b/app/Transformers/ProductTransformer.php @@ -74,7 +74,7 @@ class ProductTransformer extends EntityTransformer 'notes' => $product->notes ?: '', 'cost' => (float) $product->cost ?: 0, 'price' => (float) $product->price ?: 0, - 'quantity' => (float) $product->quantity ?: 1.0, + 'quantity' => is_numeric($product->quantity) ? (float) $product->quantity : (float) 1.0, 'tax_name1' => $product->tax_name1 ?: '', 'tax_rate1' => (float) $product->tax_rate1 ?: 0, 'tax_name2' => $product->tax_name2 ?: '', diff --git a/composer.lock b/composer.lock index 3d5ee32d34aa..31846193c9df 100644 --- a/composer.lock +++ b/composer.lock @@ -33,9 +33,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], + "license": ["Apache-2.0"], "authors": [ { "name": "Afosto Team", @@ -44,14 +42,7 @@ ], "description": "Yet Another ACME client: a decoupled LetsEncrypt client", "homepage": "https://afosto.com", - "keywords": [ - "ACME", - "acmev2", - "afosto", - "encrypt", - "lets", - "v2" - ], + "keywords": ["ACME", "acmev2", "afosto", "encrypt", "lets", "v2"], "support": { "issues": "https://github.com/afosto/yaac/issues", "source": "https://github.com/afosto/yaac/tree/v1.5.2" @@ -94,17 +85,10 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "description": "Core logic and the utilities for the Apimatic's PHP SDK", "homepage": "https://github.com/apimatic/core-lib-php", - "keywords": [ - "apimatic", - "core", - "corelib", - "php" - ], + "keywords": ["apimatic", "core", "corelib", "php"], "support": { "issues": "https://github.com/apimatic/core-lib-php/issues", "source": "https://github.com/apimatic/core-lib-php/tree/0.3.3" @@ -135,9 +119,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "description": "Definition of the behavior of apimatic/core, apimatic/unirest-php and Apimatic's PHP SDK", "homepage": "https://github.com/apimatic/core-interfaces-php", "keywords": [ @@ -183,9 +165,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "OSL-3.0" - ], + "license": ["OSL-3.0"], "authors": [ { "name": "Christian Weiske", @@ -240,9 +220,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Mashape", @@ -259,13 +237,7 @@ ], "description": "Unirest PHP", "homepage": "https://github.com/apimatic/unirest-php", - "keywords": [ - "client", - "curl", - "http", - "https", - "rest" - ], + "keywords": ["client", "curl", "http", "https", "rest"], "support": { "email": "opensource@apimatic.io", "issues": "https://github.com/apimatic/unirest-php/issues", @@ -303,9 +275,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Marc Aschmann", @@ -314,10 +284,7 @@ ], "description": "A PHP wrapper for Ansible.", "homepage": "https://github.com/maschmann/php-ansible", - "keywords": [ - "ansible", - "php" - ], + "keywords": ["ansible", "php"], "support": { "issues": "https://github.com/maschmann/php-ansible/issues", "source": "https://github.com/maschmann/php-ansible/tree/v4.1.0" @@ -345,14 +312,10 @@ }, "type": "library", "autoload": { - "classmap": [ - "lib" - ] + "classmap": ["lib"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "proprietary" - ], + "license": ["proprietary"], "description": "Official PHP SDK for Authorize.Net", "homepage": "http://developer.authorize.net", "keywords": [ @@ -402,9 +365,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Claudin J. Daniel", @@ -455,14 +416,10 @@ }, "type": "library", "autoload": { - "classmap": [ - "src/" - ] + "classmap": ["src/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], + "license": ["Apache-2.0"], "authors": [ { "name": "AWS SDK Common Runtime Team", @@ -471,12 +428,7 @@ ], "description": "AWS Common Runtime for PHP", "homepage": "https://github.com/awslabs/aws-crt-php", - "keywords": [ - "amazon", - "aws", - "crt", - "sdk" - ], + "keywords": ["amazon", "aws", "crt", "sdk"], "support": { "issues": "https://github.com/awslabs/aws-crt-php/issues", "source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.4" @@ -542,17 +494,13 @@ } }, "autoload": { - "files": [ - "src/functions.php" - ], + "files": ["src/functions.php"], "psr-4": { "Aws\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], + "license": ["Apache-2.0"], "authors": [ { "name": "Amazon Web Services", @@ -613,9 +561,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], + "license": ["BSD-2-Clause"], "authors": [ { "name": "Ben Scholzen 'DASPRiD'", @@ -658,9 +604,7 @@ "friendsofphp/php-cs-fixer": "^3.6", "phpunit/phpunit": "^9.5" }, - "bin": [ - "snappdf" - ], + "bin": ["snappdf"], "type": "library", "autoload": { "psr-4": { @@ -668,9 +612,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Benjamin Beganović", @@ -717,9 +659,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Braintree", @@ -762,9 +702,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "description": "Arbitrary-precision arithmetic library", "keywords": [ "Arbitrary-precision", @@ -820,9 +758,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "KyleKatarn", @@ -830,13 +766,7 @@ } ], "description": "Types to use Carbon in Doctrine", - "keywords": [ - "carbon", - "date", - "datetime", - "doctrine", - "time" - ], + "keywords": ["carbon", "date", "datetime", "doctrine", "time"], "support": { "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues", "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/2.0.0" @@ -893,9 +823,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Checkout.com", @@ -949,15 +877,11 @@ "type": "library", "autoload": { "psr-4": { - "CleverIt\\UBL\\Invoice\\": [ - "src/" - ] + "CleverIt\\UBL\\Invoice\\": ["src/"] } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Bram van Eijk | CleverIT", @@ -1006,17 +930,13 @@ }, "type": "library", "autoload": { - "files": [ - "src/functions_include.php" - ], + "files": ["src/functions_include.php"], "psr-4": { "Clue\\StreamFilter\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Christian Lück", @@ -1087,9 +1007,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Jordi Boggiano", @@ -1098,13 +1016,7 @@ } ], "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", - "keywords": [ - "cabundle", - "cacert", - "certificate", - "ssl", - "tls" - ], + "keywords": ["cabundle", "cacert", "certificate", "ssl", "tls"], "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/ca-bundle/issues", @@ -1154,9 +1066,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], + "license": ["BSD-2-Clause"], "authors": [ { "name": "Ben Scholzen 'DASPRiD'", @@ -1166,10 +1076,7 @@ } ], "description": "PHP 7.1 enum implementation", - "keywords": [ - "enum", - "map" - ], + "keywords": ["enum", "map"], "support": { "issues": "https://github.com/DASPRiD/Enum/issues", "source": "https://github.com/DASPRiD/Enum/tree/1.0.5" @@ -1212,9 +1119,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Dragonfly Development Inc.", @@ -1239,12 +1144,7 @@ ], "description": "Given a deep data structure, access data by dot notation.", "homepage": "https://github.com/dflydev/dflydev-dot-access-data", - "keywords": [ - "access", - "data", - "dot", - "notation" - ], + "keywords": ["access", "data", "dot", "notation"], "support": { "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2" @@ -1289,9 +1189,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Guilherme Blanco", @@ -1316,11 +1214,7 @@ ], "description": "Docblock Annotations Parser", "homepage": "https://www.doctrine-project.org/projects/annotations.html", - "keywords": [ - "annotations", - "docblock", - "parser" - ], + "keywords": ["annotations", "docblock", "parser"], "support": { "issues": "https://github.com/doctrine/annotations/issues", "source": "https://github.com/doctrine/annotations/tree/2.0.1" @@ -1362,9 +1256,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Guilherme Blanco", @@ -1460,9 +1352,7 @@ "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." }, - "bin": [ - "bin/doctrine-dbal" - ], + "bin": ["bin/doctrine-dbal"], "type": "library", "autoload": { "psr-4": { @@ -1470,9 +1360,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Guilherme Blanco", @@ -1569,9 +1457,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", "homepage": "https://www.doctrine-project.org/", "support": { @@ -1613,9 +1499,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Guilherme Blanco", @@ -1703,9 +1587,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Guilherme Blanco", @@ -1796,9 +1678,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Marco Pivetta", @@ -1808,10 +1688,7 @@ ], "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", "homepage": "https://www.doctrine-project.org/projects/instantiator.html", - "keywords": [ - "constructor", - "instantiate" - ], + "keywords": ["constructor", "instantiate"], "support": { "issues": "https://github.com/doctrine/instantiator/issues", "source": "https://github.com/doctrine/instantiator/tree/2.0.0" @@ -1863,9 +1740,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Guilherme Blanco", @@ -1882,13 +1757,7 @@ ], "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", - "php" - ], + "keywords": ["annotations", "docblock", "lexer", "parser", "php"], "support": { "issues": "https://github.com/doctrine/lexer/issues", "source": "https://github.com/doctrine/lexer/tree/3.0.0" @@ -1943,9 +1812,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Chris Tankersley", @@ -1954,10 +1821,7 @@ } ], "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", - "keywords": [ - "cron", - "schedule" - ], + "keywords": ["cron", "schedule"], "support": { "issues": "https://github.com/dragonmantank/cron-expression/issues", "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.3" @@ -2008,9 +1872,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Eduardo Gulias Davis" @@ -2082,9 +1944,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Jeroen van den Enden", @@ -2093,13 +1953,7 @@ ], "description": "Endroid QR Code", "homepage": "https://github.com/endroid/qr-code", - "keywords": [ - "code", - "endroid", - "php", - "qr", - "qrcode" - ], + "keywords": ["code", "endroid", "php", "qr", "qrcode"], "support": { "issues": "https://github.com/endroid/qr-code/issues", "source": "https://github.com/endroid/qr-code/tree/5.0.2" @@ -2145,9 +1999,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "eWAY", @@ -2156,12 +2008,7 @@ ], "description": "eWAY Rapid PHP library", "homepage": "https://www.eway.com.au", - "keywords": [ - "eway", - "payment processing", - "payments", - "rapid" - ], + "keywords": ["eway", "payment processing", "payments", "rapid"], "support": { "issues": "https://github.com/eWAYPayment/eway-rapid-php/issues", "source": "https://github.com/eWAYPayment/eway-rapid-php/tree/v1.4.1" @@ -2197,20 +2044,14 @@ }, "type": "library", "autoload": { - "files": [ - "library/HTMLPurifier.composer.php" - ], + "files": ["library/HTMLPurifier.composer.php"], "psr-0": { "HTMLPurifier": "library/" }, - "exclude-from-classmap": [ - "/library/HTMLPurifier/Language/" - ] + "exclude-from-classmap": ["/library/HTMLPurifier/Language/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "LGPL-2.1-or-later" - ], + "license": ["LGPL-2.1-or-later"], "authors": [ { "name": "Edward Z. Yang", @@ -2220,9 +2061,7 @@ ], "description": "Standards compliant HTML filter written in PHP", "homepage": "http://htmlpurifier.org/", - "keywords": [ - "html" - ], + "keywords": ["html"], "support": { "issues": "https://github.com/ezyang/htmlpurifier/issues", "source": "https://github.com/ezyang/htmlpurifier/tree/v4.17.0" @@ -2277,20 +2116,14 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "François Zaninotto" } ], "description": "Faker is a PHP library that generates fake data for you.", - "keywords": [ - "data", - "faker", - "fixtures" - ], + "keywords": ["data", "faker", "fixtures"], "support": { "issues": "https://github.com/FakerPHP/Faker/issues", "source": "https://github.com/FakerPHP/Faker/tree/v1.23.0" @@ -2333,9 +2166,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Neuman Vong", @@ -2350,10 +2181,7 @@ ], "description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.", "homepage": "https://github.com/firebase/php-jwt", - "keywords": [ - "jwt", - "php" - ], + "keywords": ["jwt", "php"], "support": { "issues": "https://github.com/firebase/php-jwt/issues", "source": "https://github.com/firebase/php-jwt/tree/v6.10.0" @@ -2395,9 +2223,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Fruitcake", @@ -2410,11 +2236,7 @@ ], "description": "Cross-origin resource sharing library for the Symfony HttpFoundation", "homepage": "https://github.com/fruitcake/php-cors", - "keywords": [ - "cors", - "laravel", - "symfony" - ], + "keywords": ["cors", "laravel", "symfony"], "support": { "issues": "https://github.com/fruitcake/php-cors/issues", "source": "https://github.com/fruitcake/php-cors/tree/v1.3.0" @@ -2464,9 +2286,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "GoCardless and contributors", @@ -2475,11 +2295,7 @@ ], "description": "GoCardless Pro PHP Client Library", "homepage": "https://gocardless.com/", - "keywords": [ - "api", - "direct debit", - "gocardless" - ], + "keywords": ["api", "direct debit", "gocardless"], "support": { "issues": "https://github.com/gocardless/gocardless-pro-php/issues", "source": "https://github.com/gocardless/gocardless-pro-php/tree/v4.28.0" @@ -2523,23 +2339,14 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Asmir Mustafic" } ], "description": "Convert XSD (XML Schema) definitions into PHP classes", - "keywords": [ - "converter", - "jms", - "php", - "serializer", - "xml", - "xsd" - ], + "keywords": ["converter", "jms", "php", "serializer", "xml", "xsd"], "support": { "issues": "https://github.com/goetas-webservices/xsd2php-runtime/issues", "source": "https://github.com/goetas-webservices/xsd2php-runtime/tree/v0.2.16" @@ -2590,25 +2397,17 @@ } }, "autoload": { - "files": [ - "src/aliases.php" - ], + "files": ["src/aliases.php"], "psr-4": { "Google\\": "src/" }, - "classmap": [ - "src/aliases.php" - ] + "classmap": ["src/aliases.php"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], + "license": ["Apache-2.0"], "description": "Client library for Google APIs", "homepage": "http://developers.google.com/api-client-library/php", - "keywords": [ - "google" - ], + "keywords": ["google"], "support": { "issues": "https://github.com/googleapis/google-api-php-client/issues", "source": "https://github.com/googleapis/google-api-php-client/tree/v2.15.1" @@ -2637,22 +2436,16 @@ }, "type": "library", "autoload": { - "files": [ - "autoload.php" - ], + "files": ["autoload.php"], "psr-4": { "Google\\Service\\": "src" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], + "license": ["Apache-2.0"], "description": "Client library for Google APIs", "homepage": "http://developers.google.com/api-client-library/php", - "keywords": [ - "google" - ], + "keywords": ["google"], "support": { "issues": "https://github.com/googleapis/google-api-php-client-services/issues", "source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.327.0" @@ -2700,16 +2493,10 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], + "license": ["Apache-2.0"], "description": "Google Auth Library for PHP", "homepage": "http://github.com/google/google-auth-library-php", - "keywords": [ - "Authentication", - "google", - "oauth2" - ], + "keywords": ["Authentication", "google", "oauth2"], "support": { "docs": "https://googleapis.github.io/google-auth-library-php/main/", "issues": "https://github.com/googleapis/google-auth-library-php/issues", @@ -2745,9 +2532,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Graham Campbell", @@ -2812,9 +2597,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Benjamin Zikarsky", @@ -2878,17 +2661,13 @@ } }, "autoload": { - "files": [ - "src/functions_include.php" - ], + "files": ["src/functions_include.php"], "psr-4": { "GuzzleHttp\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Graham Campbell", @@ -2992,9 +2771,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Graham Campbell", @@ -3018,9 +2795,7 @@ } ], "description": "Guzzle promises library", - "keywords": [ - "promise" - ], + "keywords": ["promise"], "support": { "issues": "https://github.com/guzzle/promises/issues", "source": "https://github.com/guzzle/promises/tree/2.0.2" @@ -3086,9 +2861,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Graham Campbell", @@ -3193,9 +2966,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Graham Campbell", @@ -3219,10 +2990,7 @@ } ], "description": "A polyfill class for uri_template of PHP", - "keywords": [ - "guzzlehttp", - "uri-template" - ], + "keywords": ["guzzlehttp", "uri-template"], "support": { "issues": "https://github.com/guzzle/uri-template/issues", "source": "https://github.com/guzzle/uri-template/tree/v1.0.3" @@ -3271,17 +3039,13 @@ }, "type": "library", "autoload": { - "files": [ - "src/functions.php" - ], + "files": ["src/functions.php"], "psr-4": { "JsonMachine\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], + "license": ["Apache-2.0"], "authors": [ { "name": "Filip Halaxa", @@ -3333,9 +3097,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Ivan Akimov", @@ -3394,9 +3156,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "hedii", @@ -3455,9 +3215,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Daniel Erling", @@ -3467,10 +3225,7 @@ ], "description": "Get mimetypes by fileextensions and visa versa", "homepage": "https://github.com/horstoeko/mimedb", - "keywords": [ - "file extension", - "mimetype" - ], + "keywords": ["file extension", "mimetype"], "support": { "issues": "https://github.com/horstoeko/mimedb/issues", "source": "https://github.com/horstoeko/mimedb/tree/v1.0.5" @@ -3510,9 +3265,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Daniel Erling", @@ -3522,9 +3275,7 @@ ], "description": "A library for string manipulation utilities", "homepage": "https://github.com/horstoeko/stringmanagement", - "keywords": [ - "stringmanagement" - ], + "keywords": ["stringmanagement"], "support": { "issues": "https://github.com/horstoeko/stringmanagement/issues", "source": "https://github.com/horstoeko/stringmanagement/tree/v1.0.11" @@ -3579,9 +3330,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Daniel Erling", @@ -3640,9 +3389,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "PHP-FIG", @@ -3650,12 +3397,7 @@ } ], "description": "An HTTP Factory using Guzzle PSR7", - "keywords": [ - "factory", - "http", - "psr-17", - "psr-7" - ], + "keywords": ["factory", "http", "psr-17", "psr-7"], "support": { "issues": "https://github.com/http-interop/http-factory-guzzle/issues", "source": "https://github.com/http-interop/http-factory-guzzle/tree/1.2.0" @@ -3699,9 +3441,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "imdhemy", @@ -3750,9 +3490,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "imdhemy", @@ -3813,9 +3551,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "imdhemy", @@ -3877,9 +3613,7 @@ "dev-master": "2.4-dev" }, "laravel": { - "providers": [ - "Intervention\\Image\\ImageServiceProvider" - ], + "providers": ["Intervention\\Image\\ImageServiceProvider"], "aliases": { "Image": "Intervention\\Image\\Facades\\Image" } @@ -3891,9 +3625,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Oliver Vogel", @@ -3967,9 +3699,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Benjamin Beganović", @@ -3979,10 +3709,7 @@ ], "description": "Simplified database records management", "homepage": "https://github.com/invoiceninja/inspector", - "keywords": [ - "inspector", - "invoiceninja" - ], + "keywords": ["inspector", "invoiceninja"], "support": { "issues": "https://github.com/invoiceninja/inspector/issues", "source": "https://github.com/invoiceninja/inspector/tree/v2.0" @@ -4026,9 +3753,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Alessandro Lai", @@ -4036,12 +3761,7 @@ } ], "description": "A library to get pretty versions strings of installed dependencies", - "keywords": [ - "composer", - "package", - "release", - "versions" - ], + "keywords": ["composer", "package", "release", "versions"], "support": { "issues": "https://github.com/Jean85/pretty-package-versions/issues", "source": "https://github.com/Jean85/pretty-package-versions/tree/2.0.5" @@ -4086,9 +3806,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Johannes M. Schmitt", @@ -4100,12 +3818,7 @@ } ], "description": "Class/method/property metadata management in PHP", - "keywords": [ - "annotations", - "metadata", - "xml", - "yaml" - ], + "keywords": ["annotations", "metadata", "xml", "yaml"], "support": { "issues": "https://github.com/schmittjoh/metadata/issues", "source": "https://github.com/schmittjoh/metadata/tree/2.8.0" @@ -4174,9 +3887,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Johannes M. Schmitt", @@ -4241,9 +3952,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "josemmo", @@ -4253,12 +3962,7 @@ ], "description": "Librería para la generación, firma y envío de facturas electrónicas", "homepage": "https://github.com/josemmo/Facturae-PHP", - "keywords": [ - "face", - "faceb2b", - "facturae", - "xades" - ], + "keywords": ["face", "faceb2b", "facturae", "xades"], "support": { "issues": "https://github.com/josemmo/Facturae-PHP/issues", "source": "https://github.com/josemmo/Facturae-PHP/tree/v1.7.9" @@ -4285,15 +3989,11 @@ "type": "library", "autoload": { "psr-4": { - "kmukku\\phpIso11649\\": [ - "src/" - ] + "kmukku\\phpIso11649\\": ["src/"] } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Keijo Mukku", @@ -4343,9 +4043,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Jeffrey Way", @@ -4353,11 +4051,7 @@ } ], "description": "Simple view presenters", - "keywords": [ - "laravel", - "presenter", - "view" - ], + "keywords": ["laravel", "presenter", "view"], "support": { "issues": "https://github.com/laracasts/Presenter/issues", "source": "https://github.com/laracasts/Presenter/tree/0.2.6" @@ -4545,9 +4239,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Taylor Otwell", @@ -4556,10 +4248,7 @@ ], "description": "The Laravel Framework.", "homepage": "https://laravel.com", - "keywords": [ - "framework", - "laravel" - ], + "keywords": ["framework", "laravel"], "support": { "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" @@ -4606,17 +4295,13 @@ } }, "autoload": { - "files": [ - "src/helpers.php" - ], + "files": ["src/helpers.php"], "psr-4": { "Laravel\\Prompts\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "support": { "issues": "https://github.com/laravel/prompts/issues", "source": "https://github.com/laravel/prompts/tree/v0.1.13" @@ -4658,9 +4343,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Taylor Otwell", @@ -4672,11 +4355,7 @@ } ], "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.", - "keywords": [ - "closure", - "laravel", - "serializable" - ], + "keywords": ["closure", "laravel", "serializable"], "support": { "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" @@ -4723,9 +4402,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Taylor Otwell", @@ -4733,11 +4410,7 @@ } ], "description": "Slack Notification Channel for laravel.", - "keywords": [ - "laravel", - "notifications", - "slack" - ], + "keywords": ["laravel", "notifications", "slack"], "support": { "issues": "https://github.com/laravel/slack-notification-channel/issues", "source": "https://github.com/laravel/slack-notification-channel/tree/v2.5.0" @@ -4793,9 +4466,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Taylor Otwell", @@ -4804,10 +4475,7 @@ ], "description": "Laravel wrapper around OAuth 1 & OAuth 2 libraries.", "homepage": "https://laravel.com", - "keywords": [ - "laravel", - "oauth" - ], + "keywords": ["laravel", "oauth"], "support": { "issues": "https://github.com/laravel/socialite/issues", "source": "https://github.com/laravel/socialite" @@ -4850,9 +4518,7 @@ "dev-master": "2.x-dev" }, "laravel": { - "providers": [ - "Laravel\\Tinker\\TinkerServiceProvider" - ] + "providers": ["Laravel\\Tinker\\TinkerServiceProvider"] } }, "autoload": { @@ -4861,9 +4527,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Taylor Otwell", @@ -4871,12 +4535,7 @@ } ], "description": "Powerful REPL for the Laravel framework.", - "keywords": [ - "REPL", - "Tinker", - "laravel", - "psysh" - ], + "keywords": ["REPL", "Tinker", "laravel", "psysh"], "support": { "issues": "https://github.com/laravel/tinker/issues", "source": "https://github.com/laravel/tinker/tree/v2.8.2" @@ -4914,9 +4573,7 @@ "dev-master": "4.x-dev" }, "laravel": { - "providers": [ - "Laravel\\Ui\\UiServiceProvider" - ] + "providers": ["Laravel\\Ui\\UiServiceProvider"] } }, "autoload": { @@ -4926,9 +4583,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Taylor Otwell", @@ -4936,10 +4591,7 @@ } ], "description": "Laravel UI utilities and presets.", - "keywords": [ - "laravel", - "ui" - ], + "keywords": ["laravel", "ui"], "support": { "source": "https://github.com/laravel/ui/tree/v4.2.3" }, @@ -4983,9 +4635,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Luís Cobucci", @@ -5052,9 +4702,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Luís Cobucci", @@ -5063,10 +4711,7 @@ } ], "description": "A simple library to work with JSON Web Token and JSON Web Signature", - "keywords": [ - "JWS", - "jwt" - ], + "keywords": ["JWS", "jwt"], "support": { "issues": "https://github.com/lcobucci/jwt/issues", "source": "https://github.com/lcobucci/jwt/tree/4.3.0" @@ -5139,9 +4784,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Colin O'Dell", @@ -5227,9 +4870,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Colin O'Dell", @@ -5315,17 +4956,13 @@ } }, "autoload": { - "files": [ - "src/functions_include.php" - ], + "files": ["src/functions_include.php"], "psr-4": { "League\\Csv\\": "src" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Ignace Nyamagana Butera", @@ -5411,9 +5048,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Frank de Jonge", @@ -5481,9 +5116,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Frank de Jonge", @@ -5543,9 +5176,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Frank de Jonge", @@ -5553,13 +5184,7 @@ } ], "description": "Local filesystem adapter for Flysystem.", - "keywords": [ - "Flysystem", - "file", - "files", - "filesystem", - "local" - ], + "keywords": ["Flysystem", "file", "files", "filesystem", "local"], "support": { "issues": "https://github.com/thephpleague/flysystem-local/issues", "source": "https://github.com/thephpleague/flysystem-local/tree/3.23.0" @@ -5621,9 +5246,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Phil Sturgeon", @@ -5634,12 +5257,7 @@ ], "description": "Handle the output of complex data structures ready for API output.", "homepage": "http://fractal.thephpleague.com/", - "keywords": [ - "api", - "json", - "league", - "rest" - ], + "keywords": ["api", "json", "league", "rest"], "support": { "issues": "https://github.com/thephpleague/fractal/issues", "source": "https://github.com/thephpleague/fractal/tree/0.20.1" @@ -5676,9 +5294,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Frank de Jonge", @@ -5746,9 +5362,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Ben Corlett", @@ -5808,9 +5422,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Adrian Macneil", @@ -5823,12 +5435,7 @@ ], "description": "Omnipay payment processing library", "homepage": "https://omnipay.thephpleague.com/", - "keywords": [ - "checkout", - "creditcard", - "omnipay", - "payment" - ], + "keywords": ["checkout", "creditcard", "omnipay", "payment"], "support": { "issues": "https://github.com/thephpleague/omnipay/issues", "source": "https://github.com/thephpleague/omnipay/tree/v3.2.1" @@ -5875,26 +5482,20 @@ "type": "library", "extra": { "laravel": { - "providers": [ - "Livewire\\LivewireServiceProvider" - ], + "providers": ["Livewire\\LivewireServiceProvider"], "aliases": { "Livewire": "Livewire\\Livewire" } } }, "autoload": { - "files": [ - "src/helpers.php" - ], + "files": ["src/helpers.php"], "psr-4": { "Livewire\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Caleb Porzio", @@ -5953,9 +5554,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Paul Duncan", @@ -5975,10 +5574,7 @@ } ], "description": "ZipStream is a library for dynamically streaming dynamic zip files from PHP without writing to the disk at all on the server.", - "keywords": [ - "stream", - "zip" - ], + "keywords": ["stream", "zip"], "support": { "issues": "https://github.com/maennchen/ZipStream-PHP/issues", "source": "https://github.com/maennchen/ZipStream-PHP/tree/3.1.0" @@ -6025,9 +5621,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Mark Baker", @@ -6036,10 +5630,7 @@ ], "description": "PHP Class for working with complex numbers", "homepage": "https://github.com/MarkBaker/PHPComplex", - "keywords": [ - "complex", - "mathematics" - ], + "keywords": ["complex", "mathematics"], "support": { "issues": "https://github.com/MarkBaker/PHPComplex/issues", "source": "https://github.com/MarkBaker/PHPComplex/tree/3.0.2" @@ -6080,9 +5671,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Mark Baker", @@ -6091,11 +5680,7 @@ ], "description": "PHP Class for working with matrices", "homepage": "https://github.com/MarkBaker/PHPMatrix", - "keywords": [ - "mathematics", - "matrix", - "vector" - ], + "keywords": ["mathematics", "matrix", "vector"], "support": { "issues": "https://github.com/MarkBaker/PHPMatrix/issues", "source": "https://github.com/MarkBaker/PHPMatrix/tree/3.0.1" @@ -6136,9 +5721,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Microsoft Graph Client Tooling", @@ -6192,9 +5775,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], + "license": ["BSD-2-Clause"], "authors": [ { "name": "Mollie B.V.", @@ -6303,9 +5884,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Mathias Verraes", @@ -6323,11 +5902,7 @@ ], "description": "PHP implementation of Fowler's Money pattern", "homepage": "http://moneyphp.org", - "keywords": [ - "Value Object", - "money", - "vo" - ], + "keywords": ["Value Object", "money", "vo"], "support": { "issues": "https://github.com/moneyphp/money/issues", "source": "https://github.com/moneyphp/money/tree/v4.3.0" @@ -6402,9 +5977,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Jordi Boggiano", @@ -6414,11 +5987,7 @@ ], "description": "Sends your logs to files, sockets, inboxes, databases and various web services", "homepage": "https://github.com/Seldaek/monolog", - "keywords": [ - "log", - "logging", - "psr-3" - ], + "keywords": ["log", "logging", "psr-3"], "support": { "issues": "https://github.com/Seldaek/monolog/issues", "source": "https://github.com/Seldaek/monolog/tree/3.5.0" @@ -6457,9 +6026,7 @@ "composer/xdebug-handler": "^3.0.3", "phpunit/phpunit": "^8.5.33" }, - "bin": [ - "bin/jp.php" - ], + "bin": ["bin/jp.php"], "type": "library", "extra": { "branch-alias": { @@ -6467,17 +6034,13 @@ } }, "autoload": { - "files": [ - "src/JmesPath.php" - ], + "files": ["src/JmesPath.php"], "psr-4": { "JmesPath\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Graham Campbell", @@ -6491,10 +6054,7 @@ } ], "description": "Declaratively specify how to extract elements from a JSON document", - "keywords": [ - "json", - "jsonpath" - ], + "keywords": ["json", "jsonpath"], "support": { "issues": "https://github.com/jmespath/jmespath.php/issues", "source": "https://github.com/jmespath/jmespath.php/tree/2.7.0" @@ -6548,9 +6108,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Ne-Lexa", @@ -6613,9 +6171,7 @@ "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20", "squizlabs/php_codesniffer": "^3.4" }, - "bin": [ - "bin/carbon" - ], + "bin": ["bin/carbon"], "type": "library", "extra": { "branch-alias": { @@ -6623,14 +6179,10 @@ "dev-master": "2.x-dev" }, "laravel": { - "providers": [ - "Carbon\\Laravel\\ServiceProvider" - ] + "providers": ["Carbon\\Laravel\\ServiceProvider"] }, "phpstan": { - "includes": [ - "extension.neon" - ] + "includes": ["extension.neon"] } }, "autoload": { @@ -6639,9 +6191,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Brian Nesbitt", @@ -6655,11 +6205,7 @@ ], "description": "An API extension for DateTime that supports 281 different languages.", "homepage": "https://carbon.nesbot.com", - "keywords": [ - "date", - "datetime", - "time" - ], + "keywords": ["date", "datetime", "time"], "support": { "docs": "https://carbon.nesbot.com/docs", "issues": "https://github.com/briannesbitt/Carbon/issues", @@ -6711,16 +6257,10 @@ } }, "autoload": { - "classmap": [ - "src/" - ] + "classmap": ["src/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" - ], + "license": ["BSD-3-Clause", "GPL-2.0-only", "GPL-3.0-only"], "authors": [ { "name": "David Grudl", @@ -6733,10 +6273,7 @@ ], "description": "📐 Nette Schema: validating data structures against a given Schema.", "homepage": "https://nette.org", - "keywords": [ - "config", - "nette" - ], + "keywords": ["config", "nette"], "support": { "issues": "https://github.com/nette/schema/issues", "source": "https://github.com/nette/schema/tree/v1.2.5" @@ -6785,16 +6322,10 @@ } }, "autoload": { - "classmap": [ - "src/" - ] + "classmap": ["src/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" - ], + "license": ["BSD-3-Clause", "GPL-2.0-only", "GPL-3.0-only"], "authors": [ { "name": "David Grudl", @@ -6851,9 +6382,7 @@ "ircmaxell/php-yacc": "^0.0.7", "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" }, - "bin": [ - "bin/php-parse" - ], + "bin": ["bin/php-parse"], "type": "library", "extra": { "branch-alias": { @@ -6866,19 +6395,14 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Nikita Popov" } ], "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], + "keywords": ["parser", "php"], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", "source": "https://github.com/nikic/PHP-Parser/tree/v4.18.0" @@ -6916,9 +6440,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Nordigen Solutions", @@ -6928,12 +6450,7 @@ ], "description": "Nordigen official API client for PHP", "homepage": "https://nordigen.com", - "keywords": [ - "Open Banking", - "api", - "nordigen", - "psd2" - ], + "keywords": ["Open Banking", "api", "nordigen", "psd2"], "support": { "issues": "https://github.com/nordigen/nordigen-php/issues", "source": "https://github.com/nordigen/nordigen-php/tree/1.1.1" @@ -6974,23 +6491,17 @@ "type": "library", "extra": { "laravel": { - "providers": [ - "Termwind\\Laravel\\TermwindServiceProvider" - ] + "providers": ["Termwind\\Laravel\\TermwindServiceProvider"] } }, "autoload": { - "files": [ - "src/Functions.php" - ], + "files": ["src/Functions.php"], "psr-4": { "Termwind\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Nuno Maduro", @@ -6998,14 +6509,7 @@ } ], "description": "Its like Tailwind CSS, but for the console.", - "keywords": [ - "cli", - "console", - "css", - "package", - "php", - "style" - ], + "keywords": ["cli", "console", "css", "package", "php", "style"], "support": { "issues": "https://github.com/nunomaduro/termwind/issues", "source": "https://github.com/nunomaduro/termwind/tree/v1.15.1" @@ -7068,17 +6572,13 @@ } }, "autoload": { - "files": [ - "src/helpers.php" - ], + "files": ["src/helpers.php"], "psr-4": { "Nwidart\\Modules\\": "src" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Nicolas Widart", @@ -7088,13 +6588,7 @@ } ], "description": "Laravel Module management", - "keywords": [ - "laravel", - "module", - "modules", - "nwidart", - "rad" - ], + "keywords": ["laravel", "module", "modules", "nwidart", "rad"], "support": { "issues": "https://github.com/nWidart/laravel-modules/issues", "source": "https://github.com/nWidart/laravel-modules/tree/10.0.4" @@ -7154,9 +6648,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Tobias Nyholm", @@ -7169,10 +6661,7 @@ ], "description": "A fast PHP7 implementation of PSR-7", "homepage": "https://tnyholm.se", - "keywords": [ - "psr-17", - "psr-7" - ], + "keywords": ["psr-17", "psr-7"], "support": { "issues": "https://github.com/Nyholm/psr7/issues", "source": "https://github.com/Nyholm/psr7/tree/1.8.1" @@ -7231,14 +6720,10 @@ "psr-4": { "Omnipay\\Common\\": "src/Common" }, - "classmap": [ - "src/Omnipay.php" - ] + "classmap": ["src/Omnipay.php"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Adrian Macneil", @@ -7316,9 +6801,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Adrian Macneil", @@ -7374,9 +6857,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Paragon Initiative Enterprises", @@ -7439,9 +6920,7 @@ }, "type": "library", "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Paragon Initiative Enterprises", @@ -7450,12 +6929,7 @@ } ], "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", - "keywords": [ - "csprng", - "polyfill", - "pseudorandom", - "random" - ], + "keywords": ["csprng", "polyfill", "pseudorandom", "random"], "support": { "email": "info@paragonie.com", "issues": "https://github.com/paragonie/random_compat/issues", @@ -7490,14 +6964,10 @@ }, "type": "library", "autoload": { - "files": [ - "autoload.php" - ] + "files": ["autoload.php"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "ISC" - ], + "license": ["ISC"], "authors": [ { "name": "Paragon Initiative Enterprises", @@ -7578,9 +7048,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Payfast", @@ -7588,12 +7056,7 @@ } ], "description": "Payfast PHP Library", - "keywords": [ - "api", - "onsite", - "payfast", - "php" - ], + "keywords": ["api", "onsite", "payfast", "php"], "support": { "issues": "https://github.com/Payfast/payfast-php-sdk/issues", "source": "https://github.com/Payfast/payfast-php-sdk/tree/v1.1.5" @@ -7647,9 +7110,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Márk Sági-Kazár", @@ -7658,12 +7119,7 @@ ], "description": "Common HTTP Client implementations and tools for HTTPlug", "homepage": "http://httplug.io", - "keywords": [ - "client", - "common", - "http", - "httplug" - ], + "keywords": ["client", "common", "http", "httplug"], "support": { "issues": "https://github.com/php-http/client-common/issues", "source": "https://github.com/php-http/client-common/tree/2.7.1" @@ -7716,14 +7172,10 @@ "psr-4": { "Http\\Discovery\\": "src/" }, - "exclude-from-classmap": [ - "src/Composer/Plugin.php" - ] + "exclude-from-classmap": ["src/Composer/Plugin.php"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Márk Sági-Kazár", @@ -7789,9 +7241,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Tobias Nyholm", @@ -7800,10 +7250,7 @@ ], "description": "Guzzle 7 HTTP Adapter", "homepage": "http://httplug.io", - "keywords": [ - "Guzzle", - "http" - ], + "keywords": ["Guzzle", "http"], "support": { "issues": "https://github.com/php-http/guzzle7-adapter/issues", "source": "https://github.com/php-http/guzzle7-adapter/tree/1.0.0" @@ -7841,9 +7288,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Eric GELOEN", @@ -7857,10 +7302,7 @@ ], "description": "HTTPlug, the HTTP client abstraction for PHP", "homepage": "http://httplug.io", - "keywords": [ - "client", - "http" - ], + "keywords": ["client", "http"], "support": { "issues": "https://github.com/php-http/httplug/issues", "source": "https://github.com/php-http/httplug/tree/2.4.0" @@ -7906,17 +7348,13 @@ }, "type": "library", "autoload": { - "files": [ - "src/filters.php" - ], + "files": ["src/filters.php"], "psr-4": { "Http\\Message\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Márk Sági-Kazár", @@ -7925,11 +7363,7 @@ ], "description": "HTTP Message related tools", "homepage": "http://php-http.org", - "keywords": [ - "http", - "message", - "psr-7" - ], + "keywords": ["http", "message", "psr-7"], "support": { "issues": "https://github.com/php-http/message/issues", "source": "https://github.com/php-http/message/tree/1.16.0" @@ -7966,9 +7400,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Márk Sági-Kazár", @@ -7977,13 +7409,7 @@ ], "description": "Factory interfaces for PSR-7 HTTP Message", "homepage": "http://php-http.org", - "keywords": [ - "factory", - "http", - "message", - "stream", - "uri" - ], + "keywords": ["factory", "http", "message", "stream", "uri"], "support": { "issues": "https://github.com/php-http/message-factory/issues", "source": "https://github.com/php-http/message-factory/tree/1.1.0" @@ -8019,9 +7445,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Joel Wurtz", @@ -8034,9 +7458,7 @@ ], "description": "Promise used for asynchronous HTTP requests", "homepage": "http://httplug.io", - "keywords": [ - "promise" - ], + "keywords": ["promise"], "support": { "issues": "https://github.com/php-http/promise/issues", "source": "https://github.com/php-http/promise/tree/1.2.1" @@ -8076,9 +7498,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Raphael Stolt", @@ -8088,11 +7508,7 @@ ], "description": "Implementation of JSON Pointer (http://tools.ietf.org/html/rfc6901)", "homepage": "https://github.com/raphaelstolt/php-jsonpointer", - "keywords": [ - "json", - "json pointer", - "json traversal" - ], + "keywords": ["json", "json pointer", "json traversal"], "support": { "issues": "https://github.com/raphaelstolt/php-jsonpointer/issues", "source": "https://github.com/raphaelstolt/php-jsonpointer/tree/master" @@ -8128,9 +7544,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Jaap van Otterdijk", @@ -8194,9 +7608,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Mike van Riel", @@ -8274,9 +7686,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Maarten Balliauw", @@ -8352,9 +7762,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], + "license": ["Apache-2.0"], "authors": [ { "name": "Johannes M. Schmitt", @@ -8368,12 +7776,7 @@ } ], "description": "Option Type for PHP", - "keywords": [ - "language", - "option", - "php", - "type" - ], + "keywords": ["language", "option", "php", "type"], "support": { "issues": "https://github.com/schmittjoh/php-option/issues", "source": "https://github.com/schmittjoh/php-option/tree/1.9.2" @@ -8421,17 +7824,13 @@ }, "type": "library", "autoload": { - "files": [ - "phpseclib/bootstrap.php" - ], + "files": ["phpseclib/bootstrap.php"], "psr-4": { "phpseclib3\\": "phpseclib/" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Jim Wigginton", @@ -8531,15 +7930,11 @@ "type": "library", "autoload": { "psr-4": { - "PHPStan\\PhpDocParser\\": [ - "src/" - ] + "PHPStan\\PhpDocParser\\": ["src/"] } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", @@ -8576,9 +7971,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Antonio Carlos Ribeiro", @@ -8631,9 +8024,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Till Krüss", @@ -8643,11 +8034,7 @@ ], "description": "A flexible and feature-complete Redis client for PHP.", "homepage": "http://github.com/predis/predis", - "keywords": [ - "nosql", - "predis", - "redis" - ], + "keywords": ["nosql", "predis", "redis"], "support": { "issues": "https://github.com/predis/predis/issues", "source": "https://github.com/predis/predis/tree/v2.2.2" @@ -8689,9 +8076,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "PHP-FIG", @@ -8699,11 +8084,7 @@ } ], "description": "Common interface for caching libraries", - "keywords": [ - "cache", - "psr", - "psr-6" - ], + "keywords": ["cache", "psr", "psr-6"], "support": { "source": "https://github.com/php-fig/cache/tree/3.0.0" }, @@ -8733,9 +8114,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "PHP-FIG", @@ -8744,13 +8123,7 @@ ], "description": "Common interface for reading the clock.", "homepage": "https://github.com/php-fig/clock", - "keywords": [ - "clock", - "now", - "psr", - "psr-20", - "time" - ], + "keywords": ["clock", "now", "psr", "psr-20", "time"], "support": { "issues": "https://github.com/php-fig/clock/issues", "source": "https://github.com/php-fig/clock/tree/1.0.0" @@ -8786,9 +8159,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "PHP-FIG", @@ -8839,9 +8210,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "PHP-FIG", @@ -8849,11 +8218,7 @@ } ], "description": "Standard interfaces for event handling.", - "keywords": [ - "events", - "psr", - "psr-14" - ], + "keywords": ["events", "psr", "psr-14"], "support": { "issues": "https://github.com/php-fig/event-dispatcher/issues", "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" @@ -8890,9 +8255,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "PHP-FIG", @@ -8901,12 +8264,7 @@ ], "description": "Common interface for HTTP clients", "homepage": "https://github.com/php-fig/http-client", - "keywords": [ - "http", - "http-client", - "psr", - "psr-18" - ], + "keywords": ["http", "http-client", "psr", "psr-18"], "support": { "source": "https://github.com/php-fig/http-client" }, @@ -8942,9 +8300,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "PHP-FIG", @@ -8996,9 +8352,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "PHP-FIG", @@ -9049,9 +8403,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "PHP-FIG", @@ -9060,11 +8412,7 @@ ], "description": "Common interface for logging libraries", "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], + "keywords": ["log", "psr", "psr-3"], "support": { "source": "https://github.com/php-fig/log/tree/3.0.0" }, @@ -9099,9 +8447,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "PHP-FIG", @@ -9109,13 +8455,7 @@ } ], "description": "Common interfaces for simple caching", - "keywords": [ - "cache", - "caching", - "psr", - "psr-16", - "simple-cache" - ], + "keywords": ["cache", "caching", "psr", "psr-16", "simple-cache"], "support": { "source": "https://github.com/php-fig/simple-cache/tree/3.0.0" }, @@ -9155,9 +8495,7 @@ "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.", "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history." }, - "bin": [ - "bin/psysh" - ], + "bin": ["bin/psysh"], "type": "library", "extra": { "branch-alias": { @@ -9169,17 +8507,13 @@ } }, "autoload": { - "files": [ - "src/functions.php" - ], + "files": ["src/functions.php"], "psr-4": { "Psy\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Justin Hileman", @@ -9189,12 +8523,7 @@ ], "description": "An interactive shell for modern PHP.", "homepage": "http://psysh.org", - "keywords": [ - "REPL", - "console", - "interactive", - "shell" - ], + "keywords": ["REPL", "console", "interactive", "shell"], "support": { "issues": "https://github.com/bobthecow/psysh/issues", "source": "https://github.com/bobthecow/psysh/tree/v0.11.22" @@ -9239,9 +8568,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "description": "Library for interacting with the Pusher REST API", "keywords": [ "events", @@ -9285,14 +8612,10 @@ }, "type": "library", "autoload": { - "files": [ - "src/getallheaders.php" - ] + "files": ["src/getallheaders.php"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Ralph Khattar", @@ -9360,9 +8683,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Ben Ramsey", @@ -9371,14 +8692,7 @@ } ], "description": "A PHP library for representing and manipulating collections.", - "keywords": [ - "array", - "collection", - "hash", - "map", - "queue", - "set" - ], + "keywords": ["array", "collection", "hash", "map", "queue", "set"], "support": { "issues": "https://github.com/ramsey/collection/issues", "source": "https://github.com/ramsey/collection/tree/2.0.0" @@ -9454,23 +8768,15 @@ } }, "autoload": { - "files": [ - "src/functions.php" - ], + "files": ["src/functions.php"], "psr-4": { "Ramsey\\Uuid\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", - "keywords": [ - "guid", - "identifier", - "uuid" - ], + "keywords": ["guid", "identifier", "uuid"], "support": { "issues": "https://github.com/ramsey/uuid/issues", "source": "https://github.com/ramsey/uuid/tree/4.7.5" @@ -9512,18 +8818,14 @@ }, "type": "library", "autoload": { - "files": [ - "Deprecated.php" - ], + "files": ["Deprecated.php"], "psr-4": { "Razorpay\\Api\\": "src/", "Razorpay\\Tests\\": "tests/" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Abhay Rana", @@ -9539,12 +8841,7 @@ ], "description": "Razorpay PHP Client Library", "homepage": "https://docs.razorpay.com", - "keywords": [ - "api", - "client", - "php", - "razorpay" - ], + "keywords": ["api", "client", "php", "razorpay"], "support": { "email": "contact@razorpay.com", "issues": "https://github.com/Razorpay/razorpay-php/issues", @@ -9589,20 +8886,14 @@ }, "type": "library", "autoload": { - "files": [ - "library/Deprecated.php" - ], + "files": ["library/Deprecated.php"], "psr-4": { "WpOrg\\Requests\\": "src/" }, - "classmap": [ - "library/Requests.php" - ] + "classmap": ["library/Requests.php"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "ISC" - ], + "license": ["ISC"], "authors": [ { "name": "Ryan McCue", @@ -9666,17 +8957,13 @@ }, "type": "library", "autoload": { - "files": [ - "lib/functions.php" - ], + "files": ["lib/functions.php"], "psr-4": { "Sabre\\Uri\\": "lib/" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Evert Pot", @@ -9687,11 +8974,7 @@ ], "description": "Functions for making sense out of URIs.", "homepage": "http://sabre.io/uri/", - "keywords": [ - "rfc3986", - "uri", - "url" - ], + "keywords": ["rfc3986", "uri", "url"], "support": { "forum": "https://groups.google.com/group/sabredav-discuss", "issues": "https://github.com/sabre-io/uri/issues", @@ -9736,9 +9019,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Evert Pot", @@ -9754,12 +9035,7 @@ ], "description": "sabre/xml is an XML library that you may not hate.", "homepage": "https://sabre.io/xml/", - "keywords": [ - "XMLReader", - "XMLWriter", - "dom", - "xml" - ], + "keywords": ["XMLReader", "XMLWriter", "dom", "xml"], "support": { "forum": "https://groups.google.com/group/sabredav-discuss", "issues": "https://github.com/sabre-io/xml/issues", @@ -9788,9 +9064,7 @@ }, "type": "metapackage", "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Sentry", @@ -9880,17 +9154,13 @@ }, "type": "library", "autoload": { - "files": [ - "src/functions.php" - ], + "files": ["src/functions.php"], "psr-4": { "Sentry\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Sentry", @@ -9979,9 +9249,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Sentry", @@ -10036,14 +9304,10 @@ }, "type": "library", "autoload": { - "classmap": [ - "fpdf.php" - ] + "classmap": ["fpdf.php"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Olivier Plathey", @@ -10053,10 +9317,7 @@ ], "description": "FPDF is a PHP class which allows to generate PDF files with pure PHP. F from FPDF stands for Free: you may use it for any kind of usage and modify it to suit your needs.", "homepage": "http://www.fpdf.org", - "keywords": [ - "fpdf", - "pdf" - ], + "keywords": ["fpdf", "pdf"], "support": { "source": "https://github.com/Setasign/FPDF/tree/1.8.6" }, @@ -10100,9 +9361,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Jan Slabon", @@ -10117,11 +9376,7 @@ ], "description": "FPDI is a collection of PHP classes facilitating developers to read pages from existing PDF documents and use them as templates in FPDF. Because it is also possible to use FPDI with TCPDF, there are no fixed dependencies defined. Please see suggestions for packages which evaluates the dependencies automatically.", "homepage": "https://www.setasign.com/fpdi", - "keywords": [ - "fpdf", - "fpdi", - "pdf" - ], + "keywords": ["fpdf", "fpdi", "pdf"], "support": { "issues": "https://github.com/Setasign/FPDI/issues", "source": "https://github.com/Setasign/FPDI/tree/v2.5.0" @@ -10170,9 +9425,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Shopify Inc.", @@ -10224,9 +9477,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "LGPL-3.0" - ], + "license": ["LGPL-3.0"], "authors": [ { "name": "Sebastien MALOT", @@ -10235,13 +9486,7 @@ ], "description": "Pdf parser library. Can read and extract information from pdf file.", "homepage": "https://www.pdfparser.org", - "keywords": [ - "extract", - "parse", - "parser", - "pdf", - "text" - ], + "keywords": ["extract", "parse", "parser", "pdf", "text"], "support": { "issues": "https://github.com/smalot/pdfparser/issues", "source": "https://github.com/smalot/pdfparser/tree/v2.7.0" @@ -10281,9 +9526,7 @@ "SocialiteProviders\\Apple\\": "" } }, - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Ahilan", @@ -10357,9 +9600,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Andy Wendt", @@ -10420,9 +9661,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Brian Faust", @@ -10498,9 +9737,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Ruben Van Assche", @@ -10510,11 +9747,7 @@ ], "description": "Create unified resources and data transfer objects", "homepage": "https://github.com/spatie/laravel-data", - "keywords": [ - "laravel", - "laravel-data", - "spatie" - ], + "keywords": ["laravel", "laravel-data", "spatie"], "support": { "issues": "https://github.com/spatie/laravel-data/issues", "source": "https://github.com/spatie/laravel-data/tree/3.10.1" @@ -10559,9 +9792,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Freek Van der Herten", @@ -10571,10 +9802,7 @@ ], "description": "Tools for creating Laravel packages", "homepage": "https://github.com/spatie/laravel-package-tools", - "keywords": [ - "laravel-package-tools", - "spatie" - ], + "keywords": ["laravel-package-tools", "spatie"], "support": { "issues": "https://github.com/spatie/laravel-package-tools/issues", "source": "https://github.com/spatie/laravel-package-tools/tree/1.16.1" @@ -10640,9 +9868,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "description": "A PHP library to create Swiss QR bills", "support": { "issues": "https://github.com/sprain/php-swiss-qr-bill/issues", @@ -10689,9 +9915,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Square Developer Platform", @@ -10701,11 +9925,7 @@ ], "description": "Use Square APIs to manage and run business including payment, customer, product, inventory, and employee management.", "homepage": "https://squareup.com/developers", - "keywords": [ - "api", - "sdk", - "square" - ], + "keywords": ["api", "sdk", "square"], "support": { "issues": "https://github.com/square/square-php-sdk/issues", "source": "https://github.com/square/square-php-sdk/tree/30.0.0.20230816" @@ -10749,9 +9969,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Stripe and contributors", @@ -10760,11 +9978,7 @@ ], "description": "Stripe PHP Library", "homepage": "https://stripe.com/", - "keywords": [ - "api", - "payment processing", - "stripe" - ], + "keywords": ["api", "payment processing", "stripe"], "support": { "issues": "https://github.com/stripe/stripe-php/issues", "source": "https://github.com/stripe/stripe-php/tree/v12.8.0" @@ -10820,14 +10034,10 @@ "psr-4": { "Symfony\\Component\\Console\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "exclude-from-classmap": ["/Tests/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Fabien Potencier", @@ -10840,12 +10050,7 @@ ], "description": "Eases the creation of beautiful and testable command line interfaces", "homepage": "https://symfony.com", - "keywords": [ - "cli", - "command-line", - "console", - "terminal" - ], + "keywords": ["cli", "command-line", "console", "terminal"], "support": { "source": "https://github.com/symfony/console/tree/v6.4.1" }, @@ -10887,14 +10092,10 @@ "psr-4": { "Symfony\\Component\\CssSelector\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "exclude-from-classmap": ["/Tests/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Fabien Potencier", @@ -10958,14 +10159,10 @@ } }, "autoload": { - "files": [ - "function.php" - ] + "files": ["function.php"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Nicolas Grekas", @@ -11025,22 +10222,16 @@ "symfony/http-kernel": "^6.4|^7.0", "symfony/serializer": "^5.4|^6.0|^7.0" }, - "bin": [ - "Resources/bin/patch-type-declarations" - ], + "bin": ["Resources/bin/patch-type-declarations"], "type": "library", "autoload": { "psr-4": { "Symfony\\Component\\ErrorHandler\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "exclude-from-classmap": ["/Tests/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Fabien Potencier", @@ -11113,14 +10304,10 @@ "psr-4": { "Symfony\\Component\\EventDispatcher\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "exclude-from-classmap": ["/Tests/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Fabien Potencier", @@ -11186,9 +10373,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Nicolas Grekas", @@ -11252,14 +10437,10 @@ "psr-4": { "Symfony\\Component\\Filesystem\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "exclude-from-classmap": ["/Tests/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Fabien Potencier", @@ -11316,14 +10497,10 @@ "psr-4": { "Symfony\\Component\\Finder\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "exclude-from-classmap": ["/Tests/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Fabien Potencier", @@ -11406,14 +10583,10 @@ "psr-4": { "Symfony\\Component\\HttpClient\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "exclude-from-classmap": ["/Tests/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Nicolas Grekas", @@ -11426,9 +10599,7 @@ ], "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", "homepage": "https://symfony.com", - "keywords": [ - "http" - ], + "keywords": ["http"], "support": { "source": "https://github.com/symfony/http-client/tree/v6.4.0" }, @@ -11479,14 +10650,10 @@ "psr-4": { "Symfony\\Contracts\\HttpClient\\": "" }, - "exclude-from-classmap": [ - "/Test/" - ] + "exclude-from-classmap": ["/Test/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Nicolas Grekas", @@ -11564,14 +10731,10 @@ "psr-4": { "Symfony\\Component\\HttpFoundation\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "exclude-from-classmap": ["/Tests/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Fabien Potencier", @@ -11677,14 +10840,10 @@ "psr-4": { "Symfony\\Component\\HttpKernel\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "exclude-from-classmap": ["/Tests/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Fabien Potencier", @@ -11743,14 +10902,10 @@ "psr-4": { "Symfony\\Component\\Intl\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "exclude-from-classmap": ["/Tests/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Bernhard Schussek", @@ -11839,14 +10994,10 @@ "psr-4": { "Symfony\\Component\\Mailer\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "exclude-from-classmap": ["/Tests/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Fabien Potencier", @@ -11908,14 +11059,10 @@ "psr-4": { "Symfony\\Component\\Mailer\\Bridge\\Mailgun\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "exclude-from-classmap": ["/Tests/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Fabien Potencier", @@ -11988,14 +11135,10 @@ "psr-4": { "Symfony\\Component\\Mime\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "exclude-from-classmap": ["/Tests/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Fabien Potencier", @@ -12008,10 +11151,7 @@ ], "description": "Allows manipulating MIME messages", "homepage": "https://symfony.com", - "keywords": [ - "mime", - "mime-type" - ], + "keywords": ["mime", "mime-type"], "support": { "source": "https://github.com/symfony/mime/tree/v6.4.0" }, @@ -12054,14 +11194,10 @@ "psr-4": { "Symfony\\Component\\OptionsResolver\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "exclude-from-classmap": ["/Tests/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Fabien Potencier", @@ -12074,11 +11210,7 @@ ], "description": "Provides an improved replacement for the array_replace PHP function", "homepage": "https://symfony.com", - "keywords": [ - "config", - "configuration", - "options" - ], + "keywords": ["config", "configuration", "options"], "support": { "source": "https://github.com/symfony/options-resolver/tree/v7.0.0" }, @@ -12132,17 +11264,13 @@ } }, "autoload": { - "files": [ - "bootstrap.php" - ], + "files": ["bootstrap.php"], "psr-4": { "Symfony\\Polyfill\\Ctype\\": "" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Gert de Pagter", @@ -12155,12 +11283,7 @@ ], "description": "Symfony polyfill for ctype functions", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], + "keywords": ["compatibility", "ctype", "polyfill", "portable"], "support": { "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" }, @@ -12211,17 +11334,13 @@ } }, "autoload": { - "files": [ - "bootstrap.php" - ], + "files": ["bootstrap.php"], "psr-4": { "Symfony\\Polyfill\\Intl\\Grapheme\\": "" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Nicolas Grekas", @@ -12292,23 +11411,15 @@ } }, "autoload": { - "files": [ - "bootstrap.php" - ], + "files": ["bootstrap.php"], "psr-4": { "Symfony\\Polyfill\\Intl\\Icu\\": "" }, - "classmap": [ - "Resources/stubs" - ], - "exclude-from-classmap": [ - "/Tests/" - ] + "classmap": ["Resources/stubs"], + "exclude-from-classmap": ["/Tests/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Nicolas Grekas", @@ -12381,17 +11492,13 @@ } }, "autoload": { - "files": [ - "bootstrap.php" - ], + "files": ["bootstrap.php"], "psr-4": { "Symfony\\Polyfill\\Intl\\Idn\\": "" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Laurent Bassin", @@ -12466,20 +11573,14 @@ } }, "autoload": { - "files": [ - "bootstrap.php" - ], + "files": ["bootstrap.php"], "psr-4": { "Symfony\\Polyfill\\Intl\\Normalizer\\": "" }, - "classmap": [ - "Resources/stubs" - ] + "classmap": ["Resources/stubs"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Nicolas Grekas", @@ -12553,17 +11654,13 @@ } }, "autoload": { - "files": [ - "bootstrap.php" - ], + "files": ["bootstrap.php"], "psr-4": { "Symfony\\Polyfill\\Mbstring\\": "" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Nicolas Grekas", @@ -12630,17 +11727,13 @@ } }, "autoload": { - "files": [ - "bootstrap.php" - ], + "files": ["bootstrap.php"], "psr-4": { "Symfony\\Polyfill\\Php72\\": "" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Nicolas Grekas", @@ -12653,12 +11746,7 @@ ], "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], + "keywords": ["compatibility", "polyfill", "portable", "shim"], "support": { "source": "https://github.com/symfony/polyfill-php72/tree/v1.28.0" }, @@ -12706,20 +11794,14 @@ } }, "autoload": { - "files": [ - "bootstrap.php" - ], + "files": ["bootstrap.php"], "psr-4": { "Symfony\\Polyfill\\Php80\\": "" }, - "classmap": [ - "Resources/stubs" - ] + "classmap": ["Resources/stubs"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Ion Bazan", @@ -12736,12 +11818,7 @@ ], "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], + "keywords": ["compatibility", "polyfill", "portable", "shim"], "support": { "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0" }, @@ -12790,20 +11867,14 @@ } }, "autoload": { - "files": [ - "bootstrap.php" - ], + "files": ["bootstrap.php"], "psr-4": { "Symfony\\Polyfill\\Php83\\": "" }, - "classmap": [ - "Resources/stubs" - ] + "classmap": ["Resources/stubs"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Nicolas Grekas", @@ -12816,12 +11887,7 @@ ], "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], + "keywords": ["compatibility", "polyfill", "portable", "shim"], "support": { "source": "https://github.com/symfony/polyfill-php83/tree/v1.28.0" }, @@ -12875,17 +11941,13 @@ } }, "autoload": { - "files": [ - "bootstrap.php" - ], + "files": ["bootstrap.php"], "psr-4": { "Symfony\\Polyfill\\Uuid\\": "" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Grégoire Pineau", @@ -12898,12 +11960,7 @@ ], "description": "Symfony polyfill for uuid functions", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "uuid" - ], + "keywords": ["compatibility", "polyfill", "portable", "uuid"], "support": { "source": "https://github.com/symfony/polyfill-uuid/tree/v1.28.0" }, @@ -12954,14 +12011,10 @@ "psr-4": { "Symfony\\Component\\Mailer\\Bridge\\Postmark\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "exclude-from-classmap": ["/Tests/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Fabien Potencier", @@ -13015,14 +12068,10 @@ "psr-4": { "Symfony\\Component\\Process\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "exclude-from-classmap": ["/Tests/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Fabien Potencier", @@ -13097,14 +12146,10 @@ "psr-4": { "Symfony\\Bridge\\PsrHttpMessage\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "exclude-from-classmap": ["/Tests/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Fabien Potencier", @@ -13117,12 +12162,7 @@ ], "description": "PSR HTTP message bridge", "homepage": "http://symfony.com", - "keywords": [ - "http", - "http-message", - "psr-17", - "psr-7" - ], + "keywords": ["http", "http-message", "psr-17", "psr-7"], "support": { "issues": "https://github.com/symfony/psr-http-message-bridge/issues", "source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.3.1" @@ -13181,14 +12221,10 @@ "psr-4": { "Symfony\\Component\\Routing\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "exclude-from-classmap": ["/Tests/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Fabien Potencier", @@ -13201,12 +12237,7 @@ ], "description": "Maps an HTTP request to a set of configuration variables", "homepage": "https://symfony.com", - "keywords": [ - "router", - "routing", - "uri", - "url" - ], + "keywords": ["router", "routing", "uri", "url"], "support": { "source": "https://github.com/symfony/routing/tree/v6.4.1" }, @@ -13261,14 +12292,10 @@ "psr-4": { "Symfony\\Contracts\\Service\\": "" }, - "exclude-from-classmap": [ - "/Test/" - ] + "exclude-from-classmap": ["/Test/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Nicolas Grekas", @@ -13341,20 +12368,14 @@ }, "type": "library", "autoload": { - "files": [ - "Resources/functions.php" - ], + "files": ["Resources/functions.php"], "psr-4": { "Symfony\\Component\\String\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "exclude-from-classmap": ["/Tests/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Nicolas Grekas", @@ -13444,20 +12465,14 @@ }, "type": "library", "autoload": { - "files": [ - "Resources/functions.php" - ], + "files": ["Resources/functions.php"], "psr-4": { "Symfony\\Component\\Translation\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "exclude-from-classmap": ["/Tests/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Fabien Potencier", @@ -13520,14 +12535,10 @@ "psr-4": { "Symfony\\Contracts\\Translation\\": "" }, - "exclude-from-classmap": [ - "/Test/" - ] + "exclude-from-classmap": ["/Test/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Nicolas Grekas", @@ -13593,14 +12604,10 @@ "psr-4": { "Symfony\\Component\\Uid\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "exclude-from-classmap": ["/Tests/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Grégoire Pineau", @@ -13617,11 +12624,7 @@ ], "description": "Provides an object-oriented API to generate and represent UIDs", "homepage": "https://symfony.com", - "keywords": [ - "UID", - "ulid", - "uuid" - ], + "keywords": ["UID", "ulid", "uuid"], "support": { "source": "https://github.com/symfony/uid/tree/v6.4.0" }, @@ -13698,14 +12701,10 @@ "psr-4": { "Symfony\\Component\\Validator\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "exclude-from-classmap": ["/Tests/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Fabien Potencier", @@ -13768,25 +12767,17 @@ "symfony/uid": "^5.4|^6.0|^7.0", "twig/twig": "^2.13|^3.0.4" }, - "bin": [ - "Resources/bin/var-dump-server" - ], + "bin": ["Resources/bin/var-dump-server"], "type": "library", "autoload": { - "files": [ - "Resources/functions/dump.php" - ], + "files": ["Resources/functions/dump.php"], "psr-4": { "Symfony\\Component\\VarDumper\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "exclude-from-classmap": ["/Tests/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Nicolas Grekas", @@ -13799,10 +12790,7 @@ ], "description": "Provides mechanisms for walking through any arbitrary PHP variable", "homepage": "https://symfony.com", - "keywords": [ - "debug", - "dump" - ], + "keywords": ["debug", "dump"], "support": { "source": "https://github.com/symfony/var-dumper/tree/v6.4.0" }, @@ -13847,22 +12835,16 @@ "require-dev": { "symfony/console": "^5.4|^6.0|^7.0" }, - "bin": [ - "Resources/bin/yaml-lint" - ], + "bin": ["Resources/bin/yaml-lint"], "type": "library", "autoload": { "psr-4": { "Symfony\\Component\\Yaml\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "exclude-from-classmap": ["/Tests/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Fabien Potencier", @@ -13929,9 +12911,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Tijs Verkoyen", @@ -13972,9 +12952,7 @@ "type": "library", "extra": { "laravel": { - "providers": [ - "Turbo124\\Beacon\\CollectorServiceProvider" - ], + "providers": ["Turbo124\\Beacon\\CollectorServiceProvider"], "aliases": { "Beacon": "Turbo124\\Beacon\\CollectorFacade" } @@ -13986,9 +12964,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "David Bomba", @@ -13998,12 +12974,7 @@ ], "description": "Application level data collector package for laravel", "homepage": "https://github.com/turbo124/beacon", - "keywords": [ - "beacon", - "light logs", - "lightlogs", - "turbo124" - ], + "keywords": ["beacon", "light logs", "lightlogs", "turbo124"], "support": { "source": "https://github.com/turbo124/beacon/tree/v1.5.2" }, @@ -14036,14 +13007,10 @@ "psr-4": { "Twig\\Extra\\Intl\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "exclude-from-classmap": ["/Tests/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Fabien Potencier", @@ -14054,10 +13021,7 @@ ], "description": "A Twig extension for Intl", "homepage": "https://twig.symfony.com", - "keywords": [ - "intl", - "twig" - ], + "keywords": ["intl", "twig"], "support": { "source": "https://github.com/twigphp/intl-extra/tree/v3.8.0" }, @@ -14104,9 +13068,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Fabien Potencier", @@ -14126,9 +13088,7 @@ ], "description": "Twig, the flexible, fast, and secure template language for PHP", "homepage": "https://twig.symfony.com", - "keywords": [ - "templating" - ], + "keywords": ["templating"], "support": { "issues": "https://github.com/twigphp/Twig/issues", "source": "https://github.com/twigphp/Twig/tree/v3.8.0" @@ -14176,9 +13136,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Twilio API Team", @@ -14187,11 +13145,7 @@ ], "description": "A PHP wrapper for Twilio's API", "homepage": "https://github.com/twilio/twilio-php", - "keywords": [ - "api", - "sms", - "twilio" - ], + "keywords": ["api", "sms", "twilio"], "time": "2023-02-22T19:59:53+00:00" }, { @@ -14241,9 +13195,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Graham Campbell", @@ -14257,11 +13209,7 @@ } ], "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", - "keywords": [ - "dotenv", - "env", - "environment" - ], + "keywords": ["dotenv", "env", "environment"], "support": { "issues": "https://github.com/vlucas/phpdotenv/issues", "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.0" @@ -14308,9 +13256,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Lars Moelleken", @@ -14319,11 +13265,7 @@ ], "description": "Portable ASCII library - performance optimized (ascii) string functions for php.", "homepage": "https://github.com/voku/portable-ascii", - "keywords": [ - "ascii", - "clean", - "php" - ], + "keywords": ["ascii", "clean", "php"], "support": { "issues": "https://github.com/voku/portable-ascii/issues", "source": "https://github.com/voku/portable-ascii/tree/2.0.1" @@ -14389,9 +13331,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Bernhard Schussek", @@ -14399,11 +13339,7 @@ } ], "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], + "keywords": ["assert", "check", "validate"], "support": { "issues": "https://github.com/webmozarts/assert/issues", "source": "https://github.com/webmozarts/assert/tree/1.11.0" @@ -14443,14 +13379,10 @@ "psr-0": { "Webpatser\\Countries": "src/" }, - "classmap": [ - "src/commands" - ] + "classmap": ["src/commands"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Christoph Kempen", @@ -14465,12 +13397,7 @@ ], "description": "Laravel Countries is a bundle for Laravel, providing Almost ISO 3166_2, 3166_3, currency, Capital and more for all countries.", "homepage": "https://github.com/webpatser/laravel-countries", - "keywords": [ - "countries", - "iso_3166_2", - "iso_3166_3", - "laravel" - ], + "keywords": ["countries", "iso_3166_2", "iso_3166_3", "laravel"], "support": { "issues": "https://github.com/webpatser/laravel-countries/issues", "source": "https://github.com/webpatser/laravel-countries" @@ -14502,14 +13429,10 @@ } }, "autoload": { - "classmap": [ - "wepay.php" - ] + "classmap": ["wepay.php"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], + "license": ["Apache-2.0"], "authors": [ { "name": "WePay", @@ -14517,11 +13440,7 @@ } ], "description": "WePay APIv2 SDK for PHP", - "keywords": [ - "payment", - "sdk", - "wepay" - ], + "keywords": ["payment", "sdk", "wepay"], "support": { "issues": "https://github.com/wepay/PHP-SDK/issues", "source": "https://github.com/wepay/PHP-SDK/tree/master" @@ -14556,9 +13475,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "description": "The officially supported client for Postmark (http://postmarkapp.com)", "support": { "issues": "https://github.com/ActiveCampaign/postmark-php/issues", @@ -14602,26 +13519,20 @@ "dev-master": "3.8-dev" }, "laravel": { - "providers": [ - "Barryvdh\\Debugbar\\ServiceProvider" - ], + "providers": ["Barryvdh\\Debugbar\\ServiceProvider"], "aliases": { "Debugbar": "Barryvdh\\Debugbar\\Facades\\Debugbar" } } }, "autoload": { - "files": [ - "src/helpers.php" - ], + "files": ["src/helpers.php"], "psr-4": { "Barryvdh\\Debugbar\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Barry vd. Heuvel", @@ -14709,9 +13620,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Barry vd. Heuvel", @@ -14778,15 +13687,11 @@ }, "autoload": { "psr-0": { - "Barryvdh": [ - "src/" - ] + "Barryvdh": ["src/"] } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Mike van Riel", @@ -14848,15 +13753,11 @@ "type": "library", "autoload": { "psr-4": { - "ParaTest\\": [ - "src/" - ] + "ParaTest\\": ["src/"] } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Brian Scaturro", @@ -14871,12 +13772,7 @@ ], "description": "Parallel testing for PHP", "homepage": "https://github.com/paratestphp/paratest", - "keywords": [ - "concurrent", - "parallel", - "phpunit", - "testing" - ], + "keywords": ["concurrent", "parallel", "phpunit", "testing"], "support": { "issues": "https://github.com/paratestphp/paratest/issues", "source": "https://github.com/paratestphp/paratest/tree/v7.3.1" @@ -14932,9 +13828,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Jordi Boggiano", @@ -14943,9 +13837,7 @@ } ], "description": "Utilities to scan PHP code and generate class maps.", - "keywords": [ - "classmap" - ], + "keywords": ["classmap"], "support": { "issues": "https://github.com/composer/class-map-generator/issues", "source": "https://github.com/composer/class-map-generator/tree/1.1.0" @@ -15000,9 +13892,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Jordi Boggiano", @@ -15011,12 +13901,7 @@ } ], "description": "PCRE wrapping library that offers type-safe preg_* replacements.", - "keywords": [ - "PCRE", - "preg", - "regex", - "regular expression" - ], + "keywords": ["PCRE", "preg", "regex", "regular expression"], "support": { "issues": "https://github.com/composer/pcre/issues", "source": "https://github.com/composer/pcre/tree/3.1.1" @@ -15070,9 +13955,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Nils Adermann", @@ -15091,12 +13974,7 @@ } ], "description": "Semver library that offers utilities, version constraint parsing and validation.", - "keywords": [ - "semantic", - "semver", - "validation", - "versioning" - ], + "keywords": ["semantic", "semver", "validation", "versioning"], "support": { "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", @@ -15149,9 +14027,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "John Stevenson", @@ -15159,10 +14035,7 @@ } ], "description": "Restarts a process without Xdebug.", - "keywords": [ - "Xdebug", - "performance" - ], + "keywords": ["Xdebug", "performance"], "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/xdebug-handler/issues", @@ -15219,9 +14092,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Théo FIDRY", @@ -15229,10 +14100,7 @@ } ], "description": "Tiny utility to get the number of CPU cores.", - "keywords": [ - "CPU", - "core" - ], + "keywords": ["CPU", "core"], "support": { "issues": "https://github.com/theofidry/cpu-core-counter/issues", "source": "https://github.com/theofidry/cpu-core-counter/tree/1.0.0" @@ -15284,9 +14152,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Filipe Dobreira", @@ -15365,9 +14231,7 @@ "ext-dom": "For handling output formats in XML", "ext-mbstring": "For handling non-UTF8 characters." }, - "bin": [ - "php-cs-fixer" - ], + "bin": ["php-cs-fixer"], "type": "application", "autoload": { "psr-4": { @@ -15375,9 +14239,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Fabien Potencier", @@ -15440,18 +14302,12 @@ } }, "autoload": { - "classmap": [ - "hamcrest" - ] + "classmap": ["hamcrest"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "description": "This is the PHP port of Hamcrest Matchers", - "keywords": [ - "test" - ], + "keywords": ["test"], "support": { "issues": "https://github.com/hamcrest/hamcrest-php/issues", "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1" @@ -15484,9 +14340,7 @@ "type": "library", "extra": { "laravel": { - "providers": [ - "Laracasts\\Cypress\\CypressServiceProvider" - ] + "providers": ["Laracasts\\Cypress\\CypressServiceProvider"] } }, "autoload": { @@ -15495,9 +14349,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Jeffrey Way", @@ -15507,10 +14359,7 @@ ], "description": "Laravel Cypress Boilerplate", "homepage": "https://github.com/laracasts/cypress", - "keywords": [ - "cypress", - "laracasts" - ], + "keywords": ["cypress", "laracasts"], "support": { "issues": "https://github.com/laracasts/cypress/issues", "source": "https://github.com/laracasts/cypress/tree/3.0.1" @@ -15559,9 +14408,7 @@ "dev-master": "2.0-dev" }, "phpstan": { - "includes": [ - "extension.neon" - ] + "includes": ["extension.neon"] } }, "autoload": { @@ -15570,9 +14417,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Can Vural", @@ -15658,9 +14503,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Maxime Bouroumeau-Fuseau", @@ -15674,10 +14517,7 @@ ], "description": "Debug bar in the browser for php application", "homepage": "https://github.com/maximebf/php-debugbar", - "keywords": [ - "debug", - "debugbar" - ], + "keywords": ["debug", "debugbar"], "support": { "issues": "https://github.com/maximebf/php-debugbar/issues", "source": "https://github.com/maximebf/php-debugbar/tree/v1.19.1" @@ -15712,18 +14552,13 @@ }, "type": "library", "autoload": { - "files": [ - "library/helpers.php", - "library/Mockery.php" - ], + "files": ["library/helpers.php", "library/Mockery.php"], "psr-4": { "Mockery\\": "library/Mockery" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Pádraic Brady", @@ -15795,17 +14630,13 @@ }, "type": "library", "autoload": { - "files": [ - "src/DeepCopy/deep_copy.php" - ], + "files": ["src/DeepCopy/deep_copy.php"], "psr-4": { "DeepCopy\\": "src/DeepCopy/" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "description": "Create deep copies (clones) of your objects", "keywords": [ "clone", @@ -15872,17 +14703,13 @@ } }, "autoload": { - "files": [ - "./src/Adapters/Phpunit/Autoload.php" - ], + "files": ["./src/Adapters/Phpunit/Autoload.php"], "psr-4": { "NunoMaduro\\Collision\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Nuno Maduro", @@ -15950,14 +14777,10 @@ } }, "autoload": { - "classmap": [ - "src/" - ] + "classmap": ["src/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Arne Blankerts", @@ -16001,14 +14824,10 @@ }, "type": "library", "autoload": { - "classmap": [ - "src/" - ] + "classmap": ["src/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Arne Blankerts", @@ -16084,9 +14903,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], + "license": ["GPL-2.0-or-later"], "authors": [ { "name": "The phpMyAdmin Team", @@ -16140,25 +14957,15 @@ "conflict": { "phpstan/phpstan-shim": "*" }, - "bin": [ - "phpstan", - "phpstan.phar" - ], + "bin": ["phpstan", "phpstan.phar"], "type": "library", "autoload": { - "files": [ - "bootstrap.php" - ] + "files": ["bootstrap.php"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "description": "PHPStan - PHP Static Analysis Tool", - "keywords": [ - "dev", - "static analysis" - ], + "keywords": ["dev", "static analysis"], "support": { "docs": "https://phpstan.org/user-guide/getting-started", "forum": "https://github.com/phpstan/phpstan/discussions", @@ -16225,14 +15032,10 @@ } }, "autoload": { - "classmap": [ - "src/" - ] + "classmap": ["src/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Sebastian Bergmann", @@ -16242,11 +15045,7 @@ ], "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ], + "keywords": ["coverage", "testing", "xunit"], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", @@ -16287,14 +15086,10 @@ } }, "autoload": { - "classmap": [ - "src/" - ] + "classmap": ["src/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Sebastian Bergmann", @@ -16304,10 +15099,7 @@ ], "description": "FilterIterator implementation that filters files based on a list of suffixes.", "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": [ - "filesystem", - "iterator" - ], + "keywords": ["filesystem", "iterator"], "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", @@ -16352,14 +15144,10 @@ } }, "autoload": { - "classmap": [ - "src/" - ] + "classmap": ["src/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Sebastian Bergmann", @@ -16369,9 +15157,7 @@ ], "description": "Invoke callables with a timeout", "homepage": "https://github.com/sebastianbergmann/php-invoker/", - "keywords": [ - "process" - ], + "keywords": ["process"], "support": { "issues": "https://github.com/sebastianbergmann/php-invoker/issues", "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0" @@ -16411,14 +15197,10 @@ } }, "autoload": { - "classmap": [ - "src/" - ] + "classmap": ["src/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Sebastian Bergmann", @@ -16428,9 +15210,7 @@ ], "description": "Simple template engine.", "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], + "keywords": ["template"], "support": { "issues": "https://github.com/sebastianbergmann/php-text-template/issues", "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", @@ -16471,14 +15251,10 @@ } }, "autoload": { - "classmap": [ - "src/" - ] + "classmap": ["src/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Sebastian Bergmann", @@ -16488,9 +15264,7 @@ ], "description": "Utility class for timing", "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], + "keywords": ["timer"], "support": { "issues": "https://github.com/sebastianbergmann/php-timer/issues", "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0" @@ -16548,9 +15322,7 @@ "suggest": { "ext-soap": "To be able to generate mocks based on WSDL files" }, - "bin": [ - "phpunit" - ], + "bin": ["phpunit"], "type": "library", "extra": { "branch-alias": { @@ -16558,17 +15330,11 @@ } }, "autoload": { - "files": [ - "src/Framework/Assert/Functions.php" - ], - "classmap": [ - "src/" - ] + "files": ["src/Framework/Assert/Functions.php"], + "classmap": ["src/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Sebastian Bergmann", @@ -16578,11 +15344,7 @@ ], "description": "The PHP Unit Testing framework.", "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], + "keywords": ["phpunit", "testing", "xunit"], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", @@ -16631,14 +15393,10 @@ } }, "autoload": { - "classmap": [ - "src/" - ] + "classmap": ["src/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Sebastian Bergmann", @@ -16687,14 +15445,10 @@ } }, "autoload": { - "classmap": [ - "src/" - ] + "classmap": ["src/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Sebastian Bergmann", @@ -16743,14 +15497,10 @@ } }, "autoload": { - "classmap": [ - "src/" - ] + "classmap": ["src/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Sebastian Bergmann", @@ -16802,14 +15552,10 @@ } }, "autoload": { - "classmap": [ - "src/" - ] + "classmap": ["src/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Sebastian Bergmann", @@ -16830,11 +15576,7 @@ ], "description": "Provides the functionality to compare PHP values for equality", "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], + "keywords": ["comparator", "compare", "equality"], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", "security": "https://github.com/sebastianbergmann/comparator/security/policy", @@ -16876,14 +15618,10 @@ } }, "autoload": { - "classmap": [ - "src/" - ] + "classmap": ["src/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Sebastian Bergmann", @@ -16934,14 +15672,10 @@ } }, "autoload": { - "classmap": [ - "src/" - ] + "classmap": ["src/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Sebastian Bergmann", @@ -16954,12 +15688,7 @@ ], "description": "Diff implementation", "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" - ], + "keywords": ["diff", "udiff", "unidiff", "unified diff"], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", "security": "https://github.com/sebastianbergmann/diff/security/policy", @@ -17003,14 +15732,10 @@ } }, "autoload": { - "classmap": [ - "src/" - ] + "classmap": ["src/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Sebastian Bergmann", @@ -17019,11 +15744,7 @@ ], "description": "Provides functionality to handle HHVM/PHP environments", "homepage": "https://github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ], + "keywords": ["Xdebug", "environment", "hhvm"], "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", "security": "https://github.com/sebastianbergmann/environment/security/policy", @@ -17066,14 +15787,10 @@ } }, "autoload": { - "classmap": [ - "src/" - ] + "classmap": ["src/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Sebastian Bergmann", @@ -17098,10 +15815,7 @@ ], "description": "Provides the functionality to export PHP variables for visualization", "homepage": "https://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], + "keywords": ["export", "exporter"], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", "security": "https://github.com/sebastianbergmann/exporter/security/policy", @@ -17145,14 +15859,10 @@ } }, "autoload": { - "classmap": [ - "src/" - ] + "classmap": ["src/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Sebastian Bergmann", @@ -17161,9 +15871,7 @@ ], "description": "Snapshotting of global state", "homepage": "http://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], + "keywords": ["global state"], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", "security": "https://github.com/sebastianbergmann/global-state/security/policy", @@ -17205,14 +15913,10 @@ } }, "autoload": { - "classmap": [ - "src/" - ] + "classmap": ["src/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Sebastian Bergmann", @@ -17264,14 +15968,10 @@ } }, "autoload": { - "classmap": [ - "src/" - ] + "classmap": ["src/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Sebastian Bergmann", @@ -17319,14 +16019,10 @@ } }, "autoload": { - "classmap": [ - "src/" - ] + "classmap": ["src/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Sebastian Bergmann", @@ -17374,14 +16070,10 @@ } }, "autoload": { - "classmap": [ - "src/" - ] + "classmap": ["src/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Sebastian Bergmann", @@ -17437,14 +16129,10 @@ } }, "autoload": { - "classmap": [ - "src/" - ] + "classmap": ["src/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Sebastian Bergmann", @@ -17490,14 +16178,10 @@ } }, "autoload": { - "classmap": [ - "src/" - ] + "classmap": ["src/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Sebastian Bergmann", @@ -17549,9 +16233,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Freek Van de Herten", @@ -17562,10 +16244,7 @@ ], "description": "A better backtrace", "homepage": "https://github.com/spatie/backtrace", - "keywords": [ - "Backtrace", - "spatie" - ], + "keywords": ["Backtrace", "spatie"], "support": { "source": "https://github.com/spatie/backtrace/tree/1.5.3" }, @@ -17620,25 +16299,16 @@ } }, "autoload": { - "files": [ - "src/helpers.php" - ], + "files": ["src/helpers.php"], "psr-4": { "Spatie\\FlareClient\\": "src" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "description": "Send PHP errors to Flare", "homepage": "https://github.com/spatie/flare-client-php", - "keywords": [ - "exception", - "flare", - "reporting", - "spatie" - ], + "keywords": ["exception", "flare", "reporting", "spatie"], "support": { "issues": "https://github.com/spatie/flare-client-php/issues", "source": "https://github.com/spatie/flare-client-php/tree/1.4.3" @@ -17702,9 +16372,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Spatie", @@ -17714,12 +16382,7 @@ ], "description": "A beautiful error page for PHP applications.", "homepage": "https://flareapp.io/ignition", - "keywords": [ - "error", - "flare", - "laravel", - "page" - ], + "keywords": ["error", "flare", "laravel", "page"], "support": { "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction", "forum": "https://twitter.com/flareappio", @@ -17786,17 +16449,13 @@ } }, "autoload": { - "files": [ - "src/helpers.php" - ], + "files": ["src/helpers.php"], "psr-4": { "Spatie\\LaravelIgnition\\": "src" } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Spatie", @@ -17806,12 +16465,7 @@ ], "description": "A beautiful error page for Laravel applications.", "homepage": "https://flareapp.io/ignition", - "keywords": [ - "error", - "flare", - "laravel", - "page" - ], + "keywords": ["error", "flare", "laravel", "page"], "support": { "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction", "forum": "https://twitter.com/flareappio", @@ -17857,9 +16511,7 @@ "type": "phpstan-extension", "extra": { "phpstan": { - "includes": [ - "extension.neon" - ] + "includes": ["extension.neon"] } }, "autoload": { @@ -17868,9 +16520,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Michal Špaček", @@ -17879,9 +16529,7 @@ } ], "description": "Stripe SDK extension for PHPStan", - "keywords": [ - "static analysis" - ], + "keywords": ["static analysis"], "support": { "issues": "https://github.com/spaze/phpstan-stripe/issues", "source": "https://github.com/spaze/phpstan-stripe/tree/v3.1.0" @@ -17916,20 +16564,14 @@ } }, "autoload": { - "files": [ - "bootstrap.php" - ], + "files": ["bootstrap.php"], "psr-4": { "Symfony\\Polyfill\\Php81\\": "" }, - "classmap": [ - "Resources/stubs" - ] + "classmap": ["Resources/stubs"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Nicolas Grekas", @@ -17942,12 +16584,7 @@ ], "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], + "keywords": ["compatibility", "polyfill", "portable", "shim"], "support": { "source": "https://github.com/symfony/polyfill-php81/tree/v1.28.0" }, @@ -17990,14 +16627,10 @@ "psr-4": { "Symfony\\Component\\Stopwatch\\": "" }, - "exclude-from-classmap": [ - "/Tests/" - ] + "exclude-from-classmap": ["/Tests/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], + "license": ["MIT"], "authors": [ { "name": "Fabien Potencier", @@ -18051,14 +16684,10 @@ }, "type": "library", "autoload": { - "classmap": [ - "src/" - ] + "classmap": ["src/"] }, "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], + "license": ["BSD-3-Clause"], "authors": [ { "name": "Arne Blankerts", diff --git a/config/ninja.php b/config/ninja.php index cf8da90026ff..3f651df73213 100644 --- a/config/ninja.php +++ b/config/ninja.php @@ -17,8 +17,8 @@ return [ 'require_https' => env('REQUIRE_HTTPS', true), 'app_url' => rtrim(env('APP_URL', ''), '/'), 'app_domain' => env('APP_DOMAIN', 'invoicing.co'), - 'app_version' => env('APP_VERSION', '5.7.59'), - 'app_tag' => env('APP_TAG', '5.7.59'), + 'app_version' => env('APP_VERSION', '5.7.62'), + 'app_tag' => env('APP_TAG', '5.7.62'), 'minimum_client_version' => '5.0.16', 'terms_version' => '1.0.1', 'api_secret' => env('API_SECRET', false), diff --git a/phpstan.neon b/phpstan.neon index a9ed25ec5812..6f2c4251a087 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -28,4 +28,5 @@ parameters: - '#Array has 2 duplicate keys with value#' - '#Call to an undefined method#' - '#makeHidden#' - - '#Socialite#' \ No newline at end of file + - '#Socialite#' + - '#Access to protected property#' \ No newline at end of file diff --git a/resources/views/portal/ninja2020/gateways/paypal/pay.blade.php b/resources/views/portal/ninja2020/gateways/paypal/pay.blade.php index c94550d3f331..0828d552a248 100644 --- a/resources/views/portal/ninja2020/gateways/paypal/pay.blade.php +++ b/resources/views/portal/ninja2020/gateways/paypal/pay.blade.php @@ -28,13 +28,13 @@ @endsection @push('footer') - +
@endpush \ No newline at end of file diff --git a/tests/Feature/Scheduler/SchedulerTest.php b/tests/Feature/Scheduler/SchedulerTest.php index 56b70ab5c230..861a2111bd19 100644 --- a/tests/Feature/Scheduler/SchedulerTest.php +++ b/tests/Feature/Scheduler/SchedulerTest.php @@ -445,17 +445,11 @@ class SchedulerTest extends TestCase ]; $response = false; - - try { - $response = $this->withHeaders([ - 'X-API-SECRET' => config('ninja.api_secret'), - 'X-API-TOKEN' => $this->token, - ])->postJson('/api/v1/task_schedulers', $data); - } catch (ValidationException $e) { - $message = json_decode($e->validator->getMessageBag(), 1); - nlog($message); - } - + $response = $this->withHeaders([ + 'X-API-SECRET' => config('ninja.api_secret'), + 'X-API-TOKEN' => $this->token, + ])->postJson('/api/v1/task_schedulers', $data); + $response->assertStatus(200); $data = $response->json(); @@ -509,19 +503,13 @@ class SchedulerTest extends TestCase $response = false; - try { - $response = $this->withHeaders([ - 'X-API-SECRET' => config('ninja.api_secret'), - 'X-API-TOKEN' => $this->token, - ])->postJson('/api/v1/task_schedulers', $data); - } catch (ValidationException $e) { - $message = json_decode($e->validator->getMessageBag(), 1); - nlog($message); - } - + $response = $this->withHeaders([ + 'X-API-SECRET' => config('ninja.api_secret'), + 'X-API-TOKEN' => $this->token, + ])->postJson('/api/v1/task_schedulers', $data); + $response->assertStatus(200); - - + $data = [ 'name' => 'A single Client', 'frequency_id' => RecurringInvoice::FREQUENCY_MONTHLY, diff --git a/tests/Unit/DomainCheckTest.php b/tests/Unit/DomainCheckTest.php index 81bf7fd07757..ccd51be7deb4 100644 --- a/tests/Unit/DomainCheckTest.php +++ b/tests/Unit/DomainCheckTest.php @@ -28,8 +28,20 @@ class DomainCheckTest extends TestCase public function testDomainCheck() { - $this->assertTrue(in_array('yopmail.com', Domains::getDomains())); - $this->assertFalse(in_array('invoiceninja.com', Domains::getDomains())); + $this->assertTrue(in_array('yopmail.com', \App\DataProviders\Domains::getDomains())); + $this->assertFalse(in_array('invoiceninja.com', \App\DataProviders\Domains::getDomains())); } + + public function testSubdomainValidation() + { + $this->assertFalse($this->checker('invoiceninja')); + $this->assertFalse($this->checker('hello')); + $this->assertTrue($this->checker('nasty.pasty')); + } + + public function checker($subdomain) + { + return (!preg_match('/^[A-Za-z0-9](?:[A-Za-z0-9\-]{0,61}[A-Za-z0-9])?$/', $subdomain)); + } }