diff --git a/app/Factory/CloneQuoteToInvoiceFactory.php b/app/Factory/CloneQuoteToInvoiceFactory.php index 4b0eb4f91e62..936ca18c5706 100644 --- a/app/Factory/CloneQuoteToInvoiceFactory.php +++ b/app/Factory/CloneQuoteToInvoiceFactory.php @@ -46,7 +46,14 @@ class CloneQuoteToInvoiceFactory $invoice->date = now()->format('Y-m-d'); $invoice->balance = 0; $invoice->deleted_at = null; - + $invoice->next_send_date = null; + $invoice->reminder1_sent = null; + $invoice->reminder2_sent = null; + $invoice->reminder3_sent = null; + $invoice->reminder_last_sent = null; + $invoice->last_sent_date = null; + $invoice->last_viewed = null; + return $invoice; } } diff --git a/app/Filters/ExpenseFilters.php b/app/Filters/ExpenseFilters.php index 11d4ee46ae26..d5cea4581ee6 100644 --- a/app/Filters/ExpenseFilters.php +++ b/app/Filters/ExpenseFilters.php @@ -36,7 +36,7 @@ class ExpenseFilters extends QueryFilters } return $this->builder->where(function ($query) use ($filter) { - $query->where('expenses.name', 'like', '%'.$filter.'%') + $query->where('expenses.public_notes', 'like', '%'.$filter.'%') ->orWhere('expenses.id_number', 'like', '%'.$filter.'%') ->orWhere('expenses.custom_value1', 'like', '%'.$filter.'%') ->orWhere('expenses.custom_value2', 'like', '%'.$filter.'%') @@ -94,7 +94,10 @@ class ExpenseFilters extends QueryFilters { $sort_col = explode('|', $sort); - return $this->builder->orderBy($sort_col[0], $sort_col[1]); + if(is_array($sort_col) && in_array($sort_col[1], ['asc', 'desc']) && in_array($sort_col[0], ['public_notes', 'date', 'id_number', 'custom_value1', 'custom_value2', 'custom_value3', 'custom_value4'])) + return $this->builder->orderBy($sort_col[0], $sort_col[1]); + + return $this->builder; } /** diff --git a/app/Http/Controllers/Auth/ContactForgotPasswordController.php b/app/Http/Controllers/Auth/ContactForgotPasswordController.php index 184d09475c2b..9481a7d9d277 100644 --- a/app/Http/Controllers/Auth/ContactForgotPasswordController.php +++ b/app/Http/Controllers/Auth/ContactForgotPasswordController.php @@ -60,8 +60,15 @@ class ContactForgotPasswordController extends Controller { $account_id = $request->has('account_id') ? $request->get('account_id') : 1; $account = Account::find($account_id); - $company = $account->companies->first(); + if($request->has('company_key')) + $company = Company::where('company_key', $request->input('company_key'))->first(); + else + $company = $account->companies->first(); + + if(!$account) + $account = Account::first(); + return $this->render('auth.passwords.request', [ 'title' => 'Client Password Reset', 'passwordEmailRoute' => 'client.password.email', @@ -90,7 +97,9 @@ class ContactForgotPasswordController extends Controller // $user = MultiDB::hasContact($request->input('email')); $company = Company::where('company_key', $request->input('company_key'))->first(); - $contact = MultiDB::findContact(['company_id' => $company->id, 'email' => $request->input('email')]); + //$contact = MultiDB::findContact(['company_id' => $company->id, 'email' => $request->input('email')]); + nlog(['company_id' => $company->id, 'email' => $request->input('email')]); + $contact = ClientContact::where(['company_id' => $company->id, 'email' => $request->input('email')])->first(); $response = false; diff --git a/app/Http/Controllers/BaseController.php b/app/Http/Controllers/BaseController.php index 938b69ed3fb3..716d0deb2c59 100644 --- a/app/Http/Controllers/BaseController.php +++ b/app/Http/Controllers/BaseController.php @@ -255,7 +255,7 @@ class BaseController extends Controller $query->where('expenses.user_id', $user->id)->orWhere('expenses.assigned_user_id', $user->id); }, 'company.groups' => function ($query) use ($updated_at, $user) { - $query->where('updated_at', '>=', $updated_at)->with('documents'); + $query->whereNotNull('updated_at')->with('documents'); // if(!$user->isAdmin()) // $query->where('group_settings.user_id', $user->id); @@ -275,7 +275,7 @@ class BaseController extends Controller }, 'company.payment_terms'=> function ($query) use ($updated_at, $user) { - $query->where('updated_at', '>=', $updated_at); + $query->whereNotNull('updated_at'); if(!$user->isAdmin()) $query->where('payment_terms.user_id', $user->id); @@ -346,7 +346,6 @@ class BaseController extends Controller }, 'company.subscriptions'=> function ($query) use($updated_at, $user) { - // $query->where('updated_at', '>=', $updated_at); $query->whereNotNull('updated_at'); if(!$user->isAdmin()) diff --git a/app/Http/Controllers/ClientPortal/DocumentController.php b/app/Http/Controllers/ClientPortal/DocumentController.php index 54d25ea99d90..fe48891b05bf 100644 --- a/app/Http/Controllers/ClientPortal/DocumentController.php +++ b/app/Http/Controllers/ClientPortal/DocumentController.php @@ -15,6 +15,7 @@ namespace App\Http\Controllers\ClientPortal; use App\Http\Controllers\Controller; use App\Http\Requests\ClientPortal\Documents\ShowDocumentRequest; use App\Http\Requests\Document\DownloadMultipleDocumentsRequest; +use App\Libraries\MultiDB; use App\Models\Document; use App\Utils\TempFile; use App\Utils\Traits\MakesHash; @@ -55,6 +56,8 @@ class DocumentController extends Controller public function publicDownload(string $document_hash) { + MultiDB::documentFindAndSetDb($document_hash); + $document = Document::where('hash', $document_hash)->firstOrFail(); $headers = []; diff --git a/app/Http/Controllers/ClientPortal/InvitationController.php b/app/Http/Controllers/ClientPortal/InvitationController.php index 750af7ee433a..335a31f2b413 100644 --- a/app/Http/Controllers/ClientPortal/InvitationController.php +++ b/app/Http/Controllers/ClientPortal/InvitationController.php @@ -71,6 +71,8 @@ class InvitationController extends Controller if(!in_array($entity, ['invoice', 'credit', 'quote', 'recurring_invoice'])) return response()->json(['message' => 'Invalid resource request']); + $is_silent = 'false'; + $key = $entity.'_id'; $entity_obj = 'App\Models\\'.ucfirst(Str::camel($entity)).'Invitation'; @@ -111,8 +113,16 @@ class InvitationController extends Controller $this->fireEntityViewedEvent($invitation, $entity); } + else{ + $is_silent = 'true'; + + return redirect()->route('client.'.$entity.'.show', [$entity => $this->encodePrimaryKey($invitation->{$key}), 'silent' => $is_silent]); + + } return redirect()->route('client.'.$entity.'.show', [$entity => $this->encodePrimaryKey($invitation->{$key})]); + + } private function fireEntityViewedEvent($invitation, $entity_string) diff --git a/app/Http/Controllers/ClientPortal/NinjaPlanController.php b/app/Http/Controllers/ClientPortal/NinjaPlanController.php index c9047f7ba68b..ba817d4b5720 100644 --- a/app/Http/Controllers/ClientPortal/NinjaPlanController.php +++ b/app/Http/Controllers/ClientPortal/NinjaPlanController.php @@ -71,7 +71,8 @@ class NinjaPlanController extends Controller { //harvest the current plan $data = []; - + $data['late_invoice'] = false; + if(MultiDB::findAndSetDbByAccountKey(Auth::guard('contact')->user()->client->custom_value2)) { $account = Account::where('key', Auth::guard('contact')->user()->client->custom_value2)->first(); diff --git a/app/Http/Livewire/DocumentsTable.php b/app/Http/Livewire/DocumentsTable.php index 73fee5be016e..6fb8bd644e87 100644 --- a/app/Http/Livewire/DocumentsTable.php +++ b/app/Http/Livewire/DocumentsTable.php @@ -74,7 +74,7 @@ class DocumentsTable extends Component break; case 'expenses': - $this->query = $this->expenses(); + // $this->query = $this->expenses(); break; case 'invoices': diff --git a/app/Http/Livewire/RequiredClientInfo.php b/app/Http/Livewire/RequiredClientInfo.php index 71f0ac4f5733..06d3915fc8c8 100644 --- a/app/Http/Livewire/RequiredClientInfo.php +++ b/app/Http/Livewire/RequiredClientInfo.php @@ -60,7 +60,7 @@ class RequiredClientInfo extends Component 'contact_first_name' => 'first_name', 'contact_last_name' => 'last_name', - // 'contact_email' => 'email', + 'contact_email' => 'email', // 'contact_phone' => 'phone', ]; diff --git a/app/Http/Middleware/SetDomainNameDb.php b/app/Http/Middleware/SetDomainNameDb.php index ab49e9ef15dd..8d035f04af9a 100644 --- a/app/Http/Middleware/SetDomainNameDb.php +++ b/app/Http/Middleware/SetDomainNameDb.php @@ -49,7 +49,7 @@ class SetDomainNameDb ]; if($company = MultiDB::findAndSetDbByDomain($query)){ - $request->request->add(['account_id' => $company->account_id]); + $request->request->add(['account_id' => $company->account_id, 'company_key' => $company->company_key]); } else { @@ -71,7 +71,7 @@ class SetDomainNameDb ]; if($company = MultiDB::findAndSetDbByDomain($query)){ - $request->request->add(['account_id' => $company->account_id]); + $request->request->add(['account_id' => $company->account_id, 'company_key' => $company->company_key]); } else { diff --git a/app/Http/Requests/ClientPortal/Subscriptions/ShowPlanSwitchRequest.php b/app/Http/Requests/ClientPortal/Subscriptions/ShowPlanSwitchRequest.php index 4c05a0fbab6f..0764ad47eeac 100644 --- a/app/Http/Requests/ClientPortal/Subscriptions/ShowPlanSwitchRequest.php +++ b/app/Http/Requests/ClientPortal/Subscriptions/ShowPlanSwitchRequest.php @@ -17,6 +17,7 @@ class ShowPlanSwitchRequest extends FormRequest */ public function authorize() { + return (bool)$this->recurring_invoice->subscription->allow_plan_changes; } diff --git a/app/Http/Requests/Company/StoreCompanyRequest.php b/app/Http/Requests/Company/StoreCompanyRequest.php index 1c8fa3b3d82c..fbb254e1ac0c 100644 --- a/app/Http/Requests/Company/StoreCompanyRequest.php +++ b/app/Http/Requests/Company/StoreCompanyRequest.php @@ -81,6 +81,9 @@ class StoreCompanyRequest extends Request } } + if(array_key_exists('portal_domain', $input)) + $input['portal_domain'] = strtolower($input['portal_domain']); + $this->replace($input); } } diff --git a/app/Http/Requests/Company/UpdateCompanyRequest.php b/app/Http/Requests/Company/UpdateCompanyRequest.php index d89561baeef6..59f64e06946b 100644 --- a/app/Http/Requests/Company/UpdateCompanyRequest.php +++ b/app/Http/Requests/Company/UpdateCompanyRequest.php @@ -68,8 +68,10 @@ class UpdateCompanyRequest extends Request { $input = $this->all(); - if(Ninja::isHosted() && array_key_exists('portal_domain', $input) && strlen($input['portal_domain']) > 1) + if(Ninja::isHosted() && array_key_exists('portal_domain', $input) && strlen($input['portal_domain']) > 1){ $input['portal_domain'] = $this->addScheme($input['portal_domain']); + $input['portal_domain'] = strtolower($input['portal_domain']); + } if (array_key_exists('settings', $input)) { $input['settings'] = $this->filterSaveableSettings($input['settings']); diff --git a/app/Import/Transformers/BaseTransformer.php b/app/Import/Transformers/BaseTransformer.php index f2bdb227d05e..1e0a5c7ff0a2 100644 --- a/app/Import/Transformers/BaseTransformer.php +++ b/app/Import/Transformers/BaseTransformer.php @@ -62,20 +62,30 @@ class BaseTransformer public function getClient($client_name, $client_email) { $clients = $this->maps['company']->clients; - $clients = $clients->where( 'id_number', $client_name ); + $client_id_search = $clients->where( 'id_number', $client_name ); - if ( $clients->count() >= 1 ) { - return $clients->first()->id; + if ( $client_id_search->count() >= 1 ) { + return $client_id_search->first()->id; + nlog("found via id number"); } + $client_name_search = $clients->where( 'name', $client_name ); + + if ( $client_name_search->count() >= 1 ) { + return $client_name_search->first()->id; + nlog("found via name"); + } + if ( ! empty( $client_email ) ) { $contacts = ClientContact::where( 'company_id', $this->maps['company']->id ) ->where( 'email', $client_email ); if ( $contacts->count() >= 1 ) { return $contacts->first()->client_id; +nlog("found via contact"); } } +nlog("did not find client"); return null; } diff --git a/app/Import/Transformers/Csv/InvoiceTransformer.php b/app/Import/Transformers/Csv/InvoiceTransformer.php index 9e3db2db90e6..2e4ed09841a1 100644 --- a/app/Import/Transformers/Csv/InvoiceTransformer.php +++ b/app/Import/Transformers/Csv/InvoiceTransformer.php @@ -92,7 +92,7 @@ class InvoiceTransformer extends BaseTransformer { 'amount' => $this->getFloat( $invoice_data, 'invoice.amount' ), ], ]; - } elseif ( isset( $transformed['amount'] ) && isset( $transformed['balance'] ) ) { + } elseif ( isset( $transformed['amount'] ) && isset( $transformed['balance'] ) && ($transformed['amount'] != $transformed['balance'])) { $transformed['payments'] = [ [ 'date' => isset( $invoice_data['payment.date'] ) ? date( 'Y-m-d', strtotime( $invoice_data['payment.date'] ) ) : date( 'y-m-d' ), @@ -126,6 +126,8 @@ class InvoiceTransformer extends BaseTransformer { } $transformed['line_items'] = $line_items; +nlog($transformed); + return $transformed; } } diff --git a/app/Jobs/Cron/AutoBill.php b/app/Jobs/Cron/AutoBill.php index cb3492c03f0d..22398f69748c 100644 --- a/app/Jobs/Cron/AutoBill.php +++ b/app/Jobs/Cron/AutoBill.php @@ -53,7 +53,7 @@ class AutoBill nlog("autobill {$this->invoice->id}"); - $this->invoice->service()->autoBill()->save(); + $this->invoice->service()->autoBill(); } catch(\Exception $e) { diff --git a/app/Jobs/Entity/CreateEntityPdf.php b/app/Jobs/Entity/CreateEntityPdf.php index b7660e7bcb99..41f788111f03 100644 --- a/app/Jobs/Entity/CreateEntityPdf.php +++ b/app/Jobs/Entity/CreateEntityPdf.php @@ -115,9 +115,6 @@ class CreateEntityPdf implements ShouldQueue /* Set customized translations _NOW_ */ $t->replace(Ninja::transformTranslations($this->client->getMergedSettings())); - $translate = microtime(true); - // nlog("Translate ". $translate - $start); - if (config('ninja.phantomjs_pdf_generation') || config('ninja.pdf_generator') == 'phantom') { return (new Phantom)->generate($this->invitation); } @@ -142,9 +139,6 @@ class CreateEntityPdf implements ShouldQueue $entity_design_id = $this->entity->design_id ? $this->entity->design_id : $this->decodePrimaryKey($this->client->getSetting($entity_design_id)); - // if(!$this->company->account->hasFeature(Account::FEATURE_DIFFERENT_DESIGNS)) - // $entity_design_id = 2; - $design = Design::find($entity_design_id); /* Catch all in case migration doesn't pass back a valid design */ @@ -153,9 +147,6 @@ class CreateEntityPdf implements ShouldQueue $html = new HtmlEngine($this->invitation); - $design_time = microtime(true); - // nlog("Design ". $design_time - $translate); - if ($design->is_custom) { $options = [ 'custom_partials' => json_decode(json_encode($design->design), true) @@ -167,9 +158,6 @@ class CreateEntityPdf implements ShouldQueue $variables = $html->generateLabelsAndValues(); - $labels_time = microtime(true); - // nlog("Labels ". $labels_time - $design_time); - $state = [ 'template' => $template->elements([ 'client' => $this->client, @@ -192,10 +180,6 @@ class CreateEntityPdf implements ShouldQueue ->design($template) ->build(); - - $template_time = microtime(true); - // nlog("Template Build ". $template_time - $labels_time); - $pdf = null; try { @@ -215,10 +199,6 @@ class CreateEntityPdf implements ShouldQueue info($maker->getCompiledHTML()); } - - $pdf_time = microtime(true); - // nlog("PDF time " . $pdf_time - $template_time); - if ($pdf) { try{ diff --git a/app/Jobs/Entity/CreateRawPdf.php b/app/Jobs/Entity/CreateRawPdf.php index c2c28b0c23f1..585deb9dbe35 100644 --- a/app/Jobs/Entity/CreateRawPdf.php +++ b/app/Jobs/Entity/CreateRawPdf.php @@ -188,9 +188,9 @@ class CreateRawPdf implements ShouldQueue nlog(print_r($e->getMessage(), 1)); } - // if (config('ninja.log_pdf_html')) { + if (config('ninja.log_pdf_html')) { info($maker->getCompiledHTML()); - // } + } if ($pdf) return $pdf; diff --git a/app/Jobs/Entity/EmailEntity.php b/app/Jobs/Entity/EmailEntity.php index e2683196f57e..53d4dfbd9e3c 100644 --- a/app/Jobs/Entity/EmailEntity.php +++ b/app/Jobs/Entity/EmailEntity.php @@ -112,6 +112,9 @@ class EmailEntity implements ShouldQueue App::setLocale($this->invitation->contact->preferredLocale()); $t->replace(Ninja::transformTranslations($this->settings)); + /* Mark entity sent */ + $this->entity->service()->markSent()->save(); + $nmo = new NinjaMailerObject; $nmo->mailable = new TemplateEmail($this->email_entity_builder, $this->invitation->contact, $this->invitation); $nmo->company = $this->company; @@ -124,8 +127,7 @@ class EmailEntity implements ShouldQueue NinjaMailerJob::dispatchNow($nmo); - /* Mark entity sent */ - $this->entity->service()->markSent()->save(); + } private function resolveEntityString() :string diff --git a/app/Jobs/Import/CSVImport.php b/app/Jobs/Import/CSVImport.php index d4e0dcf56c0e..27626ad9f484 100644 --- a/app/Jobs/Import/CSVImport.php +++ b/app/Jobs/Import/CSVImport.php @@ -332,18 +332,21 @@ class CSVImport implements ShouldQueue { $invoice = $invoice->service()->markViewed()->save(); } - if ( $invoice->status_id === Invoice::STATUS_SENT ) { + if( $invoice->status_id === Invoice::STATUS_DRAFT ){ + + } + elseif ( $invoice->status_id === Invoice::STATUS_SENT ) { $invoice = $invoice->service()->markSent()->save(); } - - if ( $invoice->status_id <= Invoice::STATUS_SENT && $invoice->amount > 0 ) { - if ( $invoice->balance < $invoice->amount ) { - $invoice->status_id = Invoice::STATUS_PARTIAL; - $invoice->save(); - } elseif ( $invoice->balance <= 0 ) { + elseif ( $invoice->status_id <= Invoice::STATUS_SENT && $invoice->amount > 0 ) { + if ( $invoice->balance <= 0 ) { $invoice->status_id = Invoice::STATUS_PAID; $invoice->save(); } + elseif ( $invoice->balance != $invoice->amount ) { + $invoice->status_id = Invoice::STATUS_PARTIAL; + $invoice->save(); + } } diff --git a/app/Jobs/Mail/PaymentFailedMailer.php b/app/Jobs/Mail/PaymentFailedMailer.php index da316645ae98..9bdeafd63816 100644 --- a/app/Jobs/Mail/PaymentFailedMailer.php +++ b/app/Jobs/Mail/PaymentFailedMailer.php @@ -23,6 +23,7 @@ use App\Models\Company; use App\Models\Invoice; use App\Models\PaymentHash; use App\Models\User; +use App\Utils\Traits\MakesHash; use App\Utils\Traits\Notifications\UserNotifies; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; @@ -35,7 +36,7 @@ use Illuminate\Support\Facades\Mail; class PaymentFailedMailer implements ShouldQueue { - use Dispatchable, InteractsWithQueue, Queueable, SerializesModels, UserNotifies; + use Dispatchable, InteractsWithQueue, Queueable, SerializesModels, UserNotifies, MakesHash; public ?PaymentHash $payment_hash; @@ -80,7 +81,7 @@ class PaymentFailedMailer implements ShouldQueue if($this->payment_hash){ $amount = array_sum(array_column($this->payment_hash->invoices(), 'amount')) + $this->payment_hash->fee_total; - $invoice = Invoice::whereIn('id', $this->transformKeys(array_column($payment_hash->invoices(), 'invoice_id')))->withTrashed()->first(); + $invoice = Invoice::whereIn('id', $this->transformKeys(array_column($this->payment_hash->invoices(), 'invoice_id')))->withTrashed()->first(); } //iterate through company_users diff --git a/app/Jobs/RecurringInvoice/SendRecurring.php b/app/Jobs/RecurringInvoice/SendRecurring.php index b5cd123ce6ba..46ba3400fc3e 100644 --- a/app/Jobs/RecurringInvoice/SendRecurring.php +++ b/app/Jobs/RecurringInvoice/SendRecurring.php @@ -145,7 +145,7 @@ class SendRecurring implements ShouldQueue if ($invoice->client->getSetting('auto_bill_date') == 'on_send_date' && $invoice->auto_bill_enabled) { nlog("attempting to autobill {$invoice->number}"); - $invoice->service()->autoBill()->save(); + $invoice->service()->autoBill(); } elseif($invoice->client->getSetting('auto_bill_date') == 'on_due_date' && $invoice->auto_bill_enabled) { @@ -153,7 +153,7 @@ class SendRecurring implements ShouldQueue if($invoice->due_date && Carbon::parse($invoice->due_date)->startOfDay()->lte(now()->startOfDay())) { nlog("attempting to autobill {$invoice->number}"); - $invoice->service()->autoBill()->save(); + $invoice->service()->autoBill(); } diff --git a/app/Mail/Engine/CreditEmailEngine.php b/app/Mail/Engine/CreditEmailEngine.php index 68bd72ebbc22..ad9645b6c8f7 100644 --- a/app/Mail/Engine/CreditEmailEngine.php +++ b/app/Mail/Engine/CreditEmailEngine.php @@ -69,6 +69,9 @@ class CreditEmailEngine extends BaseEmailEngine null, $this->client->locale() ); + + $body_template .= '
$view_button
'; + } if (is_array($this->template_data) && array_key_exists('subject', $this->template_data) && strlen($this->template_data['subject']) > 0) { diff --git a/app/Mail/Engine/InvoiceEmailEngine.php b/app/Mail/Engine/InvoiceEmailEngine.php index afe907d348b6..dad4b78f0f02 100644 --- a/app/Mail/Engine/InvoiceEmailEngine.php +++ b/app/Mail/Engine/InvoiceEmailEngine.php @@ -74,6 +74,9 @@ class InvoiceEmailEngine extends BaseEmailEngine null, $this->client->locale() ); + + $body_template .= '
$view_button
'; + } if (is_array($this->template_data) && array_key_exists('subject', $this->template_data) && strlen($this->template_data['subject']) > 0) { diff --git a/app/Mail/Engine/QuoteEmailEngine.php b/app/Mail/Engine/QuoteEmailEngine.php index 2d33077210b0..98c4b394c400 100644 --- a/app/Mail/Engine/QuoteEmailEngine.php +++ b/app/Mail/Engine/QuoteEmailEngine.php @@ -44,6 +44,7 @@ class QuoteEmailEngine extends BaseEmailEngine public function build() { + App::forgetInstance('translator'); $t = app('translator'); $t->replace(Ninja::transformTranslations($this->client->getMergedSettings())); @@ -56,21 +57,25 @@ class QuoteEmailEngine extends BaseEmailEngine } else { $body_template = $this->client->getSetting('email_template_'.$this->reminder_template); } - + /* Use default translations if a custom message has not been set*/ if (iconv_strlen($body_template) == 0) { + $body_template = trans( 'texts.quote_message', [ 'quote' => $this->quote->number, 'company' => $this->quote->company->present()->name(), - 'amount' => Number::formatMoney($this->quote->balance, $this->client), + 'amount' => Number::formatMoney($this->quote->amount, $this->client), ], null, $this->client->locale() ); + + $body_template .= '
$view_button
'; } + if (is_array($this->template_data) && array_key_exists('subject', $this->template_data) && strlen($this->template_data['subject']) > 0) { $subject_template = $this->template_data['subject']; } else { @@ -99,7 +104,6 @@ class QuoteEmailEngine extends BaseEmailEngine ->setViewText(ctrans('texts.view_quote')) ->setInvitation($this->invitation); - if ($this->client->getSetting('pdf_email_attachment') !== false && $this->quote->company->account->hasFeature(Account::FEATURE_PDF_ATTACHMENT)) { if(Ninja::isHosted()) diff --git a/app/Mail/TemplateEmail.php b/app/Mail/TemplateEmail.php index 4f8e221b0634..2e7e589e9325 100644 --- a/app/Mail/TemplateEmail.php +++ b/app/Mail/TemplateEmail.php @@ -52,7 +52,8 @@ class TemplateEmail extends Mailable public function build() { - $template_name = 'email.template.'.$this->build_email->getTemplate(); + + $template_name = 'email.template.'.$this->build_email->getTemplate(); if ($this->build_email->getTemplate() == 'light' || $this->build_email->getTemplate() == 'dark') { $template_name = 'email.template.client'; diff --git a/app/Models/Quote.php b/app/Models/Quote.php index b028e3e3e39d..b5d105313913 100644 --- a/app/Models/Quote.php +++ b/app/Models/Quote.php @@ -75,6 +75,7 @@ class Quote extends BaseModel 'assigned_user_id', 'exchange_rate', 'subscription_id', + 'uses_inclusive_taxes', ]; protected $casts = [ diff --git a/app/PaymentDrivers/BaseDriver.php b/app/PaymentDrivers/BaseDriver.php index bd29febe3044..0a52575631f0 100644 --- a/app/PaymentDrivers/BaseDriver.php +++ b/app/PaymentDrivers/BaseDriver.php @@ -30,6 +30,7 @@ use App\Models\GatewayType; use App\Models\Invoice; use App\Models\Payment; use App\Models\PaymentHash; +use App\Models\PaymentType; use App\Models\SystemLog; use App\Services\Subscription\SubscriptionService; use App\Utils\Ninja; @@ -226,7 +227,7 @@ class BaseDriver extends AbstractPaymentDriver $_payment = Payment::where('transaction_reference', $data['transaction_reference']) ->where('client_id', $this->client->id) - ->exists(); + ->first(); if($_payment) return $_payment; @@ -262,12 +263,18 @@ class BaseDriver extends AbstractPaymentDriver event('eloquent.created: App\Models\Payment', $payment); - if ($this->client->getSetting('client_online_payment_notification')) + if ($this->client->getSetting('client_online_payment_notification') && in_array($status, [Payment::STATUS_COMPLETED, Payment::STATUS_PENDING + ])) $payment->service()->sendEmail(); + //todo + //catch any payment failures here also and fire a subsequent failure email if necessary? note only need for delayed payment forms + //perhaps this type of functionality should be handled higher up to provide better context? + + event(new PaymentWasCreated($payment, $payment->company, Ninja::eventVars())); - if (property_exists($this->payment_hash->data, 'billing_context')) { + if (property_exists($this->payment_hash->data, 'billing_context') && $status == Payment::STATUS_COMPLETED) { $billing_subscription = \App\Models\Subscription::find($this->payment_hash->data->billing_context->subscription_id); // To access campaign hash => $this->payment_hash->data->billing_context->campaign; diff --git a/app/PaymentDrivers/Braintree/PayPal.php b/app/PaymentDrivers/Braintree/PayPal.php index 6849ebf2f9b8..a58736571ba6 100644 --- a/app/PaymentDrivers/Braintree/PayPal.php +++ b/app/PaymentDrivers/Braintree/PayPal.php @@ -161,7 +161,8 @@ class PayPal SystemLog::CATEGORY_GATEWAY_RESPONSE, SystemLog::EVENT_GATEWAY_FAILURE, SystemLog::TYPE_BRAINTREE, - $this->braintree->client + $this->braintree->client, + $this->braintree->client->company ); throw new PaymentFailed($response->message, 0); diff --git a/app/PaymentDrivers/Mollie/Bancontact.php b/app/PaymentDrivers/Mollie/Bancontact.php index 0a9e26e6be2e..fa87eba8d9b1 100644 --- a/app/PaymentDrivers/Mollie/Bancontact.php +++ b/app/PaymentDrivers/Mollie/Bancontact.php @@ -86,7 +86,9 @@ class Bancontact implements MethodInterface 'webhookUrl' => $this->mollie->company_gateway->webhookUrl(), 'metadata' => [ 'client_id' => $this->mollie->client->hashed_id, - 'hash' => $this->mollie->payment_hash->hash + 'hash' => $this->mollie->payment_hash->hash, + 'gateway_type_id' => GatewayType::BANCONTACT, + 'payment_type_id' => PaymentType::BANCONTACT, ], ]); diff --git a/app/PaymentDrivers/Mollie/BankTransfer.php b/app/PaymentDrivers/Mollie/BankTransfer.php index 41ccb4b5eb58..42cbf8719b3b 100644 --- a/app/PaymentDrivers/Mollie/BankTransfer.php +++ b/app/PaymentDrivers/Mollie/BankTransfer.php @@ -89,7 +89,9 @@ class BankTransfer implements MethodInterface 'webhookUrl' => $this->mollie->company_gateway->webhookUrl(), 'metadata' => [ 'client_id' => $this->mollie->client->hashed_id, - 'hash' => $this->mollie->payment_hash->hash + 'hash' => $this->mollie->payment_hash->hash, + 'gateway_type_id' => GatewayType::BANK_TRANSFER, + 'payment_type_id' => PaymentType::MOLLIE_BANK_TRANSFER, ], ]); diff --git a/app/PaymentDrivers/Mollie/CreditCard.php b/app/PaymentDrivers/Mollie/CreditCard.php index 7efbd17c915c..8a6af3dd2daf 100644 --- a/app/PaymentDrivers/Mollie/CreditCard.php +++ b/app/PaymentDrivers/Mollie/CreditCard.php @@ -114,7 +114,7 @@ class CreditCard 'name' => $this->mollie->client->name, 'email' => $this->mollie->client->present()->email(), 'metadata' => [ - 'id' => $this->mollie->client->hashed_id, + 'id' => $this->mollie->client->hashed_id ], ]); diff --git a/app/PaymentDrivers/Mollie/IDEAL.php b/app/PaymentDrivers/Mollie/IDEAL.php index b3a4ccfa8747..1274087eb532 100644 --- a/app/PaymentDrivers/Mollie/IDEAL.php +++ b/app/PaymentDrivers/Mollie/IDEAL.php @@ -86,7 +86,9 @@ class IDEAL implements MethodInterface 'webhookUrl' => $this->mollie->company_gateway->webhookUrl(), 'metadata' => [ 'client_id' => $this->mollie->client->hashed_id, - 'hash' => $this->mollie->payment_hash->hash + 'hash' => $this->mollie->payment_hash->hash, + 'gateway_type_id' => GatewayType::IDEAL, + 'payment_type_id' => PaymentType::IDEAL, ], ]); diff --git a/app/PaymentDrivers/Mollie/KBC.php b/app/PaymentDrivers/Mollie/KBC.php index 3dbc53772b29..c5a63c275924 100644 --- a/app/PaymentDrivers/Mollie/KBC.php +++ b/app/PaymentDrivers/Mollie/KBC.php @@ -86,7 +86,9 @@ class KBC implements MethodInterface 'webhookUrl' => $this->mollie->company_gateway->webhookUrl(), 'metadata' => [ 'client_id' => $this->mollie->client->hashed_id, - 'hash' => $this->mollie->payment_hash->hash + 'hash' => $this->mollie->payment_hash->hash, + 'gateway_type_id' => GatewayType::KBC, + 'payment_type_id' => PaymentType::KBC, ], ]); diff --git a/app/PaymentDrivers/MolliePaymentDriver.php b/app/PaymentDrivers/MolliePaymentDriver.php index be77b8bef2b5..8f4c72b39832 100644 --- a/app/PaymentDrivers/MolliePaymentDriver.php +++ b/app/PaymentDrivers/MolliePaymentDriver.php @@ -312,14 +312,31 @@ class MolliePaymentDriver extends BaseDriver $client = $record->client; } else{ - nlog("mollie webhook"); - nlog($payment); $client = Client::withTrashed()->find($this->decodePrimaryKey($payment->metadata->client_id)); // sometimes if the user is not returned to the site with a response from Mollie // we may not have a payment record - in these cases we need to re-construct the payment // record from the meta data in the payment hash. + + if($payment && $payment->metadata->payment_hash){ + + /* Harvest Payment Hash*/ + $payment_hash = PaymentHash::where('hash', $payment->metadata->hash)->first(); + + $data = [ + 'gateway_type_id' => $payment->metadata->gateway_type_id, + 'amount' => $amount = array_sum(array_column($payment_hash->invoices(), 'amount')) + $payment_hash->fee_total, + 'payment_type' => $payment->metadata->payment_type_id, + 'transaction_reference' => $payment->id, + ]; + + $record = $this->createPayment( + $data, + $codes[$payment->status] + ); + + } } $message = [ diff --git a/app/PaymentDrivers/Stripe/Charge.php b/app/PaymentDrivers/Stripe/Charge.php index 5984a5c80d6d..351399841c4e 100644 --- a/app/PaymentDrivers/Stripe/Charge.php +++ b/app/PaymentDrivers/Stripe/Charge.php @@ -56,7 +56,6 @@ class Charge if($cgt->gateway_type_id == GatewayType::BANK_TRANSFER) return (new ACH($this->stripe))->tokenBilling($cgt, $payment_hash); - nlog(" DB = ".$this->stripe->client->company->db); $amount = array_sum(array_column($payment_hash->invoices(), 'amount')) + $payment_hash->fee_total; $invoice = Invoice::whereIn('id', $this->transformKeys(array_column($payment_hash->invoices(), 'invoice_id')))->withTrashed()->first(); @@ -119,7 +118,6 @@ class Charge $data['message'] = $e->getMessage(); break; } - $this->stripe->processInternallyFailedPayment($this->stripe, $e); diff --git a/app/PaymentDrivers/Stripe/CreditCard.php b/app/PaymentDrivers/Stripe/CreditCard.php index f89e52688961..1959cc7a05b1 100644 --- a/app/PaymentDrivers/Stripe/CreditCard.php +++ b/app/PaymentDrivers/Stripe/CreditCard.php @@ -123,7 +123,7 @@ class CreditCard $data = [ 'payment_method' => $this->stripe->payment_hash->data->server_response->payment_method, - 'payment_type' => PaymentType::parseCardType(strtolower($stripe_method->card->brand)), + 'payment_type' => PaymentType::parseCardType(strtolower($stripe_method->card->brand)) ?: PaymentType::CREDIT_CARD_OTHER, 'amount' => $this->stripe->convertFromStripeAmount($this->stripe->payment_hash->data->server_response->amount, $this->stripe->client->currency()->precision, $this->stripe->client->currency()), 'transaction_reference' => optional($this->stripe->payment_hash->data->payment_intent->charges->data[0])->id, 'gateway_type_id' => GatewayType::CREDIT_CARD, diff --git a/app/Repositories/TaskRepository.php b/app/Repositories/TaskRepository.php index 9ef63b735b6d..2717f11dc9d5 100644 --- a/app/Repositories/TaskRepository.php +++ b/app/Repositories/TaskRepository.php @@ -54,6 +54,37 @@ class TaskRepository extends BaseRepository $task->status_order = $data['status_order']; } + /*V4 override*/ + if (! empty($data['time_details'])) { + $timeLog = []; + foreach ($data['time_details'] as $detail) { + $startTime = strtotime($detail['start_datetime']); + $endTime = false; + if (! empty($detail['end_datetime'])) { + $endTime = strtotime($detail['end_datetime']); + } else { + $duration = 0; + if (! empty($detail['duration_seconds'])) { + $duration += $detail['duration_seconds']; + } + if (! empty($detail['duration_minutes'])) { + $duration += $detail['duration_minutes'] * 60; + } + if (! empty($detail['duration_hours'])) { + $duration += $detail['duration_hours'] * 60 * 60; + } + if ($duration) { + $endTime = $startTime + $duration; + } + } + $timeLog[] = [$startTime, $endTime]; + if (! $endTime) { + $data['is_running'] = true; + } + } + $data['time_log'] = json_encode($timeLog); + } + if (isset($data['time_log'])) { $time_log = json_decode($data['time_log']); } elseif ($task->time_log) { diff --git a/app/Services/Credit/TriggeredActions.php b/app/Services/Credit/TriggeredActions.php index bf7ef3c05484..28134972af8d 100644 --- a/app/Services/Credit/TriggeredActions.php +++ b/app/Services/Credit/TriggeredActions.php @@ -36,17 +36,6 @@ class TriggeredActions extends AbstractService public function run() { - // if ($this->request->has('auto_bill') && $this->request->input('auto_bill') == 'true') { - // $this->credit = $this->credit->service()->autoBill()->save(); - // } - - // if ($this->request->has('paid') && $this->request->input('paid') == 'true') { - // $this->credit = $this->credit->service()->markPaid()->save(); - // } - - // if ($this->request->has('amount_paid') && is_numeric($this->request->input('amount_paid')) ) { - // $this->credit = $this->credit->service()->applyPaymentAmount($this->request->input('amount_paid'))->save(); - // } if ($this->request->has('send_email') && $this->request->input('send_email') == 'true') { $this->sendEmail(); diff --git a/app/Services/Invoice/AddGatewayFee.php b/app/Services/Invoice/AddGatewayFee.php index a0e169a9f2b6..438fb6f85e03 100644 --- a/app/Services/Invoice/AddGatewayFee.php +++ b/app/Services/Invoice/AddGatewayFee.php @@ -105,7 +105,7 @@ class AddGatewayFee extends AbstractService $invoice_item->quantity = 1; $invoice_item->cost = $gateway_fee; - if ($fees_and_limits = $this->company_gateway->getFeesAndLimits()) { + if ($fees_and_limits = $this->company_gateway->getFeesAndLimits($this->gateway_type_id)) { $invoice_item->tax_rate1 = $fees_and_limits->fee_tax_rate1; $invoice_item->tax_rate2 = $fees_and_limits->fee_tax_rate2; $invoice_item->tax_rate3 = $fees_and_limits->fee_tax_rate3; diff --git a/app/Services/Invoice/AutoBillInvoice.php b/app/Services/Invoice/AutoBillInvoice.php index f1ea59aefc8d..646bbad5a12d 100644 --- a/app/Services/Invoice/AutoBillInvoice.php +++ b/app/Services/Invoice/AutoBillInvoice.php @@ -130,7 +130,7 @@ class AutoBillInvoice extends AbstractService info("Auto Bill payment captured for ".$this->invoice->number); } - return $this->invoice->fresh(); + // return $this->invoice->fresh(); } /** diff --git a/app/Services/Invoice/InvoiceService.php b/app/Services/Invoice/InvoiceService.php index 153e5fd0bf1a..2057b46c5166 100644 --- a/app/Services/Invoice/InvoiceService.php +++ b/app/Services/Invoice/InvoiceService.php @@ -139,6 +139,7 @@ class InvoiceService // $this->invoice = (new UpdateBalance($this->invoice, $balance_adjustment, $is_draft))->run(); if ((bool)$this->invoice->is_deleted !== false) { + nlog($this->invoice->number . " is deleted returning"); return $this; } @@ -245,7 +246,7 @@ class InvoiceService public function autoBill() { - $this->invoice = (new AutoBillInvoice($this->invoice, $this->invoice->company->db))->run(); + (new AutoBillInvoice($this->invoice, $this->invoice->company->db))->run(); return $this; } @@ -483,6 +484,10 @@ class InvoiceService if(!isset($this->invoice->exchange_rate) && $this->invoice->client->currency()->id != (int) $this->invoice->company->settings->currency_id) $this->invoice->exchange_rate = $this->invoice->client->currency()->exchange_rate; + if($settings->counter_number_applied == 'when_saved'){ + $this->invoice->service()->applyNumber()->save(); + } + return $this; } diff --git a/app/Services/Invoice/TriggeredActions.php b/app/Services/Invoice/TriggeredActions.php index d439b0c9b149..cc7de3dc3b4e 100644 --- a/app/Services/Invoice/TriggeredActions.php +++ b/app/Services/Invoice/TriggeredActions.php @@ -37,7 +37,7 @@ class TriggeredActions extends AbstractService public function run() { if ($this->request->has('auto_bill') && $this->request->input('auto_bill') == 'true') { - $this->invoice = $this->invoice->service()->autoBill()->save(); + $this->invoice = $this->invoice->service()->autoBill(); } if ($this->request->has('paid') && $this->request->input('paid') == 'true') { diff --git a/app/Services/Quote/QuoteService.php b/app/Services/Quote/QuoteService.php index a16210bf5be1..dcc4016e802b 100644 --- a/app/Services/Quote/QuoteService.php +++ b/app/Services/Quote/QuoteService.php @@ -124,10 +124,10 @@ class QuoteService } - if ($this->quote->client->getSetting('auto_archive_quote')) { - $quote_repo = new QuoteRepository(); - $quote_repo->archive($this->quote); - } + // if ($this->quote->client->getSetting('auto_archive_quote')) { + // $quote_repo = new QuoteRepository(); + // $quote_repo->archive($this->quote); + // } return $this; } diff --git a/app/Services/Quote/TriggeredActions.php b/app/Services/Quote/TriggeredActions.php index e1ec9a37a00f..fa630d753fe6 100644 --- a/app/Services/Quote/TriggeredActions.php +++ b/app/Services/Quote/TriggeredActions.php @@ -57,7 +57,7 @@ class TriggeredActions extends AbstractService { $reminder_template = $this->quote->calculateTemplate('quote'); - //$reminder_template = 'payment'; + // $reminder_template = 'email_template_quote'; $this->quote->invitations->load('contact.client.country', 'quote.client.country', 'quote.company')->each(function ($invitation) use ($reminder_template) { EmailEntity::dispatch($invitation, $this->quote->company, $reminder_template); diff --git a/app/Services/Subscription/SubscriptionService.php b/app/Services/Subscription/SubscriptionService.php index dad9c094b8c2..5b6e010d73c1 100644 --- a/app/Services/Subscription/SubscriptionService.php +++ b/app/Services/Subscription/SubscriptionService.php @@ -77,8 +77,6 @@ class SubscriptionService $recurring_invoice_repo = new RecurringInvoiceRepository(); $recurring_invoice = $recurring_invoice_repo->save([], $recurring_invoice); - // $recurring_invoice->next_send_date = now()->format('Y-m-d'); - // $recurring_invoice->next_send_date = $recurring_invoice->nextSendDate(); $recurring_invoice->auto_bill = $this->subscription->auto_bill; /* Start the recurring service */ @@ -87,7 +85,6 @@ class SubscriptionService ->save(); //execute any webhooks - $context = [ 'context' => 'recurring_purchase', 'recurring_invoice' => $recurring_invoice->hashed_id, @@ -95,6 +92,7 @@ class SubscriptionService 'client' => $recurring_invoice->client->hashed_id, 'subscription' => $this->subscription->hashed_id, 'contact' => auth('contact')->user()->hashed_id, + 'account_key' => $recurring_invoice->client->custom_value2, ]; $response = $this->triggerWebhook($context); @@ -111,6 +109,7 @@ class SubscriptionService 'invoice' => $this->encodePrimaryKey($payment_hash->fee_invoice_id), 'client' => $invoice->client->hashed_id, 'subscription' => $this->subscription->hashed_id, + 'account_key' => $invoice->client->custom_value2, ]; //execute any webhooks @@ -130,6 +129,7 @@ class SubscriptionService 'contact' => $contact->hashed_id, 'contact_email' => $contact->email, 'client' => $contact->client->hashed_id, + 'account_key' => $contact->client->custom_value2, ]; $response = $this->triggerWebhook($context); @@ -180,6 +180,7 @@ class SubscriptionService 'recurring_invoice' => $recurring_invoice->hashed_id, 'client' => $recurring_invoice->client->hashed_id, 'subscription' => $this->subscription->hashed_id, + 'account_key' => $recurring_invoice->client->custom_value2, ]; //execute any webhooks @@ -452,6 +453,7 @@ class SubscriptionService 'client' => $new_recurring_invoice->client->hashed_id, 'subscription' => $target_subscription->hashed_id, 'contact' => auth('contact')->user()->hashed_id, + 'account_key' => $new_recurring_invoice->client->custom_value2, ]; $response = $this->triggerWebhook($context); @@ -572,6 +574,7 @@ class SubscriptionService 'client' => $recurring_invoice->client->hashed_id, 'subscription' => $this->subscription->hashed_id, 'contact' => auth('contact')->user()->hashed_id, + 'account_key' => $recurring_invoice->client->custom_value2, ]; @@ -768,8 +771,6 @@ class SubscriptionService $response = false; $body = array_merge($context, [ - 'company_key' => $this->subscription->company->company_key, - 'account_key' => $this->subscription->company->account->key, 'db' => $this->subscription->company->db, ]); @@ -921,6 +922,7 @@ class SubscriptionService 'recurring_invoice' => $recurring_invoice->hashed_id, 'client' => $recurring_invoice->client->hashed_id, 'contact' => auth('contact')->user()->hashed_id, + 'account_key' => $recurring_invoice->client->custom_value2, ]; $this->triggerWebhook($context); @@ -1043,6 +1045,7 @@ class SubscriptionService 'client' => $invoice->client->hashed_id, 'contact' => $invoice->client->primary_contact()->first() ? $invoice->client->primary_contact()->first()->hashed_id: $invoice->client->contacts->first()->hashed_id, 'invoice' => $invoice->hashed_id, + 'account_key' => $invoice->client->custom_value2, ]; $response = $this->triggerWebhook($context); diff --git a/composer.lock b/composer.lock index 85f86f3316f1..66c9f665747d 100644 --- a/composer.lock +++ b/composer.lock @@ -323,16 +323,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.204.6", + "version": "3.208.0", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "59d4d6a58ed7da541aa0ed75cc1944f8d6ca2d1c" + "reference": "fef9c7a9b0d65014a40cc7451da9e420e6f0eaa0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/59d4d6a58ed7da541aa0ed75cc1944f8d6ca2d1c", - "reference": "59d4d6a58ed7da541aa0ed75cc1944f8d6ca2d1c", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/fef9c7a9b0d65014a40cc7451da9e420e6f0eaa0", + "reference": "fef9c7a9b0d65014a40cc7451da9e420e6f0eaa0", "shasum": "" }, "require": { @@ -408,9 +408,9 @@ "support": { "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.204.6" + "source": "https://github.com/aws/aws-sdk-php/tree/3.208.0" }, - "time": "2021-11-26T19:18:52+00:00" + "time": "2021-12-02T19:14:25+00:00" }, { "name": "bacon/bacon-qr-code", @@ -467,22 +467,22 @@ }, { "name": "beganovich/snappdf", - "version": "v1.7.0", + "version": "v1.9.0", "source": { "type": "git", "url": "https://github.com/beganovich/snappdf.git", - "reference": "4ae1315e793385b385699bdd0328106c39644a91" + "reference": "bffcc6a71c60f00b8f82b8f5654c0bbf0c4b15e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/beganovich/snappdf/zipball/4ae1315e793385b385699bdd0328106c39644a91", - "reference": "4ae1315e793385b385699bdd0328106c39644a91", + "url": "https://api.github.com/repos/beganovich/snappdf/zipball/bffcc6a71c60f00b8f82b8f5654c0bbf0c4b15e1", + "reference": "bffcc6a71c60f00b8f82b8f5654c0bbf0c4b15e1", "shasum": "" }, "require": { "ext-json": "*", "ext-zip": "*", - "php": "^7.3|^7.4|^8.0", + "php": "^7.3|^7.4|^8.0|^8.1", "symfony/console": "^5.2", "symfony/filesystem": "^5.2", "symfony/process": "^5.2" @@ -514,9 +514,9 @@ "description": "Convert webpages or HTML into the PDF file using Chromium or Google Chrome.", "support": { "issues": "https://github.com/beganovich/snappdf/issues", - "source": "https://github.com/beganovich/snappdf/tree/v1.7.0" + "source": "https://github.com/beganovich/snappdf/tree/v1.9.0" }, - "time": "2021-06-26T23:28:52+00:00" + "time": "2021-11-29T11:21:59+00:00" }, { "name": "braintree/braintree_php", @@ -1049,16 +1049,16 @@ }, { "name": "composer/composer", - "version": "2.1.12", + "version": "2.1.14", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "6e3c2b122e0ec41a7e885fcaf19fa15e2e0819a0" + "reference": "cd28fc05b0c9d3beaf58b57018725c4dc15a6446" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/6e3c2b122e0ec41a7e885fcaf19fa15e2e0819a0", - "reference": "6e3c2b122e0ec41a7e885fcaf19fa15e2e0819a0", + "url": "https://api.github.com/repos/composer/composer/zipball/cd28fc05b0c9d3beaf58b57018725c4dc15a6446", + "reference": "cd28fc05b0c9d3beaf58b57018725c4dc15a6446", "shasum": "" }, "require": { @@ -1073,7 +1073,7 @@ "react/promise": "^1.2 || ^2.7", "seld/jsonlint": "^1.4", "seld/phar-utils": "^1.0", - "symfony/console": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", + "symfony/console": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0", "symfony/filesystem": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", "symfony/finder": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", "symfony/process": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0" @@ -1127,7 +1127,7 @@ "support": { "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/composer/issues", - "source": "https://github.com/composer/composer/tree/2.1.12" + "source": "https://github.com/composer/composer/tree/2.1.14" }, "funding": [ { @@ -1143,7 +1143,7 @@ "type": "tidelift" } ], - "time": "2021-11-09T15:02:04+00:00" + "time": "2021-11-30T09:51:43+00:00" }, { "name": "composer/metadata-minifier", @@ -2651,16 +2651,16 @@ }, { "name": "google/apiclient", - "version": "v2.11.0", + "version": "v2.12.1", "source": { "type": "git", "url": "https://github.com/googleapis/google-api-php-client.git", - "reference": "7db9eb40c8ba887e81c0fe84f2888a967396cdfb" + "reference": "1530583a711f4414407112c4068464bcbace1c71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/google-api-php-client/zipball/7db9eb40c8ba887e81c0fe84f2888a967396cdfb", - "reference": "7db9eb40c8ba887e81c0fe84f2888a967396cdfb", + "url": "https://api.github.com/repos/googleapis/google-api-php-client/zipball/1530583a711f4414407112c4068464bcbace1c71", + "reference": "1530583a711f4414407112c4068464bcbace1c71", "shasum": "" }, "require": { @@ -2691,7 +2691,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.x-dev" + "dev-main": "2.x-dev" } }, "autoload": { @@ -2716,22 +2716,22 @@ ], "support": { "issues": "https://github.com/googleapis/google-api-php-client/issues", - "source": "https://github.com/googleapis/google-api-php-client/tree/v2.11.0" + "source": "https://github.com/googleapis/google-api-php-client/tree/v2.12.1" }, - "time": "2021-09-20T21:15:55+00:00" + "time": "2021-12-02T03:34:25+00:00" }, { "name": "google/apiclient-services", - "version": "v0.223.0", + "version": "v0.224.0", "source": { "type": "git", "url": "https://github.com/googleapis/google-api-php-client-services.git", - "reference": "e7c5284f4271a7f794410356ff44aff65c0254eb" + "reference": "2dfd8e7fc063b9228e8d9ccf9ffdeb6dace7e6b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/e7c5284f4271a7f794410356ff44aff65c0254eb", - "reference": "e7c5284f4271a7f794410356ff44aff65c0254eb", + "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/2dfd8e7fc063b9228e8d9ccf9ffdeb6dace7e6b1", + "reference": "2dfd8e7fc063b9228e8d9ccf9ffdeb6dace7e6b1", "shasum": "" }, "require": { @@ -2760,9 +2760,9 @@ ], "support": { "issues": "https://github.com/googleapis/google-api-php-client-services/issues", - "source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.223.0" + "source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.224.0" }, - "time": "2021-11-21T12:26:34+00:00" + "time": "2021-11-24T12:26:12+00:00" }, { "name": "google/auth", @@ -3827,16 +3827,16 @@ }, { "name": "laravel/framework", - "version": "v8.73.2", + "version": "v8.74.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "0e1c63315eeaee5920552ff042bd820bb4014533" + "reference": "004ea195012d5132eca07a176a6e587c6a74815e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/0e1c63315eeaee5920552ff042bd820bb4014533", - "reference": "0e1c63315eeaee5920552ff042bd820bb4014533", + "url": "https://api.github.com/repos/laravel/framework/zipball/004ea195012d5132eca07a176a6e587c6a74815e", + "reference": "004ea195012d5132eca07a176a6e587c6a74815e", "shasum": "" }, "require": { @@ -3858,15 +3858,15 @@ "psr/simple-cache": "^1.0", "ramsey/uuid": "^4.2.2", "swiftmailer/swiftmailer": "^6.3", - "symfony/console": "^5.1.4", - "symfony/error-handler": "^5.1.4", - "symfony/finder": "^5.1.4", - "symfony/http-foundation": "^5.1.4", - "symfony/http-kernel": "^5.1.4", - "symfony/mime": "^5.1.4", - "symfony/process": "^5.1.4", - "symfony/routing": "^5.1.4", - "symfony/var-dumper": "^5.1.4", + "symfony/console": "^5.4", + "symfony/error-handler": "^5.4", + "symfony/finder": "^5.4", + "symfony/http-foundation": "^5.4", + "symfony/http-kernel": "^5.4", + "symfony/mime": "^5.4", + "symfony/process": "^5.4", + "symfony/routing": "^5.4", + "symfony/var-dumper": "^5.4", "tijsverkoyen/css-to-inline-styles": "^2.2.2", "vlucas/phpdotenv": "^5.2", "voku/portable-ascii": "^1.4.8" @@ -3922,7 +3922,7 @@ "pda/pheanstalk": "^4.0", "phpunit/phpunit": "^8.5.19|^9.5.8", "predis/predis": "^1.1.9", - "symfony/cache": "^5.1.4" + "symfony/cache": "^5.4" }, "suggest": { "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.198.1).", @@ -3949,8 +3949,8 @@ "predis/predis": "Required to use the predis connector (^1.1.9).", "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^4.0|^5.0|^6.0|^7.0).", - "symfony/cache": "Required to PSR-6 cache bridge (^5.1.4).", - "symfony/filesystem": "Required to enable support for relative symbolic links (^5.1.4).", + "symfony/cache": "Required to PSR-6 cache bridge (^5.4).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^5.4).", "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0).", "wildbit/swiftmailer-postmark": "Required to use Postmark mail driver (^3.0)." }, @@ -3995,20 +3995,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2021-11-23T14:27:43+00:00" + "time": "2021-11-30T15:26:05+00:00" }, { "name": "laravel/serializable-closure", - "version": "v1.0.4", + "version": "v1.0.5", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "8148e72e6c2c3af7f05640ada1b26c3bca970f8d" + "reference": "25de3be1bca1b17d52ff0dc02b646c667ac7266c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/8148e72e6c2c3af7f05640ada1b26c3bca970f8d", - "reference": "8148e72e6c2c3af7f05640ada1b26c3bca970f8d", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/25de3be1bca1b17d52ff0dc02b646c667ac7266c", + "reference": "25de3be1bca1b17d52ff0dc02b646c667ac7266c", "shasum": "" }, "require": { @@ -4054,7 +4054,7 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2021-11-16T17:01:57+00:00" + "time": "2021-11-30T15:53:04+00:00" }, { "name": "laravel/slack-notification-channel", @@ -4256,16 +4256,16 @@ }, { "name": "laravel/ui", - "version": "v3.3.3", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/laravel/ui.git", - "reference": "08ea313a35dfc89ff0cd9916ca0bcef9715d0ed6" + "reference": "b3e804559bf3973ecca160a4ae1068e6c7c167c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/ui/zipball/08ea313a35dfc89ff0cd9916ca0bcef9715d0ed6", - "reference": "08ea313a35dfc89ff0cd9916ca0bcef9715d0ed6", + "url": "https://api.github.com/repos/laravel/ui/zipball/b3e804559bf3973ecca160a4ae1068e6c7c167c6", + "reference": "b3e804559bf3973ecca160a4ae1068e6c7c167c6", "shasum": "" }, "require": { @@ -4275,6 +4275,9 @@ "illuminate/validation": "^8.42|^9.0", "php": "^7.3|^8.0" }, + "require-dev": { + "orchestra/testbench": "^6.23|^7.0" + }, "type": "library", "extra": { "branch-alias": { @@ -4308,9 +4311,9 @@ "ui" ], "support": { - "source": "https://github.com/laravel/ui/tree/v3.3.3" + "source": "https://github.com/laravel/ui/tree/v3.4.0" }, - "time": "2021-11-21T22:20:05+00:00" + "time": "2021-11-30T16:22:00+00:00" }, { "name": "league/commonmark", @@ -4507,16 +4510,16 @@ }, { "name": "league/csv", - "version": "9.7.3", + "version": "9.7.4", "source": { "type": "git", "url": "https://github.com/thephpleague/csv.git", - "reference": "d8149032aa74a9daca6f7b35d63c46a35c9bc1d5" + "reference": "002f55f649e7511710dc7154ff44c7be32c8195c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/csv/zipball/d8149032aa74a9daca6f7b35d63c46a35c9bc1d5", - "reference": "d8149032aa74a9daca6f7b35d63c46a35c9bc1d5", + "url": "https://api.github.com/repos/thephpleague/csv/zipball/002f55f649e7511710dc7154ff44c7be32c8195c", + "reference": "002f55f649e7511710dc7154ff44c7be32c8195c", "shasum": "" }, "require": { @@ -4587,20 +4590,20 @@ "type": "github" } ], - "time": "2021-11-21T19:32:00+00:00" + "time": "2021-11-30T07:09:34+00:00" }, { "name": "league/flysystem", - "version": "1.1.7", + "version": "1.1.8", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "3ca8f158ee21efa4bbd4f74bea5730c9b9261e2d" + "reference": "c995bb0c23c58c9813d081f9523c9b7bb496698e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/3ca8f158ee21efa4bbd4f74bea5730c9b9261e2d", - "reference": "3ca8f158ee21efa4bbd4f74bea5730c9b9261e2d", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/c995bb0c23c58c9813d081f9523c9b7bb496698e", + "reference": "c995bb0c23c58c9813d081f9523c9b7bb496698e", "shasum": "" }, "require": { @@ -4673,7 +4676,7 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/1.1.7" + "source": "https://github.com/thephpleague/flysystem/tree/1.1.8" }, "funding": [ { @@ -4681,7 +4684,7 @@ "type": "other" } ], - "time": "2021-11-25T19:40:58+00:00" + "time": "2021-11-28T21:50:23+00:00" }, { "name": "league/flysystem-aws-s3-v3", @@ -5050,16 +5053,16 @@ }, { "name": "livewire/livewire", - "version": "v2.8.0", + "version": "v2.8.1", "source": { "type": "git", "url": "https://github.com/livewire/livewire.git", - "reference": "fc8c315babf8d42c2a25f207b3931b1bc8eb5e70" + "reference": "0f846a93369109e445f0e5009741b1e19e6fa6f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/livewire/livewire/zipball/fc8c315babf8d42c2a25f207b3931b1bc8eb5e70", - "reference": "fc8c315babf8d42c2a25f207b3931b1bc8eb5e70", + "url": "https://api.github.com/repos/livewire/livewire/zipball/0f846a93369109e445f0e5009741b1e19e6fa6f6", + "reference": "0f846a93369109e445f0e5009741b1e19e6fa6f6", "shasum": "" }, "require": { @@ -5110,7 +5113,7 @@ "description": "A front-end framework for Laravel.", "support": { "issues": "https://github.com/livewire/livewire/issues", - "source": "https://github.com/livewire/livewire/tree/v2.8.0" + "source": "https://github.com/livewire/livewire/tree/v2.8.1" }, "funding": [ { @@ -5118,7 +5121,7 @@ "type": "github" } ], - "time": "2021-11-24T04:33:15+00:00" + "time": "2021-12-02T01:31:26+00:00" }, { "name": "maennchen/zipstream-php", @@ -5826,16 +5829,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.13.1", + "version": "v4.13.2", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "63a79e8daa781cac14e5195e63ed8ae231dd10fd" + "reference": "210577fe3cf7badcc5814d99455df46564f3c077" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/63a79e8daa781cac14e5195e63ed8ae231dd10fd", - "reference": "63a79e8daa781cac14e5195e63ed8ae231dd10fd", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/210577fe3cf7badcc5814d99455df46564f3c077", + "reference": "210577fe3cf7badcc5814d99455df46564f3c077", "shasum": "" }, "require": { @@ -5876,9 +5879,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.13.1" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.13.2" }, - "time": "2021-11-03T20:52:16+00:00" + "time": "2021-11-30T19:35:32+00:00" }, { "name": "nwidart/laravel-modules", @@ -6950,16 +6953,16 @@ }, { "name": "phpseclib/phpseclib", - "version": "3.0.11", + "version": "3.0.12", "source": { "type": "git", "url": "https://github.com/phpseclib/phpseclib.git", - "reference": "6e794226a35159eb06f355efe59a0075a16551dd" + "reference": "89bfb45bd8b1abc3b37e910d57f5dbd3174f40fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/6e794226a35159eb06f355efe59a0075a16551dd", - "reference": "6e794226a35159eb06f355efe59a0075a16551dd", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/89bfb45bd8b1abc3b37e910d57f5dbd3174f40fb", + "reference": "89bfb45bd8b1abc3b37e910d57f5dbd3174f40fb", "shasum": "" }, "require": { @@ -7041,7 +7044,7 @@ ], "support": { "issues": "https://github.com/phpseclib/phpseclib/issues", - "source": "https://github.com/phpseclib/phpseclib/tree/3.0.11" + "source": "https://github.com/phpseclib/phpseclib/tree/3.0.12" }, "funding": [ { @@ -7057,7 +7060,7 @@ "type": "tidelift" } ], - "time": "2021-10-27T03:01:46+00:00" + "time": "2021-11-28T23:46:03+00:00" }, { "name": "pragmarx/google2fa", @@ -7587,16 +7590,16 @@ }, { "name": "psy/psysh", - "version": "v0.10.11", + "version": "v0.10.12", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "38017532bba35d15d28dcc001b4274df0251c4a1" + "reference": "a0d9981aa07ecfcbea28e4bfa868031cca121e7d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/38017532bba35d15d28dcc001b4274df0251c4a1", - "reference": "38017532bba35d15d28dcc001b4274df0251c4a1", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/a0d9981aa07ecfcbea28e4bfa868031cca121e7d", + "reference": "a0d9981aa07ecfcbea28e4bfa868031cca121e7d", "shasum": "" }, "require": { @@ -7656,9 +7659,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.10.11" + "source": "https://github.com/bobthecow/psysh/tree/v0.10.12" }, - "time": "2021-11-23T15:02:17+00:00" + "time": "2021-11-30T14:05:36+00:00" }, { "name": "ralouphie/getallheaders", @@ -8291,22 +8294,22 @@ }, { "name": "sentry/sdk", - "version": "3.1.0", + "version": "3.1.1", "source": { "type": "git", "url": "https://github.com/getsentry/sentry-php-sdk.git", - "reference": "f03133b067fdf03fed09ff03daf3f1d68f5f3673" + "reference": "2de7de3233293f80d1e244bd950adb2121a3731c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/getsentry/sentry-php-sdk/zipball/f03133b067fdf03fed09ff03daf3f1d68f5f3673", - "reference": "f03133b067fdf03fed09ff03daf3f1d68f5f3673", + "url": "https://api.github.com/repos/getsentry/sentry-php-sdk/zipball/2de7de3233293f80d1e244bd950adb2121a3731c", + "reference": "2de7de3233293f80d1e244bd950adb2121a3731c", "shasum": "" }, "require": { "http-interop/http-factory-guzzle": "^1.0", "sentry/sentry": "^3.1", - "symfony/http-client": "^4.3|^5.0" + "symfony/http-client": "^4.3|^5.0|^6.0" }, "type": "metapackage", "notification-url": "https://packagist.org/downloads/", @@ -8331,7 +8334,7 @@ "sentry" ], "support": { - "source": "https://github.com/getsentry/sentry-php-sdk/tree/3.1.0" + "source": "https://github.com/getsentry/sentry-php-sdk/tree/3.1.1" }, "funding": [ { @@ -8343,7 +8346,7 @@ "type": "custom" } ], - "time": "2020-12-01T10:31:45+00:00" + "time": "2021-11-30T11:54:41+00:00" }, { "name": "sentry/sentry", @@ -8599,16 +8602,16 @@ }, { "name": "stripe/stripe-php", - "version": "v7.103.0", + "version": "v7.104.0", "source": { "type": "git", "url": "https://github.com/stripe/stripe-php.git", - "reference": "3a029598395bb4c7cfafa64707a553f4b01a9a12" + "reference": "6bfd895eaa3f6ebb49c10f9ab9ccc9e5baadded5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/stripe/stripe-php/zipball/3a029598395bb4c7cfafa64707a553f4b01a9a12", - "reference": "3a029598395bb4c7cfafa64707a553f4b01a9a12", + "url": "https://api.github.com/repos/stripe/stripe-php/zipball/6bfd895eaa3f6ebb49c10f9ab9ccc9e5baadded5", + "reference": "6bfd895eaa3f6ebb49c10f9ab9ccc9e5baadded5", "shasum": "" }, "require": { @@ -8618,11 +8621,10 @@ "php": ">=5.6.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "2.17.1", - "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^5.7", - "squizlabs/php_codesniffer": "^3.3", - "symfony/process": "~3.4" + "friendsofphp/php-cs-fixer": "3.2.1", + "phpstan/phpstan": "^1.2", + "phpunit/phpunit": "^5.7 || ^9.0", + "squizlabs/php_codesniffer": "^3.3" }, "type": "library", "extra": { @@ -8654,9 +8656,9 @@ ], "support": { "issues": "https://github.com/stripe/stripe-php/issues", - "source": "https://github.com/stripe/stripe-php/tree/v7.103.0" + "source": "https://github.com/stripe/stripe-php/tree/v7.104.0" }, - "time": "2021-11-20T00:36:07+00:00" + "time": "2021-12-01T22:24:54+00:00" }, { "name": "swiftmailer/swiftmailer", @@ -8736,28 +8738,29 @@ }, { "name": "symfony/console", - "version": "v5.3.11", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "3e7ab8f5905058984899b05a4648096f558bfeba" + "reference": "ec3661faca1d110d6c307e124b44f99ac54179e3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/3e7ab8f5905058984899b05a4648096f558bfeba", - "reference": "3e7ab8f5905058984899b05a4648096f558bfeba", + "url": "https://api.github.com/repos/symfony/console/zipball/ec3661faca1d110d6c307e124b44f99ac54179e3", + "reference": "ec3661faca1d110d6c307e124b44f99ac54179e3", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php73": "^1.8", "symfony/polyfill-php80": "^1.16", - "symfony/service-contracts": "^1.1|^2", - "symfony/string": "^5.1" + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/string": "^5.1|^6.0" }, "conflict": { + "psr/log": ">=3", "symfony/dependency-injection": "<4.4", "symfony/dotenv": "<5.1", "symfony/event-dispatcher": "<4.4", @@ -8769,12 +8772,12 @@ }, "require-dev": { "psr/log": "^1|^2", - "symfony/config": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/event-dispatcher": "^4.4|^5.0", - "symfony/lock": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0", - "symfony/var-dumper": "^4.4|^5.0" + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/event-dispatcher": "^4.4|^5.0|^6.0", + "symfony/lock": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" }, "suggest": { "psr/log": "For using the console logger", @@ -8814,7 +8817,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.3.11" + "source": "https://github.com/symfony/console/tree/v5.4.0" }, "funding": [ { @@ -8830,20 +8833,20 @@ "type": "tidelift" } ], - "time": "2021-11-21T19:41:05+00:00" + "time": "2021-11-29T15:30:56+00:00" }, { "name": "symfony/css-selector", - "version": "v5.3.4", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "7fb120adc7f600a59027775b224c13a33530dd90" + "reference": "44b933f98bb4b5220d10bed9ce5662f8c2d13dcc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/7fb120adc7f600a59027775b224c13a33530dd90", - "reference": "7fb120adc7f600a59027775b224c13a33530dd90", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/44b933f98bb4b5220d10bed9ce5662f8c2d13dcc", + "reference": "44b933f98bb4b5220d10bed9ce5662f8c2d13dcc", "shasum": "" }, "require": { @@ -8880,7 +8883,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v5.3.4" + "source": "https://github.com/symfony/css-selector/tree/v5.4.0" }, "funding": [ { @@ -8896,7 +8899,7 @@ "type": "tidelift" } ], - "time": "2021-07-21T12:38:00+00:00" + "time": "2021-09-09T08:06:01+00:00" }, { "name": "symfony/deprecation-contracts", @@ -8967,28 +8970,31 @@ }, { "name": "symfony/error-handler", - "version": "v5.3.11", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "eec73dd7218713f48a7996583a741b3bae58c8d3" + "reference": "8433fa3145ac78df88b87a4a539118e950828126" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/eec73dd7218713f48a7996583a741b3bae58c8d3", - "reference": "eec73dd7218713f48a7996583a741b3bae58c8d3", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/8433fa3145ac78df88b87a4a539118e950828126", + "reference": "8433fa3145ac78df88b87a4a539118e950828126", "shasum": "" }, "require": { "php": ">=7.2.5", "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^4.4|^5.0" + "symfony/var-dumper": "^4.4|^5.0|^6.0" }, "require-dev": { - "symfony/deprecation-contracts": "^2.1", - "symfony/http-kernel": "^4.4|^5.0", - "symfony/serializer": "^4.4|^5.0" + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/serializer": "^4.4|^5.0|^6.0" }, + "bin": [ + "Resources/bin/patch-type-declarations" + ], "type": "library", "autoload": { "psr-4": { @@ -9015,7 +9021,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v5.3.11" + "source": "https://github.com/symfony/error-handler/tree/v5.4.0" }, "funding": [ { @@ -9031,26 +9037,26 @@ "type": "tidelift" } ], - "time": "2021-11-13T13:42:37+00:00" + "time": "2021-11-29T15:30:56+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v5.3.11", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "661a7a6e085394f8513945669e31f7c1338a7e69" + "reference": "27d39ae126352b9fa3be5e196ccf4617897be3eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/661a7a6e085394f8513945669e31f7c1338a7e69", - "reference": "661a7a6e085394f8513945669e31f7c1338a7e69", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/27d39ae126352b9fa3be5e196ccf4617897be3eb", + "reference": "27d39ae126352b9fa3be5e196ccf4617897be3eb", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/event-dispatcher-contracts": "^2", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/event-dispatcher-contracts": "^2|^3", "symfony/polyfill-php80": "^1.16" }, "conflict": { @@ -9062,13 +9068,13 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/error-handler": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/http-foundation": "^4.4|^5.0", - "symfony/service-contracts": "^1.1|^2", - "symfony/stopwatch": "^4.4|^5.0" + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/stopwatch": "^4.4|^5.0|^6.0" }, "suggest": { "symfony/dependency-injection": "", @@ -9100,7 +9106,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.3.11" + "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.0" }, "funding": [ { @@ -9116,7 +9122,7 @@ "type": "tidelift" } ], - "time": "2021-11-17T12:16:12+00:00" + "time": "2021-11-23T10:19:22+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -9199,21 +9205,22 @@ }, { "name": "symfony/filesystem", - "version": "v5.3.4", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "343f4fe324383ca46792cae728a3b6e2f708fb32" + "reference": "731f917dc31edcffec2c6a777f3698c33bea8f01" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/343f4fe324383ca46792cae728a3b6e2f708fb32", - "reference": "343f4fe324383ca46792cae728a3b6e2f708fb32", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/731f917dc31edcffec2c6a777f3698c33bea8f01", + "reference": "731f917dc31edcffec2c6a777f3698c33bea8f01", "shasum": "" }, "require": { "php": ">=7.2.5", "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8", "symfony/polyfill-php80": "^1.16" }, "type": "library", @@ -9242,7 +9249,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.3.4" + "source": "https://github.com/symfony/filesystem/tree/v5.4.0" }, "funding": [ { @@ -9258,24 +9265,25 @@ "type": "tidelift" } ], - "time": "2021-07-21T12:40:44+00:00" + "time": "2021-10-28T13:39:27+00:00" }, { "name": "symfony/finder", - "version": "v5.3.7", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "a10000ada1e600d109a6c7632e9ac42e8bf2fb93" + "reference": "d2f29dac98e96a98be467627bd49c2efb1bc2590" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/a10000ada1e600d109a6c7632e9ac42e8bf2fb93", - "reference": "a10000ada1e600d109a6c7632e9ac42e8bf2fb93", + "url": "https://api.github.com/repos/symfony/finder/zipball/d2f29dac98e96a98be467627bd49c2efb1bc2590", + "reference": "d2f29dac98e96a98be467627bd49c2efb1bc2590", "shasum": "" }, "require": { "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-php80": "^1.16" }, "type": "library", @@ -9304,7 +9312,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.3.7" + "source": "https://github.com/symfony/finder/tree/v5.4.0" }, "funding": [ { @@ -9320,30 +9328,30 @@ "type": "tidelift" } ], - "time": "2021-08-04T21:20:46+00:00" + "time": "2021-11-28T15:25:38+00:00" }, { "name": "symfony/http-client", - "version": "v5.3.11", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "3f55da60fc3c3d6e6a4144ee65a37d23a637107e" + "reference": "b3d99775f5372ff746035e98d6fa00182e832380" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/3f55da60fc3c3d6e6a4144ee65a37d23a637107e", - "reference": "3f55da60fc3c3d6e6a4144ee65a37d23a637107e", + "url": "https://api.github.com/repos/symfony/http-client/zipball/b3d99775f5372ff746035e98d6fa00182e832380", + "reference": "b3d99775f5372ff746035e98d6fa00182e832380", "shasum": "" }, "require": { "php": ">=7.2.5", "psr/log": "^1|^2|^3", - "symfony/deprecation-contracts": "^2.1", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/http-client-contracts": "^2.4", "symfony/polyfill-php73": "^1.11", "symfony/polyfill-php80": "^1.16", - "symfony/service-contracts": "^1.0|^2" + "symfony/service-contracts": "^1.0|^2|^3" }, "provide": { "php-http/async-client-implementation": "*", @@ -9360,10 +9368,10 @@ "nyholm/psr7": "^1.0", "php-http/httplug": "^1.0|^2.0", "psr/http-client": "^1.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/http-kernel": "^4.4.13|^5.1.5", - "symfony/process": "^4.4|^5.0", - "symfony/stopwatch": "^4.4|^5.0" + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4.13|^5.1.5|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/stopwatch": "^4.4|^5.0|^6.0" }, "type": "library", "autoload": { @@ -9391,7 +9399,7 @@ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-client/tree/v5.3.11" + "source": "https://github.com/symfony/http-client/tree/v5.4.0" }, "funding": [ { @@ -9407,7 +9415,7 @@ "type": "tidelift" } ], - "time": "2021-11-20T16:42:42+00:00" + "time": "2021-11-23T15:26:31+00:00" }, { "name": "symfony/http-client-contracts", @@ -9489,29 +9497,29 @@ }, { "name": "symfony/http-foundation", - "version": "v5.3.11", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "d1e7059ebeb0b8f9fe5eb5b26eacd2e3c1f371cc" + "reference": "5ef86ac7927d2de08dc1e26eb91325f9ccbe6309" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d1e7059ebeb0b8f9fe5eb5b26eacd2e3c1f371cc", - "reference": "d1e7059ebeb0b8f9fe5eb5b26eacd2e3c1f371cc", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/5ef86ac7927d2de08dc1e26eb91325f9ccbe6309", + "reference": "5ef86ac7927d2de08dc1e26eb91325f9ccbe6309", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-mbstring": "~1.1", "symfony/polyfill-php80": "^1.16" }, "require-dev": { "predis/predis": "~1.0", - "symfony/cache": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/mime": "^4.4|^5.0" + "symfony/cache": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/mime": "^4.4|^5.0|^6.0" }, "suggest": { "symfony/mime": "To use the file extension guesser" @@ -9542,7 +9550,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.3.11" + "source": "https://github.com/symfony/http-foundation/tree/v5.4.0" }, "funding": [ { @@ -9558,36 +9566,35 @@ "type": "tidelift" } ], - "time": "2021-11-04T16:37:19+00:00" + "time": "2021-11-28T15:25:38+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.3.12", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "f53025cd1d91b1af85d6d9e17eefa98e31ee953b" + "reference": "e012f16688bcb151e965473a70d8ebaa8b1d15ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/f53025cd1d91b1af85d6d9e17eefa98e31ee953b", - "reference": "f53025cd1d91b1af85d6d9e17eefa98e31ee953b", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/e012f16688bcb151e965473a70d8ebaa8b1d15ea", + "reference": "e012f16688bcb151e965473a70d8ebaa8b1d15ea", "shasum": "" }, "require": { "php": ">=7.2.5", "psr/log": "^1|^2", - "symfony/deprecation-contracts": "^2.1", - "symfony/error-handler": "^4.4|^5.0", - "symfony/event-dispatcher": "^5.0", - "symfony/http-client-contracts": "^1.1|^2", - "symfony/http-foundation": "^5.3.7", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/event-dispatcher": "^5.0|^6.0", + "symfony/http-foundation": "^5.3.7|^6.0", "symfony/polyfill-ctype": "^1.8", "symfony/polyfill-php73": "^1.9", "symfony/polyfill-php80": "^1.16" }, "conflict": { - "symfony/browser-kit": "<4.4", + "symfony/browser-kit": "<5.4", "symfony/cache": "<5.0", "symfony/config": "<5.0", "symfony/console": "<4.4", @@ -9607,19 +9614,20 @@ }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", - "symfony/browser-kit": "^4.4|^5.0", - "symfony/config": "^5.0", - "symfony/console": "^4.4|^5.0", - "symfony/css-selector": "^4.4|^5.0", - "symfony/dependency-injection": "^5.3", - "symfony/dom-crawler": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/finder": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0", - "symfony/routing": "^4.4|^5.0", - "symfony/stopwatch": "^4.4|^5.0", - "symfony/translation": "^4.4|^5.0", - "symfony/translation-contracts": "^1.1|^2", + "symfony/browser-kit": "^5.4|^6.0", + "symfony/config": "^5.0|^6.0", + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/css-selector": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^5.3|^6.0", + "symfony/dom-crawler": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/http-client-contracts": "^1.1|^2|^3", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/routing": "^4.4|^5.0|^6.0", + "symfony/stopwatch": "^4.4|^5.0|^6.0", + "symfony/translation": "^4.4|^5.0|^6.0", + "symfony/translation-contracts": "^1.1|^2|^3", "twig/twig": "^2.13|^3.0.4" }, "suggest": { @@ -9654,7 +9662,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v5.3.12" + "source": "https://github.com/symfony/http-kernel/tree/v5.4.0" }, "funding": [ { @@ -9670,25 +9678,25 @@ "type": "tidelift" } ], - "time": "2021-11-24T08:46:46+00:00" + "time": "2021-11-29T16:56:53+00:00" }, { "name": "symfony/mime", - "version": "v5.3.11", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "dffc0684f10526db12c52fcd6238c64695426d61" + "reference": "d4365000217b67c01acff407573906ff91bcfb34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/dffc0684f10526db12c52fcd6238c64695426d61", - "reference": "dffc0684f10526db12c52fcd6238c64695426d61", + "url": "https://api.github.com/repos/symfony/mime/zipball/d4365000217b67c01acff407573906ff91bcfb34", + "reference": "d4365000217b67c01acff407573906ff91bcfb34", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-mbstring": "^1.0", "symfony/polyfill-php80": "^1.16" @@ -9702,10 +9710,10 @@ "require-dev": { "egulias/email-validator": "^2.1.10|^3.1", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/property-access": "^4.4|^5.1", - "symfony/property-info": "^4.4|^5.1", - "symfony/serializer": "^5.2" + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/property-access": "^4.4|^5.1|^6.0", + "symfony/property-info": "^4.4|^5.1|^6.0", + "symfony/serializer": "^5.2|^6.0" }, "type": "library", "autoload": { @@ -9737,7 +9745,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v5.3.11" + "source": "https://github.com/symfony/mime/tree/v5.4.0" }, "funding": [ { @@ -9753,25 +9761,25 @@ "type": "tidelift" } ], - "time": "2021-11-20T16:42:42+00:00" + "time": "2021-11-23T10:19:22+00:00" }, { "name": "symfony/options-resolver", - "version": "v5.3.7", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "4b78e55b179003a42523a362cc0e8327f7a69b5e" + "reference": "b0fb78576487af19c500aaddb269fd36701d4847" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/4b78e55b179003a42523a362cc0e8327f7a69b5e", - "reference": "4b78e55b179003a42523a362cc0e8327f7a69b5e", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/b0fb78576487af19c500aaddb269fd36701d4847", + "reference": "b0fb78576487af19c500aaddb269fd36701d4847", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-php73": "~1.0", "symfony/polyfill-php80": "^1.16" }, @@ -9806,7 +9814,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v5.3.7" + "source": "https://github.com/symfony/options-resolver/tree/v5.4.0" }, "funding": [ { @@ -9822,7 +9830,7 @@ "type": "tidelift" } ], - "time": "2021-08-04T21:20:46+00:00" + "time": "2021-11-23T10:19:22+00:00" }, { "name": "symfony/polyfill-ctype", @@ -10713,16 +10721,16 @@ }, { "name": "symfony/process", - "version": "v5.3.12", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "e498803a6e95ede78e9d5646ad32a2255c033a6a" + "reference": "5be20b3830f726e019162b26223110c8f47cf274" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/e498803a6e95ede78e9d5646ad32a2255c033a6a", - "reference": "e498803a6e95ede78e9d5646ad32a2255c033a6a", + "url": "https://api.github.com/repos/symfony/process/zipball/5be20b3830f726e019162b26223110c8f47cf274", + "reference": "5be20b3830f726e019162b26223110c8f47cf274", "shasum": "" }, "require": { @@ -10755,7 +10763,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.3.12" + "source": "https://github.com/symfony/process/tree/v5.4.0" }, "funding": [ { @@ -10771,7 +10779,7 @@ "type": "tidelift" } ], - "time": "2021-11-22T22:39:13+00:00" + "time": "2021-11-28T15:25:38+00:00" }, { "name": "symfony/psr-http-message-bridge", @@ -10863,21 +10871,21 @@ }, { "name": "symfony/routing", - "version": "v5.3.11", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "fcbc2b81d55984f04bb704c2269755fa5aaf5cca" + "reference": "9eeae93c32ca86746e5d38f3679e9569981038b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/fcbc2b81d55984f04bb704c2269755fa5aaf5cca", - "reference": "fcbc2b81d55984f04bb704c2269755fa5aaf5cca", + "url": "https://api.github.com/repos/symfony/routing/zipball/9eeae93c32ca86746e5d38f3679e9569981038b1", + "reference": "9eeae93c32ca86746e5d38f3679e9569981038b1", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-php80": "^1.16" }, "conflict": { @@ -10889,11 +10897,11 @@ "require-dev": { "doctrine/annotations": "^1.12", "psr/log": "^1|^2|^3", - "symfony/config": "^5.3", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/http-foundation": "^4.4|^5.0", - "symfony/yaml": "^4.4|^5.0" + "symfony/config": "^5.3|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/yaml": "^4.4|^5.0|^6.0" }, "suggest": { "symfony/config": "For using the all-in-one router or any loader", @@ -10933,7 +10941,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v5.3.11" + "source": "https://github.com/symfony/routing/tree/v5.4.0" }, "funding": [ { @@ -10949,7 +10957,7 @@ "type": "tidelift" } ], - "time": "2021-11-04T16:37:19+00:00" + "time": "2021-11-23T10:19:22+00:00" }, { "name": "symfony/service-contracts", @@ -11036,16 +11044,16 @@ }, { "name": "symfony/string", - "version": "v5.3.10", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c" + "reference": "9ffaaba53c61ba75a3c7a3a779051d1e9ec4fd2d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c", - "reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c", + "url": "https://api.github.com/repos/symfony/string/zipball/9ffaaba53c61ba75a3c7a3a779051d1e9ec4fd2d", + "reference": "9ffaaba53c61ba75a3c7a3a779051d1e9ec4fd2d", "shasum": "" }, "require": { @@ -11056,11 +11064,14 @@ "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php80": "~1.15" }, + "conflict": { + "symfony/translation-contracts": ">=3.0" + }, "require-dev": { - "symfony/error-handler": "^4.4|^5.0", - "symfony/http-client": "^4.4|^5.0", + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/http-client": "^4.4|^5.0|^6.0", "symfony/translation-contracts": "^1.1|^2", - "symfony/var-exporter": "^4.4|^5.0" + "symfony/var-exporter": "^4.4|^5.0|^6.0" }, "type": "library", "autoload": { @@ -11099,7 +11110,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.3.10" + "source": "https://github.com/symfony/string/tree/v5.4.0" }, "funding": [ { @@ -11115,31 +11126,32 @@ "type": "tidelift" } ], - "time": "2021-10-27T18:21:46+00:00" + "time": "2021-11-24T10:02:00+00:00" }, { "name": "symfony/translation", - "version": "v5.3.11", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "17a965c8f3b1b348cf15d903ac53942984561f8a" + "reference": "6fe32b10e912a518805bc9eafc2a87145773cf13" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/17a965c8f3b1b348cf15d903ac53942984561f8a", - "reference": "17a965c8f3b1b348cf15d903ac53942984561f8a", + "url": "https://api.github.com/repos/symfony/translation/zipball/6fe32b10e912a518805bc9eafc2a87145773cf13", + "reference": "6fe32b10e912a518805bc9eafc2a87145773cf13", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php80": "^1.16", "symfony/translation-contracts": "^2.3" }, "conflict": { "symfony/config": "<4.4", + "symfony/console": "<5.3", "symfony/dependency-injection": "<5.0", "symfony/http-kernel": "<5.0", "symfony/twig-bundle": "<5.0", @@ -11150,15 +11162,16 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^4.4|^5.0", - "symfony/console": "^4.4|^5.0", - "symfony/dependency-injection": "^5.0", - "symfony/finder": "^4.4|^5.0", - "symfony/http-kernel": "^5.0", - "symfony/intl": "^4.4|^5.0", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/dependency-injection": "^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/http-client-contracts": "^1.1|^2.0|^3.0", + "symfony/http-kernel": "^5.0|^6.0", + "symfony/intl": "^4.4|^5.0|^6.0", "symfony/polyfill-intl-icu": "^1.21", - "symfony/service-contracts": "^1.1.2|^2", - "symfony/yaml": "^4.4|^5.0" + "symfony/service-contracts": "^1.1.2|^2|^3", + "symfony/yaml": "^4.4|^5.0|^6.0" }, "suggest": { "psr/log-implementation": "To use logging capability in translator", @@ -11194,7 +11207,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v5.3.11" + "source": "https://github.com/symfony/translation/tree/v5.4.0" }, "funding": [ { @@ -11210,7 +11223,7 @@ "type": "tidelift" } ], - "time": "2021-11-04T16:37:19+00:00" + "time": "2021-11-29T15:30:56+00:00" }, { "name": "symfony/translation-contracts", @@ -11292,16 +11305,16 @@ }, { "name": "symfony/var-dumper", - "version": "v5.3.11", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "a029b3a11b757f9cc8693040339153b4745a913f" + "reference": "89ab66eaef230c9cd1992de2e9a1b26652b127b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/a029b3a11b757f9cc8693040339153b4745a913f", - "reference": "a029b3a11b757f9cc8693040339153b4745a913f", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/89ab66eaef230c9cd1992de2e9a1b26652b127b9", + "reference": "89ab66eaef230c9cd1992de2e9a1b26652b127b9", "shasum": "" }, "require": { @@ -11315,8 +11328,9 @@ }, "require-dev": { "ext-iconv": "*", - "symfony/console": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0", + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/uid": "^5.1|^6.0", "twig/twig": "^2.13|^3.0.4" }, "suggest": { @@ -11360,7 +11374,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.3.11" + "source": "https://github.com/symfony/var-dumper/tree/v5.4.0" }, "funding": [ { @@ -11376,7 +11390,7 @@ "type": "tidelift" } ], - "time": "2021-11-12T11:38:27+00:00" + "time": "2021-11-29T15:30:56+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -12208,16 +12222,16 @@ }, { "name": "brianium/paratest", - "version": "v6.3.3", + "version": "v6.4.1", "source": { "type": "git", "url": "https://github.com/paratestphp/paratest.git", - "reference": "a448f456921719fdf8a2c0f6d1e2e8f63c085ffa" + "reference": "c32a5c4fc2ff339202437d25d19a5f496f880d61" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paratestphp/paratest/zipball/a448f456921719fdf8a2c0f6d1e2e8f63c085ffa", - "reference": "a448f456921719fdf8a2c0f6d1e2e8f63c085ffa", + "url": "https://api.github.com/repos/paratestphp/paratest/zipball/c32a5c4fc2ff339202437d25d19a5f496f880d61", + "reference": "c32a5c4fc2ff339202437d25d19a5f496f880d61", "shasum": "" }, "require": { @@ -12226,13 +12240,13 @@ "ext-reflection": "*", "ext-simplexml": "*", "php": "^7.3 || ^8.0", - "phpunit/php-code-coverage": "^9.2.7", + "phpunit/php-code-coverage": "^9.2.9", "phpunit/php-file-iterator": "^3.0.5", "phpunit/php-timer": "^5.0.3", "phpunit/phpunit": "^9.5.10", "sebastian/environment": "^5.1.3", - "symfony/console": "^4.4.30 || ^5.3.7", - "symfony/process": "^4.4.30 || ^5.3.7" + "symfony/console": "^5.4.0 || ^6.0.0", + "symfony/process": "^5.4.0 || ^6.0.0" }, "require-dev": { "doctrine/coding-standard": "^9.0.0", @@ -12240,14 +12254,15 @@ "ergebnis/phpstan-rules": "^0.15.3", "ext-posix": "*", "infection/infection": "^0.25.3", + "malukenho/mcbumpface": "^1.1.5", "phpstan/phpstan": "^0.12.99", "phpstan/phpstan-deprecation-rules": "^0.12.6", "phpstan/phpstan-phpunit": "^0.12.22", "phpstan/phpstan-strict-rules": "^0.12.11", - "squizlabs/php_codesniffer": "^3.6.0", - "symfony/filesystem": "^5.3.4", - "thecodingmachine/phpstan-strict-rules": "^0.12.1", - "vimeo/psalm": "^4.10.0" + "squizlabs/php_codesniffer": "^3.6.1", + "symfony/filesystem": "^v5.4.0", + "thecodingmachine/phpstan-strict-rules": "^v0.12.2", + "vimeo/psalm": "^4.13.1" }, "bin": [ "bin/paratest" @@ -12286,7 +12301,7 @@ ], "support": { "issues": "https://github.com/paratestphp/paratest/issues", - "source": "https://github.com/paratestphp/paratest/tree/v6.3.3" + "source": "https://github.com/paratestphp/paratest/tree/v6.4.1" }, "funding": [ { @@ -12298,7 +12313,7 @@ "type": "paypal" } ], - "time": "2021-11-19T07:41:55+00:00" + "time": "2021-12-02T09:12:23+00:00" }, { "name": "darkaonline/l5-swagger", @@ -12587,16 +12602,16 @@ }, { "name": "facade/ignition", - "version": "2.17.1", + "version": "2.17.2", "source": { "type": "git", "url": "https://github.com/facade/ignition.git", - "reference": "317f6110c1977b50e06365bbb155fbe5079035ec" + "reference": "af3cd70d58ca3ef5189ff0e59efbe5a5c043e2d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/facade/ignition/zipball/317f6110c1977b50e06365bbb155fbe5079035ec", - "reference": "317f6110c1977b50e06365bbb155fbe5079035ec", + "url": "https://api.github.com/repos/facade/ignition/zipball/af3cd70d58ca3ef5189ff0e59efbe5a5c043e2d2", + "reference": "af3cd70d58ca3ef5189ff0e59efbe5a5c043e2d2", "shasum": "" }, "require": { @@ -12661,7 +12676,7 @@ "issues": "https://github.com/facade/ignition/issues", "source": "https://github.com/facade/ignition" }, - "time": "2021-11-25T10:26:30+00:00" + "time": "2021-11-29T14:04:22+00:00" }, { "name": "facade/ignition-contracts", @@ -13839,16 +13854,16 @@ }, { "name": "phpunit/php-file-iterator", - "version": "3.0.5", + "version": "3.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8" + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/aa4be8575f26070b100fccb67faabb28f21f66f8", - "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", "shasum": "" }, "require": { @@ -13887,7 +13902,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.5" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" }, "funding": [ { @@ -13895,7 +13910,7 @@ "type": "github" } ], - "time": "2020-09-28T05:57:25+00:00" + "time": "2021-12-02T12:48:52+00:00" }, { "name": "phpunit/php-invoker", @@ -15344,21 +15359,21 @@ }, { "name": "symfony/stopwatch", - "version": "v5.3.4", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "b24c6a92c6db316fee69e38c80591e080e41536c" + "reference": "208ef96122bfed82a8f3a61458a07113a08bdcfe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/b24c6a92c6db316fee69e38c80591e080e41536c", - "reference": "b24c6a92c6db316fee69e38c80591e080e41536c", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/208ef96122bfed82a8f3a61458a07113a08bdcfe", + "reference": "208ef96122bfed82a8f3a61458a07113a08bdcfe", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/service-contracts": "^1.0|^2" + "symfony/service-contracts": "^1|^2|^3" }, "type": "library", "autoload": { @@ -15386,7 +15401,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v5.3.4" + "source": "https://github.com/symfony/stopwatch/tree/v5.4.0" }, "funding": [ { @@ -15402,32 +15417,32 @@ "type": "tidelift" } ], - "time": "2021-07-10T08:58:57+00:00" + "time": "2021-11-23T10:19:22+00:00" }, { "name": "symfony/yaml", - "version": "v5.3.11", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "226638aa877bc4104e619a15f27d8141cd6b4e4a" + "reference": "034ccc0994f1ae3f7499fa5b1f2e75d5e7a94efc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/226638aa877bc4104e619a15f27d8141cd6b4e4a", - "reference": "226638aa877bc4104e619a15f27d8141cd6b4e4a", + "url": "https://api.github.com/repos/symfony/yaml/zipball/034ccc0994f1ae3f7499fa5b1f2e75d5e7a94efc", + "reference": "034ccc0994f1ae3f7499fa5b1f2e75d5e7a94efc", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-ctype": "~1.8" + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "symfony/console": "<4.4" + "symfony/console": "<5.3" }, "require-dev": { - "symfony/console": "^4.4|^5.0" + "symfony/console": "^5.3|^6.0" }, "suggest": { "symfony/console": "For validating YAML files using the lint command" @@ -15461,7 +15476,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v5.3.11" + "source": "https://github.com/symfony/yaml/tree/v5.4.0" }, "funding": [ { @@ -15477,7 +15492,7 @@ "type": "tidelift" } ], - "time": "2021-11-20T16:42:42+00:00" + "time": "2021-11-28T15:25:38+00:00" }, { "name": "theseer/tokenizer", diff --git a/resources/views/pdf-designs/bold.html b/resources/views/pdf-designs/bold.html index a05851f097d5..faf492857824 100644 --- a/resources/views/pdf-designs/bold.html +++ b/resources/views/pdf-designs/bold.html @@ -113,7 +113,7 @@ table-layout: fixed; overflow-wrap: break-word; margin-top: 3rem; - margin-bottom: 200px; + margin-bottom: 0px; } [data-ref="table"]:last-child{ @@ -371,20 +371,24 @@ $entity_images + - tables.forEach((tableIdentifier) => { - document.getElementById(tableIdentifier).childElementCount === 0 - ? document.getElementById(tableIdentifier).style.display = 'none' - : ''; - }); - }); - diff --git a/resources/views/pdf-designs/hipster.html b/resources/views/pdf-designs/hipster.html index f8b91e7d9108..a8b64113a343 100644 --- a/resources/views/pdf-designs/hipster.html +++ b/resources/views/pdf-designs/hipster.html @@ -354,30 +354,29 @@ - $entity_images - + - // If we have elements in these tables, we can change label to "Statement" & hide entity details. - if (document.querySelectorAll('#statement-payment-table > tbody, #statement-payment-table > tbody, #statement-aging-table-totals > tbody').length > 0) { - document.querySelector('.entity-label').innerText = '$statement_label'; - document.querySelector('.entity-details-wrapper').style.display = 'none'; - } - }); - diff --git a/resources/views/pdf-designs/modern.html b/resources/views/pdf-designs/modern.html index 906237dfe47b..84dcbf1280c9 100644 --- a/resources/views/pdf-designs/modern.html +++ b/resources/views/pdf-designs/modern.html @@ -348,24 +348,28 @@ $entity_images + - tables.forEach((tableIdentifier) => { - document.getElementById(tableIdentifier).childElementCount === 0 - ? document.getElementById(tableIdentifier).style.display = 'none' - : ''; - }); - }); - diff --git a/resources/views/portal/ninja2020/components/livewire/documents-table.blade.php b/resources/views/portal/ninja2020/components/livewire/documents-table.blade.php index 3e5b8970eb66..61beb2645a7d 100644 --- a/resources/views/portal/ninja2020/components/livewire/documents-table.blade.php +++ b/resources/views/portal/ninja2020/components/livewire/documents-table.blade.php @@ -12,12 +12,6 @@ {{ ctrans('texts.credits') }} - -